Goldengate双向复制配置
一、Goldengate双向复制配置
1.1.在进行如下配置之前,先在源数据库source system(原来的目标数据库)端
添加辅助的redolog配置:
SQL>alter database add supplemental log data;
SQL>alter system switch logfile;
SQL>alter database force logging;
1.2.在原Source和原Target分别用scott用户创建一张emp_ogg表
SQL> create table emp_ogg as select * from emp
where 1=0; //原source库建立表但不插入数据
Table created.
单项复制时Source端是EINI_1进程,Target端是RINI_1进程,双向复制时反之,以便完成两表的初始化同步,配置如下:
原Source
GGSCI (gc2) 36> ADD REPLICAT RINI_1, SPECIALRUN
REPLICAT added.
GGSCI (gc2) 43> EDIT PARAMS RINI_1
-- 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.*;
原Target
GGSCI
(oraclelinux54.cuug.net) 10> ADD EXTRACT
EINI_1, SOURCEISTABLE
EXTRACT added.
GGSCI
(oraclelinux54.cuug.net) 11> INFO EXTRACT *, TASKS
EXTRACT EINI_1
Initialized 2014-08-12
23:05 Status STOPPED
Checkpoint Lag Not Available
Log Read Checkpoint Not Available
First Record Record 0
Task SOURCEISTABLE
GGSCI
(oraclelinux54.cuug.net) 12> EDIT PARAMS EINI_1
-- GoldenGate Initial Data Capture
-- for EMP_OGG and DEPT_OGG
--
EXTRACT EINI_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD ogg
RMTHOST gc2, MGRPORT 7809
RMTTASK REPLICAT, GROUP RINI_1
TABLE scott.EMP_OGG; //这里我们只为初始化scott用户下的emp_ogg表
GGSCI
(oraclelinux54.cuug.net) 19> START EXTRACT
EINI_1
Sending START request to
MANAGER ...
EXTRACT EINI_1 starting
GGSCI
(oraclelinux54.cuug.net) 20> VIEW REPORT
EINI_1
……...
***********************************************************************
* ** Run Time Statistics
** *
***********************************************************************
Report at 2014-08-12
23:11:04 (activity since 2014-08-12 23:10:59)
Output to RINI_1:
From Table SCOTT.EMP_OGG:
# inserts: 14 //可以看出两边已经同步成功
# updates: 0
# deletes: 0
# discards: 0
1.3.在ogg环境下,添加日志跟踪:
GGSCI
(oraclelinux54.cuug.net) DBLOGIN USERID ogg, PASSWORD ogg
GGSCI
(oraclelinux54.cuug.net) ADD TRANDATA scott.* //这里为了试验方便,我们设置为scott下全部表均设为可同步状态
2013-08-13
03:21:18 GGS WARNING
109 No unique key is defined for table EMP_OGG. All
viable columns will be used to represent the key, but may not guarantee
uniqueness. KEYCOLS may be used to
define the key.
2013-08-13
03:21:18 GGS WARNING 301
Failed to add supplemental log group on table SCOTT.EMP_OGG due to
ORA-01031: insufficient privileges,
SQL ALTER TABLE "SCOTT"."EMP_OGG" ADD SUPPLEMENTAL LOG
GROUP "GGS_EMP_OGG_74686"
("EMPNO","ENAME","JOB","MGR","HIREDATE","SAL","COMM","DEPTNO")
ALWAYS /* GOLDENGATE_DDL_REPLICATION */.
解决办法:
SQL>alter table emp_ogg add constraint emp_ogg_pk primary
key(empno);
SQL> grant alter any table to ogg;
Grant
succeeded.
1.4.配置extract
GGSCI
(gc2) 71> EDIT PARAMS
EORA_1 //编辑前先停止进程
EXTRACT EORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD ogg
EXTTRAIL ./dirdat/aa
TABLE scott.*;
DDL INCLUDE OBJNAME "scott.*"
TRANLOGOPTIONS EXCLUDEUSER ogg //双向复制关键
GGSCI
(oraclelinux54.cuug.net) 74> 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.*;
DDL INCLUDE OBJNAME "scott.*"
GGSCI (双节点执行)> ADD EXTRACT
EORA_1, TRANLOG, BEGIN NOW
注:
ADD EXTRACT EORA_1:添加EXTRACT进程,这就是一直运行,一段停止redo 里的日志就没人去抓取了
TRANLOG, BEGIN NOW:现在开始同步日志,也可以用异步,那就要另外配置
EXTRACT added.
GGSCI (双节点执行)> ADD EXTTRAIL
./dirdat/aa, EXTRACT EORA_1, MEGABYTES 5 //添加跟踪文件给EORA_1用,大小为5M
EXTTRAIL added.
GGSCI (双节点执行)> START EXTRACT EORA_1
1.5.配置pump进程
GGSCI
(gc2) 72> EDIT PARAMS
PORA_1 //编辑前先停止进程
EXTRACT PORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
PASSTHRU
RMTHOST oraclelinux54.cuug.net, MGRPORT 7809
RMTTRAIL /u01/app/ogg/dirdat/pa
TABLE scott.*;
GGSCI
(oraclelinux54.cuug.net) 75> EDIT PARAMS PORA_1 //编辑前先停止进程
EXTRACT PORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
PASSTHRU
RMTHOST gc2, MGRPORT 7809
RMTTRAIL ./dirdat/pa
TABLE scott.*;
GGSCI (双节点执行)> ADD EXTRACT PORA_1, EXTTRAILSOURCE ./dirdat/aa // 告诉PORA_1要传送哪个路径下的跟踪信息
EXTRACT
added.
GGSCI (双节点执行)> ADD RMTTRAIL ./dirdat/pa, EXTRACT
PORA_1, MEGABYTES 5 // 表示把捕获到的信息传送到远程的哪个目录的文件中
RMTTRAIL
added.
GGSCI (双节点执行)> START EXTRACT PORA_1
配置replicate
GGSCI (gc2) 74> 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.*, TARGET scott.*;
GGSCI
(oraclelinux54.cuug.net) 87> 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.*, TARGET scott.*;
GGSCI
(双节点执行) 87> ADD REPLICAT RORA_1, EXTTRAIL ./dirdat/pa //表示从哪里提取传送过来的信息
GGSCI (双节点执行)
87> START REPLICAT RORA_1
SQL> conn / as sysdba
Connected.
SQL> grant insert on scott.emp_ogg to ogg;
Grant succeeded.
SQL> conn / as sysdba
Connected.
SQL> grant delete on scott.emp_ogg to ogg;
Grant succeeded.
SQL> grant update on scott.emp_ogg to ogg;
Grant succeeded.
二、配置checkpoint
GGSCI
(oraclelinux54.cuug.net) EDIT PARAMS ./GLOBALS
CHECKPOINTTABLE ogg.ggschkpt
GGSCI
(oraclelinux54.cuug.net) exit
GGSCI
(oraclelinux54.cuug.net) DBLOGIN USERID ogg, PASSWORD ogg
Successfully
logged into database.
GGSCI
(oraclelinux54.cuug.net) ADD CHECKPOINTTABLE //如果单项复制已经做了,这里不用再添加
应该看到,两节点的进程都为Running状态
GGSCI (gc2) 73> info all
Program Status
Group Lag Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EORA_1
00:00:00 00:00:02
EXTRACT RUNNING PORA_1
00:00:00 00:00:04
REPLICAT RUNNING RORA_1
00:00:00 00:00:01
GGSCI
(oraclelinux54.cuug.net) 88> info all
Program Status
Group Lag Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EORA_1
00:00:00 00:00:09
EXTRACT RUNNING PORA_1
00:00:00 00:00:02
REPLICAT RUNNING RORA_1
00:00:00 00:00:05
三、测试双向传送结果
3.1.source 到target
Source system
SQL> INSERT INTO emp_ogg
VALUES(8000,'HL','CLERK',7902,'12-DEC-80',800,100,20);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from emp_ogg;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
DEPTNO
---------- ----------
--------- ---------- --------- ---------- ---------- ----------
8000 HL CLERK 7902 12-DEC-80 800 100
20
Target system
SQL> select * from emp_ogg;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
DEPTNO
---------- ----------
---------- ---------- --------------------- ---------- ---------- ----------
8000 HL CLERK 7902 1980-12-12 : 00:00:00 800 100 20
3.2target 到 source
Target system
SQL> select * from tcustmer;
CUST NAME CITY ST
----
------------------------------ -------------------- --
WILL BG
SOFTWARE CO. SEATTLE WA
JANE ROCKY
FLYER INC. DENVER CO
SQL> insert into tcustmer values ('HL','zai','cuug','en');
1 row created.
SQL> commit;
Commit
complete.
Source system
SQL> select * from tcustmer;
CUST NAME CITY ST
----
------------------------------ -------------------- --
WILL BG
SOFTWARE CO. SEATTLE WA
JANE ROCKY
FLYER INC. DENVER CO
helei zai cuug en
四、支持DDL复制配置
4.1在两个节点执行执行DDL同步脚本命令:
先进入goldengate软件安装目录,以SYSDBA身份登录oracle执行以下脚本,执行脚本过程中,需要输入的用户全部是ogg,安装模式为INITIALSETUP,如果数据字典或者某些内部的包有错误,则需要运行catalog.sql和catproc.sql脚本。
SQL>show parameter recyclebin;
NAME TYPE VALUE
------------------------------------
----------- ------------------------------
recyclebin
string off 必须是off
这里执行第二个脚本@ddl_setup时会报一个recyclebin的错误,而且只能在Pfile中修改recyclebin=off后用pfile起库,执行两个清除脚本,再重新运行一下脚本
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
Goldengate双向复制配置的更多相关文章
- GoldenGate配置(二)之双向复制配置
GoldenGate配置(二)之双向复制配置 环境: Item Source System Target System Platform Red Hat Enterprise Linux Serve ...
- 搭建一个Oracle到Oracle的Goldengate双向复制环境
目标:搭建一个Oracle到Oracle的Goldengate双向复制环境(支持DDL+DML). 环境: OS:Red Hat Enterprise Linux Server release 5.5 ...
- GoldenGate DB11gr2配置手册
GoldenGate DB11gr2配置手册 源端数据库配置 1.1源端数据库打开Archive Log: SQL>shutdown immediate; SQL>startup moun ...
- 异构GoldenGate 12c 双向复制配置
1.配置window,添加checkpoint表(本文windows和linux互为source和target) GGSCI (WIN-GM5PVS1CILH) 1> view param ./ ...
- [转]Oracle GoldenGate安装配置
ref:http://blog.sina.com.cn/s/blog_5d29418d0101cvyx.html 1 简介 Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软 ...
- Oracle GoldenGate常用配置端口
1 简介 Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数 ...
- GoldenGate 双向复制解决方案
1 双向复制方案简介 在双向复制(Bidirectional)方案中,可以采用以下两种部署方式: 方式一:配置源和目标数据库可以同时保持Active 状态,同时进行应用系统的事务处理, 此时需由应用系 ...
- GoldenGate单向复制配置示例
一:环境介绍 --source端 ip地址:192.168.123.10 数据库版本:11.2.0.1.0 32 bit 操作系统版本:centos 4.5 32 bit ogg版本:fbo_ggs_ ...
- goldengate 简单配置 oracle to oralce
做oracle时配置的,goldengate 是同步异构数据库最好的工具.这个是基于oracle to oracle 单向复制 添加增量复制进程 add extract process -- -- ...
随机推荐
- webView缩放
self.webview.scalesPageToFit = YES; 可以让webView内容用缩放手势放大或缩小
- PAT (Advanced Level) 1023. Have Fun with Numbers (20)
手动模拟一下高精度加法. #include<iostream> #include<cstring> #include<cmath> #include<algo ...
- PAT (Advanced Level) 1003. Emergency (25)
最短路+dfs 先找出可能在最短路上的边,这些边会构成一个DAG,然后在这个DAG上dfs一次就可以得到两个答案了. 也可以对DAG进行拓扑排序,然后DP求解. #include<iostrea ...
- C#平衡树(AVLTree)
参考:http://www.cnblogs.com/skywang12345/p/3577479.html using System; using System.Collections.Generic ...
- iOS面向对象的建模:MVC(OC基础)
本文转发至:http://www.cnblogs.com/tmf-4838/p/5294036.html 实例化一个类:从plist文件抽取出类 @interface Person : NSObjec ...
- 配置 Gitblit 进行 Git 代码管理
配置 Gitblit 进行 Git 代码管理 环境 CentOS 7 x64 IP: 10.6.0.2 首先需要安装jdk 安装步骤 就略过了 下载最新版本 gitblit wget http:/ ...
- NMEA协议 上位机 C# (转)
源:NMEA协议 上位机 c# 前些时间写做了两款用NMEA协议的上位机,在这里做一个总结和记录.和大家分享,也为了以后不会忘记. NMEA协议总体来说,相对简单,是气象上比较成熟的协议. 主要有以下 ...
- 通过Jenkins跑Jmeter接口测试脚本,我想当有接口跑失败时Jenkins发送邮件通知,这个如何弄呢
通过Jenkins跑Jmeter接口测试脚本,我想当有接口跑失败时Jenkins发送邮件通知,这个如何弄呢
- STM32启动模式及API(转)
源:STM32启动模式及API 我们玩ARM9,一般都是在内存里调试程序,速度飞快.STM32下也可以这样,虽说现在的flash寿命已经很长了,但flash中调试烧录程序还是一个很慢的过程,有时候程序 ...
- 在IOS应用中从竖屏模式强制转换为横屏模式
http://www.cnblogs.com/mrhgw/archive/2012/07/18/2597218.html 在 iPhone 应用里,有时我们想强行把显示模式从纵屏改为横屏(反之亦然), ...