【GoldenGate】Oracle GoldenGate(一) 安裝與DML單向同步配置
Oracle GoldenGate 安裝與DML單向同步配置
[實驗環境]
Item |
Source System |
Target System |
Platform |
RHEL5.5 |
RHEL5.5 |
Hostname |
lvxinghao1 |
lvxinghao2 |
Database |
Oracle10.2.0.1 |
Oracle 10.2.0.1 |
Character Set |
ZHS16GBK |
ZHS16GBK |
ORACLE_SID |
prod |
test1 |
Listener Name/Port |
LISTENER/1521 |
LISTENER/1521 |
Goldengate User |
ogg |
ogg |
[實施步驟]
1 Download Goldengate 10g
在oracle使用者的環境變數中增加以下一行:
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib
Download URL:
select a Product Pack: Oracle Fusion Middleware
Platform: Linux x86
Choose: Oracle GoldenGate on Oracle v10.1.1.0.0 Media Pack for Linux x86
If to 11g ,Download:
Oracle GoldenGate V11.1.1.0.0 for Oracle10gon Linux x86 (Part V22227-01)
Oracle GoldenGate V11.1.1.0.0 for Oracle11gon Linux x86 (Part V22228-01)
2 Prepare 10gR2 to 10gR2 test environment
Item |
Source System |
Target System |
Platform |
RHEL5.5 |
RHEL5.5 |
Hostname |
lvxinghao1 |
lvxinghao2 |
Database |
Oracle10.2.0.1 |
Oracle 10.2.0.1 |
Character Set |
ZHS16GBK |
ZHS16GBK |
ORACLE_SID |
prod |
test1 |
Listener Name/Port |
LISTENER/1521 |
LISTENER/1521 |
Goldengate User |
ogg |
ogg |
3 Install Goldengate 10g on Linux
3.1 Create install directory and unzip downloaded file on both system
For source system(prod):
[oracle@lvxinghao1 ~]$ mkdir -p /u01/app/ogg
[oracle@lvxinghao1 ~]$ cp ggs_redhatAS40_x86_ora10g_32bit_v10.4.0.19_002.tar /u01/app/ogg
[oracle@lvxinghao1 ~]$ cd /u01/app/ogg
[oracle@lvxinghao1 ogg]$ tar -xvf ggs_redhatAS40_x86_ora10g_32bit_v10.4.0.19_002.tar
For target system(test1):
[oracle@lvxinghao2 ~]$ mkdir -p /u01/app/ogg
[oracle@lvxinghao2 ~]$ cp ggs_redhatAS40_x86_ora10g_32bit_v10.4.0.19_002.tar /u01/app/ogg/
[oracle@lvxinghao2 ~]$ cd /u01/app/ogg
[oracle@lvxinghao2 ogg]$ tar -xvf ggs_redhatAS40_x86_ora10g_32bit_v10.4.0.19_002.tar
3.2 Create sub working directories for Goldengate
For both Source system and Target system:
[oracle@lvxinghao1 ogg]$ /u01/app/ogg/ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 10.4.0.19 Build 002
Linux, x86, 32bit (optimized), Oracle 10 on Sep 17 2009 23:49:42
Copyright (C) 1995, 2009, Oracle and/or its affiliates. All rights reserved.
GGSCI (lvxinghao1) 1> create subdirs
Creating subdirectories under current directory /u01/app/ogg
Parameter files /u01/app/ogg/dirprm: created
Report files /u01/app/ogg/dirrpt: created
Checkpoint files /u01/app/ogg/dirchk: created
Process status files /u01/app/ogg/dirpcs: created
SQL script files /u01/app/ogg/dirsql: created
Database definitions files /u01/app/ogg/dirdef: created
Extract data files /u01/app/ogg/dirdat: created
Temporary files /u01/app/ogg/dirtmp: created
Veridata files /u01/app/ogg/dirver: created
Veridata Lock files /u01/app/ogg/dirver/lock: created
Veridata Out-Of-Sync files /u01/app/ogg/dirver/oos: created
Veridata Out-Of-Sync XML files /u01/app/ogg/dirver/oosxml: created
Veridata Parameter files /u01/app/ogg/dirver/params: created
Veridata Report files /u01/app/ogg/dirver/report: created
Veridata Status files /u01/app/ogg/dirver/status: created
Veridata Trace files /u01/app/ogg/dirver/trace: created
Stdout files /u01/app/ogg/dirout: created
[oracle@lvxinghao2 ogg]$ /u01/app/ogg/ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 10.4.0.19 Build 002
Linux, x86, 32bit (optimized), Oracle 10 on Sep 17 2009 23:49:42
Copyright (C) 1995, 2009, Oracle and/or its affiliates. All rights reserved.
GGSCI (lvxinghao2) 1> create subdirs
Creating subdirectories under current directory /u01/app/ogg
Parameter files /u01/app/ogg/dirprm: created
Report files /u01/app/ogg/dirrpt: created
Checkpoint files /u01/app/ogg/dirchk: created
Process status files /u01/app/ogg/dirpcs: created
SQL script files /u01/app/ogg/dirsql: created
Database definitions files /u01/app/ogg/dirdef: created
Extract data files /u01/app/ogg/dirdat: created
Temporary files /u01/app/ogg/dirtmp: created
Veridata files /u01/app/ogg/dirver: created
Veridata Lock files /u01/app/ogg/dirver/lock: created
Veridata Out-Of-Sync files /u01/app/ogg/dirver/oos: created
Veridata Out-Of-Sync XML files /u01/app/ogg/dirver/oosxml: created
Veridata Parameter files /u01/app/ogg/dirver/params: created
Veridata Report files /u01/app/ogg/dirver/report: created
Veridata Status files /u01/app/ogg/dirver/status: created
Veridata Trace files /u01/app/ogg/dirver/trace: created
Stdout files /u01/app/ogg/dirout: created
Above directories are created for following purpose:
Name |
Purpose |
dirchk |
Checkpoint files |
dirdat |
GoldenGate trails |
dirdef |
Data definition files |
dirprm |
Parameter files |
dirpcs |
Process status files |
dirrpt |
Report files |
dirsql |
SQL script files |
dirtmp |
Temporary files |
3.3 Introduction to the Command Interface
? View HELP summary for all commands
GGSCI> HELP
GGSCI (lvxinghao1) 2> help
GGSCI Command Summary SUBDIRS CREATE SUBDIRS ER INFO ER, KILL ER, LAG ER, SEND ER, STATUS ER, START ER, STATS ER, STOP ER EXTRACT ADD, ALTER, CLEANUP, DELETE, INFO, KILL, LAG, SEND, START, STATS, STATUS, STOP EXTTRAIL ADD, ALTER, DELETE, INFO GGSEVT VIEW MANAGER INFO, REFRESH, SEND, START, STOP, STATUS MARKER INFO PARAMS EDIT, VIEW REPLICAT ADD, ALTER, CLEANUP, DELETE, INFO, KILL, LAG, SEND, START, STATS, STATUS, STOP REPORT VIEW RMTTRAIL ADD, ALTER, DELETE, INFO TRACETABLE ADD, DELETE, INFO TRANDATA ADD, DELETE, INFO Database DBLOGIN, LIST TABLES, ENCRYPT PASSWORD DDL DUMPDDL CHECKPOINTTABLE ADD CHECKPOINTTABLE, DELETE CHECKPOINTTABLE, CLEANUP CHECKPOINTTABLE, INFO CHECKPOINTTABLE Miscellaneous FC, HELP, HISTORY, INFO ALL, INFO MARKER, OBEY, SET, SHELL, SHOW, VERSIONS, !
For help on a specific command, type HELP
Example: HELP ADD REPLICAT |
GGSCI> HELP ALL
? View HELP summary for a COMMAND/ENTITY
GGSCI> HELP ADD EXTRACT
GGSCI (lvxinghao1) 32> help add replicat
Use ADD REPLICAT to create a Replicat group. Unless a special run is specified, ADD REPLICAT creates checkpoints so that processing continuity is maintained from run to run. See the GoldenGate Operations Guide for Windows and UNIX for procedures that include creating Replicat groups.
Syntax:
ADD
REPLICAT {, SPECIALRUN |
, EXTFILE
, EXTTRAIL
[, BEGIN
, EXTSEQNO
[,
CHECKPOINTTABLE
[, PARAMS
[, REPORT
[,
DESC
The name of the Replicat group. Follow these naming conventions: * You can use up to eight ASCII characters, including nonalphanumeric characters such as the underscore (_). Any ASCII character can be used, so long as the operating system allows that character to be in a filename. This is because a group is identified by its associated checkpoint file. * Group names are not case-sensitive. * Use only one word. * Do not use the word port as a group name. However, you can use the string port as part of the group name. * Do not place a numeric value at the end of a group name, such as fin1, fin10, and so forth. You can place a numeric value at the beginning of a group name, such as 1_fin, 1fin, and so forth. ext_1 ex+2t ex!2t
SPECIALRUN Creates a Replicat special run. Either SPECIALRUN, EXTFILE, or EXTTRAIL is required.
EXTFILE
Specifies an extract file that was created with the ADD RMTFILE command.
EXTTRAIL
Specifies a trail that was created with the ADD RMTTRAIL or ADD EXTTRAIL command.
BEGIN
Defines an initial checkpoint in the trail. * To begin replicating changes from when the ADD REPLICAT command was issued, use the NOW argument. * To begin extracting changes from a specific time, use the date-time format of YYYY-MM-DD HH:MM[:SS[.CCCCCC]].
EXTSEQNO
Specifies the sequence number of the file in a trail in which to begin processing data. Specify the sequence number, not any zeroes used for padding. For example, if the trail file is c:\ggs\dirdat\aa000026, you would specify EXTSEQNO 26. By default, processing begins at the beginning of a trail unless this option is used. To use EXTSEQNO, you must also use EXTRBA. Contact GoldenGate Technical Support before using this option.
EXTRBA
Specifies the relative byte address within the trail file specified by EXTSEQNO. Contact GoldenGate Technical Support before using this option.
CHECKPOINTTABLE
Specifies that this Replicat group will write checkpoints to the specified table in the database. Include the owner and table name, as in hr.hr_checkpoint. This argument overrides the default CHECKPOINTTABLE specification in the GLOBALS file. The table must be added with the ADD CHECKPOINTTABLE command.
NODBCHECKPOINT Specifies that this Replicat group will not write checkpoints to a checkpoint table. This argument overrides the default CHECKPOINTTABLE specification in the GLOBALS file.
PARAMS
Specifies a parameter file in a location other than the default of dirprm within the GoldenGate directory. Use the fully qualified path name.
REPORT
Specifies a Replicat report file in a location other than the default of dirrpt within the GoldenGate directory. Use the fully qualified path name.
DESC Specifies a description of the group, such as "Loads ACCOUNT_TAB on Serv2". The description must be within quotes.
Example: ADD REPLICAT sales, EXTTRAIL d:\ggs\dirdat\rt |
GGSCI> HELP ADD EXTTRAIL
GGSCI (lvxinghao1) 33> HELP ADD EXTTRAIL
Use ADD EXTTRAIL to create a trail for online processing on the local system and: * Associate it with an Extract group. * Assign a maximum file size.
Note: If the target database is DB2 running on z/OS and you Will be using a local trail with a Replicat process that reads from This trail on the same machine, do not use ADD EXTTRAIL. Instead, use The ADD RMTTRAIL command. ADD EXTTRAIL is not compatible with Converting data to EBCDIC because it bypasses the Collector process, Which performs the conversion.
Syntax:
ADD EXTTRAIL
The fully qualified path name of the trail. The actual trail name can contain only two characters. GoldenGate appends this name with a six-digit sequence number whenever a new file is created. For example, a trail named /ggs/dirdat/tr would have files named /ggs/dirdat/tr000001, /ggs/dirdat/tr000002, and so forth.
The name of the Extract group to which the trail is bound. Only one Extract process can write data to a trail.
MEGABYTES The maximum size, in megabytes, of a file in the trail. The default is 10.
Example: ADD EXTTRAIL c:\ggs\dirdat\aa, EXTRACT finance, MEGABYTES 20 |
? View your command history
GGSCI> HISTORY
? View a brief informational summary of all processes
GGSCI> INFO ALL
GGSCI (lvxinghao1) 36> info all Program Status Group Lag Time Since Chkpt MANAGER STOPPED |
4 Configure Oracle Database for Goldengate
4.1 Create Goldengate user
Create user ogg for both source system and target system, and grant appropriate privileges.
為源庫和目標庫建立ogg使用者並賦予相應許可權。
For Source System:
[oracle@lvxinghao1 ~]$ sqlplus '/as sysdba'
SYS@ prod>create tablespace tbs_gguser datafile '/u01/app/oracle/oradata/prod/gguser.dbf'
2 size 50m autoextend on;
SYS@ prod>create user ogg identified by ogg default tablespace tbs_gguser
2 temporary tablespace TEMP quota unlimited on tbs_gguser;
SYS@ prod>grant connect,resource to ogg;
SYS@ prod>grant create session,alter session to ogg;
SYS@ prod>grant select any dictionary,select any table to ogg;
SYS@ prod>grant alter any table to ogg;
SYS@ prod>grant flashback any table to ogg;
SYS@ prod>grant execute on dbms_flashback to ogg;
Insert test table and data for Source System:
為源庫建立測試表、插入資料、建立主鍵約束
SYS@ prod>conn scott/tiger
SCOTT@ prod>create table lvxinghao as select * from emp;
SCOTT@ prod>alter table lvxinghao add constraint lxh_empno_pk primary key(empno);
SCOTT@ prod> select * from lvxinghao;
For Target System:
[oracle@lvxinghao2 ~]$ sqlplus '/as sysdba'
SYS@ test1>create tablespace tbs_gguser datafile '/u01/app/oracle/oradata/test1/gguser.dbf'
2 size 50M autoextend on;
SYS@ test1>create user ogg identified by ogg default tablespace tbs_gguser
2 temporary tablespace TEMP1 quota unlimited on tbs_gguser;
SYS@ test1>grant connect, resource to ogg;
SYS@ test1>grant create session, alter session to ogg;
SYS@ test1>grant select any dictionary, select any table to ogg;
SYS@ test1>grant create table to ogg;
Create empty test table and grant DML privilege to Goldengate user:
SYS@ test1>conn scott/tiger
SCOTT@ test1>create table lvxinghao as select * from emp where 1=2;
SCOTT@ test1>alter table lvxinghao add constraint lxh_empno_pk primary key(empno);
SCOTT@ test1>grant insert, update, delete on scott.lvxinghao to ogg;
better operations:grant update any table,delete any table,insert any table to ogg;
4.2 Enable supplemental log mode in source system
Check supplemental log mode is enabled or not by following query:
SYS@ prod>select supplemental_log_data_min from v$database;
SUPPLEMENTAL_LOG_DATA_MIN
--------------------------------------------------
YES
If not, enable it:
SQL> alter database add supplemental log data;
SQL> alter system switch logfile; this operation is very important
4.3 Enable archive log mode in source system
Enable archive log mode:
SYS@ prod> alter system set log_archive_dest_1='location=/disk1/arch1';
SYS@ prod> shutdown immediate
SYS@ prod> startup mount
SYS@ prod> alter database archivelog;
SYS@ prod> alter database open;
Check database archive log information:
SYS@ prod>alter system archive log current;
System altered.
SYS@ prod>archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /disk1/arch1
Oldest online log sequence 19
Next log sequence to archive 21
Current log sequence 21
SYS@ prod>
4.4 Enable force logging mode in source system
Enable force logging mode: in case of "no logging" operations
SYS@ prod> alter database force logging;
Check force logging mode is enabled or not by following query:
SYS@ prod>select force_logging from v$database;
FORCE_LOGGING
--------------------
YES
Enable transaction data change capture for these two tables in Source system:
GGSCI (lvxinghao1) 1> DBLOGIN USERID ogg, PASSWORD ogg
Successfully logged into database.
GGSCI (lvxinghao1) 2> ADD TRANDATA scott.LVXINGHAO
Logging of supplemental redo data enabled for table SCOTT.LVXINGHAO.
Verify that supplemental logging has been turned on for these tables.
GGSCI (lvxinghao1) 3> INFO TRANDATA scott.lvxinghao
Logging of supplemental redo log data is enabled for table SCOTT.LVXINGHAO
5 Configure Goldengate Manager Process
5.1 Configure MGR in source system
Create the Manager parameter file.
[oracle@lvxinghao1 ogg]$ ./ggsci
GGSCI (lvxinghao1) 1> edit params mgr
Use the editor to assign a port. 此埠號對應 對端的pump配置埠號
PORT 7809
PURGEOLDEXTRACTS ./dirdat, USECHECKPOINTS
Start the Manager.
GGSCI (lvxinghao1) 2> start mgr
Verify that the Manager has started.
GGSCI (lvxinghao1) 3> info mgr
Manager is running (IP port lvxinghao1.7809).
5.2 Configure MGR in target system
Create the Manager parameter file.
[oracle@lvxinghao2 ~]$ cd /u01/app/ogg
[oracle@lvxinghao2 ogg]$ ./ggsci
GGSCI (lvxinghao2) 1> edit params mgr
Use the editor to assign a port.
PORT 7809
PURGEOLDEXTRACTS /u01/app/ogg/dirdat, USECHECKPOINTS
Start the Manager.
GGSCI (lvxinghao2) 2> start mgr
Verify that the Manager has started.
GGSCI (lvxinghao2) 3> info mgr
Manager is running (IP port lvxinghao2.7809).
6 Load Initial Data by Direct Load method
6.1 Configure Extract process in source system
Add an Extract process called EINI_1:
GGSCI (lvxinghao1) 4> add extract eini_1 sourceistable
EXTRACT added.
Verify Extract process:
GGSCI (lvxinghao1) 5> info extract *,tasks
EXTRACT EINI_1 Initialized 2014-09-13 16:56 Status STOPPED
Checkpoint Lag Not Available
Log Read Checkpoint Not Available
First Record Record 0
Task SOURCEISTABLE
Edit EINI_1:
GGSCI (lvxinghao1) 6> edit params eini_1
Add:
-- GoldenGate Initial Data Capture
-- for lvxinghao
EXTRACT EINI_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD ogg
RMTHOST lvxingaho2, MGRPORT 7809
RMTTASK REPLICAT, GROUP RINI_1
TABLE scott.lvxinghao;
For chinese support, we should set environment variable “NLS_LANG” in Extract/Pump/Replicat process parameters.
6.2 Configure replicat process in target system
Add initial load delivery process
GGSCI (lvxinghao2) 4> add replicat rini_1,specialrun
REPLICAT added.
Verify result:
GGSCI (lvxinghao2) 5> info replicat *,tasks
REPLICAT RINI_1 Initialized 2014-09-13 17:01 Status STOPPED
Checkpoint Lag 00:00:00 (updated 00:00:27 ago)
Log Read Checkpoint Not Available
Task SPECIALRUN
Edit initial load delivery process RINI_1:.
GGSCI (lvxinghao2) 6> edit params rini_1
Add:
-- GoldenGate Initial Load Delivery
REPLICAT RINI_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
ASSUMETARGETDEFS
USERID ogg, PASSWORD ogg
DISCARDFILE ./dirrpt/RINIaa.dsc, PURGE
MAP scott.*, TARGET scott.*;
Note: In the MAP statement, the first owner/schema is for the source and the second for the target.
6.3 Accomplish Initial Load
Start Initial Load process EINI_1 insource system, then RINI_1 process in target system will be started automatically:
GGSCI (lvxinghao1) 8> start extract eini_1
Sending START request to MANAGER ...
EXTRACT EINI_1 starting
6.4 Verify Initial Load result and process status
GGSCI (lvxinghao1) 9> view report eini_1
2014-09-13 17:04:24 GGS INFO 414 Wildcard resolution set to IMMEDIATE because SOURCEISTABLE is used.
***********************************************************************
Oracle GoldenGate Capture for Oracle
Version 10.4.0.19 Build 002
Linux, x86, 32bit (optimized), Oracle 10 on Sep 18 2009 00:01:59
Copyright (C) 1995, 2009, Oracle and/or its affiliates. All rights reserved.
Starting at 2014-09-13 17:04:24
***********************************************************************
Operating System Version:
Linux
Version #1 SMP Tue Mar 16 22:08:06 EDT 2010, Release 2.6.18-194.el5xen
Node: lvxinghao1
Machine: i686
soft limit hard limit
Address Space Size : unlimited unlimited
Heap Size : unlimited unlimited
File Size : unlimited unlimited
CPU Time : unlimited unlimited
Process id: 4252
Description:
***********************************************************************
** Running with the following parameters **
***********************************************************************
-- GoldenGate Initial Data Capture
-- for LVXINGHAO
EXTRACT EINI_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
Set environment variable (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD ***
RMTHOST lvxingaho2, MGRPORT 7809
RMTTASK REPLICAT, GROUP RINI_1
TABLE scott.lvxinghao;
Using the following key columns for source table SCOTT.LVXINGHAO: EMPNO.
CACHEMGR virtual memory values (may have been adjusted)
CACHEBUFFERSIZE: 64K
CACHESIZE: 2G
CACHEBUFFERSIZE (soft max): 4M
CACHEPAGEOUTSIZE (normal): 4M
PROCESS VM AVAIL FROM OS (min): 2.90G
CACHESIZEMAX (strict force to disk): 2.66G
Database Version:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
Database Language and Character Set:
NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK"
NLS_LANGUAGE = "AMERICAN"
NLS_TERRITORY = "AMERICA"
NLS_CHARACTERSET = "ZHS16GBK"
Processing table SCOTT.LVXINGHAO
***********************************************************************
* ** Run Time Statistics ** *
***********************************************************************
Report at 2014-09-13 17:04:40 (activity since 2014-09-13 17:04:24)
Output to RINI_1:
From Table SCOTT.LVXINGHAO:
# inserts: 14
# updates: 0
# deletes: 0
# discards: 0
You can also verify the results in target system:
GGSCI (lvxinghao2) 7> view report rini_1
***********************************************************************
Oracle GoldenGate Delivery for Oracle
Version 10.4.0.19 Build 002
Linux, x86, 32bit (optimized), Oracle 10 on Sep 18 2009 00:08:30
Copyright (C) 1995, 2009, Oracle and/or its affiliates. All rights reserved.
Starting at 2014-09-13 17:04:25
***********************************************************************
Operating System Version:
Linux
Version #1 SMP Tue Mar 16 22:08:06 EDT 2010, Release 2.6.18-194.el5xen
Node: lvxinghao2
Machine: i686
soft limit hard limit
Address Space Size : unlimited unlimited
Heap Size : unlimited unlimited
File Size : unlimited unlimited
CPU Time : unlimited unlimited
Process id: 4008
Description:
***********************************************************************
** Running with the following parameters **
***********************************************************************
-- GoldenGate Initial Load Delivery
REPLICAT RINI_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
Set environment variable (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
ASSUMETARGETDEFS
USERID ogg, PASSWORD ***
DISCARDFILE ./dirrpt/RINIaa.dsc, PURGE
MAP scott.*, TARGET scott.*;
CACHEMGR virtual memory values (may have been adjusted)
CACHEBUFFERSIZE: 64K
CACHESIZE: 512M
CACHEBUFFERSIZE (soft max): 4M
CACHEPAGEOUTSIZE (normal): 4M
PROCESS VM AVAIL FROM OS (min): 1G
CACHESIZEMAX (strict force to disk): 881M
Database Version:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
Database Language and Character Set:
NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK"
NLS_LANGUAGE = "AMERICAN"
NLS_TERRITORY = "AMERICA"
NLS_CHARACTERSET = "ZHS16GBK"
For further information on character set settings, please refer to user manual.
***********************************************************************
** Run Time Messages **
***********************************************************************
Wildcard MAP resolved (entry SCOTT.*):
MAP SCOTT.LVXINGHAO, TARGET scott.LVXINGHAO;
Using following columns in default map by name:
EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO
Using the following key columns for target table SCOTT.LVXINGHAO: EMPNO.
***********************************************************************
* ** Run Time Statistics ** *
***********************************************************************
Report at 2014-09-13 17:04:45 (activity since 2014-09-13 17:04:40)
From Table SCOTT.LVXINGHAO to SCOTT.LVXINGHAO:
# inserts: 14
# updates: 0
# deletes: 0
# discards: 0
Check the initial data has been transferred to Target system:
SCOTT@ test1>select * from lvxinghao;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------ ---------- --------- ----- --------- ------ ----- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------ ---------- --------- ----- --------- ------ ----- ----------
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
14 rows selected.
After initial load, extract process EINI_1 and replicat process RINI_1 stop automatically.
Source system:
GGSCI (lvxinghao1) 10> info extract eini_1
EXTRACT EINI_1 Last Started 2014-09-13 17:04 Status STOPPED
Checkpoint Lag Not Available
Log Read Checkpoint Table SCOTT.LVXINGHAO
2014-09-13 17:04:40 Record 14
Task SOURCEISTABLE
Target System:
GGSCI (lvxinghao2) 8> info replicat rini_1
REPLICAT RINI_1 Initialized 2014-09-13 17:01 Status STOPPED
Checkpoint Lag 00:00:00 (updated 00:13:01 ago)
Log Read Checkpoint Not Available
Task SPECIALRUN
6.5 Solution for Error "parent key not found"
eini_1 parameter should put the parent table first,for example: EXTRACT EINI_1 SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) USERID ogg, PASSWORD ogg RMTHOST lvxingaho2, MGRPORT 7809 RMTTASK REPLICAT, GROUP RINI_1 TABLE scott.dept; TABLE scott.emp; |
7 Configure Extract Process in Source system
7.1 Edit extract process parameter
GGSCI (lvxinghao1) 15> edit params eora_1
Add:
-- Change Capture parameter file to capture
--lvxinghao changes
EXTRACT EORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD ogg
EXTTRAIL ./dirdat/aa
TABLE scott.lvxinghao;
Please note that “aa” is prefix for local trail file.
Execute the following commands in source system to add Primary Extract group.
GGSCI (lvxinghao1) 16> add extract eora_1,tranlog,begin now
EXTRACT added.
7.2 Define GoldenGate local trail
GGSCI (lvxinghao1) 17> ADD EXTTRAIL ./dirdat/aa, EXTRACT EORA_1, MEGABYTES 5
EXTTRAIL added.
7.3 Start primary Extract process
GGSCI (lvxinghao1) 18> start extract eora_1
Sending START request to MANAGER ...
EXTRACT EORA_1 starting
Verify extract process is running or not:
GGSCI (lvxinghao1) 19> info extract eora_1
EXTRACT EORA_1 Last Started 2014-09-13 20:38 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint Oracle Redo Logs
2014-09-13 20:38:23 Seqno 21, RBA 11492352
Now Goldengate will generate local tail file “aa000000”under dirdat in Source system:
[oracle@lvxinghao1 ~]$ ll /u01/app/ogg/dirdat/
total 4
-rw-rw-rw- 1 oracle oinstall 910 Sep 13 20:38 aa000000
8 Configure pump process in source system
8.1 Edit data pump process parameter
GGSCI (lvxinghao1) 20> edit params pora_1
Add:
-- Data Pump parameter file to read the local
-- trail of lvxinghao changes
EXTRACT PORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
PASSTHRU
RMTHOST lvxinghao2, MGRPORT 7809
RMTTRAIL ./dirdat/pa
TABLE scott.lvxinghao;
Add data pump Extract group
GGSCI (lvxinghao1) 21> add extract pora_1,exttrailsource ./dirdat/aa
EXTRACT added.
Verify results:
GGSCI (lvxinghao1) 22> info extract pora_1
EXTRACT PORA_1 Initialized 2014-09-13 20:43 Status STOPPED
Checkpoint Lag 00:00:00 (updated 00:00:20 ago)
Log Read Checkpoint File ./dirdat/aa000000
First Record RBA 0
8.2 Add GoldenGate remote trail in Source system
GGSCI (lvxinghao1) 24> add rmttrail ./dirdat/pa,extract pora_1,megabytes 5
RMTTRAIL added.
Start data pump process:
GGSCI (lvxinghao1) 25> start extract pora_1
Sending START request to MANAGER ...
EXTRACT PORA_1 starting
Verify the results:
GGSCI (lvxinghao1) 36> INFO EXTRACT PORA_1
EXTRACT PORA_1 Last Started 2014-09-13 20:59 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:16:13 ago)
Log Read Checkpoint File ./dirdat/aa000000
First Record RBA 0
Now Goldengate will generate remote tail file “pa000000”under dirdat in Target system:
[oracle@lvxinghao2 ~]$ ll /u01/app/ogg/dirdat/
total 0
-rw-rw-rw- 1 oracle oinstall 0 Sep 13 21:00 pa000000
9 Configure replicat process in target system
9.1 Create GLOBALS parameter in target system
Edit GLOBALS(upper case) parameter file to indicate checkpoint table
GGSCI (lvxinghao2) 11> edit params ./GLOBALS
Add:
CHECKPOINTTABLE ogg.ggschkpt
Verify:
[oracle@lvxinghao2 ogg]$ ll GLOBALS
-rw-rw-rw- 1 oracle oinstall 29 Sep 13 21:04 GLOBALS
For GLOBALS configuration take effect, we must exit GGSCI session:
GGSCI (lvxinghao2) 13> exit
Add replicat checkpoint table in target system:
GGSCI (lvxinghao2) 1> DBLOGIN USERID ogg, PASSWORD ogg
Successfully logged into database.
GGSCI (lvxinghao2) 2> ADD CHECKPOINTTABLE
No checkpoint table specified, using GLOBALS specification (ogg.ggschkpt)...
Successfully created checkpoint table OGG.GGSCHKPT.
9.2 Edit Delivery process parameter
Add Replicat group:
GGSCI (lvxinghao2) 3>ADD REPLICAT RORA_1, EXTTRAIL ./dirdat/pa
REPLICAT added.
Edit replicat process RORA_1 parameter:
GGSCI (lvxinghao2) 4> EDIT PARAM RORA_1
Add:
--
-- Change Delivery parameter file to apply
-- lvxinghao Changes
--
REPLICAT RORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD ogg
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/RORA_aa.DSC, PURGE
MAP scott.lvxinghao, TARGET scott.lvxinghao;
Note: In the MAP statement, the first owner/schema is for the source and the second for the target.
Start Replicat process:
GGSCI (lvxinghao2) 5> START REPLICAT RORA_1
Sending START request to MANAGER ...
REPLICAT RORA_1 starting
Verify:
GGSCI (lvxinghao2) 6> info replicat rora_1
REPLICAT RORA_1 Last Started 2014-09-13 21:09 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:07 ago)
Log Read Checkpoint File ./dirdat/pa000000
First Record RBA 0
9.3 Verify if DML can be duplicated correctly
9.3.1 Insert operation
Insert data in source system:
SYS@ prod>conn scott/tiger
SCOTT@ prod> INSERT INTO lvxinghao
VALUES(8000,'Damon','CLERK',7902,sysdate,800,100,20);
SCOTT@ prod> INSERT INTO lvxinghao
VALUES(8001,'Elena','CLERK',7698,sysdate,600,200,30);
SCOTT@ prod> commit;
Check the result in target system:
SCOTT@ prod>select * from lvxinghao;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------ ------- --------- ----- ------------------- ------ ----- ------
7369 SMITH CLERK 7902 1980-12-17 00:00:00 800 20
7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30
7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30
7566 JONES MANAGER 7839 1981-04-02 00:00:00 2975 20
7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 1400 30
7698 BLAKE MANAGER 7839 1981-05-01 00:00:00 2850 30
7782 CLARK MANAGER 7839 1981-06-09 00:00:00 2450 10
7788 SCOTT ANALYST 7566 1987-04-19 00:00:00 3000 20
7839 KING PRESIDENT 1981-11-17 00:00:00 5000 10
7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30
7876 ADAMS CLERK 7788 1987-05-23 00:00:00 1100 20
7900 JAMES CLERK 7698 1981-12-03 00:00:00 950 30
7902 FORD ANALYST 7566 1981-12-03 00:00:00 3000 20
7934 MILLER CLERK 7782 1982-01-23 00:00:00 1300 10
8000 Damon CLERK 7902 2014-09-13 21:15:41 800 100 20
8001 Elena CLERK 7698 2014-09-13 21:17:22 600 200 30
16 rows selected.
9.3.2 Update operation
Update data:
SCOTT@ prod>update lvxinghao set ename='lxh' where empno=7788;
SCOTT@ prod>commit;
Check the result in target system:
SCOTT@ test1>select * from lvxinghao;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------ ------- --------- ----- --------- ------ ----- ------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 lxh ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
8000 Damon CLERK 7902 13-SEP-14 800 100 20
8001 Elena CLERK 7698 13-SEP-14 600 200 30
16 rows selected.
9.3.3 Delete operation
Delete data:
SCOTT@ prod>delete from lvxinghao where empno<7788;
7 rows deleted.
SCOTT@ prod>commit;
Check the result in target system:
SCOTT@ test1>select * from lvxinghao;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------ ------- --------- ----- --------- ------ ----- ------
7788 lxh ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
8000 Damon CLERK 7902 13-SEP-14 800 100 20
8001 Elena CLERK 7698 13-SEP-14 600 200 30
9 rows selected.
10 Limitation and Process
10.1 Column Width differs in different encoding
In zhs16gbk encoding, two bytes represents one chinese character. However, in AL32UTF8 encoding three bytes represents one chinese character. Therefore, if we INSERT 10 chinese characters in source system (zhs16gbk), which actually occupies 20 bytes, it will become 30 bytes in target system (AL32UTF8). If the column maximum width is 20 bytes, The INSERT operation can succeed in source system, but fail in target system.
List details about process : info replicat rora_1,showch --showch show channel
10.2 List details about process
Source system
GGSCI (lvxinghao1) 41> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING EXTRACT RUNNING EORA_1 00:00:00 00:00:01 EXTRACT RUNNING PORA_1 00:00:00 00:00:05
GGSCI (lvxinghao1) 43> info extract eora_1,showch
EXTRACT EORA_1 Last Started 2014-09-13 20:38 Status RUNNING Checkpoint Lag 00:00:00 (updated 00:00:07 ago) Log Read Checkpoint Oracle Redo Logs 2014-09-13 21:41:04 Seqno 21, RBA 13795840
Current Checkpoint Detail: Read Checkpoint #1 Oracle Redo Log Startup Checkpoint (starting position in the data source): Sequence #: 21 RBA: 11470864 Timestamp: 2014-09-13 20:36:38.000000 Redo File: Recovery Checkpoint (position of oldest unprocessed transaction in the data source): Sequence #: 21 RBA: 13795344 Timestamp: 2014-09-13 21:41:04.000000 Redo File: /disk1/oradata/prod/redo02a.log Current Checkpoint (position of last record read in the data source): Sequence #: 21 RBA: 13795840 Timestamp: 2014-09-13 21:41:04.000000 Redo File: /disk1/oradata/prod/redo02a.log Write Checkpoint #1 GGS Log Trail Current Checkpoint (current write position): Sequence #: 0 RBA: 2432 Timestamp: 2014-09-13 21:41:08.203754 Extract Trail: ./dirdat/aa Header: Version = 2 Record Source = A Type = 4 # Input Checkpoints = 1 # Output Checkpoints = 1 File Information: Block Size = 2048 Max Blocks = 100 Record Length = 2048 Current Offset = 0 Configuration: Data Source = 3 Transaction Integrity = 1 Task Type = 0
Status: Start Time = 2014-09-13 20:38:06 Last Update Time = 2014-09-13 21:41:08 Stop Status = A Last Result = 400
GGSCI (lvxinghao1) 44> info extract pora_1,showch EXTRACT PORA_1 Last Started 2014-09-13 20:59 Status RUNNING Checkpoint Lag 00:00:00 (updated 00:00:06 ago) Log Read Checkpoint File ./dirdat/aa000000 2014-09-13 21:28:58.000000 RBA 2432 Current Checkpoint Detail: Read Checkpoint #1 GGS Log Trail Startup Checkpoint (starting position in the data source): Sequence #: 0 RBA: 0 Timestamp: Not Available Extract Trail: ./dirdat/aa Current Checkpoint (position of last record read in the data source): Sequence #: 0 RBA: 2432 Timestamp: 2014-09-13 21:28:58.000000 Extract Trail: ./dirdat/aa Write Checkpoint #1 GGS Log Trail Current Checkpoint (current write position): Sequence #: 0 RBA: 2469 Timestamp: 2014-09-13 21:43:01.820809 Extract Trail: ./dirdat/pa Header: Version = 2 Record Source = A Type = 1 # Input Checkpoints = 1 # Output Checkpoints = 1 File Information: Block Size = 2048 Max Blocks = 100 Record Length = 2048 Current Offset = 0 Configuration: Data Source = 0 Transaction Integrity = 1 Task Type = 0 Status: Start Time = 2014-09-13 20:59:44 Last Update Time = 2014-09-13 21:43:01 Stop Status = A Last Result = 400 |
Target System
GGSCI (lvxinghao2) 12> info all Program Status Group Lag Time Since Chkpt MANAGER RUNNING REPLICAT RUNNING RORA_1 00:00:00 00:00:09
GGSCI (lvxinghao2) 14> info replicat rora_1,showch
REPLICAT RORA_1 Last Started 2014-09-13 21:09 Status RUNNING Checkpoint Lag 00:00:00 (updated 00:00:01 ago) Log Read Checkpoint File ./dirdat/pa000000 2014-09-13 21:28:58.461077 RBA 2469 Current Checkpoint Detail: Read Checkpoint #1 GGS Log Trail Startup Checkpoint (starting position in the data source): Sequence #: 0 RBA: 0 Timestamp: Not Available Extract Trail: ./dirdat/pa Current Checkpoint (position of last record read in the data source): Sequence #: 0 RBA: 2469 Timestamp: 2014-09-13 21:28:58.461077 Extract Trail: ./dirdat/pa Header: Version = 2 Record Source = A Type = 1 # Input Checkpoints = 1 # Output Checkpoints = 0 File Information: Block Size = 2048 Max Blocks = 100 Record Length = 2048 Current Offset = 0 Configuration: Data Source = 0 Transaction Integrity = -1 Task Type = 0 Database Checkpoint: Checkpoint table = OGG.GGSCHKPT Key = 421866981 (0x19252de5) Create Time = 2014-09-13 21:07:43 Status: Start Time = 2014-09-13 21:09:51 Last Update Time = 2014-09-13 21:37:56 Stop Status = A Last Result = 400 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29475508/viewspace-1290155/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- GoldenGate單向表DML同步Go
- 【GoldenGate】Oracle GoldenGate(二) 雙向同步配置GoOracle
- 安裝配置Oracle GoldenGate for DB2(單向)OracleGoDB2
- Oracle 11g GoldenGate單向複製配置(DML)OracleGo
- 實戰goldengate:安裝配置+資料初始化+單向DML複製Go
- 【GoldenGate】Oracle GoldenGate Veridata 安裝配置與應用GoOracle
- GoldenGate雙向同步配置Go
- 使用GoldenGate 實現Oracle for Oracle 單向資料同步(實現表的DML操作同步)GoOracle
- Oracle goldengate 安裝配置OracleGo
- 【GoldenGate】Oracle GoldenGate(三) DDL同步配置GoOracle
- 【OGG】Oracle GoldenGate 11g (二) GoldenGate 11g 單向同步配置 上OracleGo
- 【OGG】Oracle GoldenGate 11g (二) GoldenGate 11g 單向同步配置 下OracleGo
- 配置支援DML和DDL操作同步的GoldenGateGo
- Oracle GoldenGate安裝(一)OracleGo
- Oracle goldengate 11g (二)【DML and DDL單向複製】OracleGo
- GoldenGate配置(一)之單向複製配置Go
- oracle goldengate 配置DML&DDL實驗OracleGo
- GoldenGate同步DML功能測試Go
- goldengate 單向複製配置Go
- mysql goldengate同步 簡單配置MySqlGo
- Oracle GoldenGate系統之----單向同步資料表OracleGo
- Linux下GoldenGate單機單向同步LinuxGo
- GoldenGate的安裝、配置與測試Go
- 安裝並配置goldengateGo
- GoldenGate for win安裝配置Go
- goldengate單向複製的配置Go
- oracle goldengate 雙向複製配置OracleGo
- oracle資料庫配置goldengate同步Oracle資料庫Go
- Oracle GoldenGate系統之----單向同步資料表(續)OracleGo
- Oracle GoldenGate安裝(二)OracleGo
- Oracle GoldenGate安裝(三)OracleGo
- 解除安裝Oracle GoldenGateOracleGo
- Linux下GoldenGate單機雙向同步LinuxGo
- goldengate 單向DDLGo
- 配置Oracle GoldenGate for DB2(雙向)OracleGoDB2
- oracle goldengate 配置OracleGo
- GOLDENGATE安裝和配置手冊Go
- Goldengate單表新增同步Go