{"id":10775,"date":"2016-12-20T12:23:09","date_gmt":"2016-12-20T17:23:09","guid":{"rendered":"http:\/\/www.iri.com\/blog\/?p=10775"},"modified":"2026-02-23T16:43:46","modified_gmt":"2026-02-23T21:43:46","slug":"incremental-data-replication-in-iri-workbench","status":"publish","type":"post","link":"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/","title":{"rendered":"Incremental Data Replication in IRI Workbench"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Our <\/span><a href=\"http:\/\/www.iri.com\/blog\/migration\/data-migration\/data-replication-in-iri-workbench\/\"><span style=\"font-weight: 400;\">first article on data replication<\/span><\/a><span style=\"font-weight: 400;\"> in the IRI Workbench GUI for NextForm (DB edition) or Voracity demonstrated how to copy and transform data as it moved from Oracle to two targets. This article shows how to synchronize incrementally a production and backup table in separate databases.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In this case, the production database is Oracle, the backup database is MySQL, and the table is named SG_TRANSACTIONS in both. There are transaction rows that contain the account number, the type of transaction, the transaction date, and the transaction amount with the column names ACCT_NUM, TRANSTYPE, TRANS_DATE, and TRANS_AMOUNT.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Note that you can also create tables by defining and executing statements in <a href=\"http:\/\/www.iri.com\/blog\/data-transformation2\/creating-executing-sql-statements-in-iri-workbench\/\">SQL files within IRI Workbench<\/a>.<\/span><\/p>\n<h3><b>Run the Wizard<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">There are wizards in IRI Workbench that can be used to create a migration job script that will copy the rows from one table to another. \u00a0In this case, we will replicate the data from the ORACLE table SG_TRANSACTIONS into the MySQL table SG_TRANSACTIONS.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">I previously created the project Replication. We should click on that folder in the <\/span><b>Project Explorer<\/b><span style=\"font-weight: 400;\"> to highlight the project before running the wizard. This ensures that the wizard will save my job script in that folder. Our replication job will be created through a wizard available from the <\/span><b>NextForm Menu<\/b><span style=\"font-weight: 400;\"> in the toolbar.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To run the wizard, click on the arrow next to the NextForm icon. Note that in the previous article we used the <\/span><b>New Reformat Job<\/b><span style=\"font-weight: 400;\"> wizard because one of the targets was filtered, masked, and reformatted. Since this case is straight-through replication, we\u2019ll use the <\/span><b>New Single Source Migration Job<\/b><span style=\"font-weight: 400;\"> wizard instead.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">On the wizard\u2019s first screen called <\/span><b>Job Specification File<\/b><span style=\"font-weight: 400;\">, verify that the <\/span><b>Folder<\/b><span style=\"font-weight: 400;\"> field has Replication as the (project name) value. In the <\/span><b>File Name <\/b><span style=\"font-weight: 400;\">field, type in the name of the job script we are creating; I called it <\/span><i><span style=\"font-weight: 400;\">SG_Transaction_Transfer.<\/span><\/i><span style=\"font-weight: 400;\"> Select the <\/span><b>Create script<\/b><span style=\"font-weight: 400;\"> radio button, then select <\/span><b>Next<\/b><span style=\"font-weight: 400;\"> to go to the <\/span><b>Single Source Migration<\/b><span style=\"font-weight: 400;\"> window.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Under <\/span><b>Source Information<\/b><span style=\"font-weight: 400;\">, select the <\/span><b>Browse<\/b><span style=\"font-weight: 400;\"> button next to the <\/span><b>Source<\/b><span style=\"font-weight: 400;\"> field. Now select the <\/span><b>ODBC<\/b><span style=\"font-weight: 400;\"> radio button in the <\/span><b>Data Source<\/b><span style=\"font-weight: 400;\"> window, and click the <\/span><b>Browse<\/b><span style=\"font-weight: 400;\"> button.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the <\/span><b>ODBC Table Selection<\/b><span style=\"font-weight: 400;\"> window, select the <\/span><b>DSN<\/b><span style=\"font-weight: 400;\"> from the dropdown list; then select the <\/span><b>Table name,<\/b><span style=\"font-weight: 400;\"> and click <\/span><b>OK<\/b><span style=\"font-weight: 400;\">. ODBC is used to connect to our source and target database tables when moving data using our job scripts. \u00a0Click <\/span><b>OK<\/b><span style=\"font-weight: 400;\"> again to return to the <\/span><b>Single Source Migration<\/b><span style=\"font-weight: 400;\"> window.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/1-ODBC-Table-Selection.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10776\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/1-ODBC-Table-Selection.png\" alt=\"ODBC Table Selection\" width=\"525\" height=\"450\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/1-ODBC-Table-Selection.png 525w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/1-ODBC-Table-Selection-300x257.png 300w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><\/a><\/p>\n<h3><b><br \/>\nBrowse or Discover Your Source Metadata<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">All IRI programs require metadata layouts for your data sources and targets in a standard data definition file (DDF) <\/span><a href=\"http:\/\/www.iri.com\/products\/cosort\/sortcl-metadata\"><span style=\"font-weight: 400;\">format<\/span><\/a><span style=\"font-weight: 400;\">. These layouts are normally created once, stored centrally, and used as references for your mappings and models.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If a metadata file has already been created, then under <\/span><b>Source Information<\/b><span style=\"font-weight: 400;\">, click the <\/span><b>Browse <\/b><span style=\"font-weight: 400;\">button next to the <\/span><b>Metadata<\/b><span style=\"font-weight: 400;\"> field. In the <\/span><b>Open Metadata<\/b><span style=\"font-weight: 400;\"> window, select the metadata file in the <\/span><b>Matching Items<\/b><span style=\"font-weight: 400;\"> box that defines the columns in the <\/span><i><span style=\"font-weight: 400;\">SG_TRANSACTIONS<\/span><\/i><span style=\"font-weight: 400;\"> table. Then click <\/span><b>OK<\/b><span style=\"font-weight: 400;\"> to return to the <\/span><b>Single Source Migration <\/b><span style=\"font-weight: 400;\">window.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you need to create the metadata file now, select the <\/span><b>Discover<\/b><span style=\"font-weight: 400;\"> button. This takes you to the <\/span><b>Setup<\/b> <b>Options<\/b><span style=\"font-weight: 400;\"> window. Verify that the folder is \/<\/span><i><span style=\"font-weight: 400;\">your project name<\/span><\/i><span style=\"font-weight: 400;\">\/metadata. In the <\/span><b>File name<\/b><span style=\"font-weight: 400;\"> field, type in the name for the metadata file and click <\/span><b>Next<\/b><span style=\"font-weight: 400;\">. \u00a0In the <\/span><b>Data Source Identification<\/b><span style=\"font-weight: 400;\"> window, verify that the fields are filled in correctly and click <\/span><b>Next<\/b><span style=\"font-weight: 400;\"> to go to the <\/span><b>Field Data Viewer and Editor<\/b><span style=\"font-weight: 400;\"> window.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The top half of the window has the column names and a sample of the records in the table, if any. The bottom half has the field <\/span><b>Name<\/b><span style=\"font-weight: 400;\"> to be used in the job script, IRI\u2019s equivalent data <\/span><b>Type <\/b><span style=\"font-weight: 400;\">for the original database <\/span><b>Source Type<\/b><span style=\"font-weight: 400;\">, and the ordinal <\/span><b>Position<\/b><span style=\"font-weight: 400;\"> of the field (column). Click <\/span><b>Finish<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/2-Discover-Metadata.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10777\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/2-Discover-Metadata.png\" alt=\"Discover Metadata\" width=\"525\" height=\"722\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/2-Discover-Metadata.png 525w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/2-Discover-Metadata-218x300.png 218w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><\/a><br \/>\n<span style=\"font-weight: 400;\">You are now back in the <\/span><b>Single Source Migration<\/b><span style=\"font-weight: 400;\"> window.<\/span><\/p>\n<h3><b>Define the Target<\/b><b><br \/>\n<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Under <\/span><b>Target Information<\/b><span style=\"font-weight: 400;\">, select the <\/span><b>Browse<\/b><span style=\"font-weight: 400;\"> button next to the field for <\/span><b>Target<\/b><span style=\"font-weight: 400;\">. Now, in the <\/span><b>Data Target<\/b><span style=\"font-weight: 400;\"> window, select the <\/span><b>ODBC<\/b><span style=\"font-weight: 400;\"> radio button and click the <\/span><b>Browse<\/b><span style=\"font-weight: 400;\"> button next to the <\/span><b>ODBC<\/b><span style=\"font-weight: 400;\"> field. Then select the output <\/span><b>DSN<\/b><span style=\"font-weight: 400;\"> and <\/span><b>Table name <\/b><span style=\"font-weight: 400;\">(Twister MYSQL and SG_Transactions) in the <\/span><b>ODBC Table Selection<\/b><span style=\"font-weight: 400;\"> window. Be sure to select the box for <\/span><b>Copy metadata from source<\/b><span style=\"font-weight: 400;\">. Click <\/span><b>OK,<\/b><span style=\"font-weight: 400;\"> and click <\/span><b>OK<\/b><span style=\"font-weight: 400;\"> again.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">All the necessary information is now in the <\/span><b>Single Source Migration<\/b><span style=\"font-weight: 400;\"> window. Click <\/span><b>Finish<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/3-New-Single-Source-Migration-Job.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10778\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/3-New-Single-Source-Migration-Job.png\" alt=\"New Single Source Migration Job\" width=\"600\" height=\"419\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/3-New-Single-Source-Migration-Job.png 624w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/3-New-Single-Source-Migration-Job-300x210.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><br \/>\n<span style=\"font-weight: 400;\">The NextForm control language script <\/span><i><span style=\"font-weight: 400;\">SG_Transaction_Transfer.ncl<\/span><\/i><span style=\"font-weight: 400;\"> is created and can be viewed in the IRI Workbench color-coded, syntax aware text editor.<\/span><\/p>\n<h3><b>Replicate the New Records<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">This script will copy all the rows that exist in the <\/span><i><span style=\"font-weight: 400;\">SG_TRANSACTIONS <\/span><\/i><span style=\"font-weight: 400;\">table in Oracle to the same named table in MySQL. But, after the first execution, we only want to copy new rows to the backup table. To do this, we need to add a \/QUERY statement to the input section of the job script so only the newest rows will be processed whenever you <\/span><a href=\"http:\/\/www.iri.com\/blog\/iri\/iri-workbench\/running-iri-jobs-in-the-iri-workbench\/\"><span style=\"font-weight: 400;\">run the job<\/span><\/a><span style=\"font-weight: 400;\"> (ad hoc or scheduled).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To modify the script from the IRI Workbench editor, right-click in the body of the script. \u00a0Select <\/span><b>IRI<\/b><span style=\"font-weight: 400;\">, then <\/span><b>Edit Sources<\/b><span style=\"font-weight: 400;\">. In the <\/span><b>Data Sources<\/b><span style=\"font-weight: 400;\"> dialog window, select <\/span><b>Edit Source Options<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">At the bottom of the <\/span><b>Source Options <\/b><span style=\"font-weight: 400;\">window is a<\/span><b> Query <\/b><span style=\"font-weight: 400;\">field. This is where we add the SQL query statement that will only select the newest rows from the Oracle table. We will assume that this is a month-end process. The QUERY statement below filters rows for a one-month interval, but we could choose any interval. \u00a0Instead of using specific dates in the script, we could also use environment variables to specify the interval.<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">select * from NIGHTLY.SG_TRANSACTIONS where to_char(TRANS_DATE, 'YYYY-MM-DD') &gt; \r\n'2016-11-30' AND \u00a0(to_char(TRANS_DATE, 'YYYY-MM-DD') &lt; '2017-01-01')\"<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">Now click <\/span><b>OK<\/b><span style=\"font-weight: 400;\">, then <\/span><b>Finish<\/b><span style=\"font-weight: 400;\"> to update and save our original wizard-created job script with the new \/QUERY statement inside:<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/4-Replication-SG-Transaction.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10781\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/4-Replication-SG-Transaction.png\" alt=\"Replication-SG Transaction\" width=\"600\" height=\"328\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/4-Replication-SG-Transaction.png 1152w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/4-Replication-SG-Transaction-300x164.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/4-Replication-SG-Transaction-768x420.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/4-Replication-SG-Transaction-1024x560.png 1024w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">The first time the script runs, the \/QUERY statement should be commented out because we want all the records to be copied. After that, we want to run with the \/QUERY statement to replicate rows from a date interval that has not yet been copied to the backup table.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This job can <\/span><a href=\"http:\/\/www.iri.com\/blog\/iri\/iri-workbench\/running-iri-jobs-in-the-iri-workbench\/\"><span style=\"font-weight: 400;\">run from the GUI or command line<\/span><\/a><span style=\"font-weight: 400;\"> where a NextForm DB edition, Voracity, or CoSort (sortcl) executable is licensed.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Here is a sample of rows in the production table:<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/5-Sample-rows-in-production-table.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10782\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/5-Sample-rows-in-production-table.png\" alt=\"Sample rows in production table\" width=\"600\" height=\"343\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/5-Sample-rows-in-production-table.png 1036w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/5-Sample-rows-in-production-table-300x172.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/5-Sample-rows-in-production-table-768x440.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/5-Sample-rows-in-production-table-1024x586.png 1024w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">And here is a sample of rows in the backup table prior to running the December month-end backup. So, the rows in this table currently only go through the end of November.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/6-Sample-rows-in-backup-table.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10783\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/6-Sample-rows-in-backup-table.png\" alt=\"Sample rows in backup table\" width=\"600\" height=\"309\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/6-Sample-rows-in-backup-table.png 1152w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/6-Sample-rows-in-backup-table-300x154.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/6-Sample-rows-in-backup-table-768x395.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/6-Sample-rows-in-backup-table-1024x527.png 1024w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">After running our replication job with the \/QUERY statement in it, only the December records are added to the backup table. Notice there is one January record in the production table, but this record has not been copied to the backup table because the date value for that row is outside our specified range.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/7-Nightly-SG-Transactions.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10784\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/7-Nightly-SG-Transactions.png\" alt=\"Nightly SG Transactions\" width=\"600\" height=\"370\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/7-Nightly-SG-Transactions.png 962w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/7-Nightly-SG-Transactions-300x185.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/7-Nightly-SG-Transactions-768x473.png 768w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p>It is also possible to add column-level masking functions to each target, as the job below shows:<\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/image.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-11427\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/image.png\" alt=\"\" width=\"600\" height=\"376\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/image.png 1110w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/image-300x188.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/image-768x481.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/image-1024x642.png 1024w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p>See <a href=\"http:\/\/www.iri.com\/blog\/etl\/db-changes-oracle-mongo\/\">this example<\/a> of replication between Oracle and MongoDB. For help replicating data on a one-off or recurring basis, email <a href=\"mailto:support@iri.com\">support@iri.com<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Our first article on data replication in the IRI Workbench GUI for NextForm (DB edition) or Voracity demonstrated how to copy and transform data as it moved from Oracle to two targets. This article shows how to synchronize incrementally a production and backup table in separate databases. In this case, the production database is Oracle,<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/\" title=\"Incremental Data Replication in IRI Workbench\">Read More<\/a><\/div>\n","protected":false},"author":10,"featured_media":10778,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[8,31,776,91,90,3,2255],"tags":[51,1239],"class_list":["post-10775","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-protection","category-data-migration","category-etl","category-iri-workbench","category-migration","category-vldb-operations","category-archived-articles","tag-data-replication","tag-db-replication"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.4 (Yoast SEO v23.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Incremental Data Replication in IRI Workbench - IRI<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Incremental Data Replication in IRI Workbench\" \/>\n<meta property=\"og:description\" content=\"Our first article on data replication in the IRI Workbench GUI for NextForm (DB edition) or Voracity demonstrated how to copy and transform data as it moved from Oracle to two targets. This article shows how to synchronize incrementally a production and backup table in separate databases. In this case, the production database is Oracle,Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2016-12-20T17:23:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-23T21:43:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/3-New-Single-Source-Migration-Job.png\" \/>\n\t<meta property=\"og:image:width\" content=\"624\" \/>\n\t<meta property=\"og:image:height\" content=\"436\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Susan Gegner\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Susan Gegner\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/\"},\"author\":{\"name\":\"Susan Gegner\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63\"},\"headline\":\"Incremental Data Replication in IRI Workbench\",\"datePublished\":\"2016-12-20T17:23:09+00:00\",\"dateModified\":\"2026-02-23T21:43:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/\"},\"wordCount\":1182,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/3-New-Single-Source-Migration-Job.png\",\"keywords\":[\"data replication\",\"DB replication\"],\"articleSection\":[\"Data Masking\/Protection\",\"Data Migration\",\"ETL\",\"IRI Workbench\",\"Migration\",\"VLDB\",\"Archived Articles\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/\",\"url\":\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/\",\"name\":\"Incremental Data Replication in IRI Workbench - IRI\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/3-New-Single-Source-Migration-Job.png\",\"datePublished\":\"2016-12-20T17:23:09+00:00\",\"dateModified\":\"2026-02-23T21:43:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#primaryimage\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/3-New-Single-Source-Migration-Job.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/3-New-Single-Source-Migration-Job.png\",\"width\":624,\"height\":436,\"caption\":\"New Single Source Migration Job\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.iri.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Incremental Data Replication in IRI Workbench\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.iri.com\/blog\/#website\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"name\":\"IRI\",\"description\":\"Total Data Management Blog\",\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.iri.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\",\"name\":\"IRI\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"width\":750,\"height\":206,\"caption\":\"IRI\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63\",\"name\":\"Susan Gegner\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2b1ca5592a65d44483351292cf1ae00a?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2b1ca5592a65d44483351292cf1ae00a?s=96&d=blank&r=g\",\"caption\":\"Susan Gegner\"},\"url\":\"https:\/\/www.iri.com\/blog\/author\/susang\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Incremental Data Replication in IRI Workbench - IRI","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/","og_locale":"en_US","og_type":"article","og_title":"Incremental Data Replication in IRI Workbench","og_description":"Our first article on data replication in the IRI Workbench GUI for NextForm (DB edition) or Voracity demonstrated how to copy and transform data as it moved from Oracle to two targets. This article shows how to synchronize incrementally a production and backup table in separate databases. In this case, the production database is Oracle,Read More","og_url":"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/","og_site_name":"IRI","article_published_time":"2016-12-20T17:23:09+00:00","article_modified_time":"2026-02-23T21:43:46+00:00","og_image":[{"width":624,"height":436,"url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/3-New-Single-Source-Migration-Job.png","type":"image\/png"}],"author":"Susan Gegner","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Susan Gegner","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#article","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/"},"author":{"name":"Susan Gegner","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63"},"headline":"Incremental Data Replication in IRI Workbench","datePublished":"2016-12-20T17:23:09+00:00","dateModified":"2026-02-23T21:43:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/"},"wordCount":1182,"commentCount":0,"publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/3-New-Single-Source-Migration-Job.png","keywords":["data replication","DB replication"],"articleSection":["Data Masking\/Protection","Data Migration","ETL","IRI Workbench","Migration","VLDB","Archived Articles"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/","url":"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/","name":"Incremental Data Replication in IRI Workbench - IRI","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#primaryimage"},"image":{"@id":"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/3-New-Single-Source-Migration-Job.png","datePublished":"2016-12-20T17:23:09+00:00","dateModified":"2026-02-23T21:43:46+00:00","breadcrumb":{"@id":"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#primaryimage","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/3-New-Single-Source-Migration-Job.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/3-New-Single-Source-Migration-Job.png","width":624,"height":436,"caption":"New Single Source Migration Job"},{"@type":"BreadcrumbList","@id":"https:\/\/www.iri.com\/blog\/vldb-operations\/incremental-data-replication-in-iri-workbench\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.iri.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Incremental Data Replication in IRI Workbench"}]},{"@type":"WebSite","@id":"https:\/\/www.iri.com\/blog\/#website","url":"https:\/\/www.iri.com\/blog\/","name":"IRI","description":"Total Data Management Blog","publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iri.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.iri.com\/blog\/#organization","name":"IRI","url":"https:\/\/www.iri.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","width":750,"height":206,"caption":"IRI"},"image":{"@id":"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63","name":"Susan Gegner","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2b1ca5592a65d44483351292cf1ae00a?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2b1ca5592a65d44483351292cf1ae00a?s=96&d=blank&r=g","caption":"Susan Gegner"},"url":"https:\/\/www.iri.com\/blog\/author\/susang\/"}]}},"jetpack_featured_media_url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/12\/3-New-Single-Source-Migration-Job.png","_links":{"self":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/10775"}],"collection":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/comments?post=10775"}],"version-history":[{"count":11,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/10775\/revisions"}],"predecessor-version":[{"id":12070,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/10775\/revisions\/12070"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media\/10778"}],"wp:attachment":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=10775"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=10775"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=10775"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}