Versions Compared

Key

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

The mine MINE processes imposes a certain load on the source database when parsing the redo logs (CPU and memory). This maybe around 5% and may not be desirable in certain environments. This is when the Fetcher process is very useful. It runs on the source database, reading the redo logs and sending them to mine MINE process, which is running on a different machine.
The only operations the fetcher process does are:

  • queries the source database for the location of the redo logs.
  • repeatedly queries the database to find out when the current log is switched.
  • in case of ASM files, connects to ASM instance and reads the logs using internal PL/SQL API.
  • in case of filesystem files, reads the files from disk using standard system I/O.
  • connects to mine MINE over the network and transfers the redo log files to the mine MINE process.
  • listens for user commands.

All of the resource-consuming work of parsing the redo logs, writing the plogs PLOGS and sending them to apply APPLY is done by the mine MINE process.
The fetcher process is optional and is not needed when the mine MINE runs on the primary server. In that case, the database querying and file reading is done directly by mineMINE.

In Oracle to SQL Server replication,If source Oracle database is running on Linux then setup wizard is executed on target Windows machine where SQL Server database is running. 

...

Note

Keep the TNS_ADMIN unchanged. Here, It is pointing to TNS_ADMIN location on windows but as Fetcher process runs on Linux, this values must be changed later before starting Mine MINE process.

 

Add process information for the MINE process:

...

No Format
bgColorCCC
C:\Users\oracle\Documents\reptest2>reptest2-all.bat
Setting up Dbvisit Replicate configuration
Configure database reptest2...
Configure database mstest...
Msg 3701, Level 11, State 1, Server DBVISIT420\SQLTEST, Line 1
Cannot drop the database 'dbvrep', because it does not exist or you do not have permission.
Object grants for database reptest2...
Object grants for database mstest...
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.33.20896
Copyright (C) Dbvisit Software Limited. All rights reserved.
DDC file C:\Users\oracle\Documents\reptest2\reptest2-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 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 SETUP PAIR MINE AND APPLY
ID of mine proces is 711D0B6C-72FB-1014-A23B-9F2C20638A48. 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> memory_set IGNORE_APPLY_DDL_DIFFERENCES YES
Variable IGNORE_APPLY_DDL_DIFFERENCES set to YES for process *.
dbvrep> ENGINE SUPPLEMENTAL LOGGING TABLE avi.sample ENABLE PRIMARY KEY
dbvrep> ENGINE SWITCH_REDOLOG
dbvrep> #single-scn instantiation: lock all tables and schemas
dbvrep> ENGINE LOCK TABLES avi.sample
Locking all tables.
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 TABLE avi.sample NODDL RENAME TO
w420g.dbo.sample
Table avi.sample instantiated at SCN 19263503
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 DDL_FILE FILE
C:\Users\oracle\Documents\reptest2\APPLY.sql USERID
SYSTEM/odb10g@reptest2password@reptest2
Created DDL script C:\Users\oracle\Documents\reptest2\APPLY.sql.
dbvrep> create ddcdb from ddcfile
DDC loaded into database (220 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.
These steps are required after the reptest2-all.bat script runs:
1) Create the necessary directory(ies) on the servers:
dbvldemo102: /home/oracle/reptest2
2) Copy the DDC files to the server(s) where the processes will run:
dbvisit420: C:\Users\oracle\Documents\reptest2\reptest2-APPLY.ddc
dbvldemo102: C:\Users\oracle\Documents\reptest2\reptest2-FETCHER.ddc
dbvisit410: C:\Users\oracle\Documents\reptest2\reptest2-MINE.ddc
3) Review that path to dbvrep executable is correct in the run scripts:
C:\Users\oracle\Documents\reptest2\reptest2-run-dbvisit410.bat
C:\Users\oracle\Documents\reptest2\reptest2-run-dbvisit420.bat
C:\Users\oracle\Documents\reptest2\reptest2-run-dbvldemo102.sh
4) Review and run the scripts for Windows to create services (run with Administrator privileges):
C:\Users\oracle\Documents\reptest2\reptest2-win_services-dbvisit410.bat
C:\Users\oracle\Documents\reptest2\reptest2-win_services-dbvisit420.bat

5) Copy the run script to the server(s) where the processes will run:
C:\Users\oracle\Documents\reptest2\reptest2-run-dbvisit410.bat
C:\Users\oracle\Documents\reptest2\reptest2-run-dbvisit420.bat
C:\Users\oracle\Documents\reptest2\reptest2-run-dbvldemo102.sh
6) Ensure firewall is open for listen interfaces 0.0.0.0:7903, 0.0.0.0:7901, 0.0.0.0:7902 used by the processes.
7) 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:
C:\Users\oracle\Documents\reptest2\APPLY.sql
Create referenced database links (if any) before running the scripts.
8) Start the replication processes on all servers:
C:\Users\oracle\Documents\reptest2\reptest2-run-dbvisit410.bat
C:\Users\oracle\Documents\reptest2\reptest2-run-dbvisit420.bat
C:\Users\oracle\Documents\reptest2\reptest2-run-dbvldemo102.sh
9) Start the console to monitor the progress:
C:\Users\oracle\Documents\reptest2\start-console.bat
The above list is stored in C:\Users\oracle\Documents\reptest2\Nextsteps.txt.
Press any key to continue . . .

...

Align

As indicated by the Nextsteps.txt , the replication can be started by following the steps that are listed above. 
Starting the replication does the following:

  • Starts the FETCHER, MINE and APPLY process in the background
  • Creates the necessary log and plog PLOG directories.
  • Once the APPLY and MINE process has been started, there is in INITIALIZATION process. This replicates the contents of the Dbvisit Replication repository from the source to the target database. The replication can not be started until this phase has been completed.
Note

Edit *-Fetcher.DDC file on Linux and change TNS_ADMIN value before starting Fetcher process.

...