Review the following information about running the InitialSync task:
Typically, you use InitialSync to materialize empty target tables. If a target table is not empty, you can delete all of the data from the table by using the SQL TRUNCATE TABLE statement. If you use the ODBC driver to load data, you can set the
initial.check_empty_tables
runtime parameter to 1 or 2 to check if the mapped tables are empty.
If you run InitialSync from the command line, you can use the following command line parameters to selectively synchronize target tables:
Set the RESYNC parameter to P to synchronize the tables that are not currently synchronized.
Specify the DEST_TABLES or EXCLUDE_DEST_TABLES parameters to filter the tables to synchronize. In this case, you must set the RESYNC parameter to N.
You can improve InitialSync performance by using multiple threads. You can specify a number of InitialSync threads in the
InitialSync threads
field on the
Runtime Settings
tab >
General
view. A single InitialSync thread loads data to a single target table.
For a particular configuration, you can run InitialSync and the Extractor at the same time if the set of tables for which you run InitialSync does not intersect with the set of tables for which you run the Extractor.
Because DB2 for Linux, UNIX, and Windows does not provide a way to retrieve the current LSN from the database, InitialSync inserts a record for each mapped target table in a service table. Data Replication creates the service table with the default name of DBSYNC_SYNC_LSN in the DB2 source database. After you start change data capture, the Extractor uses these records to determine the initial LSN to pass to the Applier. To keep source data consistent, InitialSync locks each source table to prevent write access.
For Microsoft SQL Server targets, InitialSync uses the snapshot transaction isolation level to provide data consistency. InitialSync records the LSN value of the source data unload transaction.
For Microsoft SQL Server targets on Windows, InitialSync might run out of memory when it uses the Bulk Copy Program (BCP) to load a large amount of LOB data to the target tables.
Informatica recommends that you use the ODBC driver for initial materialization of Microsoft SQL Server target tables when you need to load a large amount of LOB data to the tables. To use the ODBC driver, run InitialSync with the DIRECT=n command line parameter.
If you want to use BCP to materialize tables with a large amount of LOB data, decrease the number of InitialSync threads and the value of the
global.lob_truncation_size
runtime parameter to avoid running out of memory.
For Oracle sources, you can use Informatica Fast Clone instead of InitialSync to materialize target tables. Fast Clone provides better performance. For more information, see the Informatica Fast Clone documentation.
For most Oracle sources, you can use multiple InitialSync subtask threads to unload data. To enable InitialSync multithreaded processing, use the
initial.oracle.parallel_subtask_limit
and
initial.oracle.parallel_sample_percentage
runtime parameters.
If you use the ODBC drivers to connect to targets, InitialSync supports multithreaded load processing for all target types.
If you use the target native load utilities, InitialSync supports multithreaded load processing for target types other than the following unsupported types:
Oracle
Teradata
Also, InitialSync does not support multithreaded processing for the following table types:
Oracle source tables that have subpartitions.
Source tables that have virtual columns with associated Tcl scripts or SQL expressions.
If you unload data from these types of tables, ensure that the
initial.oracle.parallel_sample_percentage
runtime parameter is set to 0.
For Microsoft SQL Server targets, if you use the BCP utility to load data, verify that the BCP requirements for parallel processing of a table are met. For more information, see the Microsoft SQL Server documentation at the following website:
http://msdn.microsoft.com/en-us/library/aa196739(v=sql.80).aspx.
Do not use InitialSync with the following target types, for which initial synchronization is not needed:
Apache Kafka
Cloudera
Hortonworks
Flat File
For Microsoft SQL Server and Oracle sources, before you run InitialSync for a table that was added to an existing replication configuration, ensure that the table does not contain uncommitted data from an open transaction.
If you run InitialSync for a source table that contains uncommitted data and then start the Extractor, the Extractor might not process the change data from the open transaction after the transaction is committed.