{"id":4269,"date":"2022-02-11T07:00:00","date_gmt":"2022-02-11T04:00:00","guid":{"rendered":"https:\/\/www.dataplatform.gr\/?p=4269"},"modified":"2024-10-07T13:41:21","modified_gmt":"2024-10-07T10:41:21","slug":"pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t","status":"publish","type":"post","link":"https:\/\/www.dataplatform.gr\/en\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/","title":{"rendered":"How to replicate tables from Oracle Database to SQL Server using GoldenGate"},"content":{"rendered":"<p>In this article we will see how we can copy table entries <strong>from<\/strong> <strong>Oracle Database<\/strong> <strong>which is on Unix <\/strong>to <strong>SQL Server that is<\/strong> <strong>on Windows <\/strong>with its use<strong> Oracle GoldenGate<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u03c4\u03b9-\u03b5\u03af\u03bd\u03b1\u03b9-\u03c4\u03bf-goldengate\">What is GoldenGate<\/h2>\n\n\n\n<p>Oracle GoldenGate is a tool that allows us to copy and format data between databases, without affecting the operating system or RDBMS being used. The updating of the tables can be either in one direction with a target (unidirectional), or to several targets (broadcast), or bidirectional.<\/p>\n\n\n\n<p>For example, we can transfer table data using GoldenGate from Oracle to Oracle, from Oracle to SQL Server, from SQL Server to SQL Server, or from Oracle simultaneously to SQL Server, MySQL, DB2 and PostgreSQL.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u03c0\u03ce\u03c2-\u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03b5\u03af-\u03c4\u03bf-goldengate\">How GoldenGate works<\/h2>\n\n\n\n<p>GoldenGate uses three processes: <strong>Extract<\/strong>,<strong> Data Pump<\/strong> (in case we use a remote server) and <strong>Replicat<\/strong>. <\/p>\n\n\n\n<p>The <strong>Extract <\/strong>is responsible for recording the committed transactions from the tables we have defined and storing them in a file called <strong>local trail<\/strong>. Then the <strong>Data Pump<\/strong> sends the data from the local trail file to the remote server via TCP\/IP and writes the data to the file named <strong>remote trail<\/strong>. In the end the <strong>Replicat <\/strong>reads the remote trail and applies the changes to the target databases.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"327\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_00-1024x327.png\" alt=\"\" class=\"wp-image-4300\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_00-1024x327.png 1024w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_00-300x96.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_00-768x245.png 768w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_00-1536x490.png 1536w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_00.png 1652w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">docs.oracle.com<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u03c4\u03b1-\u03c0\u03c1\u03bf\u03b1\u03c0\u03b1\u03b9\u03c4\u03bf\u03cd\u03bc\u03b5\u03bd\u03b1\">The prerequisites<\/h2>\n\n\n\n<p>For starters we should have set it up&nbsp;<strong>Oracle Database Software<\/strong>&nbsp;on the primary and on the standby server and&nbsp;<strong>Oracle Database<\/strong>&nbsp;in primary to&nbsp;<em><strong>archivelog mode<\/strong><\/em>. How we do these installations can be seen step by step in the article&nbsp;<a href=\"https:\/\/www.dataplatform.gr\/en\/pos-kanoyme-mia-kainoyrgia-egkatasta\/\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>.<\/p>\n\n\n\n<p>We should download the version <strong>Oracle GoldenGate<\/strong> separately for each system from <a href=\"https:\/\/www.oracle.com\/middleware\/technologies\/goldengate-downloads.html\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>. The Oracle on Linux x86-64 edition for Oracle Server and the SQL Server on Windows x86-64 edition for SQL Server.<\/p>\n\n\n\n<p>On the Windows Server that has SQL Server we will need to download and install it&nbsp;<strong>Oracle Database Client<\/strong>&nbsp;from&nbsp;<a href=\"https:\/\/www.oracle.com\/database\/technologies\/oracle19c-windows-downloads.html\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u03b7-\u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\">The installation \/ configuration in the source<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"\u03c3\u03c4\u03bf\u03bd-unix-oracle-database-server-source\">On Unix Oracle Database server (source)<\/h4>\n\n\n\n<p>For example, I have created an Oracle Database that will be the source with the name oracledb:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>su oracle\ndbca<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"802\" height=\"632\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_02.png\" alt=\"\" class=\"wp-image-4270\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_02.png 802w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_02-300x236.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_02-768x605.png 768w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><figcaption class=\"wp-element-caption\">01<\/figcaption><\/figure>\n\n\n\n<p>After the installation is complete, we connect to the database with sqlplus and make the necessary changes for GoldenGate to work:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>export ORACLE_SID=oracledb\n\nsqlplus \/ as sysdba<\/code><\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">shutdown immediate;\nstartup mount;\n\nalter database archivelog;\nalter database add supplemental log data;\nalter database force logging;\nalter database open;\nalter system switch logfile;\nalter system set enable_goldengate_replication=true scope=both;\n<\/pre>\n\n\n\n<p>Then we stay in sqlplus and create the user that GoldenGate will connect to the database:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">create user ggadmin\n  identified by passw0rd\n  default tablespace USERS\n  temporary tablespace TEMP\n  quota unlimited on users;\n-- Grant\/Revoke role privileges \ngrant connect to ggadmin;\ngrant resource to ggadmin;\n-- Grant\/Revoke system privileges \ngrant select any table to ggadmin;\ngrant select any dictionary to ggadmin;\ngrant flashback any table to ggadmin;\ngrant create session to ggadmin;\ngrant alter session to ggadmin;\nexec dbms_goldengate_auth.grant_admin_privilege('ggadmin');\n<\/pre>\n\n\n\n<p>For the needs of the example I have created the user in the database <em>STRATOS <\/em>with the table <em>CUSTOMERS<\/em> and it&#039;s the one I want replicated:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">create user STRATOS IDENTIFIED BY PASSW0RD\n  default tablespace USERS\n  temporary tablespace TEMP\n  profile DEFAULT\n  password expire\n  quota unlimited on users;\n-- Grant\/Revoke role privileges \ngrant connect to STRATOS;\ngrant resource to STRATOS;\n-- Table Creation\ncreate table stratos.customers (id int, name varchar(50));\ninsert into stratos.customers values (1,'Stratos');\ninsert into stratos.customers values (2,'Nikos');\ninsert into stratos.customers values (3,'George');\ncommit;<\/pre>\n\n\n\n<p>Then we add to <strong>tnsnames.ora<\/strong> the following record with the connection information to the instance by putting as <em>host <\/em>the machine name and as <em>service_name<\/em> the name of the database:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>vi $ORACLE_HOME\/network\/admin\/tnsnames.ora\n\n<\/code><\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">oracledb=\n  (DESCRIPTION =\n    (ADDRESS_LIST =\n      (ADDRESS = (PROTOCOL = TCP)(HOST = oracledev2)(PORT = 1521))\n    )\n    (CONNECT_DATA =\n      (SERVICE_NAME = oracledb)\n    )\n  )<\/pre>\n\n\n\n<p>If we don&#039;t have <em>DNS servers<\/em> we should go to <em>hosts file<\/em> and set a record with the IP of the remote SQL Server:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>su root\nvi \/etc\/hosts<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"647\" height=\"158\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_34.png\" alt=\"\" class=\"wp-image-4305\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_34.png 647w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_34-300x73.png 300w\" sizes=\"auto, (max-width: 647px) 100vw, 647px\" \/><figcaption class=\"wp-element-caption\">02<\/figcaption><\/figure>\n\n\n\n<p>We create the folder where the GoldenGate installation will be located, go to the folder where we downloaded the GoldenGate setup and unzip it:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>su oracle\n\nmkdir \/oracle\/app\/oracle\/goldengate\n\ncd $HOME\/Downloads\n\nunzip *.zip\n\n<\/code><\/pre>\n\n\n\n<p>After the unzip is complete, go into the files of the folder and run the installer:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>cd fbo_ggs_Linux_x64_Oracle_shiphome\/Disk1\n\n.\/runInstaller<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"801\" height=\"628\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_04.png\" alt=\"\" class=\"wp-image-4272\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_04.png 801w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_04-300x235.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_04-768x602.png 768w\" sizes=\"auto, (max-width: 801px) 100vw, 801px\" \/><figcaption class=\"wp-element-caption\">03<\/figcaption><\/figure>\n\n\n\n<p>In the <strong>Software Location<\/strong> put the folder we created before to contain the installation and set the door, or default is 7809:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"802\" height=\"632\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_05-1.png\" alt=\"\" class=\"wp-image-4303\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_05-1.png 802w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_05-1-300x236.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_05-1-768x605.png 768w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><figcaption class=\"wp-element-caption\">04<\/figcaption><\/figure>\n\n\n\n<p>When the installation is complete, the path of GoldenGate and the <em>tnsnames<\/em>.ora go to <strong>bash_profile <\/strong>and add the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>vi $HOME\/.bash_profile\n\n<\/code><\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">export GGHOME=\/oracle\/app\/oracle\/goldengate\nexport TNS_ADMIN=$ORACLE_HOME\/network\/admin\nexport PATH=$PATH:$ORACLE_HOME\/bin:$GGHOME<\/pre>\n\n\n\n<p>To load the changes we either logout login or run the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>\nsource ~\/.bash_profile<\/code><\/pre>\n\n\n\n<p>Now we can connect to the GoldenGate interface by running the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>ggsci<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"707\" height=\"389\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_06.png\" alt=\"\" class=\"wp-image-4274\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_06.png 707w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_06-300x165.png 300w\" sizes=\"auto, (max-width: 707px) 100vw, 707px\" \/><figcaption class=\"wp-element-caption\">05<\/figcaption><\/figure>\n\n\n\n<p>We write to create the folders in case the installer has not already done so:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">create subdirs<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"686\" height=\"517\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_07.png\" alt=\"\" class=\"wp-image-4275\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_07.png 686w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_07-300x226.png 300w\" sizes=\"auto, (max-width: 686px) 100vw, 686px\" \/><figcaption class=\"wp-element-caption\">06<\/figcaption><\/figure>\n\n\n\n<p>We modify the GoldenGate Manager parameter file and add the following:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">edit params mgr<\/pre>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>\nPORT 7809\nPURGEOLDEXTRACTS .\/dirdat\/*, MINKEEPHOURS 2\nAUTOSTART EXTRACT *\nAUTORESTART EXTRACT *, RETRIES 10, WAITMINUTES 5, RESETMINUTES 60<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PORT: It is the minimum variable that the file must have and defines the port of the Manager.<\/li>\n\n\n\n<li>PURGEOLDEXTRACT: It is the location where the trail file with the data is stored and we define it to keep at least 2 hours.<\/li>\n\n\n\n<li>AUTOSTART : We define which processes to start automatically when the Manager starts.<\/li>\n\n\n\n<li>AUTORESTART: We define which processes should be restarted after an error.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>Then we start him <strong>GoldenGate Manager<\/strong>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">start manager<\/pre>\n\n\n\n<p>With the following command we can see the status of the processes:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">info all<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"684\" height=\"773\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_08.png\" alt=\"\" class=\"wp-image-4276\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_08.png 684w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_08-265x300.png 265w\" sizes=\"auto, (max-width: 684px) 100vw, 684px\" \/><figcaption class=\"wp-element-caption\">07<\/figcaption><\/figure>\n\n\n\n<p>In the next step we make it <strong>Credentialstore<\/strong>. There we can define database users keeping the password locally encrypted. In the command we should set the name of the user we created before (ggadmin), the name of the record we passed to <em>tnsnames.ora<\/em> (oracledb) with the database connection and as <em>alias <\/em>the name we will call it:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">add credentialstore \nalter credentialstore add user ggadmin@oracledb alias ggadmin<\/pre>\n\n\n\n<p>To connect we run the following:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">dblogin useridalias ggadmin<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"685\" height=\"204\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_09.png\" alt=\"\" class=\"wp-image-4277\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_09.png 685w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_09-300x89.png 300w\" sizes=\"auto, (max-width: 685px) 100vw, 685px\" \/><figcaption class=\"wp-element-caption\">08<\/figcaption><\/figure>\n\n\n\n<p>After connecting with the user, we set supplemental logging to be enabled for each table we want to replicate:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">add trandata stratos.customers<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"686\" height=\"279\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_10.png\" alt=\"\" class=\"wp-image-4278\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_10.png 686w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_10-300x122.png 300w\" sizes=\"auto, (max-width: 686px) 100vw, 686px\" \/><figcaption class=\"wp-element-caption\">09<\/figcaption><\/figure>\n\n\n\n<p>In the case that we want to activate supplemental logging in all the tables of a schema then we can instead of <strong>trandata<\/strong> to do <strong>schematrandata<\/strong>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">add schematrandata stratos<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Creating the Extract process in the source<\/h2>\n\n\n\n<p>Now we&#039;re building it <strong>Extract<\/strong> process that will export the data to the local trail file:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">register extract ora_ext database<\/pre>\n\n\n\n<p>Then we modify it and add the following:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">edit param ora_ext<\/pre>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>EXTRACT ora_ext\nUSERIDALIAS ggadmin\nRMTHOST sqlserverhost.mshome.net, MGRPORT 7809\nRMTTRAIL .\/dirdat\/aa\nGETTRUNCATES\nTABLE STRATOS.*;<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>EXTRACT: We set the name of the process.<\/li>\n\n\n\n<li>USERIDALIAS: Set the name of the alias we made for the base user in the Credentialstore.<\/li>\n\n\n\n<li>RMTHOST: We set the hostname of the remote SQL Server. If we do not use a DNS server, we put the record we passed in \/etc\/hosts.<\/li>\n\n\n\n<li>MGRPORT: We define the port that the GoldenGate Manager has on the remote SQL Server.<\/li>\n\n\n\n<li>RMTTRAIL: We define the path and the name that the trail files will have.<\/li>\n\n\n\n<li>GETTRUNCATES: We enable the ability to record table truncates so that if all records are deleted, this will also be done on the target.<\/li>\n\n\n\n<li>TABLE: We define the tables we want to transfer, in this case we put the user&#039;s schema and * since the schema contains only the table we want.<\/li>\n\n\n\n<li>TRANLOGOPTIONS: We optionally set settings for the export like parameter <em>MINEFROMACTIVEDG<\/em> which allows us in an Active Data Guard environment to use Standby instead of Primary (this function is not compatible with the integrated process and only works in the classic configuration).<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>To add process as <strong>integrated<\/strong>, we should run the following with the extract process name:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">add extract ora_ext, integrated tranlog, begin now\n \nadd rmttrail .\/dirdat\/aa, ext ora_ext<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installation \/ configuration on the target<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"\u03c3\u03c4\u03bf\u03bd-windows-sql-server-target\">On Windows SQL Server (target)<\/h4>\n\n\n\n<p>First, let&#039;s go to<strong> Windows Firewall <\/strong>and we will disable it on the network cards that have internal communication between them. To do this we go <strong>Windows Defender Firewall with Advanced Security, Action, Properties, Domain Profile, Customize\u2026<\/strong> and we pull out those connections. We follow the same steps for the tabs <strong>Private Profile<\/strong> and <strong>Public Profile<\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"808\" height=\"752\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_31.png\" alt=\"\" class=\"wp-image-4298\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_31.png 808w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_31-300x279.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_31-768x715.png 768w\" sizes=\"auto, (max-width: 808px) 100vw, 808px\" \/><figcaption class=\"wp-element-caption\">10<\/figcaption><\/figure>\n\n\n\n<p>In the case that we do not use a DNS Server, we must add a record to C:\\Windows\\System32\\drivers\\etc\\hosts with the IP and the name of the remote Oracle Database server.<\/p>\n\n\n\n<p>Then we test that it is pinging:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"779\" height=\"351\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_35.png\" alt=\"\" class=\"wp-image-4306\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_35.png 779w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_35-300x135.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_35-768x346.png 768w\" sizes=\"auto, (max-width: 779px) 100vw, 779px\" \/><figcaption class=\"wp-element-caption\">11<\/figcaption><\/figure>\n\n\n\n<p>Then and after we have installed the&nbsp;<strong>Oracle Database Client<\/strong> as we mentioned in the prerequisites, we go and add to <strong>tnsnames.ora <\/strong>the script for connecting to the remote Oracle Database:<\/p>\n\n\n\n<p><em>*In the example it is located in the path C:\\app\\client\\user\\product\\19.0.0\\client_1\\network\\admin <\/em><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">oracledb=\n  (DESCRIPTION =\n    (ADDRESS_LIST =\n      (ADDRESS = (PROTOCOL = TCP)(HOST = oracledev2)(PORT = 1521))\n    )\n    (CONNECT_DATA =\n      (SERVICE_NAME = oracledb)\n    )\n  )<\/pre>\n\n\n\n<p>We tnsping to see that the entry we added to tnsnames.ora is working:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">tnsping oracledb<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"761\" height=\"506\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_03.png\" alt=\"\" class=\"wp-image-4271\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_03.png 761w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_03-300x199.png 300w\" sizes=\"auto, (max-width: 761px) 100vw, 761px\" \/><figcaption class=\"wp-element-caption\">12<\/figcaption><\/figure>\n\n\n\n<p>Now to create the database user that will manage GoldenGate, we open it <strong>Microsoft SQL Server Management Studio<\/strong>, connect to the instance and under security select right click <strong>New Login\u2026<\/strong>:<\/p>\n\n\n\n<p>We choose <em>SQL Server authentication<\/em>, The choise <em>enforce password policy<\/em> and as <em>default database <\/em>we define where we want the table entries to go:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"721\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_11-1024x721.png\" alt=\"\" class=\"wp-image-4279\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_11-1024x721.png 1024w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_11-300x211.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_11-768x541.png 768w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_11-340x240.png 340w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_11.png 1129w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">13<\/figcaption><\/figure>\n\n\n\n<p>In the tab<em> User Mapping <\/em>do we choose this database, as a role <strong>db_owner<\/strong> and OK:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"695\" height=\"659\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_12.png\" alt=\"\" class=\"wp-image-4280\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_12.png 695w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_12-300x284.png 300w\" sizes=\"auto, (max-width: 695px) 100vw, 695px\" \/><figcaption class=\"wp-element-caption\">14<\/figcaption><\/figure>\n\n\n\n<p>Now to be able to connect to the base from GoldenGate we need to make ODBC. So we open the program <strong>ODBC Data Source Administrator (64-bit)<\/strong>, let&#039;s go <strong>System DSN, Add... and select ODBC Driver 17 for SQL Server<\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"669\" height=\"572\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_13.png\" alt=\"\" class=\"wp-image-4281\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_13.png 669w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_13-300x257.png 300w\" sizes=\"auto, (max-width: 669px) 100vw, 669px\" \/><figcaption class=\"wp-element-caption\">15<\/figcaption><\/figure>\n\n\n\n<p>We define the name with which we will call the connection to the base and as server we put the name of the server we are currently on:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"566\" height=\"462\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_14.png\" alt=\"\" class=\"wp-image-4282\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_14.png 566w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_14-300x245.png 300w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><figcaption class=\"wp-element-caption\">16<\/figcaption><\/figure>\n\n\n\n<p>Then we choose <em>With SQL Server authentication using a login ID and password entered by the user<\/em> and add the username and password we created before:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"566\" height=\"463\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_15.png\" alt=\"\" class=\"wp-image-4283\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_15.png 566w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_15-300x245.png 300w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><figcaption class=\"wp-element-caption\">17<\/figcaption><\/figure>\n\n\n\n<p>On the next screen we select Change the default database to and define the database we want the table records to go to:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"566\" height=\"463\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_16.png\" alt=\"\" class=\"wp-image-4284\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_16.png 566w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_16-300x245.png 300w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><figcaption class=\"wp-element-caption\">18<\/figcaption><\/figure>\n\n\n\n<p>To install GoldenGate on Windows, first unzip the setup files in the folder <em>C:\\goldengate<\/em> .<\/p>\n\n\n\n<p>Open Command Prompt as Administrator and go to the folder:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>cd C:\\goldengate<\/code><\/pre>\n\n\n\n<p>To connect to the GoldenGate interface, run the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>ggsci.exe<\/code><\/pre>\n\n\n\n<p>To create the required folder we run the following command:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">create subdirs<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"780\" height=\"479\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_17.png\" alt=\"\" class=\"wp-image-4285\" style=\"width:780px;height:479px\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_17.png 780w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_17-300x184.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_17-768x472.png 768w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><figcaption class=\"wp-element-caption\">19<\/figcaption><\/figure>\n\n\n\n<p>We modify its parameter file <strong>GoldenGate Manager<\/strong> and add the following:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">edit param mgr<\/pre>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>PORT 7809\nPURGEOLDEXTRACTS .\/dirdat\/*, MINKEEPHOURS 2\nAUTOSTART REPLICAT *\nAUTORESTART REPLICAT *, RETRIES 10, WAITMINUTES 5, RESETMINUTES 60<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PORT: It is the minimum variable that the file must have and defines the port of the Manager.<\/li>\n\n\n\n<li>PURGEOLDEXTRACT: It is the location where the trail file with the data is stored and we define it to keep at least 2 hours.<\/li>\n\n\n\n<li>AUTOSTART : We define which processes to start automatically when the Manager starts.<\/li>\n\n\n\n<li>AUTORESTART: We define which processes should be restarted after an error.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>We are modifying it <strong>GLOBALS <\/strong>parameter file that applies to all GoldenGate processes, so we can assign a name to the at <strong>local Windows Service account<\/strong>, and the table <strong>checkpoint <\/strong>which will contain the information with the apply of replication in SQL Server:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">edit param .\/GLOBALS<\/pre>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>MGRSERVNAME GOLDENGATEsrv\nCHECKPOINTTABLE dbo.CHECKPOINTTABLE\n<\/code><\/pre>\n\n\n\n<p>To add the service to Windows, do the following:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">shell install addservice addevents<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"564\" height=\"146\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_18.png\" alt=\"\" class=\"wp-image-4286\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_18.png 564w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_18-300x78.png 300w\" sizes=\"auto, (max-width: 564px) 100vw, 564px\" \/><figcaption class=\"wp-element-caption\">20<\/figcaption><\/figure>\n\n\n\n<p>To start GoldenGate&#039;s local service from Command Prompt, run the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>net start GOLDENGATEsrv<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"542\" height=\"142\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_19.png\" alt=\"\" class=\"wp-image-4287\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_19.png 542w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_19-300x79.png 300w\" sizes=\"auto, (max-width: 542px) 100vw, 542px\" \/><figcaption class=\"wp-element-caption\">21<\/figcaption><\/figure>\n\n\n\n<p>In the next step, open the GoldenGate interface again and configure it <strong>Credentialstore<\/strong>. As we said before there we can define database users keeping the password locally encrypted. In the command we should define the name of the user we created before (ggadmin), the ODBC we created (sqlserverdb) with the database connection and as <em>alias <\/em>the name we will call it:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>ggsci.exe<\/code><\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">add credentialstore\n\nalter credentialstore add user ggadmin alias ggadmin<\/pre>\n\n\n\n<p>We now connect by running the following command:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">dblogin sourceDB sqlserverdb useridalias ggadmin<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"780\" height=\"460\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_20.png\" alt=\"\" class=\"wp-image-4288\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_20.png 780w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_20-300x177.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_20-768x453.png 768w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><figcaption class=\"wp-element-caption\">22<\/figcaption><\/figure>\n\n\n\n<p>We add him <strong>checkpoint <\/strong>table for replication:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">add checkpointtable<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Creating the Replicat process on the destination<\/h2>\n\n\n\n<p>Now we&#039;re building it <strong>Replicat process <\/strong>which will import the data from the trail file adding the following parameters:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">edit param sql_rep<\/pre>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>REPLICAT sql_rep\nTARGETDB sqlserverdb, USERIDALIAS ggadmin\nDISCARDFILE .\/dirrpt\/ora_discard.txt, APPEND, MEGABYTES 50\nBATCHSQL\nREPERROR(60,TRANSABORT, MAXRETRIES 10, DELAYSECS 10)\nFUNCTIONSTACKSIZE 500\nSOURCECHARSET PASSTHRU\nDISCARDROLLOVER AT 03:00 ON TUESDAY\nREPORTROLLOVER AT 03:00 ON TUESDAY\nHANDLECOLLISIONS\nGETTRUNCATES\nMAP STRATOS.CUSTOMERS, TARGET DBO.CUSTOMERS;\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>REPLICAT: We set the name of the process.<\/li>\n\n\n\n<li>TARGETDB: We define the ODBC we created with the target database.<\/li>\n\n\n\n<li>USERIDALIAS: Set the name of the alias we made for the base user in the Credentialstore.<\/li>\n\n\n\n<li>DISCARDFILE: We define the file containing the table records that failed to pass<\/li>\n\n\n\n<li>DISCARDROLLOVER: We define when the discard files will be cleaned.<\/li>\n\n\n\n<li>REPORTROLLOVER: We define when the report files will be cleaned.<\/li>\n\n\n\n<li>BATCHSQL: We set it to group the statements in groups (select, insert, update, delete) to run them in parallel with greater performance.<\/li>\n\n\n\n<li>TRANSABORT: Helps us control deadlocks. In the event that a transaction fails, it aborts and executes it again from the beginning.<\/li>\n\n\n\n<li>FUNCTIONSTACKSIZE: We set the limit on how many parallel arguments the process can accept in memory.<\/li>\n\n\n\n<li>SOURCECHARSET PASSTHRU: We define not to convert the character set so that there is no risk of corrupting data. <\/li>\n\n\n\n<li>HANDLECOLLISIONS \u2013 NOHANDLECOLLISIONS: Parameter that handles duplicate and wrong records. We return it to HANDLECOLLISIONS in case the Replicat Process fails to start due to the above cases, if we do not want or cannot solve the problems manually (these entries will appear in the DISCARDFILE).<\/li>\n\n\n\n<li>GETTRUNCATES: Enables truncates to be applied to tables that are empty in the source.<\/li>\n\n\n\n<li>MAP: We define the relationship between the source and target tables. In this case we want the tables to go to the DBO schema.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>To make it <strong>Replicat process <\/strong>we run the following:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">add replicat sql_rep, exttrail .\/dirdat\/aa<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Start the Extract process on the source<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"\u03c3\u03c4\u03bf\u03bd-unix-oracle-database-server-source-1\">On the Oracle Database server (source)<\/h4>\n\n\n\n<p>We connect again to the GoldenGate interface from the Unix server:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>su oracle\nggsci<\/code><\/pre>\n\n\n\n<p>We see the status of the processes and <strong>we start the Extract process<\/strong> that we have made:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">info all\n\nstart ora_ext<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"612\" height=\"235\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_22.png\" alt=\"\" class=\"wp-image-4290\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_22.png 612w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_22-300x115.png 300w\" sizes=\"auto, (max-width: 612px) 100vw, 612px\" \/><figcaption class=\"wp-element-caption\">23<\/figcaption><\/figure>\n\n\n\n<p>At this point we will see that the Windows SQL Server that is the target will have built it <strong>remote trail file<\/strong> in the following path <em>C:\\goldengate\\dirdat<\/em>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"861\" height=\"504\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_32.png\" alt=\"\" class=\"wp-image-4299\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_32.png 861w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_32-300x176.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_32-768x450.png 768w\" sizes=\"auto, (max-width: 861px) 100vw, 861px\" \/><figcaption class=\"wp-element-caption\">24<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Transferring tables from Oracle Database (source) to SQL Server (target)<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"\u03c3\u03c4\u03bf\u03bd-windows-sql-server-target-1\">On Windows SQL Server (target)<\/h4>\n\n\n\n<p>Before we start the <strong>Replicat process<\/strong> we should transfer the tables we want from Oracle Database to SQL Server.<\/p>\n\n\n\n<p>To transfer the original table from the Oracle Database we open the program <strong>SQL Server 2019 Import and Export Data (64-bit)<\/strong> and we choose as <em>Data source: Oracle Provider for OLE DB<\/em>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"634\" height=\"543\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_23.png\" alt=\"\" class=\"wp-image-4291\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_23.png 634w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_23-300x257.png 300w\" sizes=\"auto, (max-width: 634px) 100vw, 634px\" \/><figcaption class=\"wp-element-caption\">25<\/figcaption><\/figure>\n\n\n\n<p>Before we press Next on <em>Properties <\/em>as <strong>Data Source <\/strong>we set the record we added to <em>tnsnames.ora<\/em> (oracledb) and the credentials we created in Oracle Database as a GoldenGate administrator:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"626\" height=\"538\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_24.png\" alt=\"\" class=\"wp-image-4292\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_24.png 626w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_24-300x258.png 300w\" sizes=\"auto, (max-width: 626px) 100vw, 626px\" \/><figcaption class=\"wp-element-caption\">26<\/figcaption><\/figure>\n\n\n\n<p>On the next screen as <em>Destination <\/em>we define <strong>SQL Server Native Client 11.0 , local, Use Windows Authentication <\/strong>and as Database the database where we want the table records to go:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"634\" height=\"543\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_25.png\" alt=\"\" class=\"wp-image-4293\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_25.png 634w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_25-300x257.png 300w\" sizes=\"auto, (max-width: 634px) 100vw, 634px\" \/><figcaption class=\"wp-element-caption\">27<\/figcaption><\/figure>\n\n\n\n<p>We look for the table we want to replicate, we select it and in Destination we change the format to DBO:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"633\" height=\"539\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_36.png\" alt=\"\" class=\"wp-image-4307\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_36.png 633w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_36-300x255.png 300w\" sizes=\"auto, (max-width: 633px) 100vw, 633px\" \/><figcaption class=\"wp-element-caption\">28<\/figcaption><\/figure>\n\n\n\n<p>At the end we choose Run immediately:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"627\" height=\"541\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_27.png\" alt=\"\" class=\"wp-image-4294\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_27.png 627w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_27-300x259.png 300w\" sizes=\"auto, (max-width: 627px) 100vw, 627px\" \/><figcaption class=\"wp-element-caption\">29<\/figcaption><\/figure>\n\n\n\n<p>Alternatively for very large tables we can save the process as an SSIS package and execute it from the Command Prompt with the following command:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">dtexec \/file transferpackage.dtsx<\/pre>\n\n\n\n<p>However, since when it is finished it will not create the Primary Key with unique values in the table by itself, we will have to run the following query:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">alter table dbo.customers add primary key (id);<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Start the Replicat process on the target<\/h2>\n\n\n\n<p>It&#039;s time to start it <strong>Replicat process<\/strong> on the target Windows SQL Server. <\/p>\n\n\n\n<p>We connect to GoldenGate and run the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>cd c:\\goldengate\n\nggsci.exe<\/code><\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">start sql_rep<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"779\" height=\"476\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_28.png\" alt=\"\" class=\"wp-image-4295\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_28.png 779w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_28-300x183.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_28-768x469.png 768w\" sizes=\"auto, (max-width: 779px) 100vw, 779px\" \/><figcaption class=\"wp-element-caption\">30<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u03b7-\u03b4\u03bf\u03ba\u03b9\u03bc\u03ae\">The test<\/h2>\n\n\n\n<p>To test if it works, all we have to do is change one record in the table in the Oracle Database:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">insert into stratos.customers values (11,'Maria');\ncommit;<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"503\" height=\"240\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_29.png\" alt=\"\" class=\"wp-image-4296\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_29.png 503w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_29-300x143.png 300w\" sizes=\"auto, (max-width: 503px) 100vw, 503px\" \/><figcaption class=\"wp-element-caption\">31<\/figcaption><\/figure>\n\n\n\n<p>Now if we SELECT the table in SQL Server we will see that the write has passed:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select * from dbo.customers;<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"481\" height=\"216\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_30.png\" alt=\"\" class=\"wp-image-4297\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_30.png 481w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_30-300x135.png 300w\" sizes=\"auto, (max-width: 481px) 100vw, 481px\" \/><figcaption class=\"wp-element-caption\">32<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"monitoring\">Monitoring<\/h2>\n\n\n\n<p>We can see his evolution <strong>Replicat <\/strong>process on the target SQL Server by SELECTing the table checkpoint:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select * from dbo.checkpointtable;<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"367\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_37-1024x367.png\" alt=\"\" class=\"wp-image-4308\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_37-1024x367.png 1024w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_37-300x107.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_37-768x275.png 768w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_37.png 1184w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">33<\/figcaption><\/figure>\n\n\n\n<p>We can find information about it <strong>Extract <\/strong>process for its status, when it ran and the delay it has running through the GoldenGate interface of the source server the following:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">info extract ora_ext, detail<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"684\" height=\"630\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_38.png\" alt=\"\" class=\"wp-image-4309\" style=\"width:684px;height:630px\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_38.png 684w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_38-300x276.png 300w\" sizes=\"auto, (max-width: 684px) 100vw, 684px\" \/><figcaption class=\"wp-element-caption\">34<\/figcaption><\/figure>\n\n\n\n<p>We can also generate a detailed report for a process that contains the log by running the following through the GoldenGate interface of the source server:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">view report ora_ext<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"689\" height=\"818\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_39.png\" alt=\"\" class=\"wp-image-4310\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_39.png 689w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2022\/01\/ogg_39-253x300.png 253w\" sizes=\"auto, (max-width: 689px) 100vw, 689px\" \/><figcaption class=\"wp-element-caption\">35<\/figcaption><\/figure>\n\n\n\n<p>In case we do not know if the process is stuck and the state in which it is, we run the following to see its status:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">send extract ora_ext, status<\/pre>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>Sending STATUS request to EXTRACT ORA_EXT ...\nEXTRACT ORA_EXT (PID 18940028)\n  Current status: In recovery&#91;1]: Processing data\n\n  Current read position:\n  Redo thread #: 1\n  Sequence #: 740643\n  RBA: 5722361548\n  Timestamp: 2022-01-25 03:49:51.000000\n  SCN: 10.49577561 (42999250521)\n  Current write position:\n  Sequence #: 3870\n  RBA: 1300\n  Timestamp: 2022-01-25 15:34:32.843931\n  Extract Trail: .\/dirdat\/aa\n<\/code><\/pre>\n\n\n\n<p>We can also see the performance of an extract or replicate with the following command:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">stats ora_rep<\/pre>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>Replicating from STRATOS.CUSTOMERS to DBO.CUSTOMERS:\n\n*** Total statistics since 2022-05-03 23:42:59 ***\n\n    Total inserts                                17.00\n    Total updates                                0.00\n    Total deletes                                0.00\n    Total discards                               0.00\n    Total operations                             17.00\n\n \n*** Daily statistics since 2022-05-03 23:42:59 ***\n\n    Total inserts                                17.00\n    Total updates                                0.00\n    Total deletes                                0.00\n    Total discards                               0.00\n    Total operations                             17.00\n\n\n\n*** Hourly statistics since 2022-05-03 23:42:59 ***\n\n    Total inserts                                17.00\n    Total updates                                0.00\n    Total deletes                                0.00\n    Total discards                               0.00\n    Total operations                             17.00\n\n*** Latest statistics since 2022-05-03 23:42:59 ***\n    Total inserts                                17.00\n    Total updates                                0.00\n    Total deletes                                0.00\n    Total discards                               0.00\n    Total operations                             17.00<\/code><\/pre>\n\n\n\n<p>Finally, we can see up to which trailfile can be auto purged and with what settings we have for auto purging:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">SEND MGR GETPURGEOLDEXTRACTS <\/pre>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>Sending GETPURGEOLDEXTRACTS request to MANAGER ...\n\nPurgeOldExtracts Rules\nFileset                              MinHours  MinFiles   UseCP\n\/goldengate\/dirdat\/*                    1         1         Y\nOK\t\nExtract Trails\nFilename                        Oldest_Chkpt_Seqno  \n\/goldengate\/dirdat\/aa                          45\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u03c0\u03b7\u03b3\u03ad\u03c2\">Sources:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.oracle.com\/goldengate\/1212\/gg-winux\/GIORA\/process_mode.htm#GIORA554\" target=\"_blank\" rel=\"noreferrer noopener\">Oracle GoldenGate for Windows and UNIX (Choosing Capture and Apply Modes)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.oracle.com\/goldengate\/1212\/gg-winux\/GIORA\/config_capt_integrated.htm#GIORA912\" target=\"_blank\" rel=\"noreferrer noopener\">Configuring Capture in Integrated Mode<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.oracle.com\/goldengate\/1212\/gg-winux\/GWURF\/gg_parameters.htm#GWURF394\" target=\"_blank\" rel=\"noreferrer noopener\">Oracle GoldenGate Parameters<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goforebroke400499988.wordpress.com\/2018\/02\/12\/first-blog-post\/\" target=\"_blank\" rel=\"noreferrer noopener\">Oracle 12c (PDB) Replication to SQL Server 2016<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.oracle.com\/goldengate\/1212\/gg-winux\/GIORA\/setup.htm#GIORA357\" target=\"_blank\" rel=\"noreferrer noopener\">Preparing the Database for Oracle GoldenGate<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.oracle.com\/en\/middleware\/goldengate\/core\/19.1\/oracle-db\/configuring-classic-capture-oracle-active-data-guard-only-mode.html\" target=\"_blank\" rel=\"noreferrer noopener\">Configuring Classic Capture in Oracle Active Data Guard Only Mode<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.oracle.com\/goldengate\/1212\/gg-winux\/GWURF\/ggsci_commands010.htm#GWURF148\" target=\"_blank\" rel=\"noreferrer noopener\">INFO EXTRACT<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.oracle.com\/goldengate\/1212\/gg-winux\/GWURF\/ggsci_commands103.htm#GWURF331\" target=\"_blank\" rel=\"noreferrer noopener\">VIEW REPORT<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>In this article we will see how we can copy table records from Oracle Database that is on Unix to SQL Server that is on Windows using Oracle GoldenGate. What is GoldenGate Oracle GoldenGate is a tool that allows us to copy and format data between databases, without [\u2026]<\/p>","protected":false},"author":1,"featured_media":704,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,15,16],"tags":[29,164,23,5,30,6],"class_list":["post-4269","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-databases","category-ms-sqlserver","category-oracle-db","tag-databases","tag-goldengate","tag-microsoft","tag-oracle-database","tag-rdbms","tag-sqlserver"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 replicate \u03c0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd Oracle Database \u03c0\u03c1\u03cc\u03c2 \u03c4\u03bf\u03bd SQL Server \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c7\u03c1\u03ae\u03c3\u03b7 GoldenGate - DataPlatform.gr<\/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.dataplatform.gr\/en\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 replicate \u03c0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd Oracle Database \u03c0\u03c1\u03cc\u03c2 \u03c4\u03bf\u03bd SQL Server \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c7\u03c1\u03ae\u03c3\u03b7 GoldenGate - DataPlatform.gr\" \/>\n<meta property=\"og:description\" content=\"\u03a3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03ac\u03c1\u03b8\u03c1\u03bf \u03b8\u03b1 \u03b4\u03bf\u03cd\u03bc\u03b5 \u03c0\u03c9\u03c2 \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03bc\u03b5 \u03bd\u03b1 \u03b1\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c6\u03bf\u03c5\u03bc\u03b5 \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ad\u03c2 \u03c0\u03b9\u03bd\u03ac\u03ba\u03c9\u03bd \u03b1\u03c0\u03cc Oracle Database \u03c0\u03bf\u03c5 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c3\u03b5 Unix \u03c0\u03c1\u03cc\u03c2 SQL Server \u03c0\u03bf\u03c5 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c3\u03b5 Windows \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c7\u03c1\u03ae\u03c3\u03b7 \u03c4\u03bf\u03c5 Oracle GoldenGate. \u03a4\u03b9 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c4\u03bf GoldenGate \u03a4\u03bf Oracle GoldenGate \u03b5\u03af\u03bd\u03b1\u03b9 \u03ad\u03bd\u03b1 \u03b5\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03bf \u03c0\u03bf\u03c5 \u03bc\u03b1\u03c2 \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b1\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c6\u03bf\u03c5\u03bc\u03b5 \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03bc\u03bf\u03c1\u03c6\u03ce\u03bd\u03bf\u03c5\u03bc\u03b5 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03bc\u03b5\u03c4\u03b1\u03be\u03cd \u03b2\u03ac\u03c3\u03b5\u03c9\u03bd \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd, \u03c7\u03c9\u03c1\u03af\u03c2 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dataplatform.gr\/en\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/\" \/>\n<meta property=\"og:site_name\" content=\"DataPlatform.gr\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/dataplatform.gr\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-11T04:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-07T10:41:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Stratos Matzouranis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Stratos Matzouranis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"21 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\\\/\"},\"author\":{\"name\":\"Stratos Matzouranis\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/person\\\/e87bf4fd02b65cb6aa0942f87245bbaf\"},\"headline\":\"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 replicate \u03c0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd Oracle Database \u03c0\u03c1\u03cc\u03c2 \u03c4\u03bf\u03bd SQL Server \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c7\u03c1\u03ae\u03c3\u03b7 GoldenGate\",\"datePublished\":\"2022-02-11T04:00:00+00:00\",\"dateModified\":\"2024-10-07T10:41:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\\\/\"},\"wordCount\":657,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_oracle.png\",\"keywords\":[\"Databases\",\"GoldenGate\",\"Microsoft\",\"Oracle Database\",\"RDBMS\",\"SQL Server\"],\"articleSection\":[\"Databases\",\"Microsoft SQL Server\",\"Oracle Database\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\\\/\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\\\/\",\"name\":\"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 replicate \u03c0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd Oracle Database \u03c0\u03c1\u03cc\u03c2 \u03c4\u03bf\u03bd SQL Server \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c7\u03c1\u03ae\u03c3\u03b7 GoldenGate - DataPlatform.gr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_oracle.png\",\"datePublished\":\"2022-02-11T04:00:00+00:00\",\"dateModified\":\"2024-10-07T10:41:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_oracle.png\",\"contentUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_oracle.png\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0391\u03c1\u03c7\u03b9\u03ba\u03ae\",\"item\":\"https:\\\/\\\/www.dataplatform.gr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Databases\",\"item\":\"https:\\\/\\\/www.dataplatform.gr\\\/category\\\/databases\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Oracle Database\",\"item\":\"https:\\\/\\\/www.dataplatform.gr\\\/category\\\/databases\\\/oracle-db\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 replicate \u03c0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd Oracle Database \u03c0\u03c1\u03cc\u03c2 \u03c4\u03bf\u03bd SQL Server \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c7\u03c1\u03ae\u03c3\u03b7 GoldenGate\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#website\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/\",\"name\":\"dataplatform.gr - Sky is not the limit!\",\"description\":\"\u0398\u03b5\u03c9\u03c1\u03af\u03b1, \u03bf\u03b4\u03b7\u03b3\u03bf\u03af \u03ba\u03b1\u03b9 \u03c3\u03ba\u03ad\u03c8\u03b5\u03b9\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03bf\u03c5\u03bb\u03b5\u03b9\u03ac \u03c3\u03b1\u03c2 \u03c0\u03b9\u03bf \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03b9\u03ba\u03ac \u03ba\u03b1\u03b9 \u03c0\u03b9\u03bf \u03b5\u03cd\u03ba\u03bf\u03bb\u03b1 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03c4\u03b9\u03c2 \u03b2\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd, \u03c3\u03c4\u03b7\u03bd SQL, \u03c3\u03c4\u03bf Business Intelligence \u03ba\u03b1\u03b9 \u03c3\u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03b3\u03b5\u03bd\u03b9\u03ba\u03cc\u03c4\u03b5\u03c1\u03b1.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dataplatform.gr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#organization\",\"name\":\"dataplatform.gr\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_logo_wbacki.png\",\"contentUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_logo_wbacki.png\",\"width\":322,\"height\":139,\"caption\":\"dataplatform.gr\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/dataplatform.gr\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/dataplatform-gr\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/person\\\/e87bf4fd02b65cb6aa0942f87245bbaf\",\"name\":\"Stratos Matzouranis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g\",\"caption\":\"Stratos Matzouranis\"},\"sameAs\":[\"https:\\\/\\\/www.dataplatform.gr\"],\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/en\\\/author\\\/stratos-matzouranis\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 replicate \u03c0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd Oracle Database \u03c0\u03c1\u03cc\u03c2 \u03c4\u03bf\u03bd SQL Server \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c7\u03c1\u03ae\u03c3\u03b7 GoldenGate - DataPlatform.gr","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.dataplatform.gr\/en\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/","og_locale":"en_US","og_type":"article","og_title":"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 replicate \u03c0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd Oracle Database \u03c0\u03c1\u03cc\u03c2 \u03c4\u03bf\u03bd SQL Server \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c7\u03c1\u03ae\u03c3\u03b7 GoldenGate - DataPlatform.gr","og_description":"\u03a3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03ac\u03c1\u03b8\u03c1\u03bf \u03b8\u03b1 \u03b4\u03bf\u03cd\u03bc\u03b5 \u03c0\u03c9\u03c2 \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03bc\u03b5 \u03bd\u03b1 \u03b1\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c6\u03bf\u03c5\u03bc\u03b5 \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ad\u03c2 \u03c0\u03b9\u03bd\u03ac\u03ba\u03c9\u03bd \u03b1\u03c0\u03cc Oracle Database \u03c0\u03bf\u03c5 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c3\u03b5 Unix \u03c0\u03c1\u03cc\u03c2 SQL Server \u03c0\u03bf\u03c5 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c3\u03b5 Windows \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c7\u03c1\u03ae\u03c3\u03b7 \u03c4\u03bf\u03c5 Oracle GoldenGate. \u03a4\u03b9 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c4\u03bf GoldenGate \u03a4\u03bf Oracle GoldenGate \u03b5\u03af\u03bd\u03b1\u03b9 \u03ad\u03bd\u03b1 \u03b5\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03bf \u03c0\u03bf\u03c5 \u03bc\u03b1\u03c2 \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b1\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c6\u03bf\u03c5\u03bc\u03b5 \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03bc\u03bf\u03c1\u03c6\u03ce\u03bd\u03bf\u03c5\u03bc\u03b5 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03bc\u03b5\u03c4\u03b1\u03be\u03cd \u03b2\u03ac\u03c3\u03b5\u03c9\u03bd \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd, \u03c7\u03c9\u03c1\u03af\u03c2 [&hellip;]","og_url":"https:\/\/www.dataplatform.gr\/en\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/","og_site_name":"DataPlatform.gr","article_publisher":"https:\/\/www.facebook.com\/dataplatform.gr\/","article_published_time":"2022-02-11T04:00:00+00:00","article_modified_time":"2024-10-07T10:41:21+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png","type":"image\/png"}],"author":"Stratos Matzouranis","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Stratos Matzouranis","Est. reading time":"21 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/#article","isPartOf":{"@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/"},"author":{"name":"Stratos Matzouranis","@id":"https:\/\/www.dataplatform.gr\/#\/schema\/person\/e87bf4fd02b65cb6aa0942f87245bbaf"},"headline":"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 replicate \u03c0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd Oracle Database \u03c0\u03c1\u03cc\u03c2 \u03c4\u03bf\u03bd SQL Server \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c7\u03c1\u03ae\u03c3\u03b7 GoldenGate","datePublished":"2022-02-11T04:00:00+00:00","dateModified":"2024-10-07T10:41:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/"},"wordCount":657,"commentCount":0,"publisher":{"@id":"https:\/\/www.dataplatform.gr\/#organization"},"image":{"@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png","keywords":["Databases","GoldenGate","Microsoft","Oracle Database","RDBMS","SQL Server"],"articleSection":["Databases","Microsoft SQL Server","Oracle Database"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dataplatform.gr\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/","url":"https:\/\/www.dataplatform.gr\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/","name":"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 replicate \u03c0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd Oracle Database \u03c0\u03c1\u03cc\u03c2 \u03c4\u03bf\u03bd SQL Server \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c7\u03c1\u03ae\u03c3\u03b7 GoldenGate - DataPlatform.gr","isPartOf":{"@id":"https:\/\/www.dataplatform.gr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/#primaryimage"},"image":{"@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png","datePublished":"2022-02-11T04:00:00+00:00","dateModified":"2024-10-07T10:41:21+00:00","breadcrumb":{"@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dataplatform.gr\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/#primaryimage","url":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png","contentUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/www.dataplatform.gr\/pos-kanoyme-replicate-pinakes-apo-tin-oracle-database-pros-t\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0391\u03c1\u03c7\u03b9\u03ba\u03ae","item":"https:\/\/www.dataplatform.gr\/"},{"@type":"ListItem","position":2,"name":"Databases","item":"https:\/\/www.dataplatform.gr\/category\/databases\/"},{"@type":"ListItem","position":3,"name":"Oracle Database","item":"https:\/\/www.dataplatform.gr\/category\/databases\/oracle-db\/"},{"@type":"ListItem","position":4,"name":"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 replicate \u03c0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd Oracle Database \u03c0\u03c1\u03cc\u03c2 \u03c4\u03bf\u03bd SQL Server \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c7\u03c1\u03ae\u03c3\u03b7 GoldenGate"}]},{"@type":"WebSite","@id":"https:\/\/www.dataplatform.gr\/#website","url":"https:\/\/www.dataplatform.gr\/","name":"dataplatform.gr - Sky is not the limit!","description":"\u0398\u03b5\u03c9\u03c1\u03af\u03b1, \u03bf\u03b4\u03b7\u03b3\u03bf\u03af \u03ba\u03b1\u03b9 \u03c3\u03ba\u03ad\u03c8\u03b5\u03b9\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03bf\u03c5\u03bb\u03b5\u03b9\u03ac \u03c3\u03b1\u03c2 \u03c0\u03b9\u03bf \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03b9\u03ba\u03ac \u03ba\u03b1\u03b9 \u03c0\u03b9\u03bf \u03b5\u03cd\u03ba\u03bf\u03bb\u03b1 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03c4\u03b9\u03c2 \u03b2\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd, \u03c3\u03c4\u03b7\u03bd SQL, \u03c3\u03c4\u03bf Business Intelligence \u03ba\u03b1\u03b9 \u03c3\u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03b3\u03b5\u03bd\u03b9\u03ba\u03cc\u03c4\u03b5\u03c1\u03b1.","publisher":{"@id":"https:\/\/www.dataplatform.gr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dataplatform.gr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dataplatform.gr\/#organization","name":"dataplatform.gr","url":"https:\/\/www.dataplatform.gr\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dataplatform.gr\/#\/schema\/logo\/image\/","url":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_logo_wbacki.png","contentUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_logo_wbacki.png","width":322,"height":139,"caption":"dataplatform.gr"},"image":{"@id":"https:\/\/www.dataplatform.gr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/dataplatform.gr\/","https:\/\/www.linkedin.com\/company\/dataplatform-gr\/"]},{"@type":"Person","@id":"https:\/\/www.dataplatform.gr\/#\/schema\/person\/e87bf4fd02b65cb6aa0942f87245bbaf","name":"Stratos Matzouranis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g","caption":"Stratos Matzouranis"},"sameAs":["https:\/\/www.dataplatform.gr"],"url":"https:\/\/www.dataplatform.gr\/en\/author\/stratos-matzouranis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts\/4269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/comments?post=4269"}],"version-history":[{"count":6,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts\/4269\/revisions"}],"predecessor-version":[{"id":5820,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts\/4269\/revisions\/5820"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/media\/704"}],"wp:attachment":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/media?parent=4269"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/categories?post=4269"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/tags?post=4269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}