Versions Compared

Key

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

 

The following example shows Oracle to MySQL replication. In this example, Oracle and MySQL are running on a single server. 
Environment: Virtualbox using Pre-Built Developer VMs (for Oracle VM VirtualBox)
Template name: Database App Development VM
Oracle Linux 5 (32bit)
Oracle RDBMS 11gR2
MySQL Server 5.0.77Start Dbvisit ReplicateBefore starting replication, source and target environment must be in sync. If source environment is not empty then source data must be loaded into target (MySQL) database. This can be achived either by exporting and importing csv files from Oracle to MySQL or by using any available data migration tools such as MySQL Workbench

Setup Wizard Example

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

Server/DatabaseName
Source databasereptest1 (Oracle)
Source serverdbvldemo101 (Linux)
Target databasereptest1 (MySQL)
Target serverdbvldemo102 (Linux)
TNS alias for source database   reptest1

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

Section
Column
width5%

 

Column
width95%
Panel
bgColorCCC
$ dbvrep
Initializing.....done
Dbvisit Replicate 
Copyright (C) Dbvisit Software Limited. All rights reserved.
No DDC file loaded.
Run "setup wizard" to start the configuration wizard or try "help" to see all
commands available.
dbvrep>

Start the setup wizard and follow the instructions. Most of the defaults can be chosen. Note that MySQL is entered as the target database:

Section
Column
width5%

 

Column
width95%
Panel
bgColorCCC
$ oracle@dbvldemo101[/usr/local/dbvisit/replicate]: ./dbvrep
Initializing......done
Dbvisit Replicate  Replicate version 2.4.21.2687
Copyright (C) Dbvisit Software Limited. All rights reserved.
No DDC file loaded.
Run "setup wizard" to start the configuration wizard or try "help" to see all
commands available.
dbvrep>

...

.

...

Section
Column
width5%

 

Column
width95%
CCC
Panel
bgColor
dbvrep> setup wizard 
This wizard configures Dbvisit Replicate to start a replication process.
The setup wizard creates configuration scripts, which need to be run after the wizard ends. No changes to the databases are made
before that.
The progress is saved every time a list of databases, replications, etc. is shown. It will be re-read if wizard is restarted and
the same DDC name and script path is selected.
Run the wizard now? [yes]
Accept end-user license agreement? (view/yes/no) [view] yes
Before starting the actual configuration, some basic information is needed. The DDC name and script path determines where all
files created by the wizard go (and where to reread them if wizard is rerun) and the license key determines which options are
available for this configuration.
(DDC_NAME) - Please enter a name for this replication (suggestion: use the name of the source database): [] reptest1
(LICENSE_KEY) - Please enter your license key (or just enter "(trial)"): [(trial)]
(SETUP_SCRIPT_PATH) - Please enter a directory for location of configuration scripts on this machine: [/home/oracle/reptest1]
Network configuration files were detected on this system in these locations:
/u01/app/oracle/product/11.2.0/dbhome_1/network/admin
<n directory for this machine: [/u01/app/oracle/product/11.2.0/dbhome_1/network/admin]
Read 2 described databases from previous wizard run.
Step 1 - Describe databases
========================================
The first step is to describe databases used in the replication. There are usually two of them (source and target); however,
there can be just one (when source and target is the same) or more than two (one-to-many or other complex configurations.)
Following databases are now configured:
1: Oracle reptest1, SYS/***, SYSTEM/***, dbvrep/***, USERS/TEMP, dbvrep/, ASM:NO, TZ: +00:00
2: MySQL database=dbvrep;host=dbvldemo102, root/***, root/***, root/***, /, dbvrep/, ASM:n/a, TZ:
Enter number of database to modify it, or "add", or "done": [done]
oracle@dbvldemo101[/usr/local/dbvisit/replicate]: 
oracle@dbvldemo101[/usr/local/dbvisit/replicate]: cd
oracle@dbvldemo101[/home/oracle]: cd reptest1/
oracle@dbvldemo101[/home/oracle/reptest1]: ls
reptest1-wizard-databases.cfg reptest1-wizard-pairs.cfg reptest1-wizard-tables.cfg
oracle@dbvldemo101[/home/oracle/reptest1]: rm -r *
oracle@dbvldemo101[/home/oracle/reptest1]: ls
oracle@dbvldemo101[/home/oracle/reptest1]: cd
oracle@dbvldemo101[/home/oracle]: cd /usr/local/dbvisit/replicate/
oracle@dbvldemo101[/usr/local/dbvisit/replicate]: ./dbvrep
Initializing......done
Dbvisit Replicate version 2.4.21.2687
Copyright (C) Dbvisit Software Limited. All rights reserved.
No DDC file loaded.
Run "setup wizard" to start the configuration wizard or try "help" to see all commands available.
dbvrep> setup wizard
This wizard configures Dbvisit Replicate to start a replication process.
The setup wizard creates configuration scripts, which need to be run after the wizard ends. No changes to the databases are made
before that.
The progress is saved every time a list of databases, replications, etc. is shown. It will be re-read if wizard is restarted and
the same DDC name and script path is selected.
Run the wizard now? [yes]
Accept end-user license agreement? (view/yes/no) [view] yes
Before starting the actual configuration, some basic information is needed. The DDC name and script path determines where all
files created by the wizard go (and where to reread them if wizard is rerun) and the license key determines which options are
available for this configuration.
(DDC_NAME) - Please enter a name for this replication (suggestion: use the name of the source database): [] reptest1
(LICENSE_KEY) - Please enter your license key (or just enter "(trial)"): [(trial)]
(SETUP_SCRIPT_PATH) - Please enter a directory for location of configuration scripts on this machine: [/home/oracle/reptest1]
Network configuration files were detected on this system in these locations:
/u01/app/oracle/product/11.2.0/dbhome_1/network/admin
<n directory for this machine: [/u01/app/oracle/product/11.2.0/dbhome_1/network/admin]
Step 1 - Describe databases
========================================
The first step is to describe databases used in the replication. There are usually two of them (source and target); however,
there can be just one (when source and target is the same) or more than two (one-to-many or other complex configurations.)
Let's configure the database, describing it's type, connectivity, user names etc.
What type of database is this? (Oracle/MySQL/MSSQL): [Oracle]
Please enter database TNS alias: [] reptest1
Please enter SYSDBA user name: [SYS]
Please enter password for this user: [change_on_install] ******
Please enter user with DBA role: [SYSTEM]
Please enter password for this user: [manager] ******
Connecting to database reptest1 as SYSTEM to query list of tablespaces and to detect ASM (by looking whether any redo logs or
archived logs are stored in ASM).
Enter the Dbvisit Replicate owner and apply user (this user will be created by this script): [dbvrep]
Please enter password for this user: [dbvpasswd]
Permanent tablespaces detected on the database: DATA, USERS.
Please enter default permanent tablespace for this user: [DATA] USERS
Temporary tablespaces detected on the database: TEMP.
Please enter default temporary tablespace for this user: [TEMP]
Following databases are now configured:
1: Oracle reptest1, SYS/***, SYSTEM/***, dbvrep/***, USERS/TEMP, dbvrep/, ASM:NO, TZ: +00:00
Enter number of database to modify it, or "add", or "done": [add]
Let's configure the database, describing it's type, connectivity, user names etc.
What type of database is this? (Oracle/MySQL/MSSQL): [Oracle] MySQL
Please enter database hostname: [localhost] dbvldemo102
Please enter user name of an administrator: [root]
Please enter password for this user: [] ******
Enter the user to log into apply database: [root]
Please enter password for this user: [password] ******
Enter the database (schema) to use for Dbvisit Replicate internal data (will be created in the script): [dbvrep]
Following databases are now configured:
1: Oracle reptest1, SYS/***, SYSTEM/***, dbvrep/***, USERS/TEMP, dbvrep/, ASM:NO, TZ: +00:00
2: MySQL database=dbvrep;host=dbvldemo102, root/***, root/***, root/***, /, dbvrep/, ASM:n/a, TZ:
Enter number of database to modify it, or "add", or "done": [done]
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: database=dbvrep;host=dbvldemo102 (MySQL) (cannot be source, is not Oracle)
Select source database: [1]
Select target database: [2]
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]
Following replication pairs are now configured:
1: reptest1 (Oracle) ==> database=dbvrep;host=dbvldemo102 (MySQL), DDL: no, fetcher: no, process suffix: (no suffix), network:
LAN, prepare type: single-scn, data load: ddl_file
Enter number of replication pair to modify it, or "add", or "done": [done]
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) ==> database=dbvrep;host=dbvldemo102 (MySQL), DDL: no, suffix: (no suffix), 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.sample
Selected tables: AVI.SAMPLE
Add more tables or schemas? (YES/NO) [NO]
Specify rename name, filter condition, CDC/Audit/ETL for any of the specified tables (yes/no): [no] yes
Rename SCHEMA name for AVI.SAMPLE (empty means no rename): [] reptest1
Rename TABLE name for AVI.SAMPLE (empty means no rename): [] sample
Filter the data to be replicated? If yes, use single condition for ALL DML operations or use CUSTOM conditions for each operation? (NO/ALL/CUSTOM) [NO]
Configure change data capture for change auditing or real-time BI? (NO/YES) [NO]
Following tables are defined for replication pairs:
1: reptest1 (Oracle) ==> database=dbvrep;host=dbvldemo102 (MySQL), DDL: no, suffix: (no suffix), prepare: single-scn
AVI.SAMPLE => reptest1.sample
Enter number of replication pair to modify it, or "done": [done]
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 database=dbvrep;host=dbvldemo102
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] no
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 database=dbvrep;host=dbvldemo102
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] no
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 MySQL connection string: database=dbvrep;host=dbvldemo102
[TNS_ADMIN]: tnsnames.ora path: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin
[APPLY_USER]: Dbvisit Replicate database username: root
[APPLY_PASSWORD]: Dbvisit Replicate database password: ******
[APPLY_SCHEMA]: Dbvisit Replicate database (schema): dbvrep
[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 database=dbvrep;host=dbvldemo102
Host: dbvldemo102, SMTP: NO, SNMP: NO
Enter number of process to modify it, or "done": [done]
Created file /home/oracle/reptest1/reptest1-APPLY.ddc.
Created file /home/oracle/reptest1/reptest1-MINE.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_database_dbvrep_host_dbvldemo102.sql.
Created file /home/oracle/reptest1/reptest1-grants_reptest1.sql.
Created file /home/oracle/reptest1/reptest1-grants_database_dbvrep_host_dbvldemo102.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] yes
Setting up Dbvisit Replicate configuration
Configure database reptest1...

...