Basic Commands
All keywords are case-insensitive.
The following list of commands is meant to be an overview of basic and most used Dbvisit Replicate commands. For details (and the full list of commands) see Full Command-Line Reference.
Managing the processes
There is no 'Start process_name' command.
The processes cannot be started from the dbvrep console. Start the process from the command line using the --daemon option instead.
[oracle@src ~]$ dbvrep --daemon --ddcfile /home/oracle/TESTSUITE1/TESTSUITE1-MINE.ddc start MINE Initializing......done DDC loaded from database (230 variables). Dbvisit Replicate version Copyright (C) Dbvisit Software Limited. All rights reserved. DDC file /home/oracle/TESTSUITE1/TESTSUITE1-MINE.ddc loaded. Starting process MINE...started
SHUTDOWN process_name
Connect to MINE/APPLY/FETCHER and request it to shut down.
SHUTDOWN ALL means requesting all processes defined in DDC to shut down.
dbvrep> shutdown all Dbvisit Replicate APPLY process shutting down. Dbvisit Replicate FETCHER process shutting down. Dbvisit Replicate MINE process shutting down.
PAUSE process_name
Connect to the FETCHER/MINE/APPLY process and pause the process.
dbvrep> pause apply Apply requested to pause
RESUME process_name
Connect to the FETCHER/MINE/APPLY process and resume the process.
dbvrep> resume apply Apply requested to resume
Managing conflicts
LIST CONFLICT
List the current conflict(s). This information is obtained from Dbvisit Replicate internal table DBRSAPPLY_CONFLICT_LOG on the APPLY side.
dbvrep> list conflict current Information for conflict 8576010028511: Table: SCOTT.CONF at transaction 0009.02f.00003ffc at SCN 29913656 SQL text (with replaced bind values): insert into SCOTT."CONF" (ID,VALUE) values (3, 'c') Error: ORA-00001: unique constraint (SCOTT.PK_ID) violated Handled as: RETRY
After the all conflicts were resolved:
dbvrep> list conflict last Information for conflict 8576010038761: Table: SCOTT.CONF at transaction 0002.000.00004102 at SCN 29918665 SQL text (with replaced bind values): insert into SCOTT."CONF" (ID,VALUE) values (6, 'f') Error: ORA-00001: unique constraint (SCOTT.PK_ID) violated Handled as: RETRY Resolved at: 15.12.2012 01:00:34 Resolved as: STATEMENT IGNORED
In 2-way replication if there is a conflict with APPLY1, then the CHOOSE REPLICATION command first has to be issued before the list conflict command will list the actual conflict of the APPLY1 process. See the CHOOSE REPLICATION command.
RESOLVE
Contacts APPLY and resolves current conflict.
dbvrep> resolve conflict 8576010038761 as ignore Conflict resolution set. OR dbvrep> resolve conflict 0 as ignore Conflict resolution set.
Managing the replication
LIST PROGRESS
Show tabular overview of MINE/APPLY records processed and conflicts. You can optionally specify a schema to filter the results to a particular database schema (this is source schema if renaming is used). Use ALL to see everything including Dbvisit Replicate internal tables.
dbvrep> list progress Progress of replication TESTSUITE1: total/this execution -------------------------------------------------------------------------------------------------------------------------------------------- SCOTT.CONF: 100% Mine:4/4 Unrecov:0/0 Applied:4/4 Conflicts:0/0 Last:15/12/2012 03:02:53/OK SCOTT.CONF2: 100% Mine:6/6 Unrecov:0/0 Applied:6/6 Conflicts:0/0 Last:15/12/2012 03:02:53/OK -------------------------------------------------------------------------------------------------------------------------------------------- 2 tables listed.
LIST STATS
Display statistics for number of rows processed/minute and/or lag between MINE and APPLY. The lag can be displayed in terms of time or SCN difference; the number of rows per minute can be shown globally or for specified table.
By default, the number of rows processed/minute represents APPLY performance; use LIST STATS TOTAL MINE to see MINE statistics.
dbvrep> list stats total APPLY: Cumulative totals for all tables: *** Total statistics since 15.12.2012 02:26:15 (last 24 hours) *** Total inserts/minute: 659.20 Total updates/minute: 5.99 Total deletes/minute: 0.00 Total operations/minute: 665.19 Total commits/minute: 18.64 Total rollbacks/minute: 18.64 *** Total statistics since 15.12.2012 03:57:13 (last 1 hour) *** Total inserts/minute: 0.08 Total updates/minute: 0.08 Total deletes/minute: 0.00 Total operations/minute: 0.16 Total commits/minute: 22.13 Total rollbacks/minute: 22.13 *** Total statistics since 15.12.2012 04:53:15 (last 5 minutes) *** Total inserts/minute: 0.00 Total updates/minute: 0.00 Total deletes/minute: 0.00 Total operations/minute: 0.00 Total commits/minute: 24.50 Total rollbacks/minute: 24.50 *** Total statistics since 15.12.2012 02:26:15 (since last started) *** Total inserts/minute: 659.20 Total updates/minute: 5.99 Total deletes/minute: 0.00 Total operations/minute: 665.19 Total commits/minute: 18.64 Total rollbacks/minute: 18.64 *** Total statistics since 15.12.2012 02:26:15 (whole history) *** Total inserts/minute: 659.20 Total updates/minute: 5.99 Total deletes/minute: 0.00 Total operations/minute: 665.19 Total commits/minute: 18.64 Total rollbacks/minute: 18.64
PREPARE
This adds tables or schemas to the replication. Prepares a schema/table for replication and declares that their content is in sync as of now. If a schema is prepared and DDL replication is enabled, new tables created in this schema in future will be also prepared and replicated.
Create a new schema on both Source and Target database.
SQL> conn sys/oracle@src as sysdba Connected. SQL> create user new_schema identified by new_schema; User created. SQL> grant connect, resource to new_schema; Grant succeeded. SQL> conn sys/oracle@trg as sysdba Connected. SQL> create user new_schema identified by new_schema; User created. SQL> grant connect, resource to new_schema; Grant succeeded.
Prepare the schema:
dbvrep> prepare schema new_schema Connecting to running mine [new_schema]: [Schema prepared (2 internal records).]
The PREPARE command enables DDL replication unless NODDL option is specified. Therefore a new table will be automatically prepared and replicated to the Target database:
SQL> conn new_schema/new_schema@src Connected. SQL> create table tab1 (i number primary key, a varchar2(5)); Table created. SQL> insert into tab1 values (1, 'a'); 1 row created. SQL> commit; Commit complete.
dbvrep> list progress Progress of replication TESTSUITE1: total/this execution ------------------------------------------------------------------------------------------------------------------ NEW_SCHEMA.TAB1: 100% Mine:1/1 Unrecov:0/0 Applied:1/1 Conflicts:0/0 Last:18/12/2012 14:36:10/OK ------------------------------------------------------------------------------------------------------------------ 1 tables listed.
It's not necessary to replicate the whole schema. Dbvisit Replicate can also replicate individual tables.
There are some prerequisites to preparing the table. The table needs to exist on both the source and target, appropriate privileges have to be given to the Dbvisit Replicate owner and historical data needs to be loaded to the target table. For details please see Manually Replicating new objects (adding new tables).
dbvrep> prepare table oe.promotions Connecting to running apply [oe.promotions]: [Apply table added.] Connecting to running mine [oe.promotions]: [Table prepared (4 internal records).] Table oe.promotions instantiated at SCN 33550622
SQL> insert into oe.promotions values (5, 'test promo');
dbvrep> list progress Progress of replication TESTSUITE1: total/this execution -------------------------------------------------------------------------------------------------------------------------------------------- OE.PROMOTIONS: 100% Mine:1/1 Unrecov:0/0 Applied:1/1 Conflicts:0/0 Last:21/12/2012 02:57:51/OK -------------------------------------------------------------------------------------------------------------------------------------------- 1 tables listed.
UNPREPARE
Removes tables or schemas from the replication. Unprepares a schema/table for replication and declares that this object should no longer be replicated.
dbvrep> unprepare table oe.promotions dbvrep> unprepare schema new_schema dbvrep>
LIST PREPARE
Shows a list of prepared tables and schemas.
Managing the settings
SET
Sets configuration variable in memory and DDC DB. This setting will be permanent. See memory_set for setting in memory only and which are not permanent.
dbvrep> set MINE.MINE_PLOG = /home/oracle/TESTSUITE1/mine/%S.%E Variable MINE_PLOG set to /home/oracle/TESTSUITE1/mine/%S.%E for process MINE.
SHOW
With no parameter or with ALL, shows all configuration variables, as they are seen by current process. It does not reread DDC file nor DDC DB to update the settings.
With variable, shows variable value. (For * and also for all processes.)
dbvrep> show setup_script_path MINE.SETUP_SCRIPT_PATH = /home/oracle/TESTSUITE1 FETCHER.SETUP_SCRIPT_PATH = /home/oracle/TESTSUITE1 *.SETUP_SCRIPT_PATH = APPLY.SETUP_SCRIPT_PATH = /home/oracle/TESTSUITE1
HELP
Shows general help, help for specific command or help for a variable.
dbvrep> help list LIST: Reports. LIST MINE|APPLY REDOLOGS|PLOGS: Display status of plogs and redologs on mine/apply. LIST PROGRESS [schema | PLSQL]: show table of current progress of mine/apply. This can be shown on-line in the status bar by setting DDC variable STATUS_BAR to 'LIST' or 'STATUS+LIST'; full list of PL/SQL replication is stored in DBRSAPPLY_DDL_HISTORY. LIST PREPARE: show tables prepared for replication. LIST OBSOLETE REDO [THREAD thread]: show which redo logs are no longer needed by mine. LIST CONFLICT { id|CURRENT|LAST }: show information about conflict (current one, last one or by specified id). LIST STATUS: show status bar text. LIST STATS {ALL|TIME|SCN|TOTAL|TOTAL mine/apply | schema.table }: list statistics for all tables or specified table - number of operations per minute and/or process lags in seconds or SCNs.
2-way or One-to-many replication
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 or one-to-many replication where there are multiple processes such as MINE, APPLY, MINE1 and APPLY1.
The CHOOSE REPLICATION command selects all processes for the indicated replication (so both MINE and APPLY processes).
Example:
dbvrep> CHOOSE REPLICATION MINE1
The above command will choose the replication pair that is associated with MINE1. Typically this is MINE1->APPLY1.
The CHOOSE REPLICATION command is needed prior to issuing commands to list conflicts, resolve conflicts and set conflicts with the APPLY1 process.