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. 

It can be viewed as 2 x 1-way replication, with an outer (1-way) loop and an inner (1-way) loop as seen in the following diagram:

Image Removed

The differences between 1-way replication and 2-way replication are:

  1. There is a Mine and Apply processes running on each server. With 1-way replication there is only an Apply OR a Mine process running on each server. 
  2. Changes that are mined on the source server and then applied on the target server are not mined again on the target server. This prevents the feedback loop.
  3. The Mine and Apply processes are paired together. So in a typical 2-way replication there are the following 2-pairs: 
    • 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. 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. 

...

Column
width5%

 

...

width95

...

bgColorCCC

...

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. 

It can be viewed as 2 x 1-way replication, with an outer (1-way) loop and an inner (1-way) loop as seen in the following diagram:

Image Added

The differences between 1-way replication and 2-way replication are:

  1. There is a MINE and APPLY processes running on each server. With 1-way replication there is only an APPLY OR a MINE process running on each server. 
  2. Changes that are mined on the source server and then applied on the target server are not mined again on the target server. This prevents the feedback loop.
  3. The MINE and APPLY processes are paired together. So in a typical 2-way replication there are the following 2-pairs: 
    • 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.

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. 

No Format
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: reptest1 (Oracle) 

 
2: reptest2 (Oracle)  

Select source database: [1] 

Select target database: [2]
(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: reptest1 (Oracle) ==> reptest2 (Oracle), DDL: 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:

Enter number of replication pair to modify it, or "add", or "done": [done] add
Let's configure the replication pair, selecting source and target.
Following databases are described:
1: reptest1 (Oracle)
2: reptest2 (Oracle)
Select source database: [1] 2
                                                                                                                                                  
Select target database: [2]   
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:
 
reptest1
 
(Oracle)
 
==>
 
reptest2
 
(Oracle),
 
DDL:
 
no,
 
fetcher:
 
no,
 
process
 
suffix:
 
(no
 
suffix),
 
network:
 
LAN,
 
prepare
 
type:
single-scn,
 
data
 
load:
 
dp_networklink
2:
 
reptest2
 
(Oracle)
 
==>
 
reptest1
 
(Oracle),
 
DDL:
 
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]
Section
Column
width5%

 

Column
width95
Panel
bgColorCCC

Two replication pairs are now configured. 

Step 3 - Replicated tables

For each replication pair, the objects to be replicated have to specified. This can be the same or different for each replication pair. 

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 only) Configure Change Data Capture; this does not maintain a copy of the source table, but logs all 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

For each replication pair, the source and target servers and processes have to be configured. For simplicity, email and smtp notification has been turned off.

All the defaults can be chosen. 

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 reptest1
Not configured.
2: APPLY on reptest2
Not configured.
3: MINE1 on reptest2
Not configured.
4: APPLY1 on 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): [dbvldemo101]
Server type (Windows/Linux/Unix): [Linux]
Enable email notifications about problems (yes/no)? [YES] 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/reptest1]
Following settings were pre-filled with defaults or your reloaded settings:
----------------------------------------
[MINE_REMOTE_INTERFACE]: Network remote interface: dbvldemo101:7901
[MINE_DATABASE]: Database TNS: 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: *********
[MINE_PLOG]: Filemask for generated plogs: /home/oracle/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/reptest1/log/dbvrep_%N_%D.%E
[LOG_FILE_TRACE]: Error traces: /home/oracle/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 reptest1
Host: dbvldemo101, SMTP: NO, SNMP: NO
2: APPLY on reptest2
Not configured.
3: MINE1 on reptest2
Not configured.
4: APPLY1 on reptest1
Not configured.
Enter number of process to modify it, or "done": [2]
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): [Linux]
Enable email notifications about problems (yes/no)? [YES] 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/reptest1]
Following settings were pre-filled with defaults or your reloaded settings:
----------------------------------------
[APPLY_REMOTE_INTERFACE]: Network remote interface: dbvldemo102:7902
[APPLY_DATABASE]: Database TNS: 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/reptest1/apply
[LOG_FILE]: General log file: /home/oracle/reptest1/log/dbvrep_%N_%D.%E
[LOG_FILE_TRACE]: Error traces: /home/oracle/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 reptest1
Host: dbvldemo101, SMTP: NO, SNMP: NO
2: APPLY on reptest2
Host: dbvldemo102, SMTP: NO, SNMP: NO
3: MINE1 on reptest2
Not configured.
4: APPLY1 on reptest1
Not configured.
Enter number of process to modify it, or "done": [3]
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): [Linux]
Enable email notifications about problems (yes/no)? [YES] 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/reptest1]
Following settings were pre-filled with defaults or your reloaded settings:
----------------------------------------
[MINE_REMOTE_INTERFACE]: Network remote interface: dbvldemo102:7903
[MINE_DATABASE]: Database TNS: 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/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/reptest1/log/dbvrep_%N_%D.%E
[LOG_FILE_TRACE]: Error traces: /home/oracle/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 reptest1
Host: dbvldemo101, SMTP: NO, SNMP: NO
2: APPLY on reptest2
Host: dbvldemo102, SMTP: NO, SNMP: NO
3: MINE1 on reptest2
Host: dbvldemo102, SMTP: NO, SNMP: NO
4: APPLY1 on 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): [Linux]
Enable email notifications about problems (yes/no)? [YES] 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/reptest1]
Following settings were pre-filled with defaults or your reloaded settings:
----------------------------------------
[APPLY_REMOTE_INTERFACE]: Network remote interface: dbvldemo101:7904
[APPLY_DATABASE]: Database TNS: 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/reptest1/apply1
[LOG_FILE]: General log file: /home/oracle/reptest1/log/dbvrep_%N_%D.%E
[LOG_FILE_TRACE]: Error traces: /home/oracle/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 reptest1
Host: dbvldemo101, SMTP: NO, SNMP: NO
2: APPLY on reptest2
Host: dbvldemo102, SMTP: NO, SNMP: NO
3: MINE1 on reptest2
Host: dbvldemo102, SMTP: NO, SNMP: NO
4: APPLY1 on reptest1
Host: 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: reptest1
2: 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/reptest1/reptest1-APPLY.ddc.
Created file /home/oracle/reptest1/reptest1-APPLY1.ddc.
Created file /home/oracle/reptest1/reptest1-MINE.ddc.
Created file /home/oracle/reptest1/reptest1-MINE1.ddc.
Created file /home/oracle/reptest1/reptest1-setup.dbvrep.
Created file /home/oracle/reptest1/reptest1-dbsetup_reptest1.sql.
Created file /home/oracle/reptest1/reptest1-dbsetup_reptest2.sql.
Created file /home/oracle/reptest1/reptest1-grants_reptest1.sql.
Created file /home/oracle/reptest1/reptest1-grants_reptest2.sql.
Created file /home/oracle/reptest1/reptest1-onetime.ddc.
Created file /home/oracle/reptest1/start-console.sh.
Created file /home/oracle/reptest1/reptest1-run-dbvldemo101.sh.
Created file /home/oracle/reptest1/reptest1-run-dbvldemo102.sh.
Created file /home/oracle/reptest1/Nextsteps.txt.
Created file /home/oracle/reptest1/reptest1-all.sh.
================================================================================================================================
Dbvisit Replicate wizard completed
Script /home/oracle/reptest1/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

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

Section
Column
width5%

 

Column
width95
Panel
bgColorCCC

$ ./orcl-all.sh
Setting up Dbvisit Replicate configuration
Configure database orcl...
Configure database test11202...
Object grants for database orcl...
Object grants for database test11202...
Setting up the configuration
Initializing......done
WARN-1850: No DDC DB available, dictionary table does not exist.
DDC loaded from database (0 variables).
Dbvisit Replicate version 2.3.07.1500
Copyright (C) Dbvisit Software Limited. All rights reserved.
DDC file /home/oracle/orcl/orcl-onetime.ddc loaded.
MINE: Cannot determine Dbvisit Replicate dictionary version. (no dictionary exists)
APPLY: Cannot determine Dbvisit Replicate dictionary version. (no dictionary exists)
dbvrep> set ON_WARNING SKIP
Variable ON_WARNING set to SKIP for process *.
dbvrep> set ON_ERROR EXIT
Variable ON_ERROR set to EXIT for process *.
dbvrep> ENGINE SETUP MINE DROP DICTIONARY
0 dictionary objects dropped.
dbvrep> ENGINE SETUP MINE CREATE DICTIONARY
dbvrep> ENGINE SETUP MINE LOAD DICTIONARY
Supplemental logging on database set.
Loading dictionary table DBRSCOL$
Loading dictionary table DBRSOBJ$
Loading dictionary table DBRSTAB$
Loading dictionary table DBRSUSER$
Loading dictionary table DBRSV_$DATABASE
dbvrep> ENGINE SETUP APPLY DROP DICTIONARY
0 dictionary objects dropped.
dbvrep> ENGINE SETUP APPLY CREATE DICTIONARY
dbvrep> ENGINE SETUP APPLY LOAD DICTIONARY
dbvrep> ENGINE PREPARE_DP SETUP CLEAR
dbvrep> ENGINE SETUP PAIR MINE AND APPLY
ID of mine proces is 2CA73994-84F1-11E1-BB7A-022F870D6567. If not using DDC in database, set MINE_UNIQUE_ID to this value.
1 applier SCN set.
dbvrep> SET APPLY.INSTANTIATE_SCN NOW
Variable INSTANTIATE_SCN set to NOW for process APPLY.
dbvrep> ENGINE SUPPLEMENTAL LOGGING SCHEMA AVI ENABLE PRIMARY KEY
dbvrep> ENGINE SUPPLEMENTAL LOGGING TABLE SCOTT.AVI_OBJECTS ENABLE PRIMARY KEY
dbvrep> ENGINE SWITCH_REDOLOG
dbvrep> #single-scn instantiation: lock all tables and schemas
dbvrep> ENGINE LOCK TABLES SCOTT.AVI_OBJECTS
Locking all tables.
Lock done.
dbvrep> ENGINE LOCK SCHEMAS AVI
Locking all schemas.
Lock done.
dbvrep>
dbvrep> #prepare the tables (we use OFFLINE as neither MINE not APPLY is running; with OFFLINE we won't wait on network timeout)
dbvrep> PREPARE OFFLINE SCHEMA AVI
dbvrep> PREPARE OFFLINE TABLE SCOTT.AVI_OBJECTS
Table SCOTT.AVI_OBJECTS instantiated at SCN 46697269
dbvrep> #single-scn instantiation: unlock all tables and schemas
dbvrep> ENGINE LOCK RELEASE ALL
dbvrep> ENGINE SWITCH_REDOLOG
dbvrep> #prepare script for instantiation
dbvrep> ENGINE PREPARE_DP WRITE DP_NETWORKLINK DIRECTORY DATA_PUMP_DIR FILE /home/oracle/orcl/APPLY.sh DBLINK orcl USERID SYSTEM/oracle@test11202
Created Data Pump script /home/oracle/orcl/APPLY.sh, using network import.
dbvrep>
dbvrep> # Configuring non-default processes
dbvrep> choose process MINE1
Process type MINE set to: MINE1.
dbvrep> choose process APPLY1
Process type APPLY set to: APPLY1.
dbvrep> ENGINE SETUP MINE LOAD DICTIONARY
Supplemental logging on database set.
Loading dictionary table DBRSCOL$
Loading dictionary table DBRSOBJ$
Loading dictionary table DBRSTAB$
Loading dictionary table DBRSUSER$
Loading dictionary table DBRSV_$DATABASE
dbvrep> ENGINE SETUP APPLY LOAD DICTIONARY
dbvrep> ENGINE PREPARE_DP SETUP CLEAR
dbvrep> ENGINE SETUP PAIR MINE AND APPLY
ID of mine proces is 3E68F0B4-84F1-11E1-BB7A-022F870D6567. If not using DDC in database, set MINE_UNIQUE_ID to this value.
1 applier SCN set.
dbvrep> SET APPLY1.INSTANTIATE_SCN NOW
Variable INSTANTIATE_SCN set to NOW for process APPLY1.
dbvrep> ENGINE SUPPLEMENTAL LOGGING SCHEMA AVI ENABLE PRIMARY KEY
dbvrep> ENGINE SUPPLEMENTAL LOGGING TABLE SCOTT.AVI_OBJECTS ENABLE PRIMARY KEY
dbvrep> ENGINE SWITCH_REDOLOG
dbvrep> #single-scn instantiation: lock all tables and schemas
dbvrep> ENGINE LOCK TABLES SCOTT.AVI_OBJECTS
Locking all tables.
Lock done.
dbvrep> ENGINE LOCK SCHEMAS AVI
Locking all schemas.
Lock done.
dbvrep>
dbvrep> #prepare the tables (we use OFFLINE as neither MINE not APPLY is running; with OFFLINE we won't wait on network timeout)
dbvrep> PREPARE OFFLINE SCHEMA AVI
dbvrep> PREPARE OFFLINE TABLE SCOTT.AVI_OBJECTS
Table SCOTT.AVI_OBJECTS instantiated at SCN 17535221
dbvrep> #single-scn instantiation: unlock all tables and schemas
dbvrep> ENGINE LOCK RELEASE ALL
dbvrep> ENGINE SWITCH_REDOLOG
dbvrep> #prepare script for instantiation
dbvrep> ENGINE PREPARE_DP WRITE DP_NETWORKLINK DIRECTORY DATA_PUMP_DIR FILE /home/oracle/orcl/APPLY1.sh DBLINK test11202 USERID SYSTEM/oracle@orcl
Created Data Pump script /home/oracle/orcl/APPLY1.sh, using network import.
dbvrep> create ddcdb from ddcfile
DDC loaded into database (241 variables).
dbvrep> set ON_WARNING SKIP
Variable ON_WARNING set to SKIP for process *.
dbvrep> set ON_ERROR SKIP
Variable ON_ERROR set to SKIP for process *.
OK-0: Completed successfully.
1) Create the necessary directory(ies) on the servers:
dbvisit400.dbvisit.com: /home/oracle/orcl

2) Copy the DDC files to the server(s) where the processes will run:
/home/oracle/orcl/orcl-APPLY.ddc
/home/oracle/orcl/orcl-APPLY1.ddc
/home/oracle/orcl/orcl-MINE.ddc
/home/oracle/orcl/orcl-MINE1.ddc

3) Review that path to dbvrep executable is correct in the run scripts:
/home/oracle/orcl/orcl-run-dbvisit400.dbvisit.com.sh
/home/oracle/orcl/orcl-run-rac11202node1.sh

4) Copy the run script to the server(s) where the processes will run:
/home/oracle/orcl/orcl-run-dbvisit400.dbvisit.com.sh
/home/oracle/orcl/orcl-run-rac11202node1.sh

5) Ensure firewall is open for listen interfaces dbvisit400.dbvisit.com:7902, rac11202node1:7904, rac11202node1:7901, dbvisit400.dbvisit.com:7903 used by the processes.

6) Make sure the data on apply are in sync as of time when setup was run.
Scripts for Data Pump/export/DDL were created as requested:
/home/oracle/orcl/APPLY.sh
/home/oracle/orcl/APPLY1.sh
Create referenced database links (if any) before running the scripts.

7) Start the replication processes on all servers:
/home/oracle/orcl/orcl-run-dbvisit400.dbvisit.com.sh
/home/oracle/orcl/orcl-run-rac11202node1.sh

8) Start the console to monitor the progress:
chmod 0750 /home/oracle/orcl/start-console.sh
/home/oracle/orcl/start-console.sh

The above list is stored in /home/oracle/orcl/Nextsteps.txt.

Each run script (orcl-run-dbvisit400.dbvisit.com.sh and orcl-run-rac11202node1.sh) has commands to start both a Mine and Apply on each server.

Dbvisit Replicate command console

The console will display both replication pairs simultaneously.

/MINE IS running. Currently at plog 12 (redo sequence 1391 [1] 1796 [2]) and SCN 46709633 (04/12/2012 18:50:45).
APPLY IS running. Currently at plog 12 and SCN 46708889 (04/12/2012 18:50:34).
APPLY1 IS running. Currently at plog 349 and SCN 17550807 (04/12/2012 18:56:31).
MINE1 IS running. Currently at plog 349 and SCN 17550829 (04/12/2012 18:56:35).
Progress of replication orcl:MINE->APPLY: total/this execution
--------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------
0 tables listed.
Progress of replication orcl:MINE1->APPLY1: total/this execution
--------------------------------------------------------------------------------------------------------------------------------------------
------------------
                                                                     
Will be DDL replication enabled? [yes]  no                                                                                                                                     
Use fetcher to offload the mining to a different server? (yes/no) [no]                                                                                                        
Would you like to encrypt the data across the network (yes or no) [no]                                                                                                        
Would you like to compress the data across the network (yes or no) [no]                                                                                                       
How long do you want to set the network timeouts. Recommended range between 60-300 seconds [60]                                                                               
Lock and copy the data initially one-by-one or at a single SCN?
one-by-one : Lock tables one by one and capture SCN
single-scn : One SCN for all tables
ddl-only   : Only DDL script for target objects
resetlogs  : Use SCN from last resetlogs operation (standby activation, rman incomplete recovery)                                                                             (one-by-one/single-scn/ddl-only/resetlogs) [single-scn]                                           

What data instantiation script to create?
dp_networklink : Data Pump with network link. No export datafile is created (APPLY.sh)
dp_exp         : Data Pump with export datafile. Creates an export datafile (APPLY.sh)
exp            : Pre-datapump exp/imp with export datafile (APPLY.sh)
ddl_file       : DDL file created (APPLY.sql)
ddl_run        : DDL is automatically executed on target
load           : All replicated data is created and loaded automatically 
none                                                                                                                                                                          (dp_networklink/dp_exp/exp/ddl_file/ddl_run/load/none) [dp_networklink] 

Following replication pairs are now configured:
1: reptest1 (Oracle) ==> reptest2 (Oracle), DDL: no, fetcher: no, process suffix: (no suffix), compression: no, encryption: no, network timeout: 60, prepare type: single-scn, data load: dp_networklink
Enter number of replication pair to modify it, or "add", or "done": [done]  
 
 
Section
Column
width5%

 

Column
width95
Panel
bgColorCCC

 

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

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

 
Let's configure the replication pair, selecting source and target.
Following databases are described:
1: reptest1 (Oracle)  
2: reptest2 (Oracle)  
Select source database: [1] 2                                                                                                                                                 
Select target database: [2] 1                                                                                                                                                
Will be DDL replication enabled? [yes] no                                                                                                                                      
Use fetcher to offload the mining to a different server? (yes/no) [no]                                                                                                        
Would you like to encrypt the data across the network (yes or no) [no]                                                                                                        
Would you like to compress the data across the network (yes or no) [no]                                                                                                       
How long do you want to set the network timeouts. Recommended range between 60-300 seconds [60]                                                                               
Lock and copy the data initially one-by-one or at a single SCN?
one-by-one : Lock tables one by one and capture SCN
single-scn : One SCN for all tables
ddl-only   : Only DDL script for target objects
resetlogs  : Use SCN from last resetlogs operation (standby activation, rman incomplete recovery)                                                                             (one-by-one/single-scn/ddl-only/resetlogs) [single-scn]                                           

What data instantiation script to create?
dp_networklink : Data Pump with network link. No export datafile is created (APPLY.sh)
dp_exp         : Data Pump with export datafile. Creates an export datafile (APPLY.sh)
exp            : Pre-datapump exp/imp with export datafile (APPLY.sh)
ddl_file       : DDL file created (APPLY.sql)
ddl_run        : DDL is automatically executed on target
load           : All replicated data is created and loaded automatically 
none                                                                                                                                                                          (dp_networklink/dp_exp/exp/ddl_file/ddl_run/load/none) [dp_networklink] 

Following replication pairs are now configured:
1: reptest1 (Oracle) ==> reptest2 (Oracle), DDL: no, fetcher: no, process suffix: (no suffix), compression: no, encryption: no, network timeout: 60, prepare type: single-scn, data load: dp_networklink
2: reptest2 (Oracle) ==> reptest1 (Oracle), DDL: no, fetcher: no, process suffix: (no suffix), compression: no, encryption: no, network timeout: 60, 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. 


Step 3 - Replicated tables

For each replication pair, the objects to be replicated have to specified. This can be the same or different for each replication pair. 

No Format
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.

Following tables are defined for replication pairs:
1:reptest1 (Oracle) ==> reptest2 (Oracle), DDL: yes, suffix: (no suffix), prepare: single-scn
No tables defined.
2:reptest2 (Oracle) ==> reptest1 (Oracle), DDL: yes, 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: [] AVI                                                                                                                                      
Selected schemas: AVI
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): []                                                                                                                                        

You can also specify some advanced options:
1. Rename schemas or tables.
2. Specify filtering conditions.
3. (Tables only) Configure Change Data Capture; this does not maintain a copy of the source table, but logs all 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.
Specify rename name or filter condition for any of the specified schemas (YES/NO): [no]                                                                                       

Following tables are defined for replication pairs:
1: reptest1 (Oracle) ==> reptest2 (Oracle), DDL: no, suffix: (no suffix), prepare: single-scn
  AVI(tables)
2: reptest2 (Oracle) ==> reptest1 (Oracle), DDL: no, suffix: (no suffix), 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: [] AVI                                                                                                                                      
Selected schemas: AVI
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): []                                                                                                                                        

You can also specify some advanced options:
1. Rename schemas or tables.
2. Specify filtering conditions.
3. (Tables only) Configure Change Data Capture; this does not maintain a copy of the source table, but logs all 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.
Specify rename name or filter condition for any of the specified schemas (YES/NO): [no]     
Following tables are defined for replication pairs:
1: reptest1 (Oracle) ==> reptest2 (Oracle), DDL: no, suffix: (no suffix), prepare: single-scn
  AVI(tables)
2: reptest2 (Oracle) ==> reptest1 (Oracle), DDL: no, suffix: (no suffix), prepare: single-scn
AVI(tables)
Enter number of replication pair to modify it, or "done": [done]
 

 

Step 4 - Process configuration

For each replication pair, the source and target servers and processes have to be configured. For simplicity, email and smtp notification has been turned off.

All the defaults can be chosen. 

No Format
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 reptest1
 Not configured.
2: APPLY on reptest2
 Not configured.
3: MINE1 on reptest2
 Not configured.
4: APPLY1 on 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): [dbvldemo101] 
Server type (Windows/Linux/Unix): [Linux] 
Enable email notifications about problems (yes/no)? [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/reptest1]
Following settings were pre-filled with defaults or your reloaded settings:
----------------------------------------
[MINE_REMOTE_INTERFACE]: Network remote interface: dbvldemo101:7901 
[MINE_DATABASE]: Database TNS: 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: ********* 
[MINE_PLOG]: Filemask for generated plogs: /home/oracle/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/reptest1/log/dbvrep_%N_%D.%E 
[LOG_FILE_TRACE]: Error traces: /home/oracle/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 reptest1
 Host: dbvldemo101, SMTP: NO, SNMP: NO
2: APPLY on reptest2
 Not configured.
3: MINE1 on reptest2
 Not configured.
4: APPLY1 on reptest1
 Not configured.
Enter number of process to modify it, or "done": [2] 
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): [Linux] 
Enable email notifications about problems (yes/no)? [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/reptest1]
Following settings were pre-filled with defaults or your reloaded settings:
----------------------------------------
[APPLY_REMOTE_INTERFACE]: Network remote interface: dbvldemo102:7902 
[APPLY_DATABASE]: Database TNS: 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/reptest1/apply 
[LOG_FILE]: General log file: /home/oracle/reptest1/log/dbvrep_%N_%D.%E 
[LOG_FILE_TRACE]: Error traces: /home/oracle/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 reptest1
 Host: dbvldemo101, SMTP: NO, SNMP: NO
2: APPLY on reptest2
 Host: dbvldemo102, SMTP: NO, SNMP: NO
3: MINE1 on reptest2
 Not configured.
4: APPLY1 on reptest1
 Not configured.
Enter number of process to modify it, or "done": [3] 
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): [Linux] 
Enable email notifications about problems (yes/no)? [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/reptest1]
Following settings were pre-filled with defaults or your reloaded settings:
----------------------------------------
[MINE_REMOTE_INTERFACE]: Network remote interface: dbvldemo102:7903 
[MINE_DATABASE]: Database TNS: 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/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/reptest1/log/dbvrep_%N_%D.%E 
[LOG_FILE_TRACE]: Error traces: /home/oracle/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 reptest1
 Host: dbvldemo101, SMTP: NO, SNMP: NO
2: APPLY on reptest2
 Host: dbvldemo102, SMTP: NO, SNMP: NO
3: MINE1 on reptest2
 Host: dbvldemo102, SMTP: NO, SNMP: NO
4: APPLY1 on 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): [Linux] 
Enable email notifications about problems (yes/no)? [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/reptest1]
Following settings were pre-filled with defaults or your reloaded settings:
----------------------------------------
[APPLY_REMOTE_INTERFACE]: Network remote interface: dbvldemo101:7904 
[APPLY_DATABASE]: Database TNS: 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/reptest1/apply1 
[LOG_FILE]: General log file: /home/oracle/reptest1/log/dbvrep_%N_%D.%E 
[LOG_FILE_TRACE]: Error traces: /home/oracle/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 reptest1
 Host: dbvldemo101, SMTP: NO, SNMP: NO
2: APPLY on reptest2
 Host: dbvldemo102, SMTP: NO, SNMP: NO
3: MINE1 on reptest2
 Host: dbvldemo102, SMTP: NO, SNMP: NO
4: APPLY1 on reptest1
 Host: 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).

No Format
bgColorCCC
Select database to hold the DDC settings:
1: reptest1
2: reptest2
Enter database number: [1]

 

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

No Format
bgColorCCC
Created file /home/oracle/reptest1/reptest1-APPLY.ddc.
Created file /home/oracle/reptest1/reptest1-APPLY1.ddc.
Created file /home/oracle/reptest1/reptest1-MINE.ddc.
Created file /home/oracle/reptest1/reptest1-MINE1.ddc.
Created file /home/oracle/reptest1/reptest1-setup.dbvrep.
Created file /home/oracle/reptest1/reptest1-dbsetup_reptest1.sql.
Created file /home/oracle/reptest1/reptest1-dbsetup_reptest2.sql.
Created file /home/oracle/reptest1/reptest1-grants_reptest1.sql.
Created file /home/oracle/reptest1/reptest1-grants_reptest2.sql.
Created file /home/oracle/reptest1/reptest1-onetime.ddc.
Created file /home/oracle/reptest1/start-console.sh.
Created file /home/oracle/reptest1/reptest1-run-dbvldemo101.sh.
Created file /home/oracle/reptest1/reptest1-run-dbvldemo102.sh.
Created file /home/oracle/reptest1/Nextsteps.txt.
Created file /home/oracle/reptest1/reptest1-all.sh.
================================================================================================================================
Dbvisit Replicate wizard completed
Script /home/oracle/reptest1/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

 

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

No Format
bgColorCCC
oracle@dbvldemo101[/home/oracle/reptest1]: ./reptest1-all.sh 
Setting up Dbvisit Replicate configuration
Configure database reptest1...
This check fails if the DBID is not the expected one...

Ok, check passed.
Configure database reptest2...
This check fails if the DBID is not the expected one...

Ok, check passed.
Object grants for database reptest1...
Object grants for database reptest2...
Setting up the configuration
Initializing......done
WARN-1850: No DDC DB available, dictionary table does not exist.
DDC loaded from database (0 variables).
Dbvisit Replicate version 2.x.x.x
Copyright (C) Dbvisit Software Limited. All rights reserved.
DDC file /home/oracle/reptest1/reptest1-onetime.ddc loaded.
MINE: Cannot determine Dbvisit Replicate dictionary version. (no dictionary exists)
APPLY: Cannot determine Dbvisit Replicate dictionary version. (no dictionary exists)
dbvrep> set ON_WARNING SKIP
Variable ON_WARNING set to SKIP for process *.
dbvrep> set ON_ERROR EXIT
Variable ON_ERROR set to EXIT for process *.
dbvrep> ENGINE SWITCH_REDOLOG
dbvrep> ENGINE SETUP MINE DROP DICTIONARY
0 dictionary objects dropped.
dbvrep> ENGINE SETUP MINE CREATE DICTIONARY
dbvrep> ENGINE SETUP MINE LOAD DICTIONARY
Supplemental logging on database set.
Loading dictionary table DBRSCOL$
Loading dictionary table DBRSIND$
Loading dictionary table DBRSOBJ$
Loading dictionary table DBRSTAB$
Loading dictionary table DBRSUSER$
Loading dictionary table DBRSV_$DATABASE
dbvrep> ENGINE SETUP APPLY DROP DICTIONARY
0 dictionary objects dropped.
dbvrep> ENGINE SETUP APPLY CREATE DICTIONARY
dbvrep> ENGINE SETUP APPLY LOAD DICTIONARY
dbvrep> ENGINE PREPARE_DP SETUP CLEAR
dbvrep> ENGINE SETUP PAIR MINE AND APPLY
ID of mine proces is F8908CFE-F408-11E2-ABE7-37F589F7C5BA. If not using DDC in database, set MINE_UNIQUE_ID to this value.
1 applier SCN set.
dbvrep> SET APPLY.INSTANTIATE_SCN NOW
Variable INSTANTIATE_SCN set to NOW for process APPLY.
dbvrep> ENGINE SUPPLEMENTAL LOGGING SCHEMA TEST1 ENABLE PRIMARY KEY
dbvrep> ENGINE SUPPLEMENTAL LOGGING TABLE AVI.EMP ENABLE PRIMARY KEY
dbvrep> ENGINE SWITCH_REDOLOG
dbvrep> ENGINE WAIT_SCN_FLIP
Waited 3 seconds until scn_to_timestamp changed.
dbvrep> #single-scn instantiation: lock all tables and schemas
dbvrep> ENGINE LOCK TABLES AVI.EMP
Locking all tables.
Lock done.
dbvrep> ENGINE LOCK SCHEMAS TEST1
Locking all schemas.
Lock done.
dbvrep> #single-scn instantiation: unlock all tables and schemas, but keep the SCN
dbvrep> ENGINE LOCK RELEASE LOCKS
dbvrep> 
dbvrep> #prepare the tables (we use OFFLINE as neither MINE not APPLY is running; with OFFLINE we won't wait on network timeout)
dbvrep> PREPARE OFFLINE SCHEMA TEST1
Table TEST1.DEPT instantiated at SCN 7849244
Table TEST1.EMP instantiated at SCN 7849244
dbvrep> PREPARE OFFLINE TABLE AVI.EMP
Table AVI.EMP instantiated at SCN 7849244
dbvrep> #single-scn instantiation: unlock all tables and schemas, forget the SCN (so it does not affect any further PREPARE
statements)
dbvrep> ENGINE LOCK CLEAR SCN
dbvrep> ENGINE SWITCH_REDOLOG
dbvrep> #prepare script for instantiation
dbvrep> ENGINE PREPARE_DP WRITE DP_NETWORKLINK DIRECTORY DATA_PUMP_DIR FILE /home/oracle/reptest1/APPLY.sh DBLINK reptest1 USERID
SYSTEM/password@reptest2
Created Data Pump script /home/oracle/reptest1/APPLY.sh, using network import.
dbvrep> 
dbvrep> # Configuring non-default processes
dbvrep> choose process MINE1
Process type MINE set to: MINE1.
dbvrep> choose process APPLY1
Process type APPLY set to: APPLY1.
dbvrep> ENGINE SWITCH_REDOLOG
dbvrep> ENGINE SETUP MINE LOAD DICTIONARY
Supplemental logging on database set.
Loading dictionary table DBRSCOL$
Loading dictionary table DBRSIND$
Loading dictionary table DBRSOBJ$
Loading dictionary table DBRSTAB$
Loading dictionary table DBRSUSER$
Loading dictionary table DBRSV_$DATABASE
dbvrep> ENGINE SETUP APPLY LOAD DICTIONARY
dbvrep> ENGINE PREPARE_DP SETUP CLEAR
dbvrep> ENGINE SETUP PAIR MINE AND APPLY
ID of mine proces is 0695067C-F409-11E2-ABE7-37F589F7C5BA. If not using DDC in database, set MINE_UNIQUE_ID to this value.
1 applier SCN set.
dbvrep> SET APPLY1.INSTANTIATE_SCN NOW
Variable INSTANTIATE_SCN set to NOW for process APPLY1.
dbvrep> ENGINE SUPPLEMENTAL LOGGING SCHEMA TEST1 ENABLE PRIMARY KEY
dbvrep> ENGINE SUPPLEMENTAL LOGGING TABLE AVI.EMP ENABLE PRIMARY KEY
dbvrep> ENGINE SWITCH_REDOLOG
dbvrep> ENGINE WAIT_SCN_FLIP
Waited 2 seconds until scn_to_timestamp changed.
dbvrep> #single-scn instantiation: lock all tables and schemas
dbvrep> ENGINE LOCK TABLES AVI.EMP
Locking all tables.
Lock done.
dbvrep> ENGINE LOCK SCHEMAS TEST1
Locking all schemas.
Lock done.
dbvrep> #single-scn instantiation: unlock all tables and schemas, but keep the SCN
dbvrep> ENGINE LOCK RELEASE LOCKS
dbvrep> 
dbvrep> #prepare the tables (we use OFFLINE as neither MINE not APPLY is running; with OFFLINE we won't wait on network timeout)
dbvrep> PREPARE OFFLINE SCHEMA TEST1
Table TEST1.DEPT instantiated at SCN 7830009
Table TEST1.EMP instantiated at SCN 7830009
dbvrep> PREPARE OFFLINE TABLE AVI.EMP
Table AVI.EMP instantiated at SCN 7830009
dbvrep> #single-scn instantiation: unlock all tables and schemas, forget the SCN (so it does not affect any further PREPARE
statements)
dbvrep> ENGINE LOCK CLEAR SCN
dbvrep> ENGINE SWITCH_REDOLOG
dbvrep> #prepare script for instantiation
dbvrep> ENGINE PREPARE_DP WRITE DP_NETWORKLINK DIRECTORY DATA_PUMP_DIR FILE /home/oracle/reptest1/APPLY1.sh DBLINK reptest2
USERID SYSTEM/password@reptest1
Created Data Pump script /home/oracle/reptest1/APPLY1.sh, using network import.
dbvrep> create ddcdb from ddcfile
DDC loaded into database (291 variables).
dbvrep> set ON_WARNING SKIP
Variable ON_WARNING set to SKIP for process *.
dbvrep> set ON_ERROR SKIP
Variable ON_ERROR set to SKIP for process *.
OK-0: Completed, but some operation(s) raised warnings and/or errors.
These steps are required after the reptest1-all.sh script runs:
1) Create the necessary directory(ies) on the servers:
dbvldemo102: /home/oracle/reptest1
2) Copy the DDC files to the server(s) where the processes will run:
dbvldemo102: /home/oracle/reptest1/reptest1-APPLY.ddc
dbvldemo101: /home/oracle/reptest1/reptest1-APPLY1.ddc
dbvldemo101: /home/oracle/reptest1/reptest1-MINE.ddc
dbvldemo102: /home/oracle/reptest1/reptest1-MINE1.ddc
3) Review that path to dbvrep executable is correct in the run scripts:
/home/oracle/reptest1/reptest1-run-dbvldemo101.sh
/home/oracle/reptest1/reptest1-run-dbvldemo102.sh
4) Copy the run script to the server(s) where the processes will run:
/home/oracle/reptest1/reptest1-run-dbvldemo101.sh
/home/oracle/reptest1/reptest1-run-dbvldemo102.sh
5) Ensure firewall is open for listen interfaces 0.0.0.0:7902, 0.0.0.0:7904, 0.0.0.0:7901, 0.0.0.0:7903 used by the processes.
6) Make sure the data on apply are in sync as of time when setup was run.
Scripts for Data Pump/export/DDL were created as requested:
/home/oracle/reptest1/APPLY.sh
/home/oracle/reptest1/APPLY1.sh
Create referenced database links (if any) before running the scripts.
7) Start the replication processes on all servers:
/home/oracle/reptest1/reptest1-run-dbvldemo101.sh
/home/oracle/reptest1/reptest1-run-dbvldemo102.sh
8) Start the console to monitor the progress:
/home/oracle/reptest1/start-console.sh
The above list is stored in /home/oracle/reptest1/Nextsteps.txt.

** The above steps are very important to follow one by one. This includes copying of files the wizard created to the target host.

Running scripts from Step #6 is necessary as well.

Start replication by running the scripts ( reptest1-run-dbvldemo101.sh and reptest1-run-dbvldemo102.sh) has commands to start both a MINE and APPLY on each server.


Dbvisit Replicate command console

The console will display both replication pairs simultaneously.

No Format
bgColorCCC
MINE IS running. Currently at plog 481 and SCN 7855698 (07/24/2013 14:39:46).
APPLY IS running. Currently at plog 481 and SCN 7855694 (07/24/2013 14:39:45).
MINE1 IS running. Currently at plog 319 and SCN 7836453 (07/24/2013 14:24:54).
APPLY1 IS running. Currently at plog 319 and SCN 7836451 (07/24/2013 14:24:54).
Progress of replication reptest1:MINE->APPLY: total/this execution
----------------------------------------------------------------------------------------------------------------------
AVI.EMP: 100% Mine:14/14 Unrecov:0/0 Applied:14/14 Conflicts:0/0 Last:24/07/2013 14:23:49/OKTEST1.EMP: 100% Mine:14/14 Unrecov:0/0 Applied:14/14 Conflicts:0/0 Last:24/07/2013 14:23:34/OKTEST1.DEPT: 100% Mine:4/4 Unrecov:0/0 Applied:4/4 Conflicts:0/0 Last:24/07/2013 14:23:39/OK
----------------------------------------------------------------------------------------------------------------------
3 tables listed.
Progress of replication reptest1:MINE1->APPLY1: total/this execution
----------------------------------------------------------------------------------------------------------------------
TEST1.EMP: 100% Mine:14/14 Unrecov:0/0 Applied:14/14 Conflicts:0/0 Last:24/07/2013 14:39:06/OK
TEST1.DEPT: 100% Mine:4/4 Unrecov:0/0 Applied:4/4 Conflicts:0/0 Last:24/07/2013 14:39:21/OK
AVI.EMP: 100% Mine:14/14 Unrecov:0/0 Applied:14/14 Conflicts:0/0 Last:24/07/2013 14:39:41/OK
----------------------------------------------------------------------------------------------------------------------
----
0 tables listed.

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.

...


3 tables listed. 

 

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.