Oracle Database Links
Problem
A script refers to a table in another database through a database link, but data lineage involving this remote table is missing or the table is displayed as belonging to the local database instead of a remote one.
Solution
- Search IBM Manta Data Lineage logs for the text "
There is no mapping for the connection string
".- If a log message refers to the database link connection string (e.g., the
tnsnames.ora
entry the link refers to), this means that there's no mapping for the connection string in either automatically-generated or manual mapping files.- Check the content of the
<MANTA_HOME>/scenarios/manta-dataflow-cli/etc/oracleDictionaryMantaMapping.csv
file. - If the file is missing or empty, the dictionary mapping extraction (
oracleDictionaryMappingMasterScenario
step) was not run or failed. Check the logs. - If the file does not contain any mapping for the target database, it wasn't extracted at all or the extraction failed. Check the configuration and verify in the logs whether or not the database extraction succeeded.
- If the file contains a mapping for the target database but the mapping does not contain the name that's used in the CREATE DATABASE LINK command, you need to define a manual mapping in the
<MANTA_HOME>/scenarios/manta-dataflow-cli/etc/oracleDictionaryMantaMappingManual.csv
file. Create it if it does not exist.- Refer to Oracle Resource Configuration for a mapping file format description. The format is the same for both manual and generated files.
- Check the content of the
- If a log message refers to the database link name (the name you used when referring to the table, e.g.,
table@linkname
), this means that the link definition wasn't processed.- Check that the schema containing the database link is included in the extracted schemas configuration. (This only applies to private database links.)
- Verify that the database link DDL is present in the
<MANTA_HOME>/temp/oracle/<dictionary.id>/ddl
directory (it will be in thepublic
sub-directory for public links or in the sub-directory named after the schema for private links) and that the content looks correct. - Search the logs for the link name and verify that no errors occurred while processing the database link.
- If a log message refers to the database link connection string (e.g., the
- Verify that the target database was successfully extracted.
- Find the
dictionary.id
of the target database. It's configured in the target database extraction configuration or can be found in the dictionary mapping file mentioned above. - Check that the directory
<MANTA_HOME>/temp/oracle
contains a sub-directory with the same name as thedictionary.id
.- If the sub-directory is missing, the target database was not extracted.
- If the sub-directory content size is less than 300kB, the target database was not extracted.
- Find the
- Verify that the referring script was successfully processed.
- Search the dataflow log for the script name. Verify that the log indeed contains the message about processing the script and that no errors occurred during processing.