{"id":10063,"date":"2017-05-23T10:28:38","date_gmt":"2017-05-23T08:28:38","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/"},"modified":"2017-05-23T10:28:38","modified_gmt":"2017-05-23T08:28:38","slug":"replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/","title":{"rendered":"Replicating from Oracle to PostgreSQL with EDB Replication Server &#8211; 1 &#8211; A simple replication setup"},"content":{"rendered":"<p>When you want to offload reporting stuff from Oracle to PostgreSQL there are several solutions you can go for. There most widely known probably are <a href=\"http:\/\/www.oracle.com\/technetwork\/middleware\/goldengate\/overview\/\" target=\"_blank\">Oracle GoldenGate<\/a> and <a href=\"https:\/\/www.quest.com\/products\/shareplex\/shareplex-for-postgres.aspx\" target=\"_blank\">SharePlex<\/a>. EnterpriseDB has its own solution for this which is called <a href=\"https:\/\/www.enterprisedb.com\/product\/edb-postgres-platform\/edb-postgres-replication-server\" target=\"_blank\">EDB Replication Server<\/a>. As soon as you have one <a href=\"https:\/\/www.enterprisedb.com\/products\/subscriptions#edb_platform\" target=\"_blank\">subscription from EnterpriseDB<\/a> this tool is included and can be used to offload from Oracle to PostgreSQL. Lets do a simple replication setup and see how it works.<\/p>\n<p><!--more--><\/p>\n<p>For this little demo I have to boxes: One running Oracle (12.1.0.2) and the EDB Replication Server publisher and the other one running PostgreSQL 9.6.2 and the EDB Replication server subscriber and the console.<\/p>\n<p>The installation is quite simple: Download the software, unzip and execute as root:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\n[root@pgxdb ~]$ cd \/var\/tmp\/\n[root@pgxdb tmp]$ ls -la xdbreplicationserver-6.1.0-1-linux-x64.run \n-rw-r--r--. 1 root root 26934145 May 19 09:01 xdbreplicationserver-6.1.0-1-linux-x64.run\n[root@pgxdb tmp]$ chmod +x xdbreplicationserver-6.1.0-1-linux-x64.run \n[root@pgxdb tmp]$ .\/xdbreplicationserver-6.1.0-1-linux-x64.run \n<\/pre>\n<p>These are the screenshots for the PostgreSQL box:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_1.png\" alt=\"xdb_1\" width=\"219\" height=\"133\" class=\"aligncenter size-full wp-image-16628\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_2.png\" alt=\"xdb_2\" width=\"551\" height=\"427\" class=\"aligncenter size-full wp-image-16629\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_3.png\" alt=\"xdb_3\" width=\"550\" height=\"425\" class=\"aligncenter size-full wp-image-16630\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_4.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_4.png\" alt=\"xdb_4\" width=\"550\" height=\"427\" class=\"aligncenter size-full wp-image-16631\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_5.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_5.png\" alt=\"xdb_5\" width=\"547\" height=\"427\" class=\"aligncenter size-full wp-image-16632\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_6.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_6.png\" alt=\"xdb_6\" width=\"547\" height=\"425\" class=\"aligncenter size-full wp-image-16633\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_7.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_7.png\" alt=\"xdb_7\" width=\"549\" height=\"428\" class=\"aligncenter size-full wp-image-16634\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_8.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_8.png\" alt=\"xdb_8\" width=\"545\" height=\"424\" class=\"aligncenter size-full wp-image-16635\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_9.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_9.png\" alt=\"xdb_9\" width=\"550\" height=\"427\" class=\"aligncenter size-full wp-image-16636\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_10.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_10.png\" alt=\"xdb_10\" width=\"547\" height=\"428\" class=\"aligncenter size-full wp-image-16637\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_11.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_11.png\" alt=\"xdb_11\" width=\"550\" height=\"422\" class=\"aligncenter size-full wp-image-16638\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_12.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_12.png\" alt=\"xdb_12\" width=\"546\" height=\"423\" class=\"aligncenter size-full wp-image-16639\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_13.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_13.png\" alt=\"xdb_13\" width=\"553\" height=\"432\" class=\"aligncenter size-full wp-image-16640\" \/><\/a><\/p>\n<p>Once the installation completed you should be able to see what was installed:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\n[root@pgxdb tmp]$ su - postgres\nLast failed login: Sun May 15 06:35:25 CEST 2016 from 192.168.22.1 on ssh:notty\nThere were 6 failed login attempts since the last successful login.\n-bash-4.2$ ls -la\ntotal 7928\ndrwxr-xr-x. 7 root root    4096 May 19 09:15 .\ndrwxr-xr-x. 3 root root      46 May 19 09:15 ..\ndrwxrwxr-x. 2 root root    4096 May 19 09:15 bin\ndrwxrwxr-x. 3 root root      78 May 19 09:15 etc\ndrwxrwxr-x. 4 root root      43 May 19 09:15 installer\ndrwxrwxr-x. 5 root root    4096 May 19 09:15 lib\ndrwxrwxr-x. 4 root root      44 May 19 09:15 scripts\n-rwx------. 1 root root 7967605 May 19 09:15 uninstall-xdbreplicationserver\n-rw-------. 1 root root   26455 May 19 09:15 uninstall-xdbreplicationserver.dat\n-r--r--r--. 1 root root   64033 Feb 27 12:31 xdb_3rd_party_licenses.txt\n-r--r--r--. 1 root root   15216 Feb 27 12:30 xdb_license.txt\n<\/pre>\n<p>Two new processes are running, which are basically the subscriber:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\n-bash-4.2$ ps -ef | grep postgres\npostgres 13019     1  0 09:15 ?        00:00:00 \/bin\/bash -c cd \/opt\/PostgreSQL\/EnterpriseDB-xDBReplicationServer\/bin; .\/runSubServer.sh  &gt;&gt; \/var\/log\/edb\/xdbsubserver\/edb-xdbsubserver.log 2&gt;&amp;1 &amp;\npostgres 13044 13019  0 09:15 ?        00:00:00 \/usr\/bin\/java -XX:-UsePerfData -XX:ErrorFile=\/var\/log\/xdb-6.1\/subserver_pid_%p.log -Djava.awt.headless=true -jar \/opt\/PostgreSQL\/EnterpriseDB-xDBReplicationServer\/bin\/edb-repserver.jar subserver 9052\n<\/pre>\n<p>For the Oracle box I did exactly the same except for this:<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_14.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_14.png\" alt=\"xdb_14\" width=\"548\" height=\"423\" class=\"aligncenter size-full wp-image-16643\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_15.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_15.png\" alt=\"xdb_15\" width=\"550\" height=\"428\" class=\"aligncenter size-full wp-image-16645\" \/><\/a><\/p>\n<p>Same picture, two new processes which are the publisher:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\noracle   29542     1  0 09:48 ?        00:00:00 \/bin\/bash -c cd \/opt\/PostgreSQL\/EnterpriseDB-xDBReplicationServer\/bin; .\/runPubServer.sh  &gt;&gt; \/var\/log\/edb\/xdbpubserver\/edb-xdbpubserver.log 2&gt;&amp;1 &amp;\noracle   29567 29542  0 09:48 ?        00:00:00 \/usr\/bin\/java -XX:-UsePerfData -Xms256m -Xmx1536m -XX:ErrorFile=\/var\/log\/xdb-6.1\/pubserver_pid_%p.log -Djava.library.path=\/opt\/PostgreSQL\/EnterpriseDB-xDBReplicationServer\/bin -Djava.awt.headless=true -jar \/opt\/PostgreSQL\/EnterpriseDB-xDBReplicationServer\/bin\/edb-repserver.jar pubserver 9051\n<\/pre>\n<p>Lets start the console to bring up the graphical user interface:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\n-bash-4.2$ bin\/runRepConsole.sh\n<\/pre>\n<p>Register a new subscription server (PostgreSQL box):<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_16.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_16.png\" alt=\"xdb_16\" width=\"843\" height=\"684\" class=\"aligncenter size-full wp-image-16647\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_17.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_17.png\" alt=\"xdb_17\" width=\"984\" height=\"809\" class=\"aligncenter size-full wp-image-16649\" \/><\/a><\/p>\n<p>Register a new publication server (Oracle box):<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_18.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_18.png\" alt=\"xdb_18\" width=\"978\" height=\"800\" class=\"aligncenter size-full wp-image-16651\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_19.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_19.png\" alt=\"xdb_19\" width=\"984\" height=\"809\" class=\"aligncenter size-full wp-image-16652\" \/><\/a><\/p>\n<p>Before proceeding from here you should download the <a href=\"http:\/\/www.oracle.com\/technetwork\/database\/features\/jdbc\/index-091264.html\" target=\"_blank\">Oracle JDBC driver<\/a> and put it to both boxes:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\n-bash-4.2$ pwd\n\/opt\/PostgreSQL\/EnterpriseDB-xDBReplicationServer\/lib\/jdbc\n-bash-4.2$ ls -l ojdbc*.jar\n-rw-r--r--. 1 root root 3698857 May 19 10:45 ojdbc7.jar\n<\/pre>\n<p>Remember to restart the EDB Replication Server services:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nsudo systemctl restart edb-xdbpubserver.service\nsudo systemctl restart edb-xdbsubserver.service\n<\/pre>\n<p>After that add the Oracle database (I am using the scott\/tiger sample schema here):<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_20.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_20.png\" alt=\"xdb_20\" width=\"845\" height=\"229\" class=\"aligncenter size-full wp-image-16654\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_21.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_21.png\" alt=\"xdb_21\" width=\"982\" height=\"553\" class=\"aligncenter size-full wp-image-16657\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_22.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_22.png\" alt=\"xdb_22\" width=\"990\" height=\"510\" class=\"aligncenter size-full wp-image-16661\" \/><\/a><\/p>\n<p>Ok, easy to fix:<br \/>\n<code><br \/>\ngrant connect,resource,create trigger to scott;<br \/>\nGrant succeeded.<br \/>\n<\/code><\/p>\n<p>Once again:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_23.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_23.png\" alt=\"xdb_23\" width=\"983\" height=\"361\" class=\"aligncenter size-full wp-image-16662\" \/><\/a><\/p>\n<p>The next thing is to create the publication itself:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_24.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_24.png\" alt=\"xdb_24\" width=\"846\" height=\"334\" class=\"aligncenter size-full wp-image-16664\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_25.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_25.png\" alt=\"xdb_25\" width=\"988\" height=\"651\" class=\"aligncenter size-full wp-image-16666\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_26.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_26.png\" alt=\"xdb_26\" width=\"986\" height=\"640\" class=\"aligncenter size-full wp-image-16667\" \/><\/a><\/p>\n<p>Ok, lets fix it:<br \/>\n<code><br \/>\nalter table scott.bonus add constraint bonus_pk primary key ( ename,job);<br \/>\nTable altered.<br \/>\n<\/code><\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_27.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_27.png\" alt=\"xdb_27\" width=\"985\" height=\"638\" class=\"aligncenter size-full wp-image-16669\" \/><\/a><\/p>\n<p>Ok, lets fix it:<br \/>\n<code><br \/>\nalter table scott.salgrade add constraint salgrade_pk primary key (grade,losal,hisal);<br \/>\nTable altered.<br \/>\n<\/code><\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_28.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_28.png\" alt=\"xdb_28\" width=\"989\" height=\"648\" class=\"aligncenter size-full wp-image-16670\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_29.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_29.png\" alt=\"xdb_29\" width=\"990\" height=\"453\" class=\"aligncenter size-full wp-image-16671\" \/><\/a><\/p>\n<p>Done.<\/p>\n<p>Lets create the subscription, but before doing that make sure that you put the details of the controller database (The Oracle one in my case) to the EDB Replication Server configuration file:<br \/>\n<code><br \/>\npostgres@pgxdb:\/opt\/PostgreSQL\/EnterpriseDB-xDBReplicationServer\/ [xdbrepl] cat \/etc\/edb-repl.conf<br \/>\nadmin_password=VbjDPk5zwu\/naXI2fpEbBQ\\=\\=<br \/>\nuser=scott<br \/>\nport=1521<br \/>\npassword=H4rzJCNHH\/Q\\=<br \/>\ntype=oracle<br \/>\nadmin_user=admin<br \/>\nhost=192.168.22.242<br \/>\ndatabase=servicename\\=DB4.it.dbi-services.com<br \/>\n<\/code><\/p>\n<p>Proceed with creating the subscription database:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_30.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_30.png\" alt=\"xdb_30\" width=\"838\" height=\"355\" class=\"aligncenter size-full wp-image-16702\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_31.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_31.png\" alt=\"xdb_31\" width=\"987\" height=\"647\" class=\"aligncenter size-full wp-image-16703\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_32.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_32.png\" alt=\"xdb_32\" width=\"851\" height=\"240\" class=\"aligncenter size-full wp-image-16706\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_33.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_33.png\" alt=\"xdb_33\" width=\"984\" height=\"660\" class=\"aligncenter size-full wp-image-16708\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_34.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_34.png\" alt=\"xdb_34\" width=\"981\" height=\"794\" class=\"aligncenter size-full wp-image-16709\" \/><\/a><\/p>\n<p>All the table are there now in the PostgreSQL instance but empty:<br \/>\n<code><br \/>\npgxdb\/postgres MASTER (postgres@5432) # \\d SCOTT.*<br \/>\n             Table \"scott.bonus\"<br \/>\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510<br \/>\n\u2502 Column \u2502         Type          \u2502 Modifiers \u2502<br \/>\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524<br \/>\n\u2502 ename  \u2502 character varying(10) \u2502 not null  \u2502<br \/>\n\u2502 job    \u2502 character varying(9)  \u2502 not null  \u2502<br \/>\n\u2502 sal    \u2502 numeric               \u2502           \u2502<br \/>\n\u2502 comm   \u2502 numeric               \u2502           \u2502<br \/>\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<br \/>\nIndexes:<br \/>\n    \"bonus_pk\" PRIMARY KEY, btree (ename, job)<\/p>\n<p>            Index \"scott.bonus_pk\"<br \/>\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510<br \/>\n\u2502 Column \u2502         Type          \u2502 Definition \u2502<br \/>\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524<br \/>\n\u2502 ename  \u2502 character varying(10) \u2502 ename      \u2502<br \/>\n\u2502 job    \u2502 character varying(9)  \u2502 job        \u2502<br \/>\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<br \/>\nprimary key, btree, for table \"scott.bonus\"<\/p>\n<p>              Table \"scott.dept\"<br \/>\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510<br \/>\n\u2502 Column \u2502         Type          \u2502 Modifiers \u2502<br \/>\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524<br \/>\n\u2502 deptno \u2502 numeric(2,0)          \u2502 not null  \u2502<br \/>\n\u2502 dname  \u2502 character varying(14) \u2502           \u2502<br \/>\n\u2502 loc    \u2502 character varying(13) \u2502           \u2502<br \/>\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<br \/>\nIndexes:<br \/>\n    \"pk_dept\" PRIMARY KEY, btree (deptno)<\/p>\n<p>               Table \"scott.emp\"<br \/>\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510<br \/>\n\u2502  Column  \u2502         Type          \u2502 Modifiers \u2502<br \/>\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524<br \/>\n\u2502 empno    \u2502 numeric(4,0)          \u2502 not null  \u2502<br \/>\n\u2502 ename    \u2502 character varying(10) \u2502           \u2502<br \/>\n\u2502 job      \u2502 character varying(9)  \u2502           \u2502<br \/>\n\u2502 mgr      \u2502 numeric(4,0)          \u2502           \u2502<br \/>\n\u2502 hiredate \u2502 date                  \u2502           \u2502<br \/>\n\u2502 sal      \u2502 numeric(7,2)          \u2502           \u2502<br \/>\n\u2502 comm     \u2502 numeric(7,2)          \u2502           \u2502<br \/>\n\u2502 deptno   \u2502 numeric(2,0)          \u2502           \u2502<br \/>\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<br \/>\nIndexes:<br \/>\n    \"pk_emp\" PRIMARY KEY, btree (empno)<\/p>\n<p>        Index \"scott.pk_dept\"<br \/>\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510<br \/>\n\u2502 Column \u2502     Type     \u2502 Definition \u2502<br \/>\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524<br \/>\n\u2502 deptno \u2502 numeric(2,0) \u2502 deptno     \u2502<br \/>\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<br \/>\nprimary key, btree, for table \"scott.dept\"<\/p>\n<p>         Index \"scott.pk_emp\"<br \/>\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510<br \/>\n\u2502 Column \u2502     Type     \u2502 Definition \u2502<br \/>\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524<br \/>\n\u2502 empno  \u2502 numeric(4,0) \u2502 empno      \u2502<br \/>\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<br \/>\nprimary key, btree, for table \"scott.emp\"<\/p>\n<p>     Table \"scott.salgrade\"<br \/>\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510<br \/>\n\u2502 Column \u2502  Type   \u2502 Modifiers \u2502<br \/>\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524<br \/>\n\u2502 grade  \u2502 numeric \u2502 not null  \u2502<br \/>\n\u2502 losal  \u2502 numeric \u2502 not null  \u2502<br \/>\n\u2502 hisal  \u2502 numeric \u2502 not null  \u2502<br \/>\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<br \/>\nIndexes:<br \/>\n    \"salgrade_pk\" PRIMARY KEY, btree (grade, losal, hisal)<\/p>\n<p>    Index \"scott.salgrade_pk\"<br \/>\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510<br \/>\n\u2502 Column \u2502  Type   \u2502 Definition \u2502<br \/>\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524<br \/>\n\u2502 grade  \u2502 numeric \u2502 grade      \u2502<br \/>\n\u2502 losal  \u2502 numeric \u2502 losal      \u2502<br \/>\n\u2502 hisal  \u2502 numeric \u2502 hisal      \u2502<br \/>\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<br \/>\nprimary key, btree, for table \"scott.salgrade\"<\/p>\n<p>pgxdb\/postgres MASTER (postgres@5432) # select count(*) from SCOTT.salgrade;<br \/>\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510<br \/>\n\u2502 count \u2502<br \/>\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524<br \/>\n\u2502     0 \u2502<br \/>\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<br \/>\n(1 row)<\/p>\n<p>Time: 0.443 ms<br \/>\npgxdb\/postgres MASTER (postgres@5432) # select count(*) from SCOTT.depts;<br \/>\nERROR:  relation \"scott.depts\" does not exist<br \/>\nLINE 1: select count(*) from SCOTT.depts;<br \/>\n                             ^<br \/>\nTime: 0.554 ms<br \/>\npgxdb\/postgres MASTER (postgres@5432) # select count(*) from SCOTT.dept;<br \/>\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510<br \/>\n\u2502 count \u2502<br \/>\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524<br \/>\n\u2502     0 \u2502<br \/>\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<br \/>\n(1 row)<\/p>\n<p>Time: 0.298 ms<br \/>\n<\/code><\/p>\n<p>To do the initial synchronization do a Snapshot:<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_35.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_35.png\" alt=\"xdb_35\" width=\"854\" height=\"406\" class=\"aligncenter size-full wp-image-16713\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_36.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_36.png\" alt=\"xdb_36\" width=\"990\" height=\"567\" class=\"aligncenter size-full wp-image-16714\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_37.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_37.png\" alt=\"xdb_37\" width=\"988\" height=\"555\" class=\"aligncenter size-full wp-image-16715\" \/><\/a><\/p>\n<p>All the data is there:<br \/>\n<code><br \/>\npgxdb\/postgres MASTER (postgres@5432) # select * from SCOTT.dept;<br \/>\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510<br \/>\n\u2502 deptno \u2502   dname    \u2502   loc    \u2502<br \/>\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524<br \/>\n\u2502     10 \u2502 ACCOUNTING \u2502 NEW YORK \u2502<br \/>\n\u2502     20 \u2502 RESEARCH   \u2502 DALLAS   \u2502<br \/>\n\u2502     30 \u2502 SALES      \u2502 CHICAGO  \u2502<br \/>\n\u2502     40 \u2502 OPERATIONS \u2502 BOSTON   \u2502<br \/>\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<br \/>\n(4 rows)<\/p>\n<p>Time: 0.435 ms<br \/>\npgxdb\/postgres MASTER (postgres@5432) # select * from SCOTT.emp;<br \/>\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510<br \/>\n\u2502 empno \u2502 ename  \u2502    job    \u2502 mgr  \u2502  hiredate  \u2502   sal   \u2502  comm   \u2502 deptno \u2502<br \/>\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524<br \/>\n\u2502  7369 \u2502 SMITH  \u2502 CLERK     \u2502 7902 \u2502 1980-12-17 \u2502  800.00 \u2502    NULL \u2502     20 \u2502<br \/>\n\u2502  7499 \u2502 ALLEN  \u2502 SALESMAN  \u2502 7698 \u2502 1981-02-20 \u2502 1600.00 \u2502  300.00 \u2502     30 \u2502<br \/>\n\u2502  7521 \u2502 WARD   \u2502 SALESMAN  \u2502 7698 \u2502 1981-02-22 \u2502 1250.00 \u2502  500.00 \u2502     30 \u2502<br \/>\n\u2502  7566 \u2502 JONES  \u2502 MANAGER   \u2502 7839 \u2502 1981-04-02 \u2502 2975.00 \u2502    NULL \u2502     20 \u2502<br \/>\n\u2502  7654 \u2502 MARTIN \u2502 SALESMAN  \u2502 7698 \u2502 1981-09-28 \u2502 1250.00 \u2502 1400.00 \u2502     30 \u2502<br \/>\n\u2502  7698 \u2502 BLAKE  \u2502 MANAGER   \u2502 7839 \u2502 1981-05-01 \u2502 2850.00 \u2502    NULL \u2502     30 \u2502<br \/>\n\u2502  7782 \u2502 CLARK  \u2502 MANAGER   \u2502 7839 \u2502 1981-06-09 \u2502 2450.00 \u2502    NULL \u2502     10 \u2502<br \/>\n\u2502  7788 \u2502 SCOTT  \u2502 ANALYST   \u2502 7566 \u2502 1987-04-19 \u2502 3000.00 \u2502    NULL \u2502     20 \u2502<br \/>\n\u2502  7839 \u2502 KING   \u2502 PRESIDENT \u2502 NULL \u2502 1981-11-17 \u2502 5000.00 \u2502    NULL \u2502     10 \u2502<br \/>\n\u2502  7844 \u2502 TURNER \u2502 SALESMAN  \u2502 7698 \u2502 1981-09-08 \u2502 1500.00 \u2502    0.00 \u2502     30 \u2502<br \/>\n\u2502  7876 \u2502 ADAMS  \u2502 CLERK     \u2502 7788 \u2502 1987-05-23 \u2502 1100.00 \u2502    NULL \u2502     20 \u2502<br \/>\n\u2502  7900 \u2502 JAMES  \u2502 CLERK     \u2502 7698 \u2502 1981-12-03 \u2502  950.00 \u2502    NULL \u2502     30 \u2502<br \/>\n\u2502  7902 \u2502 FORD   \u2502 ANALYST   \u2502 7566 \u2502 1981-12-03 \u2502 3000.00 \u2502    NULL \u2502     20 \u2502<br \/>\n\u2502  7934 \u2502 MILLER \u2502 CLERK     \u2502 7782 \u2502 1982-01-23 \u2502 1300.00 \u2502    NULL \u2502     10 \u2502<br \/>\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<br \/>\n(14 rows)<br \/>\n<\/code><\/p>\n<p>To synchronize changes:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_38.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_38.png\" alt=\"xdb_38\" width=\"853\" height=\"328\" class=\"aligncenter size-full wp-image-16716\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_39.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_39.png\" alt=\"xdb_39\" width=\"987\" height=\"528\" class=\"aligncenter size-full wp-image-16717\" \/><\/a><\/p>\n<p>To schedule synchronization:<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_40.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_40.png\" alt=\"xdb_40\" width=\"852\" height=\"348\" class=\"aligncenter size-full wp-image-16718\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_41.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_41.png\" alt=\"xdb_41\" width=\"981\" height=\"621\" class=\"aligncenter size-full wp-image-16719\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_42.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_42.png\" alt=\"xdb_42\" width=\"979\" height=\"621\" class=\"aligncenter size-full wp-image-16720\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_43.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_43.png\" alt=\"xdb_43\" width=\"986\" height=\"576\" class=\"aligncenter size-full wp-image-16721\" \/><\/a><\/p>\n<p>Test it, in Oracle:<br \/>\n<code><br \/>\ninsert into scott.dept values ( 50,'My_Dept','Home');<br \/>\n1 row created.<br \/>\ncommit;<br \/>\nCommit complete.<br \/>\n<\/code><\/p>\n<p>PostgreSQL:<br \/>\n<code><br \/>\npgxdb\/postgres MASTER (postgres@5432) # select * from SCOTT.dept;<br \/>\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510<br \/>\n\u2502 deptno \u2502   dname    \u2502   loc    \u2502<br \/>\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524<br \/>\n\u2502     10 \u2502 ACCOUNTING \u2502 NEW YORK \u2502<br \/>\n\u2502     20 \u2502 RESEARCH   \u2502 DALLAS   \u2502<br \/>\n\u2502     30 \u2502 SALES      \u2502 CHICAGO  \u2502<br \/>\n\u2502     40 \u2502 OPERATIONS \u2502 BOSTON   \u2502<br \/>\n\u2502     50 \u2502 My_Dept    \u2502 Home     \u2502<br \/>\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<br \/>\n(5 rows)<br \/>\n<\/code><\/p>\n<p>Quite easy to setup and to do an initial simple replication. In a future post we&#8217;ll look at more specific use cases. Hope this helps to get you started.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When you want to offload reporting stuff from Oracle to PostgreSQL there are several solutions you can go for. There most widely known probably are Oracle GoldenGate and SharePlex. EnterpriseDB has its own solution for this which is called EDB Replication Server. As soon as you have one subscription from EnterpriseDB this tool is included [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":10064,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[713,1074,77],"type_dbi":[],"class_list":["post-10063","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","tag-enterprisedb","tag-logical-replication","tag-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Replicating from Oracle to PostgreSQL with EDB Replication Server - 1 - A simple replication setup - dbi Blog<\/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.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Replicating from Oracle to PostgreSQL with EDB Replication Server - 1 - A simple replication setup\" \/>\n<meta property=\"og:description\" content=\"When you want to offload reporting stuff from Oracle to PostgreSQL there are several solutions you can go for. There most widely known probably are Oracle GoldenGate and SharePlex. EnterpriseDB has its own solution for this which is called EDB Replication Server. As soon as you have one subscription from EnterpriseDB this tool is included [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-05-23T08:28:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"219\" \/>\n\t<meta property=\"og:image:height\" content=\"133\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"Replicating from Oracle to PostgreSQL with EDB Replication Server &#8211; 1 &#8211; A simple replication setup\",\"datePublished\":\"2017-05-23T08:28:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/\"},\"wordCount\":381,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_1.png\",\"keywords\":[\"enterprisedb\",\"Logical Replication\",\"PostgreSQL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/\",\"name\":\"Replicating from Oracle to PostgreSQL with EDB Replication Server - 1 - A simple replication setup - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_1.png\",\"datePublished\":\"2017-05-23T08:28:38+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_1.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_1.png\",\"width\":219,\"height\":133},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Replicating from Oracle to PostgreSQL with EDB Replication Server &#8211; 1 &#8211; A simple replication setup\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\/\/x.com\/westermanndanie\"],\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Replicating from Oracle to PostgreSQL with EDB Replication Server - 1 - A simple replication setup - dbi Blog","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.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/","og_locale":"en_US","og_type":"article","og_title":"Replicating from Oracle to PostgreSQL with EDB Replication Server - 1 - A simple replication setup","og_description":"When you want to offload reporting stuff from Oracle to PostgreSQL there are several solutions you can go for. There most widely known probably are Oracle GoldenGate and SharePlex. EnterpriseDB has its own solution for this which is called EDB Replication Server. As soon as you have one subscription from EnterpriseDB this tool is included [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/","og_site_name":"dbi Blog","article_published_time":"2017-05-23T08:28:38+00:00","og_image":[{"width":219,"height":133,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_1.png","type":"image\/png"}],"author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"Replicating from Oracle to PostgreSQL with EDB Replication Server &#8211; 1 &#8211; A simple replication setup","datePublished":"2017-05-23T08:28:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/"},"wordCount":381,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_1.png","keywords":["enterprisedb","Logical Replication","PostgreSQL"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/","url":"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/","name":"Replicating from Oracle to PostgreSQL with EDB Replication Server - 1 - A simple replication setup - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_1.png","datePublished":"2017-05-23T08:28:38+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_1.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/xdb_1.png","width":219,"height":133},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/replicating-from-oracle-to-postgresql-with-edb-replication-server-1-a-simple-replication-setup\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Replicating from Oracle to PostgreSQL with EDB Replication Server &#8211; 1 &#8211; A simple replication setup"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/10063","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=10063"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/10063\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/10064"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=10063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=10063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=10063"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=10063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}