{"id":967,"date":"2008-11-21T06:30:35","date_gmt":"2008-11-21T10:30:35","guid":{"rendered":"http:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/"},"modified":"2009-01-28T10:14:56","modified_gmt":"2009-01-28T14:14:56","slug":"oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting","status":"publish","type":"post","link":"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/","title":{"rendered":"Oracle 9i Multi Master Advance Replication setup, testing and troubleshooting"},"content":{"rendered":"<p><strong><u>Objective:<\/u><br \/>\n<\/strong>This paper is related to the Multi Master Replication setup, testing and troubleshooting.<\/p>\n<p><strong><u>Introduction:<br \/>\n<\/u><\/strong>In this Multi Master Replication testing two machines are being used.<br \/>\nThere will be two databases on the two different machines i.e.<\/p>\n<p><strong>a) Master1 (Master definition Site)<\/strong><\/p>\n<p>This site will be used for the administration of the Replication setup.<\/p>\n<p><strong>b) Master2<br \/>\n<\/strong><br \/>\nThis will act as a second Master site in the Replication.<\/p>\n<p><strong><u>Replication Setup Procedure:<\/u><\/strong><\/p>\n<p><strong>On Master1 Database:<\/strong><\/p>\n<p><strong>1- Check the init parameters<\/strong><\/p>\n<p>a) SQL&gt; show parameter compatible<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\ncompatible string 9.2.0.0.0<\/p>\n<p>It should be same as the Oracle 9i Release which is being used for the Replication<\/p>\n<p>b) SQL&gt; show parameter shared_pool_size<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nshared_pool_size big integer 50331648<\/p>\n<p>Add 110MB in the shared_pool_size<\/p>\n<p>c) SQL&gt; show parameter processes<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\naq_tm_processes integer 1<br \/>\ndb_writer_processes integer 1<br \/>\njob_queue_processes integer 10<br \/>\nlog_archive_max_processes integer 2<br \/>\nprocesses integer 150<\/p>\n<p>Add 12 to the processes<\/p>\n<p>d) SQL&gt; show parameter global_names<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nglobal_names boolean FALSE<\/p>\n<p>It should be TRUE<\/p>\n<p>e) SQL&gt; show parameter db_domain<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\ndb_domain string<\/p>\n<p>It is the extension component of the local databases Global Name<\/p>\n<p>f) SQL&gt; show parameter open_links<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nopen_links integer 4<br \/>\nopen_links_per_instance integer 4<\/p>\n<p>Add 2 for each master site into open_links<\/p>\n<p>g) distributed_transaction * need to be clarify<\/p>\n<p>h) SQL&gt; show parameter replication<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nreplication_dependency_tracking boolean TRUE<\/p>\n<p>i) NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\njob_queue_processes integer 10<\/p>\n<p>Add 1 per additional Master<\/p>\n<p>k) SQL&gt; show parameter servers<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nparallel_max_servers integer 5<br \/>\nparallel_min_servers integer 0<\/p>\n<p>set parallel_max_servers to 10<br \/>\nset parallel_min_servers to 2<\/p>\n<p><strong>2- Check the init parameters after modifications<\/strong><\/p>\n<p>a) SQL&gt; show parameter compatible<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\ncompatible string 9.2.0.0.0<\/p>\n<p>b) SQL&gt; show parameter shared_pool_size<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nshared_pool_size big integer 167772160<\/p>\n<p>c) SQL&gt; show parameter processes<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\naq_tm_processes integer 1<br \/>\ndb_writer_processes integer 1<br \/>\njob_queue_processes integer 11<br \/>\nlog_archive_max_processes integer 2<br \/>\nprocesses integer 170<\/p>\n<p>d) SQL&gt; show parameter global_names<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nglobal_names boolean TRUE<\/p>\n<p>e) SQL&gt; show parameter db_domain<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\ndb_domain string world<\/p>\n<p>f) SQL&gt; show parameter open_links<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nopen_links integer 6<br \/>\nopen_links_per_instance integer 4<\/p>\n<p>g) SQL&gt; show parameter replication<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nreplication_dependency_tracking boolean TRUE<\/p>\n<p>h) SQL&gt; show parameter job<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\njob_queue_processes integer 11<\/p>\n<p>i) SQL&gt; show parameter parallel_max_servers<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nparallel_max_servers integer 10<br \/>\nSQL&gt; show parameter parallel_min_servers<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nparallel_min_servers integer 2<\/p>\n<p><strong>3- Check the Tablespace Free Space<\/strong><\/p>\n<p>1 select tablespace_name,sum(bytes)\/1024\/1024 Free_Space<br \/>\n2 from dba_free_space<br \/>\n3* group by tablespace_name<br \/>\nSQL&gt; \/<\/p>\n<p>TABLESPACE_NAME FREE_SPACE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;-<br \/>\nCWMLITE 10.625<br \/>\nDRSYS 10.3125<br \/>\nEXAMPLE .125<br \/>\nINDX 24.9375<br \/>\nODM 10.6875<br \/>\nSYSTEM 4.25<br \/>\nTOOLS 3.9375<br \/>\nUNDOTBS1 189.9375<br \/>\nUSERS 24.9375<br \/>\nXDB .1875<\/p>\n<p>System Tablespace should have 80MB free space<br \/>\nUndo Tablespace should have 60 MB free space<\/p>\n<p>3.1) Increase the required space<\/p>\n<p>a) Check the total space for each tablespace in database<\/p>\n<p>SQL&gt; l<br \/>\n1 select file_name,bytes\/1024\/1024<br \/>\n2* from dba_data_files<br \/>\nSQL&gt; \/<\/p>\n<p>FILE_NAME BYTES\/1024\/1024<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nG:\\ORACLEPDB\\ORADATA\\MASTER1\\SYSTEM01.DBF 400<br \/>\nG:\\ORACLEPDB\\ORADATA\\MASTER1\\UNDOTBS01.DBF 200<br \/>\nG:\\ORACLEPDB\\ORADATA\\MASTER1\\CWMLITE01.DBF 20<br \/>\nG:\\ORACLEPDB\\ORADATA\\MASTER1\\DRSYS01.DBF 20<br \/>\nG:\\ORACLEPDB\\ORADATA\\MASTER1\\EXAMPLE01.DBF 148.75<br \/>\nG:\\ORACLEPDB\\ORADATA\\MASTER1\\INDX01.DBF 25<\/p>\n<p>G:\\ORACLEPDB\\ORADATA\\MASTER1\\ODM01.DBF 20<br \/>\nG:\\ORACLEPDB\\ORADATA\\MASTER1\\TOOLS01.DBF 10<br \/>\nG:\\ORACLEPDB\\ORADATA\\MASTER1\\USERS01.DBF 25<br \/>\nG:\\ORACLEPDB\\ORADATA\\MASTER1\\XDB01.DBF 38.125<\/p>\n<p>b) Increase the system tablespace<\/p>\n<p>1* alter database datafile &#8216;G:\\ORACLEPDB\\ORADATA\\MASTER1\\SYSTEM01.DBF&#8217; resize 600m<br \/>\nSQL&gt; \/<\/p>\n<p>Database altered.<\/p>\n<p>c) Check the Free space again.<\/p>\n<p>1 select tablespace_name,sum(bytes)\/1024\/1024 Free_Space<br \/>\n2 from dba_free_space<br \/>\n3* group by tablespace_name<br \/>\nSQL&gt; \/<\/p>\n<p>TABLESPACE_NAME FREE_SPACE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;-<br \/>\nCWMLITE 10.625<br \/>\nDRSYS 10.3125<br \/>\nEXAMPLE .125<br \/>\nINDX 24.9375<br \/>\nODM 10.6875<br \/>\nSYSTEM 204.25<br \/>\nTOOLS 3.9375<br \/>\nUNDOTBS1 189.8125<br \/>\nUSERS 24.9375<br \/>\nXDB .1875<\/p>\n<p><strong>4- Install the Replication catalog:<\/strong><\/p>\n<p>Oracle 9i does not required to install the Replication Catalog<\/p>\n<p><strong>5- Net9 configuration:<\/strong><\/p>\n<p>MASTER1 =<br \/>\n(DESCRIPTION =<br \/>\n(ADDRESS_LIST =<br \/>\n(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))<br \/>\n)<br \/>\n(CONNECT_DATA =<br \/>\n(SERVER = DEDICATED)<br \/>\n(SERVICE_NAME = master1)<br \/>\n)<br \/>\n)<\/p>\n<p>MASTER2 =<br \/>\n(DESCRIPTION =<br \/>\n(ADDRESS_LIST =<br \/>\n(ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.0.200)(PORT = 1521))<br \/>\n)<br \/>\n(CONNECT_DATA =<br \/>\n(SERVER = DEDICATED)<br \/>\n(SERVICE_NAME = master2)<br \/>\n)<br \/>\n)<\/p>\n<p><strong>6- Creation of Replication Administrator (REPADMIN):<\/strong><\/p>\n<p>SQL&gt; create user repadmin identified by repadmin<br \/>\n2 default tablespace tools<br \/>\n3 temporary tablespace temp<br \/>\n4 quota unlimited on tools<br \/>\n5 quota unlimited on temp<br \/>\n6 quota 0 on system;<\/p>\n<p>User created.<\/p>\n<p>SQL&gt; grant connect, resource to repadmin;<\/p>\n<p>Grant succeeded.<\/p>\n<p>SQL&gt; exec dbms_repcat_admin.grant_admin_any_schema(&#8216;REPADMIN&#8217;)<\/p>\n<p>PL\/SQL procedure successfully completed.<\/p>\n<p>SQL&gt; grant comment any table to repadmin;<\/p>\n<p>Grant succeeded.<\/p>\n<p>SQL&gt; grant lock any table to repadmin;<\/p>\n<p>Grant succeeded.<\/p>\n<p><strong>7- Creation of Replication Propagator \/ Receiver:<\/strong><\/p>\n<p>The propagator user is responsible to forward the deferred transactions from the source master site to the destination master site.<\/p>\n<p>The receiver user is responsible for applying these transactions at the destination master site.<\/p>\n<p>The replication administrator, propagator and receiver are normally the same user i.e. REPADMIN<\/p>\n<p>Register the REPADMIN as the propagator<\/p>\n<p>SQL&gt; execute dbms_defer_sys.register_propagator(&#8216;REPADMIN&#8217;)<\/p>\n<p>PL\/SQL procedure successfully completed. SQL&gt; grant execute any procedure to repadmin;<\/p>\n<p>Grant succeeded.<\/p>\n<p><strong>8- Creation of Schema Owner<\/strong><\/p>\n<p>This user is usually responsible for the day-to-day administration of the schema that replication objects are created upon and can be the same user or a separate user from REPADMIN.<br \/>\nSQL&gt; ed<br \/>\nWrote file afiedt.buf<br \/>\n1 create user repdba identified by repdba<br \/>\n2 default tablespace users<br \/>\n3 temporary tablespace temp<br \/>\n4 quota unlimited on users<br \/>\n5 quota unlimited on temp<br \/>\n6* quota 0 on system<br \/>\nSQL&gt; \/<br \/>\nUser created.<\/p>\n<p><strong>9- Create Database Links<\/strong><\/p>\n<p>All databases participating in the Replication must have a unique global name. The global name should be the same as the database name.<br \/>\na) Check the global_name<\/p>\n<p>SQL&gt; select *<br \/>\n2 from global_name<br \/>\n3 ;<\/p>\n<p>GLOBAL_NAME<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\nMASTER1.US.ORACLE.COM<\/p>\n<p>b) Change the global_name<\/p>\n<p>SQL&gt; update global_name<br \/>\n2 set global_name=&#8217;MASTER1&#8242;;<br \/>\n1 row updated.<\/p>\n<p>SQL&gt; commit;<br \/>\nCommit complete.<br \/>\nc) Check the global_name<br \/>\nSQL&gt; select *<br \/>\n2 from global_name;<\/p>\n<p>GLOBAL_NAME<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nMASTER1<\/p>\n<p><strong>10- Create the Public Database Link<\/strong><\/p>\n<p>a) Check the database links in the database<br \/>\nSQL&gt; select *<br \/>\n2 from dba_db_links;<br \/>\nno rows selected<\/p>\n<p>b) Create the public database link<br \/>\n1 create public database link master2<br \/>\n2* using &#8216;master2&#8217;<br \/>\nSQL&gt; \/<br \/>\nDatabase link created.<\/p>\n<p>c) Check the database link<br \/>\n1 select *<br \/>\n2* from dba_db_links<\/p>\n<p>SQL&gt; \/<\/p>\n<p>OWNER DB_LINK USERNAME HOST CREATED<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;<br \/>\nPUBLIC MASTER2 master2 15-MAY-04<\/p>\n<p>11- Create the Private Database Link for REPADMIN<\/p>\n<p>a) Create the private database link by connecting as REPADMIN<\/p>\n<p>1 create database link master2<br \/>\n2* connect to repadmin identified by repadmin<br \/>\n3 \/<\/p>\n<p>Database link created.<\/p>\n<p>b) Check the database link<\/p>\n<p>SQL&gt; l<br \/>\n1 select *<br \/>\n2* from dba_db_links<br \/>\nSQL&gt; \/<\/p>\n<p>OWNER DB_LINK USERNAME HOST CREATED<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;<br \/>\nPUBLIC MASTER2 master2 17-MAY-04<br \/>\nREPADMIN MASTER2 REPADMIN 17-MAY-04<\/p>\n<p><strong>12- Schedule \u201cpush\u201d and \u201cpurge\u201d jobs:<\/strong><\/p>\n<p>a) Connect with REPADMIN<\/p>\n<p>b) Set up the \u201cpush\u201d job to push the deferred queue automatically.<\/p>\n<p>1 begin<br \/>\n2 dbms_defer_sys.schedule_push (<br \/>\n3 DESTINATION =&gt; &#8216;master2&#8217;,<br \/>\n4 INTERVAL =&gt; &#8216;\/*1:Mins*\/ sysdate + 10\/(60*24)&#8217;,<br \/>\n5 NEXT_DATE =&gt; sysdate,<br \/>\n6 STOP_ON_ERROR =&gt; FALSE,<br \/>\n7 delay_seconds =&gt; 0,<br \/>\n8 PARALLELISM =&gt; 1);<br \/>\n9* end;<\/p>\n<p>SQL&gt; \/<\/p>\n<p>PL\/SQL procedure successfully completed.<\/p>\n<p>c) Set up the \u201cpurge\u201d job to purge the deferred queue automatically.<\/p>\n<p>SQL&gt; begin<br \/>\n2 dbms_defer_sys.schedule_purge(<br \/>\n3 next_date =&gt; sysdate,<br \/>\n4 interval =&gt; &#8216;\/*1:Hr*\/ sysdate + 1\/24&#8217;,<br \/>\n5 delay_seconds =&gt; 0,<br \/>\n6 rollback_segment =&gt; &#8221;);<br \/>\n7 end;<br \/>\n8 \/<\/p>\n<p>PL\/SQL procedure successfully completed.<\/p>\n<p><strong>On Master2 Database:<\/strong><\/p>\n<p>1- Check the init parameters<\/p>\n<p>SQL&gt; show parameter compatible<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\ncompatible string 9.2.0.0.0<br \/>\nIt should be same as the Oracle 9i Release which is being used for the Replication<\/p>\n<p>b) SQL&gt; show parameter shared_pool_size<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nshared_pool_size big integer 50331648<\/p>\n<p>Add 110MB in the shared_pool_size<\/p>\n<p>c) SQL&gt; SQL&gt; show parameter processes<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\naq_tm_processes integer 1<br \/>\ndb_writer_processes integer 1<br \/>\njob_queue_processes integer 10<br \/>\nlog_archive_max_processes integer 2<br \/>\nprocesses integer 150<\/p>\n<p>Add 12 to the processes<\/p>\n<p>d) SQL&gt; SQL&gt; show parameter global_names<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nglobal_names boolean FALSE<\/p>\n<p>It should be TRUE<\/p>\n<p>e) SQL&gt; SQL&gt; show parameter db_domain<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\ndb_domain string world<\/p>\n<p>It is the extension component of the local databases Global Name<\/p>\n<p>f) SQL&gt; SQL&gt; show parameter open_links<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nopen_links integer 4<br \/>\nopen_links_per_instance integer 4<\/p>\n<p>Add 2 for each master site into open_links<\/p>\n<p>g) distributed_transaction * need to be clarify<\/p>\n<p>h) SQL&gt; SQL&gt; show parameter replication<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nreplication_dependency_tracking boolean TRUE<\/p>\n<p>i) SQL&gt; show parameter job_queue<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\njob_queue_processes integer 10<\/p>\n<p>Add 1 per additional Master<br \/>\nk) SQL&gt; SQL&gt; show parameter servers<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nparallel_max_servers integer 5<br \/>\nparallel_min_servers integer 0<\/p>\n<p>set parallel_max_servers to 10<br \/>\nset parallel_min_servers to 2<\/p>\n<p><strong>2- Check the init parameters after modifications<\/strong><\/p>\n<p>a) SQL&gt; show parameter compatible<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\ncompatible string 9.2.0.0.0<\/p>\n<p>b) SQL&gt; SQL&gt; show parameter shared_pool_size<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nshared_pool_size big integer 167772160<\/p>\n<p>c) SQL&gt; SQL&gt; show parameter processes<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\naq_tm_processes integer 1<br \/>\ndb_writer_processes integer 1<br \/>\njob_queue_processes integer 11<br \/>\nlog_archive_max_processes integer 2<br \/>\nprocesses integer 170<\/p>\n<p>d) SQL&gt; SQL&gt; show parameter global_names<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nglobal_names boolean TRUE<\/p>\n<p>e) SQL&gt; SQL&gt; show parameter db_domain ***<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\ndb_domain string<\/p>\n<p>f) SQL&gt; SQL&gt; show parameter open_links<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nopen_links integer 6<br \/>\nopen_links_per_instance integer 4<\/p>\n<p>g) SQL&gt; SQL&gt; show parameter replication<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nreplication_dependency_tracking boolean TRUE<\/p>\n<p>h) SQL&gt; SQL&gt; show parameter job<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\njob_queue_processes integer 11<\/p>\n<p>i) SQL&gt; SQL&gt; show parameter parallel_max_servers<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nparallel_max_servers integer 10<br \/>\nSQL&gt; SQL&gt; show parameter parallel_min_servers<\/p>\n<p>NAME TYPE VALUE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nparallel_min_servers integer 2<\/p>\n<p><strong>3- Check the Tablespace Free Space<\/strong><\/p>\n<p>1 select tablespace_name,sum(bytes)\/1024\/1024 Free_Space<br \/>\n2 from dba_free_space<br \/>\n3* group by tablespace_name<br \/>\nSQL&gt; \/<\/p>\n<p>TABLESPACE_NAME FREE_SPACE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;-<br \/>\nCWMLITE 10.625<br \/>\nDRSYS 10.3125<br \/>\nEXAMPLE .125<br \/>\nINDX 24.9375<br \/>\nODM 10.6875<br \/>\nSYSTEM 4.25<br \/>\nTOOLS 3.9375<br \/>\nUNDOTBS1 194.375<br \/>\nUSERS 24.9375<br \/>\nXDB .1875<\/p>\n<p>System Tablespace should have 80MB free space<br \/>\nUndo Tablespace should have 60 MB free space<br \/>\n3.1) Increase the required space<br \/>\nb) Check the total space for each tablespace in database<\/p>\n<p>SQL&gt; l<br \/>\n1 1 select file_name,bytes\/1024\/1024<br \/>\n2* from dba_data_files<br \/>\nSQL&gt; \/<\/p>\n<p>FILE_NAME BYTES\/1024\/1024<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nF:\\ORACLESB\\ORADATA\\MASTER2\\SYSTEM01.DBF 400<br \/>\nF:\\ORACLESB\\ORADATA\\MASTER2\\UNDOTBS01.DBF 200<br \/>\nF:\\ORACLESB\\ORADATA\\MASTER2\\CWMLITE01.DBF 20<br \/>\nF:\\ORACLESB\\ORADATA\\MASTER2\\DRSYS01.DBF 20<br \/>\nF:\\ORACLESB\\ORADATA\\MASTER2\\EXAMPLE01.DBF 148.75<br \/>\nF:\\ORACLESB\\ORADATA\\MASTER2\\INDX01.DBF 25<br \/>\nF:\\ORACLESB\\ORADATA\\MASTER2\\ODM01.DBF 20<br \/>\nF:\\ORACLESB\\ORADATA\\MASTER2\\TOOLS01.DBF 10<br \/>\nF:\\ORACLESB\\ORADATA\\MASTER2\\USERS01.DBF 25<br \/>\nF:\\ORACLESB\\ORADATA\\MASTER2\\XDB01.DBF 38.125<\/p>\n<p>b) Increase the system tablespace<br \/>\nSQL&gt; alter database datafile &#8216;F:\\ORACLESB\\ORADATA\\MASTER2\\SYSTEM01.DBF&#8217; resize 600m;<\/p>\n<p>Database altered.<\/p>\n<p>c) SQL&gt; select tablespace_name,sum(bytes)\/1024\/1024 Free_Space<br \/>\n2 from dba_free_space<br \/>\n3 group by tablespace_name<br \/>\n4 \/<\/p>\n<p>TABLESPACE_NAME FREE_SPACE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;-<br \/>\nCWMLITE 10.625<br \/>\nDRSYS 10.3125<br \/>\nEXAMPLE .125<br \/>\nINDX 24.9375<br \/>\nODM 10.6875<br \/>\nSYSTEM 204.25<br \/>\nTOOLS 3.9375<br \/>\nUNDOTBS1 194.375<br \/>\nUSERS 24.9375<br \/>\nXDB .1875<\/p>\n<p><strong>4- Install the Replication catalog:<\/strong><\/p>\n<p>Oracle 9i does not required to install the Replication Catalog<\/p>\n<p><strong>5- Net9 configuration:<br \/>\n<\/strong><br \/>\nMASTER2 =<br \/>\n(DESCRIPTION =<br \/>\n(ADDRESS_LIST =<br \/>\n(ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.0.200)(PORT = 1521))<br \/>\n)<br \/>\n(CONNECT_DATA =<br \/>\n(SERVICE_NAME = master2)<br \/>\n)<br \/>\n)<\/p>\n<p>MASTER1 =<br \/>\n(DESCRIPTION =<br \/>\n(ADDRESS_LIST =<br \/>\n(ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.0.71)(PORT = 1526))<br \/>\n)<br \/>\n(CONNECT_DATA =<br \/>\n(SERVICE_NAME = master1)<br \/>\n)<br \/>\n)<\/p>\n<p><strong>6- Creation of Replication Administrator (REPADMIN):<\/strong><\/p>\n<p>1 create user repadmin identified by repadmin<br \/>\n2 default tablespace tools<br \/>\n3 temporary tablespace temp<br \/>\n4 quota unlimited on tools<br \/>\n5 quota unlimited on temp<br \/>\n6* quota 0 on system<br \/>\nSQL&gt; \/<\/p>\n<p>User created.<br \/>\nSQL&gt; grant connect, resource to repadmin;<\/p>\n<p>Grant succeeded.<\/p>\n<p>SQL&gt; exec dbms_repcat_admin.grant_admin_any_schema(&#8216;REPADMIN&#8217;)<\/p>\n<p>PL\/SQL procedure successfully completed.<\/p>\n<p>SQL&gt; grant comment any table to repadmin;<\/p>\n<p>Grant succeeded.<\/p>\n<p>SQL&gt; grant lock any table to repadmin;<\/p>\n<p>Grant succeeded.<\/p>\n<p><strong>7- Creation of Replication Propagator \/ Receiver:<\/strong><\/p>\n<p>The propagator user is responsible to forward the deferred transactions from the source master site to the destination master site.<\/p>\n<p>The receiver user is responsible for applying these transactions at the destination master site.<\/p>\n<p>The replication administrator, propagator and receiver are normally the same user i.e. REPADMIN<br \/>\nRegister the REPADMIN as the propagator<\/p>\n<p>SQL&gt; execute dbms_defer_sys.register_propagator(&#8216;REPADMIN&#8217;)<\/p>\n<p>PL\/SQL procedure successfully completed. SQL&gt; grant execute any procedure to repadmin;<\/p>\n<p>Grant succeeded.<\/p>\n<p><strong>8- Creation of Schema Owner<\/strong><\/p>\n<p>This user is usually responsible for the day-to-day administration of the schema that replication objects are created upon and can be the same user or a separate user from REPADMIN.<\/p>\n<p>SQL&gt; ed<br \/>\nWrote file afiedt.buf<\/p>\n<p>1 create user repdba identified by repdba<br \/>\n2 default tablespace users<br \/>\n3 temporary tablespace temp<br \/>\n4 quota unlimited on users<br \/>\n5 quota unlimited on temp<br \/>\n6* quota 0 on system<br \/>\nSQL&gt; \/<\/p>\n<p>User created.<\/p>\n<p><strong>9- Create Database Links<\/strong><\/p>\n<p>All databases participating in the Replication must have a unique global name. The global name should be the same as the database name.<br \/>\na) Check the global_name<\/p>\n<p>SQL&gt; select *<br \/>\n2 from global_name<br \/>\n3 ;<\/p>\n<p>GLOBAL_NAME<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\nMASTER2<\/p>\n<p><strong>10-Create the Public Database Link<\/strong><\/p>\n<p>a) Check the database links in the database<\/p>\n<p>SQL&gt; select *<br \/>\n2 from dba_db_links;<\/p>\n<p>no rows selected<\/p>\n<p>b) Create the public database link<\/p>\n<p>1 create public database link master1<br \/>\n2* using &#8216;master1&#8217;<br \/>\nSQL&gt; \/<\/p>\n<p>Database link created.<\/p>\n<p>c) Check the database link<\/p>\n<p>1 select *<br \/>\n2* from dba_db_links<br \/>\nSQL&gt; \/<\/p>\n<p>OWNER DB_LINK USERNAME HOST CREATED<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;<br \/>\nPUBLIC MASTER1 master1 03-DEC-04<\/p>\n<p><strong>11-Create the Private Database Link for REPADMIN<\/strong><\/p>\n<p>a) Create the private database link by connecting as REPADMIN<\/p>\n<p>1 create database link master1<br \/>\n2* connect to repadmin identified by repadmin<br \/>\n3 \/<\/p>\n<p>Database link created.<\/p>\n<p>b) Check the database link<\/p>\n<p>SQL&gt; l<br \/>\n1 SQL&gt; select *<br \/>\n2 from dba_db_links;<\/p>\n<p>OWNER DB_LINK USERNAME HOST CREATED<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;<br \/>\nPUBLIC MASTER1 master1 03-DEC-04<br \/>\nREPADMIN MASTER1 REPADMIN 17-MAY-04<\/p>\n<p><strong>12-Schedule \u201cpush\u201d and \u201cpurge\u201d jobs:<\/strong><\/p>\n<p>a) Connect with REPADMIN<\/p>\n<p>b) Set up the \u201cpush\u201d job to push the deferred queue automatically.<\/p>\n<p>1 begin<br \/>\n2 dbms_defer_sys.schedule_push (<br \/>\n3 DESTINATION =&gt; &#8216;master1&#8217;,<br \/>\n4 INTERVAL =&gt; &#8216;\/*10:Mins*\/ sysdate + 10\/(60*24)&#8217;,<br \/>\n5 NEXT_DATE =&gt; sysdate,<br \/>\n6 STOP_ON_ERROR =&gt; FALSE,<br \/>\n7 delay_seconds =&gt; 0,<br \/>\n8 PARALLELISM =&gt; 1);<br \/>\n9* end;<br \/>\nSQL&gt; \/<\/p>\n<p>PL\/SQL procedure successfully completed.<\/p>\n<p>c) Set up the \u201cpurge\u201d job to purge the deferred queue automatically.<\/p>\n<p>SQL&gt; begin<br \/>\n2 dbms_defer_sys.schedule_purge(<br \/>\n3 next_date =&gt; sysdate,<br \/>\n4 interval =&gt; &#8216;\/*1:Hr*\/ sysdate + 1\/24&#8217;,<br \/>\n5 delay_seconds =&gt; 0,<br \/>\n6 rollback_segment =&gt; &#8221;);<br \/>\n7 end;<br \/>\n8 \/<\/p>\n<p>PL\/SQL procedure successfully completed.<\/p>\n<p><strong><u>Object Creation on Master1<\/u><br \/>\n<\/strong><br \/>\n<strong>a) Connect with REPDBA and create the following objects<\/strong><\/p>\n<p>DROP TABLE DEPT; CREATE TABLE DEPT (DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY, DNAME VARCHAR2(14) , LOC VARCHAR2(13) ) ; DROP TABLE EMP; CREATE TABLE EMP (EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT);SQL&gt; conn repdba\/repdba@master1<br \/>\nConnected.<br \/>\nSQL&gt; show user<br \/>\nUSER is &#8220;REPDBA&#8221;<br \/>\nSQL&gt; DROP TABLE DEPT;<br \/>\nDROP TABLE DEPT<br \/>\n*<br \/>\nERROR at line 1:<br \/>\nORA-00942: table or view does not exist<\/p>\n<p>SQL&gt; CREATE TABLE DEPT<br \/>\n2 (DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,<br \/>\n3 DNAME VARCHAR2(14) ,<br \/>\n4 LOC VARCHAR2(13) ) ;<\/p>\n<p>Table created.<\/p>\n<p>SQL&gt; DROP TABLE EMP;<br \/>\nDROP TABLE EMP<br \/>\n*<br \/>\nERROR at line 1:<br \/>\nORA-00942: table or view does not exist<\/p>\n<p>SQL&gt; CREATE TABLE EMP<br \/>\n2 (EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,<br \/>\n3 ENAME VARCHAR2(10),<br \/>\n4 JOB VARCHAR2(9),<br \/>\n5 MGR NUMBER(4),<br \/>\n6 HIREDATE DATE,<br \/>\n7 SAL NUMBER(7,2),<br \/>\n8 COMM NUMBER(7,2),<br \/>\n9 DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT);<\/p>\n<p>Table created.<\/p>\n<p><strong>b) Create Master Replication Object Group at Master1 by connecting as REPADMIN<\/strong><\/p>\n<p>1 begin<br \/>\n2 dbms_repcat.create_master_repgroup(<br \/>\n3 gname =&gt; &#8216;&#8221;GROUP1&#8243;&#8216;,<br \/>\n4 qualifier =&gt; &#8221;,<br \/>\n5 group_comment =&gt; &#8221;);<br \/>\n6* end;<br \/>\nSQL&gt; \/<br \/>\nPL\/SQL procedure successfully completed.<\/p>\n<p><strong>c) Add Master Database<\/strong><\/p>\n<p>SQL&gt; begin<br \/>\n2 dbms_repcat.add_master_database(<br \/>\n3 gname =&gt; &#8216;&#8221;GROUP1&#8243;&#8216;,<br \/>\n4 master =&gt; &#8216;master2&#8217;,<br \/>\n5 use_existing_objects =&gt; TRUE,<br \/>\n6 copy_rows =&gt; TRUE,<br \/>\n7 propagation_mode =&gt; &#8216;ASYNCHRONOUS&#8217;);<br \/>\n8 end;<br \/>\n9 \/<\/p>\n<p>PL\/SQL procedure successfully completed.<\/p>\n<p><strong>d) Create Objects into Group i.e. \u201cgroup1\u201d<\/strong><br \/>\n1 begin<br \/>\n2 dbms_repcat.create_master_repobject(<br \/>\n3 gname =&gt; &#8216;&#8221;GROUP1&#8243;&#8216;,<br \/>\n4 type =&gt; &#8216;TABLE&#8217;,<br \/>\n5 oname =&gt; &#8216;DEPT&#8217;,<br \/>\n6 sname =&gt; &#8216;&#8221;REPDBA&#8221;&#8216;,<br \/>\n7 copy_rows =&gt; TRUE,<br \/>\n8 use_existing_object =&gt; TRUE);<br \/>\n9* end;<br \/>\nSQL&gt; \/<br \/>\nPL\/SQL procedure successfully completed.<\/p>\n<p>1 begin<br \/>\n2 dbms_repcat.create_master_repobject(<br \/>\n3 gname =&gt; &#8216;&#8221;GROUP1&#8243;&#8216;,<br \/>\n4 type =&gt; &#8216;TABLE&#8217;,<br \/>\n5 oname =&gt; &#8216;EMP&#8217;,<br \/>\n6 sname =&gt; &#8216;&#8221;REPDBA&#8221;&#8216;,<br \/>\n7 copy_rows =&gt; TRUE,<\/p>\n<p>8 use_existing_object =&gt; TRUE);<br \/>\n9* end;<br \/>\nSQL&gt; \/<br \/>\nPL\/SQL procedure successfully completed.<\/p>\n<p><strong>e) Generate the Replication support<\/strong><\/p>\n<p>SQL&gt; begin<br \/>\n2 dbms_repcat.generate_replication_support(<br \/>\n3 sname =&gt; &#8216;&#8221;REPDBA&#8221;&#8216;,<br \/>\n4 oname =&gt; &#8216;&#8221;DEPT&#8221;&#8216;,<br \/>\n5 type =&gt; &#8216;TABLE&#8217;,<br \/>\n6 min_communication =&gt; TRUE);<br \/>\n7 end;<br \/>\n8 \/<\/p>\n<p>PL\/SQL procedure successfully completed.<\/p>\n<p>1 begin<br \/>\n2 dbms_repcat.generate_replication_support(<br \/>\n3 sname =&gt; &#8216;&#8221;REPDBA&#8221;&#8216;,<br \/>\n4 oname =&gt; &#8216;&#8221;EMP&#8221;&#8216;,<br \/>\n5 type =&gt; &#8216;TABLE&#8217;,<br \/>\n6 min_communication =&gt; TRUE);<br \/>\n7* end;<br \/>\nSQL&gt; \/<\/p>\n<p>PL\/SQL procedure successfully completed.<\/p>\n<p><strong>f) Resume activity on the Master1<\/strong><\/p>\n<p>SQL&gt; begin<br \/>\n2 dbms_repcat.resume_master_activity(<br \/>\n3 gname =&gt; &#8216;&#8221;GROUP1&#8243;&#8216;);<br \/>\n4 END;<br \/>\n5 \/<\/p>\n<p>PL\/SQL procedure successfully completed.<\/p>\n<p><strong><u>Test the Replication<\/u><\/strong><\/p>\n<p>a) Insert rows into DEPT at Master1 site, by connecting REPDBA<\/p>\n<p>INSERT INTO DEPT VALUES (10,&#8217;ACCOUNTING&#8217;,&#8217;NEW YORK&#8217;); INSERT INTO DEPT VALUES (20,&#8217;RESEARCH&#8217;,&#8217;DALLAS&#8217;); INSERT INTO DEPT VALUES (30,&#8217;SALES&#8217;,&#8217;CHICAGO&#8217;); INSERT INTO DEPT VALUES (40,&#8217;OPERATIONS&#8217;,&#8217;BOSTON&#8217;);<\/p>\n<p>b) As soon as the \u201cpush\u201d job executes at Master1 site, these inserted records will be pushed into the Master2 site. This behavior is vice versa as this is Multi Master Replication setup.<\/p>\n<p>c) Insert rows into EMP at Master1 site, by connecting REPDBA<\/p>\n<p>SQL&gt; conn repdba\/repdba@master1<br \/>\nConnected.<\/p>\n<p>SQL&gt; INSERT INTO EMP VALUES (7499,&#8217;ALLEN&#8217;,&#8217;SALESMAN&#8217;,7698,<br \/>\nto_date(&#8217;20-2-1981&#8242;,&#8217;dd-mm-yyyy&#8217;),1600,300,30);<\/p>\n<p>1 row created.<\/p>\n<p>SQL&gt; commit;<\/p>\n<p>SQL&gt; select *<br \/>\n2 from emp;<\/p>\n<p>EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>\n7369 SMITH CLERK 7902 17-DEC-80 800 20<br \/>\n7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30<\/p>\n<p>d) Check the EMP table in Master2 site by connecting REPDBA<br \/>\nSQL&gt; conn repdba\/repdba@master2<br \/>\nConnected.<br \/>\nSQL&gt; select *<br \/>\n2 from emp;<\/p>\n<p>EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>\n7369 SMITH CLERK 7902 17-DEC-80 800 20<\/p>\n<p>After 10 minutes again apply the SELECT statement.<\/p>\n<p>SQL&gt; select *<br \/>\n2 from emp;<\/p>\n<p>EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>\n7369 SMITH CLERK 7902 17-DEC-80 800 20<br \/>\n7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30<\/p>\n<p><u>The same records have been pushed to site Master2. So the Multi Master Replication<br \/>\nis working fine.<br \/>\n<\/u><br \/>\nThe same thing can be applied vice versa as well.<\/p>\n<p>f) connect repdba\/repdba@master2<br \/>\nSQL&gt; conn repdba\/repdba@master2<br \/>\nConnected.<\/p>\n<p>g) SELECT the rows from the EMP table<\/p>\n<p>SQL&gt; select *<br \/>\n2 from emp;<\/p>\n<p>EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>\n7369 SMITH CLERK 7902 17-DEC-80 800 20<br \/>\n7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30<\/p>\n<p>h) Insert one new record into EMP table<\/p>\n<p>1 INSERT INTO EMP VALUES (7521,&#8217;WARD&#8217;,&#8217;SALESMAN&#8217;,<br \/>\n2* 7698,to_date(&#8217;22-2-1981&#8242;,&#8217;dd-mm-yyyy&#8217;),1250,500,30)<br \/>\nSQL&gt; \/<\/p>\n<p>1 row created.<\/p>\n<p>SQL&gt; commit;<\/p>\n<p>Commit complete.<br \/>\ni) Again SELECT from emp<\/p>\n<p>SQL&gt; select *<br \/>\n2 from emp;<\/p>\n<p>EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>\n7369 SMITH CLERK 7902 17-DEC-80 800 20<br \/>\n7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30<br \/>\n7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30<\/p>\n<p>j) Now connect repdba\/repdba@master1<\/p>\n<p>SQL&gt; conn repdba\/repdba@master1<br \/>\nConnected.<\/p>\n<p>k) SELECT records from the emp table<\/p>\n<p>SQL&gt; select *<br \/>\n2 from emp;<\/p>\n<p>EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>\n7369 SMITH CLERK 7902 17-DEC-80 800 20<br \/>\n7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30<\/p>\n<p>The third record has yet not been pushed to Master1 site. This will be pushed as soon as the \u201cpush\u201d job is executed at Master2 site.<\/p>\n<p>Again SELECT the records from EMP table.<\/p>\n<p>SQL&gt; select *<br \/>\n2 from emp<br \/>\n3 \/<\/p>\n<p>EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>\n7369 SMITH CLERK 7902 17-DEC-80 800 20<br \/>\n7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30<br \/>\n7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30<\/p>\n<p><u>Now the same records have been pushed to site Master1 from Master2 site. So the Multi Master Replication is working fine from both the ends.<\/u><u><br \/>\n<strong>\u00a0check the status of the propagated transaction:<\/strong><\/p>\n<p><\/u>a) Connect to Master1 as REPDBA<\/p>\n<p>SQL&gt; conn repdba\/repdba@master1<br \/>\nConnected.<\/p>\n<p>b) Insert one record into EMP<\/p>\n<p>SQL&gt; INSERT INTO EMP VALUES (7566,&#8217;JONES&#8217;,&#8217;MANAGER&#8217;,7839, to_date(&#8216;2-4-1981&#8242;,&#8217;dd-mm-yyyy&#8217;),2975,NULL,20);<\/p>\n<p>1 row created.<\/p>\n<p>SQL&gt; commit;<\/p>\n<p>c) Select the table EMP<\/p>\n<p>SQL&gt; select *<br \/>\n2 from emp;<\/p>\n<p>EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>\n7369 SMITH CLERK 7902 17-DEC-80 800 20<br \/>\n7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30<br \/>\n7566 JONES MANAGER 7839 02-APR-81 2975 20<br \/>\n7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30<\/p>\n<p>d) Check the view \u201cdefcall\u201d<\/p>\n<p>SQL&gt; select *<br \/>\n2 from defcall;<\/p>\n<p>CALLNO DEFERRED_TRAN_ID SCHEMANAME PACKAGENAME PROCNAME ARGCOUNT<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;-<br \/>\n0 10.13.263 REPDBA EMP$RP REP_INSERT 10<\/p>\n<p>e) Check the view \u201cdeftrandest\u201d<\/p>\n<p>SQL&gt; select *<br \/>\n2 from deftrandest;<br \/>\nDEFERRED_TRAN_ID DELIVERY_ORDER DBLINK<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n10.13.263 302468 MASTER2<\/p>\n<p>f) connect to Master2 as REPDBA<\/p>\n<p>SQL&gt; conn repdba\/repdba@master2<br \/>\nConnected.<\/p>\n<p>g) Check the EMP Table<\/p>\n<p>SQL&gt; select *<br \/>\n2 from emp;<br \/>\nEMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>\n7369 SMITH CLERK 7902 17-DEC-80 800 20<br \/>\n7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30<br \/>\n7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30<\/p>\n<p>h) connect to Master1 as REPADMIN and execute the following procedure to push the transaction to the Master2<\/p>\n<p>SQL&gt; execute dbms_defer_sys.execute(&#8216;master2&#8217;);<br \/>\nPL\/SQL procedure successfully completed.<\/p>\n<p>i) Connect to Master 2 as REPDBA<br \/>\nSQL&gt; conn repdba\/repdba@master2<br \/>\nConnected.<\/p>\n<p>j) Check the EMP table<br \/>\nSQL&gt; \/<\/p>\n<p>EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>\n7369 SMITH CLERK 7902 17-DEC-80 800 20<br \/>\n7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30<br \/>\n7566 JONES MANAGER 7839 02-APR-81 2975 20<br \/>\n7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Objective: This paper is related to the Multi Master Replication setup, testing and troubleshooting. Introduction: In this Multi Master Replication [&hellip;]<\/p>\n","protected":false},"author":115,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[424],"tags":[],"class_list":["post-967","post","type-post","status-publish","format-standard","hentry","category-database"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Oracle 9i Multi Master Advance Replication setup, testing and troubleshooting  -<\/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:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle 9i Multi Master Advance Replication setup, testing and troubleshooting  -\" \/>\n<meta property=\"og:description\" content=\"Objective: This paper is related to the Multi Master Replication setup, testing and troubleshooting. Introduction: In this Multi Master Replication [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/\" \/>\n<meta property=\"article:published_time\" content=\"2008-11-21T10:30:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2009-01-28T14:14:56+00:00\" \/>\n<meta name=\"author\" content=\"Masroof Ahmad\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Masroof Ahmad\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/\",\"url\":\"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/\",\"name\":\"Oracle 9i Multi Master Advance Replication setup, testing and troubleshooting -\",\"isPartOf\":{\"@id\":\"https:\/\/onlineappsdba.com\/#website\"},\"datePublished\":\"2008-11-21T10:30:35+00:00\",\"dateModified\":\"2009-01-28T14:14:56+00:00\",\"author\":{\"@id\":\"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb\"},\"breadcrumb\":{\"@id\":\"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/onlineappsdba.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oracle 9i Multi Master Advance Replication setup, testing and troubleshooting\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/onlineappsdba.com\/#website\",\"url\":\"https:\/\/onlineappsdba.com\/\",\"name\":\"\",\"description\":\"Oracle Implementation &amp; Training Experts\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/onlineappsdba.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb\",\"name\":\"Masroof Ahmad\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/onlineappsdba.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g\",\"caption\":\"Masroof Ahmad\"},\"url\":\"https:\/\/onlineappsdba.com\/index.php\/author\/masroof\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Oracle 9i Multi Master Advance Replication setup, testing and troubleshooting  -","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:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/","og_locale":"en_US","og_type":"article","og_title":"Oracle 9i Multi Master Advance Replication setup, testing and troubleshooting  -","og_description":"Objective: This paper is related to the Multi Master Replication setup, testing and troubleshooting. Introduction: In this Multi Master Replication [&hellip;]","og_url":"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/","article_published_time":"2008-11-21T10:30:35+00:00","article_modified_time":"2009-01-28T14:14:56+00:00","author":"Masroof Ahmad","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Masroof Ahmad","Est. reading time":"19 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/","url":"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/","name":"Oracle 9i Multi Master Advance Replication setup, testing and troubleshooting -","isPartOf":{"@id":"https:\/\/onlineappsdba.com\/#website"},"datePublished":"2008-11-21T10:30:35+00:00","dateModified":"2009-01-28T14:14:56+00:00","author":{"@id":"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb"},"breadcrumb":{"@id":"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/21\/oracle-9i-multi-master-advance-replication-setup-testing-and-troubleshooting\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/onlineappsdba.com\/"},{"@type":"ListItem","position":2,"name":"Oracle 9i Multi Master Advance Replication setup, testing and troubleshooting"}]},{"@type":"WebSite","@id":"https:\/\/onlineappsdba.com\/#website","url":"https:\/\/onlineappsdba.com\/","name":"","description":"Oracle Implementation &amp; Training Experts","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/onlineappsdba.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb","name":"Masroof Ahmad","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/onlineappsdba.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g","caption":"Masroof Ahmad"},"url":"https:\/\/onlineappsdba.com\/index.php\/author\/masroof\/"}]}},"_links":{"self":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/posts\/967","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/users\/115"}],"replies":[{"embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/comments?post=967"}],"version-history":[{"count":0,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/posts\/967\/revisions"}],"wp:attachment":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/media?parent=967"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/categories?post=967"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/tags?post=967"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}