首页 > 数据库 > Oracle > Goldengate 双向复制配置
1、在源数据库gc2(原来的目标数据库)端添加辅助的redolog配置并强记日志
SQL> alter database add supplemental log data;
Database altered.
SQL> alter system switch logfile;
System altered.
SQL> alter database force logging;
Database altered.
2、在ogg环境下,添加日志跟踪
[oracle@gc2 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 (gc2) 1>DBLOGIN USERID ogg, PASSWORD Ogg
Successfully logged into database.
GGSCI (gc2) 2>ADD TRANDATA scott.EMP_OGG
Logging of supplemental redo data enabled for table SCOTT.EMP_OGG.
GGSCI (gc2) 3>ADD TRANDATA scott.DEPT_OGG
Logging of supplemental redo data enabled for table SCOTT.DEPT_OGG.
3、原库gc2配置extract
GGSCI (gc2) 1>EDIT PARAMS EORA_1
EXTRACT EORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD ogg
TRANLOGOPTIONS EXCLUDEUSER ogg
EXTTRAIL ./dirdat/aa
TABLE scott. EMP_OGG
TABLE scott. DEPT_OGG;
GGSCI (gc2) 2>ADD EXTRACT EORA_1, TRANLOG, BEGIN NOW
EXTRACT added.
GGSCI (gc2) 3>ADD EXTTRAIL ./dirdat/aa, EXTRACT EORA_1, MEGABYTES 5
EXTTRAIL added.
GGSCI (gc2) 4>START EXTRACT EORA_1
Sending START request to MANAGER ...
EXTRACT EORA_1 starting
GGSCI (gc2) 5>INFO EXTRACT EORA_1
EXTRACT EORA_1 Last Started 2014-08-12 14:13 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:03 ago)
Log Read Checkpoint Oracle Redo Logs
2014-08-12 14:13:08 Seqno 8, RBA 184832
4、原库gc2配置pump进程
GGSCI (gc2) 6>EDIT PARAMS PORA_1
EXTRACT PORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
PASSTHRU
RMTHOST gc1, MGRPORT 7809
RMTTRAIL ./dirdat/pa
TABLE scott. EMP_OGG
TABLE scott. DEPT_OGG;
GGSCI (gc2) 7>ADD EXTRACT PORA_1, EXTTRAILSOURCE ./dirdat/aa
EXTRACT added.
GGSCI (gc2) 8>ADD RMTTRAIL ./dirdat/pa, EXTRACT PORA_1, MEGABYTES 5
RMTTRAIL added.
GGSCI (gc2) 9>START EXTRACT PORA_1
Sending START request to MANAGER ...
EXTRACT PORA_1 starting
GGSCI (gc2) 10> INFO EXTRACT PORA_1
EXTRACT PORA_1 Last Started 2014-08-12 14:15 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint File ./dirdat/aa000000
First Record RBA 895
5、目标数据库(原来的原数据库gc1)配置checkpoint
GGSCI (gc1) 1>EDIT PARAMS ./GLOBALS
CHECKPOINTTABLE ogg.ggschkpt
GGSCI (gc1) 2>exit
GGSCI (gc1) 1>DBLOGIN USERID ogg, PASSWORD ogg
Successfully logged into database.
GGSCI (gc1) 2> ADD CHECKPOINTTABLE
No checkpoint table specified, using GLOBALS specification (ogg.ggschkpt)...
Successfully created checkpoint table OGG.GGSCHKPT.
6、目标数据库gc1配置replicate
GGSCI (gc1) 3>EDIT PARAM RORA_1
GGSCI (gc1) 4>ADD REPLICAT RORA_1, EXTTRAIL ./dirdat/pa
GGSCI (gc1) 5>START REPLICAT RORA_1
Sending START request to MANAGER ...
REPLICAT RORA_1 starting
GGSCI (gc1) 6>info REPLICAT RORA_1
REPLICAT RORA_1 Last Started 2014-08-12 14:19 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:02 ago)
Log Read Checkpoint File ./dirdat/pa000000
First Record RBA 0
二、支持DDL复制配置
1、在两个节点执行执行DDL同步脚本命令:
先进入goldengate软件安装目录,以SYSDBA身份登录oracle执行以下脚本,执行脚本过程中,需要输入的用户全部是ogg,安装模式为INITIALSETUP,如果数据字典或者某些内部的包有错误,则需要运行catalog.sql和catproc.sql脚本。
SQL> alter system set recyclebin=off scope=both;
SQL> shutdown immediate;
SQL> startup;
SQL> show parameter recyclebin;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
recyclebin string OFF
SQL>@marker_setup
SQL>@ddl_setup
SQL>@role_setup
SQL>grant GGS_GGSUSER_ROLE to ogg;
SQL>@ddl_enable
如果某项脚本执行错误,需要重新执行时,先要执行清除的脚本:ddl_remove.sql和marker_remove.sql
2、配置两个节点的extract
目标库:
GGSCI (gc1) 1>edit PARAMS EORA_1
EXTRACT EORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD Ogg
EXTTRAIL ./dirdat/aa
DDL INCLUDE OBJNAME " scott.EMP_OGG , scott.DEPT_OGG "
TABLE scott.EMP_OGG;
TABLE scott.DEPT_OGG;
GGSCI (gc1) 2>stop EXTRACT EORA_1
EXTRACT EORA_1 is already stopped.
GGSCI (gc1) 3>start EXTRACT EORA_1
Sending START request to MANAGER ...
EXTRACT EORA_1 starting
GGSCI (gc1) 4>info EXTRACT EORA_1
EXTRACT EORA_1 Last Started 2014-08-12 14:41 Status RUNNING
Checkpoint Lag 00:15:00 (updated 00:00:08 ago)
Log Read Checkpoint Oracle Redo Logs
2014-08-12 14:26:22 Seqno 423, RBA 25022976
源库:
GGSCI (gc2) 1>edit PARAMS EORA_1
EXTRACT EORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD ogg
TRANLOGOPTIONS EXCLUDEUSER ogg
DDL INCLUDE OBJNAME " scott.EMP_OGG , scott.DEPT_OGG "
EXTTRAIL ./dirdat/aa
TABLE scott.EMP_OGG;
TABLE scott.DEPT_OGG;
GGSCI (gc2) 2>stop EXTRACT EORA_1
EXTRACT EORA_1 is already stopped.
GGSCI (gc2) 3>start EXTRACT EORA_1
Sending START request to MANAGER ...
EXTRACT EORA_1 starting
GGSCI (gc2) 4>info EXTRACT EORA_1
EXTRACT EORA_1 Last Started 2014-08-12 14:42 Status RUNNING
Checkpoint Lag 00:09:44 (updated 00:00:08 ago)
Log Read Checkpoint Oracle Redo Logs
2014-08-12 14:32:17 Seqno 8, RBA 407040
3、配置两个节点的replicat
GGSCI (gc2) 1>DBLOGIN USERID ogg, PASSWORD Ogg
Successfully logged into database.
GGSCI (gc2) 2> add checkpointtable ogg.checkpoint
Successfully created checkpoint table OGG.CHECKPOINT.
GGSCI (gc1) 1>DBLOGIN USERID ogg, PASSWORD Ogg
Successfully logged into database.
GGSCI (gc1) 2>add checkpointtable ogg.checkpoint
Successfully created checkpoint table OGG.CHECKPOINT.
4、配置REPLICAT进程参数文件
源库:
GGSCI (gc2) 1>stop REPLICAT RORA_1
REPLICAT RORA_1 is already stopped.
GGSCI (gc2) 2>EDIT PARAM RORA_1
REPLICAT RORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD Ogg
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/RORA_aa.DSC, PURGE
DDL INCLUDE ALL
DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5
DDLERROR DEFAULT DISCARD
DDLERROR DEFAULT IGNORE RETRYOP
MAP scott.emp_ogg, TARGET scott.emp_ogg;
MAP scott.dept_ogg, TARGET scott.dept_ogg;
GGSCI (gc2) 3>start REPLICAT RORA_1
Sending START request to MANAGER ...
REPLICAT RORA_1 starting
GGSCI (gc2) 4>info REPLICAT RORA_1
REPLICAT RORA_1 Last Started 2014-08-12 15:04 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:06 ago)
Log Read Checkpoint File ./dirdat/pa000001
2014-08-12 15:02:46.557139 RBA 2173
目标库:
GGSCI (gc1) 1>EDIT PARAM RORA_1
REPLICAT RORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD Ogg
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/RORA_aa.DSC, PURGE
DDL INCLUDE ALL
DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5
DDLERROR DEFAULT DISCARD
DDLERROR DEFAULT IGNORE RETRYOP
MAP scott.emp_ogg, TARGET scott.emp_ogg;
MAP scott.dept_ogg, TARGET scott.dept_ogg;
GGSCI (gc1) 2>stop REPLICAT RORA_1
REPLICAT RORA_1 is already stopped.
GGSCI (gc1) 3>start REPLICAT RORA_1
Sending START request to MANAGER ...
REPLICAT RORA_1 starting
GGSCI (gc1) 4>info REPLICAT RORA_1
REPLICAT RORA_1 Last Started 2014-08-12 14:52 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:05 ago)
Log Read Checkpoint File ./dirdat/pa000000
2014-08-12 14:42:02.470375 RBA 986
三、验证两节点双向的DML操作同步情况
源库为gc2,目标库为gc1:
1、插入操作:
源库gc2:
SQL> insert into emp_ogg values(222,'SMITH','CLERK',7902,'12-DEC-80',800,100,20);
1 row created.
SQL> commit;
Commit complete.
目标库gc1:
SQL> select * from emp_ogg;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7499 KKK 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 CUUG 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
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
11 SMITH CLERK 7902 12-DEC-80 800 100 20
222 SMITH CLERK 7902 12-DEC-80 800 100 20
15 rows selected.
2、更新操作:
源库gc2:
SQL> update emp_ogg set ename='BBBBB' where empno=7788;
SQL> commit;
目标库gc1:
SQL> select * from emp_ogg;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7499 KKK 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 BBBBB 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
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
11 SMITH CLERK 7902 12-DEC-80 800 100 20
222 SMITH CLERK 7902 12-DEC-80 800 100 20
15 rows selected.
3、删除操作:
源库gc2:
SQL> delete from emp_ogg where empno=11;
SQL> commit;
目标库gc1:
SQL> select * from emp_ogg;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7499 KKK 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 BBBBB 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
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
222 SMITH CLERK 7902 12-DEC-80 800 100 20
14 rows selected.
源库为gc1,目标库为gc2:
1、delete操作
源库gc1:
SQL> delete from emp_ogg where empno=7900;
SQL> commit;
目标库gc2:
SQL> select * from emp_ogg;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7499 KKK 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 BBBBB 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
7902 FORD ANALYST 7566 03-DEC-81 3000 20
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7934 MILLER CLERK 7782 23-JAN-82 1300 10
222 SMITH CLERK 7902 12-DEC-80 800 100 20
13 rows selected.
2、update操作
源库gc1:
SQL> update emp_ogg set ename='BBKKKKKK' where empno=7788;
SQL> commit;
目标库gc2:
SQL> select * from emp_ogg;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7499 KKK 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 BBKKKKKK 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
7902 FORD ANALYST 7566 03-DEC-81 3000 20
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7934 MILLER CLERK 7782 23-JAN-82 1300 10
222 SMITH CLERK 7902 12-DEC-80 800 100 20
13 rows selected.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29827680/viewspace-1257707/ ,如需转载,请注明出处,否则将追究法律责任。