Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Active - Active or 2-way replication is very similar to 1-way replication. This is used when changes can be made to both databases and they both must be kept in sync. 

...

    • MINE > APPLY
    • APPLY1 > MINE1

Example : Configuring 2-way replication

2-way replication can be configured through the setup wizard. To configure 2-way replication, two replication pairs have to be setup. The default in the setup wizard is to configure only 1 pair.

Example configuring 2-way replication

In this example we have setup two databases: orcl and test11202.

At step 2 in the setup wizard, the replication pairs are configured. 

...

Column
width5%

 

...

width95

...

bgColorCCC

...

 This example show an Oracle-to-Oracle two-way replication using the following information.

Note

Click here for prerequisite checklist.

Server/DatabaseName
Source databasereptest1
Source serverdbvldemo101
Target databasereptest2
Target serverdbvldemo102
TNS alias for source database:   reptest1
TNS alias for target databasereptest2

Throughout the wizard, defaults are shown in [brackets]. Just press enter to accept them. The replication name in this example is "reptest1". 

Step 2 - Replication pairs

At step 2 in the setup wizard, the replication pairs are configured. 

Section
Column
width5%

 

Column
width95
Panel
bgColorCCC
Step 2 - Replication pairs
========================================
The second step is to set source and targets for each replication pair. This is usually just choosing the first database as
source and the second one as

 target, but many more configurations are possible.
Let's configure the replication pair, selecting source and target.
Following databases are described:
1:
orcl
 reptest1 (Oracle)
 
 
2:
test11202
 reptest2 (Oracle)
 
 
Select source database: [1]
 
 
Select target database: [2]
 
Will be DDL replication enabled? (If YES, the script will grant more privileges to the Dbvisit Replicate users and enable database-wide supplemental logging): [yes] 
Use fetcher to offload the mining to a different server? (yes/no) [no] 
 
(NETWORK_QUALITY) - Please specify your network type (LAN or WAN). 
Autoconfigures timeouts, use of compression etc. [LAN]
 
 
Lock and copy the data initially one-by-one or at a single SCN? 
(one-by-one/single-scn/ddl-only/resetlogs) [single-scn]
 
 
What data copy script to create? (dp_networklink/dp_exp/exp/ddl_file/ddl_run/none) [dp_networklink]
Following replication pairs are now configured:
1:
orcl
 reptest1 (Oracle) ==>
test11202
 reptest2 (Oracle), DDL:
yes
 no, fetcher: no,process suffix: (no suffix), 
network: LAN, prepare type:single-scn, data load:

 dp_networklink
Enter number of replication pair to modify it, or "add", or "done": [done]

Add another replication pair, by typing "add" instead of "done". Choose the reverse source and target database:

Section
Column
width5%

 

Column
width95
Panel
bgColorCCC
Enter number of replication pair to modify it, or "add", or "done": [done]
add 
 add 
Let's configure the replication pair, selecting source and target.
Following databases are described:
1:
orcl
 reptest1 (Oracle)
 
 
2:
test11202
 reptest2 (Oracle)
 
 
Select source database: [1] 2
 
 
Select target database: [2]

Will be DDL replication enabled? (If YES, the script will grant more privileges to the Dbvisit Replicate users and enable database-wide supplemental logging): [yes] 
Use fetcher to offload the mining to a different server? (yes/no) [no] 
(
 1 
(NETWORK_QUALITY) - Please specify your network type (LAN or WAN). Autoconfigures timeouts, use of compression etc. [LAN]
 
 
Lock and copy the data initially one-by-one or at a single SCN? (one-by-one/single-scn/ddl-only/resetlogs) [single-scn]
 
 
What data copy script to create? (dp_networklink/dp_exp/exp/ddl_file/ddl_run/none) [dp_networklink]
Following replication pairs are now configured:
1:
orcl
 reptest1 (Oracle) ==>
test11202
 reptest2 (Oracle), DDL:
yes
 no, fetcher: no, process suffix: (no suffix), network: LAN, prepare type:
single-scn, data load:

 dp_networklink
2:
test11202
 reptest2 (Oracle) ==>
orcl
 reptest1 (Oracle), DDL:
yes
 no, fetcher: no, process suffix: 1, network: LAN, prepare type: single-scn, data
load: dp_networklink
Enter number of replication pair to modify it, or "add", or "done": [done]

Two replication pairs are now configured. 

...

Section
Column
width5%

 

Column
width95
Panel
bgColorCCC
Step 3 - Replicated tables
========================================
The third step is to choose the schemas and tables to be replicated. If the databases are reachable, the tables are checked for
existence, datatype

 support, etc., schemas are queried for tables. Note that all messages are merely hints/warnings and may be
ignored if issues are rectified before the

 scripts are actually executed.
Note the following assumptions are made in this wizard  which can be modified by editing the resulting script:
1. All replicated tables have a primary key defined.
2. All columns of the tables and all tables of the specified schemas are replicated, and if DDL support is enabled, whenever a
new column/table is added,

 this should be replicate as well.
3. If an apply conflict arises, the default option is to try again repeatedly, until a different option is given or the
underlying issue is resolved.
4. If an apply conflict arises, no more data will be replicated until the issue is resolved or ignored.
You can also specify some advanced options:
1. Rename schemas or tables.
2. Specify filtering conditions.
3. (
tables
Tables only) Configure Change Data Capture; this does not maintain a copy of the source table, but logs all
operations instead. This is useful for ETL
or as an audit trail. As this usually means adding new columns (timestamps, old/new values etc.) and starting with empty target tables, the best way for
setup of target tables is to create or run DDL (instead of Data Pump).

Following tables are defined for replication pairs:
1: orcl (Oracle) ==> test11202 (Oracle), DDL: yes, suffix: (no suffix), prepare: single-scn
No tables defined.
2: test11202 (Oracle) ==> orcl (Oracle), DDL: yes, suffix: 1, prepare: single-scn
No tables defined.
Enter number of replication pair to modify it, or "done": [1]

To replicate an entire schema (all tables), please enter the schemas to be replicated. Enter through a comma-delimited list, or enter one by one. Hit Enter
when finished
Enter the list of schemas: [] avi
Enter the list of schemas: []

To replicate individual tables, please enter the table names. Do not enter tables in quotes (" ").
Enter through a comma-delimited list, or enter one by one. Hit Enter when finished.
Please use fully qualified names (ie owner.table_name).
Enter the list of tables: [] scott.avi_objects
Enter the list of tables: []

To replicate PL/SQL for schema(s), please enter the schemas to be replicated. Note that specifying any entry will cause additional privileges to be granted
to dbvrep. Enter through a comma-delimited list, or enter one by one. Hit Enter when finished
Enter the list of schemas: []
Specify rename name or filter condition for any of the specified schemas (yes/no): [no]
Specify rename name, filter condition, CDC/Audit/ETL for any of the specified tables (yes/no): [no]

Following tables are defined for replication pairs:
1: orcl (Oracle) ==> test11202 (Oracle), DDL: yes, suffix: (no suffix), prepare: single-scn
AVI(tables), SCOTT.AVI_OBJECTS
2: test11202 (Oracle) ==> orcl (Oracle), DDL: yes, suffix: 1, prepare: single-scn
No tables defined.
Enter number of replication pair to modify it, or "done": [2]

To replicate an entire schema (all tables), please enter the schemas to be replicated. Enter through a comma-delimited list, or enter one by one. Hit Enter
when finished
Enter the list of schemas: [] avi
Enter the list of schemas: []

To replicate individual tables, please enter the table names. Do not enter tables in quotes (" ").
Enter through a comma-delimited list, or enter one by one. Hit Enter when finished.
Please use fully qualified names (ie owner.table_name).
Enter the list of tables: [] scott.avi_objects
Enter the list of tables: []

To replicate PL/SQL for schema(s), please enter the schemas to be replicated. Note that specifying any entry will cause additional privileges to be granted
to dbvrep. Enter through a comma-delimited list, or enter one by one. Hit Enter when finished
Enter the list of schemas: []
Specify rename name or filter condition for any of the specified schemas (yes/no): [no]
Specify rename name, filter condition, CDC/Audit/ETL for any of the specified tables (yes/no): [no]

Following tables are defined for replication pairs:
1: orcl (Oracle) ==> test11202 (Oracle), DDL: yes, suffix: (no suffix), prepare: single-scn
AVI(tables), SCOTT.AVI_OBJECTS
2: test11202 (Oracle) ==> orcl (Oracle), DDL: yes, suffix: 1, prepare: single-scn
AVI(tables), SCOTT.AVI_OBJECTS
Enter number of replication pair to modify it, or "done":
 operations as
separate entries. This is useful for ETL or as an audit trail. This usually requires adding of new columns (timestamps, old/new
values etc.) to the target table. Dbvisit Replicate can create the target table with the additional columns during setup by
selecting "ddl_run" in the data copy section of Step 2.
Following tables are defined for replication pairs:
1: reptest1 (Oracle) ==> reptest2 (Oracle), DDL: no, suffix: (no suffix), prepare: single-scn
No tables defined.
2: reptest2 (Oracle) ==> reptest1 (Oracle), DDL: no, suffix: 1, prepare: single-scn
No tables defined.
Enter number of replication pair to modify it, or "done": [1]
Please enter list of all individual tables to be replicated. Enter schema name(s) only to replicate all tables in that schema.
Use comma or space to delimit the entries.
Enter the tables and schemas: [] test1,avi.emp
Selected schemas: TEST1
Selected tables: AVI.EMP
Add more tables or schemas? (YES/NO) [NO]
To replicate changes of PL/SQL objects in schema(s), please enter the schemas to be replicated. Note that specifying any entry
will cause additional privileges to be granted to dbvrep. Enter through a comma or space-delimited list.
Enter the list of schemas (PL/SQL): []
Specify rename name or filter condition for any of the specified schemas (YES/NO): [no]
Specify rename name, filter condition, CDC/Audit/ETL for any of the specified tables (yes/no): [no]
Following tables are defined for replication pairs:
1: reptest1 (Oracle) ==> reptest2 (Oracle), DDL: no, suffix: (no suffix), prepare: single-scn
TEST1(tables), AVI.EMP
2: reptest2 (Oracle) ==> reptest1 (Oracle), DDL: no, suffix: 1, prepare: single-scn
No tables defined.
Enter number of replication pair to modify it, or "done": [2]
Please enter list of all individual tables to be replicated. Enter schema name(s) only to replicate all tables in that schema.
Use comma or space to delimit the entries.
Enter the tables and schemas: [] test1,avi.emp
Selected schemas: TEST1
Selected tables: AVI.EMP
Add more tables or schemas? (YES/NO) [NO]
To replicate changes of PL/SQL objects in schema(s), please enter the schemas to be replicated. Note that specifying any entry
will cause additional privileges to be granted to dbvrep. Enter through a comma or space-delimited list.
Enter the list of schemas (PL/SQL): []
Specify rename name or filter condition for any of the specified schemas (YES/NO): [no]
Specify rename name, filter condition, CDC/Audit/ETL for any of the specified tables (yes/no): [no]
Following tables are defined for replication pairs:
1: reptest1 (Oracle) ==> reptest2 (Oracle), DDL: no, suffix: (no suffix), prepare: single-scn
TEST1(tables), AVI.EMP
2: reptest2 (Oracle) ==> reptest1 (Oracle), DDL: no, suffix: 1, prepare: single-scn
TEST1(tables), AVI.EMP
Enter number of replication pair to modify it, or "done": [done]

Step 4 - Process configuration

...

Section
Column
width5%

 

Column
width95
Panel
bgColorCCC
Step 4 - Process configuration
========================================
The fourth step is to configure the replication processes for each replication. Although most options have reasonable defaults,
manual input is required.
Following processes are defined:
1: MINE on
orcl
 reptest1
Not configured.
2: APPLY on
test11202
 reptest2
Not configured.
3: MINE1 on
test11202
 reptest2
Not configured.
4: APPLY1 on
orcl
 reptest1
Not configured.
Enter number of process to modify it, or "done": [1]
Fully qualified name of the server for the process (usually co-located
with the database, unless mine is offloaded using fetcher): [rac11202node1]
Enable email notifications about problems
 with the database, unless mine is offloaded using fetcher): [dbvldemo101] 
Server type (Windows/Linux/Unix): [Linux]
Enable email notifications about problems (yes/no)? [YES]
NO
 n 
Enable SNMP traps/notifications about problems (yes/no)? [NO]
Directory with DDC file and default where to create log files etc. (recommended: same as global setting, if possible)? [/home/oracle/
orcl
reptest1]
Following settings were pre-filled with defaults or your reloaded settings:
----------------------------------------
[MINE_
LISTEN
REMOTE_INTERFACE]: Network
listen
 remote interface:
rac11202node1
 dbvldemo101:7901 
[MINE_DATABASE]: Database TNS:
orcl
 reptest1 
[TNS_ADMIN]: tnsnames.ora path: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin
[MINE_USER]: Dbvisit Replicate database username: dbvrep
[MINE_PASSWORD]: Dbvisit Replicate database password: *********

[ORACLE_HOME]: ASM ORACLE_HOME: /u01/app/11.2.0/grid
 
[MINE_PLOG]: Filemask for generated plogs: /home/oracle/
orcl
reptest1/mine/%S.%E (%S is sequence, %T thread, %F original filename
(stripped extension), %P process

 type, %N process name, %E default extension)
[LOG_FILE]: General log file: /home/oracle/
orcl
reptest1/log/dbvrep_%N_%D.%E 
[LOG_FILE_TRACE]: Error traces: /home/oracle/
orcl
reptest1/log/trace/dbvrep_%N_%D_%I_%U.%E
Checking that these settings are valid...
Do you want change any of the settings? [no]
Following processes are defined:
1: MINE on
orcl
 reptest1
Host:
rac11202node1
 dbvldemo101, SMTP: NO, SNMP: NO
2: APPLY on
test11202
 reptest2
Not configured.
3: MINE1 on
test11202
 reptest2
Not configured.
4: APPLY1 on
orcl
 reptest1
Not configured.
Enter number of process to modify it, or "done": [2]

<usually
 
Fully qualified name of the server for the process (usually co-located with the database, unless
mine is offloaded using fetcher): [dbvisit400.dbvisit.com]
Enable email notifications about problems
 mine is offloaded using fetcher): [dbvldemo102] 
Server type (Windows/Linux/Unix): [Linux]
Enable email notifications about problems (yes/no)? [YES]
NO
 n 
Enable SNMP traps/notifications about problems (yes/no)? [NO]
Directory with DDC file and default where to create log files etc. (recommended: same as global setting, if possible)? [/home/oracle/
orcl
reptest1]
Following settings were pre-filled with defaults or your reloaded settings:
----------------------------------------
[APPLY_
LISTEN
REMOTE_INTERFACE]: Network
listen
 remote interface:
dbvisit400.dbvisit.com
 dbvldemo102:7902 
[APPLY_DATABASE]: Database TNS:
test11202
 reptest2 
[TNS_ADMIN]: tnsnames.ora path: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin
[APPLY_USER]: Dbvisit Replicate database username: dbvrep
[APPLY_PASSWORD]: Dbvisit Replicate database password: *********
[APPLY_STAGING_DIR]: Directory for received plogs: /home/oracle/
orcl
reptest1/apply 
[LOG_FILE]: General log file: /home/oracle/
orcl
reptest1/log/dbvrep_%N_%D.%E 
[LOG_FILE_TRACE]: Error traces: /home/oracle/
orcl
reptest1/log/trace/dbvrep_%N_%D_%I_%U.%E
Checking that these settings are valid...
Do you want change any of the settings? [no]
Following processes are defined:
1: MINE on
orcl
 reptest1
Host:
rac11202node1
 dbvldemo101, SMTP: NO, SNMP: NO
2: APPLY on
test11202
 reptest2
Host:
dbvisit400.dbvisit.com,
 dbvldemo102, SMTP: NO, SNMP: NO
3: MINE1 on
test11202
 reptest2
Not configured.
4: APPLY1 on
orcl
 reptest1
Not configured.
Enter number of process to modify it, or "done": [3]

<usually
 
Fully qualified name of the server for the process (usually co-located with the database, unless mine is offloaded using fetcher): [dbvldemo102]
Server type (Windows/Linux/Unix): [
dbvisit400.dbvisit.com
Linux] 
Enable email notifications about problems (yes/no)? [YES]
NO
 n 
Enable SNMP traps/notifications about problems (yes/no)? [NO]
Directory with DDC file and default where to create log files etc. (recommended: same as global setting, if possible)? [/home/oracle/
orcl
reptest1]
Following settings were pre-filled with defaults or your reloaded settings:
----------------------------------------
[MINE_
LISTEN
REMOTE_INTERFACE]: Network
listen
 remote interface:
dbvisit400.dbvisit.com
 dbvldemo102:7903 
[MINE_DATABASE]: Database TNS:
test11202
 reptest2 
[TNS_ADMIN]: tnsnames.ora path: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin
[MINE_USER]: Dbvisit Replicate database username: dbvrep
[MINE_PASSWORD]: Dbvisit Replicate database password: *********
[MINE_PLOG]: Filemask for generated plogs: /home/oracle/
orcl
reptest1/mine1/%S.%E (%S is sequence, %T thread, %F original filename
(stripped extension), %P process

 type, %N process name, %E default extension)
[LOG_FILE]: General log file: /home/oracle/
orcl
reptest1/log/dbvrep_%N_%D.%E 
[LOG_FILE_TRACE]: Error traces: /home/oracle/
orcl
reptest1/log/trace/dbvrep_%N_%D_%I_%U.%E
Checking that these settings are valid...
Do you want change any of the settings? [no]
Following processes are defined:
1: MINE on
orcl
 reptest1
Host:
rac11202node1
 dbvldemo101, SMTP: NO, SNMP: NO
2: APPLY on
test11202
 reptest2
Host:
dbvisit400.dbvisit.com,
 dbvldemo102, SMTP: NO, SNMP: NO
3: MINE1 on
test11202
 reptest2
Host:
dbvisit400.dbvisit.com,
 dbvldemo102, SMTP: NO, SNMP: NO
4: APPLY1 on
orcl
 reptest1
Not configured.
Enter number of process to modify it, or "done": [4]
Fully qualified name of the server for the process (usually co-located with the database, unless mine is offloaded using fetcher): [dbvldemo101]
Server type (Windows/Linux/Unix): [
rac11202node1
Linux] 
Enable email notifications about problems (yes/no)? [YES]
NO
 n 
Enable SNMP traps/notifications about problems (yes/no)? [NO]
Directory with DDC file and default where to create log files etc. (recommended: same as global setting, if possible)? [/home/oracle/
orcl
reptest1]
Following settings were pre-filled with defaults or your reloaded settings:
----------------------------------------
[APPLY_
LISTEN
REMOTE_INTERFACE]: Network
listen
 remote interface:
rac11202node1
 dbvldemo101:7904 
[APPLY_DATABASE]: Database TNS:
orcl
 reptest1 
[TNS_ADMIN]: tnsnames.ora path: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin
[APPLY_USER]: Dbvisit Replicate database username: dbvrep
[APPLY_PASSWORD]: Dbvisit Replicate database password: *********
[APPLY_STAGING_DIR]: Directory for received plogs: /home/oracle/
orcl
reptest1/apply1 
[LOG_FILE]: General log file: /home/oracle/
orcl
reptest1/log/dbvrep_%N_%D.%E 
[LOG_FILE_TRACE]: Error traces: /home/oracle/
orcl
reptest1/log/trace/dbvrep_%N_%D_%I_%U.%E
Checking that these settings are
valid…
 valid...
Do you want change any of the settings? [no]
Following processes are defined:
1: MINE on
orcl
 reptest1
Host:
rac11202node1
 dbvldemo101, SMTP: NO, SNMP: NO
2: APPLY on
test11202
 reptest2
Host:
dbvisit400.dbvisit.com,
 dbvldemo102, SMTP: NO, SNMP: NO
3: MINE1 on
test11202
 reptest2
Host:
dbvisit400.dbvisit.com,
 dbvldemo102, SMTP: NO, SNMP: NO
4: APPLY1 on
orcl
 reptest1
Host:
rac11202node1
 dbvldemo101, SMTP: NO, SNMP: NO
Enter number of process to modify it, or "done": [done]

As the last step, choose the database that will hold the DDC DB (Dbvisit Replicate schema).

Section
Column
width5%

 

Column
width95
Panel
bgColorCCC
Select database to hold the DDC settings:
1:
orcl
 reptest1
2:
test11202
 reptest2
Enter database number: [1]

The setup is now complete and all the scripts have been created.

Section
Column
width5%

 

Column
width95
Panel
bgColorCCC
Created file /home/oracle/
orcl
reptest1/
orcl
reptest1-APPLY.ddc.
Created file /home/oracle/
orcl
reptest1/
orcl
reptest1-APPLY1.ddc.
Created file /home/oracle/
orcl
reptest1/
orcl
reptest1-MINE.ddc.
Created file /home/oracle/
orcl
reptest1/
orcl
reptest1-MINE1.ddc.
Created file /home/oracle/
orcl
reptest1/
orcl
reptest1-setup.dbvrep.
Created file /home/oracle/
orcl
reptest1/
orcl
reptest1-dbsetup_
orcl
reptest1.sql.
Created file /home/oracle/
orcl
reptest1/
orcl
reptest1-dbsetup_
test11202
reptest2.sql.
Created file /home/oracle/
orcl
reptest1/
orcl
reptest1-grants_
orcl
reptest1.sql.
Created file /home/oracle/
orcl
reptest1/
orcl
reptest1-grants_
test11202
reptest2.sql.
Created file /home/oracle/
orcl
reptest1/
orcl
reptest1-onetime.ddc.
Created file /home/oracle/
orcl
reptest1/start-console.sh.
Created file /home/oracle/
orcl
reptest1/
orcl
reptest1-run-
dbvisit400.dbvisit.com
dbvldemo101.sh.
Created file /home/oracle/
orcl
reptest1/
orcl
reptest1-run-
rac11202node1
dbvldemo102.sh.
Created file /home/oracle/
orcl
reptest1/Nextsteps.txt.
Created file /home/oracle/
orcl/orcl-all.sh.
=======================
reptest1/reptest1-all.sh.
================================================================================================================================
===
Dbvisit Replicate wizard completed
Script /home/oracle/
orcl
reptest1/
orcl
reptest1-all.sh created. This runs all the above created scripts. Please exit out of dbvrep, review
and run script as current user to

 setup and start Dbvisit Replicate.
=========================
================================================================================================================================
=

Optionally, the script can be invoked now by this wizard.
Run this script now? (yes/no) [NO]
dbvrep> exit
dbvrep>exit

The *all script can now be run to start the replication.

...

With 2-way replication the table listing in the console can so long that the prompt cannot be seen. By default, 30 tables are listed for each replication, thus for a 2-way replication, it takes up to 70 screen lines.
To change this, edit the *-MINE.ddc file and add line "set STATUS_BAR_ACTIVE_TABLES 5". Or enter this command at the console prompt. Restart the console for this change to take affect.

CHOOSE REPLICATION

By default all commands in the Dbvisit Replicate console work with the default processes MINE and APPLY. The choose replication command is useful when working with 2-way replication where there are multiple processes such as MINE, APPLY, MINE1 and APPLY1. 

Note that the CHOOSE REPLICATION command selects all processes for the indicated replication (so both Mine and Apply processes).

 Example:

Panel
bgColorCCC
dbvrep> CHOOSE REPLICATION MINE1

 The above command will choose the replication pair that is associated with MINE1. Typically this is MINE1->APPLY1.

 Note that the CHOOSE REPLICATION command is needed prior to issuing commands to display, resolve and set conflicts for the APPLY1 process.

...