Versions Compared

Key

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

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.  3rd party products such as MS SSMA or Navicat Premium can (Navicat is recommended only for small tables) can be used to load data from oracle to SQL Server in order to sync source and target environment before initiating replication.

Note

Click here for prerequisite checklist.

 

Setup Wizard Example

This example shows an Oracle-to-SQL Server one-way replication using the following information.

Server/DatabaseName
Source databasereptest2 (Oracle)
Source serverdbvldemo102 (Linux)
Target databasew420g (SQL Server)
Target serverdbvisit420 (Windows 2008)
TNS alias for source database   reptest2
System DSNmstest

...

First of all open the Dbvisit Reporting Replicate command console from the start menu and execute 'setup wizard' command.

...

Running the reptest2-all.sh bat script will configure and initiate the replication. It does the following:

  • Create the Dbvisit Replicate schemas in the source and target databases.
  • Grant the necessary privileges to the Dbvisit Replicate schema.
  • Create the Dbvisit Replicate repository in the source and target databases.
  • Load the Dbvisit Replicate configuration file (DDC) into the Dbvisit Replicate repository. The DDC file is like the init.ora for Oracle and contains the settings for the replication.
  • Prepare the schemas or objects for replication.

Example of running the reptest1the reptest2-all.bat

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.20707
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 8EFF00AA-6D9B-1014-B197-EC251B966082. 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 1413199
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 (204 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:
dbvisit420.dbvisitdomain.dbvisit.com: C:\Users\oracle\Documents\reptest2
dbvldemo102: /home/oracle/reptest2
2) Copy the DDC files to the server(s) where the processes will run:
dbvisit420.dbvisitdomain.dbvisit.com: C:\Users\oracle\Documents\reptest2\reptest2-APPLY.ddc
dbvldemo102: 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-dbvisit420.dbvisitdomain.dbvisit.com.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-dbvisit420.dbvisitdomain.dbvisit.com.bat

5) Copy the run script to the server(s) where the processes will run:
C:\Users\oracle\Documents\reptest2\reptest2-run-dbvisit420.dbvisitdomain.dbvisit.com.bat
C:\Users\oracle\Documents\reptest2\reptest2-run-dbvldemo102.sh
6) Ensure firewall is open for listen interfaces 0.0.0.0:7902, 0.0.0.0:7901 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-dbvisit420.dbvisitdomain.dbvisit.com.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 . . .

...

Note

Due to *-run-<servername>.sh is created on Windows environment, Executing this script on Linux can give an error about "dbvrep" executable location.
Please use dos2unix -O <filename> command before executing the script. (or use text editor that can handle windows to linux text - notepad++ etc.)

Starting the console

The dbvrep console can be started by executing start-console.bat script to monitor the real time status of the replication.

...