一、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双向复制配置的更多相关文章

  1. GoldenGate配置(二)之双向复制配置

     GoldenGate配置(二)之双向复制配置 环境: Item Source System Target System Platform Red Hat Enterprise Linux Serve ...

  2. 搭建一个Oracle到Oracle的Goldengate双向复制环境

    目标:搭建一个Oracle到Oracle的Goldengate双向复制环境(支持DDL+DML). 环境: OS:Red Hat Enterprise Linux Server release 5.5 ...

  3. GoldenGate DB11gr2配置手册

    GoldenGate DB11gr2配置手册 源端数据库配置 1.1源端数据库打开Archive Log: SQL>shutdown immediate; SQL>startup moun ...

  4. 异构GoldenGate 12c 双向复制配置

    1.配置window,添加checkpoint表(本文windows和linux互为source和target) GGSCI (WIN-GM5PVS1CILH) 1> view param ./ ...

  5. [转]Oracle GoldenGate安装配置

    ref:http://blog.sina.com.cn/s/blog_5d29418d0101cvyx.html 1 简介 Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软 ...

  6. Oracle GoldenGate常用配置端口

    1 简介 Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数 ...

  7. GoldenGate 双向复制解决方案

    1 双向复制方案简介 在双向复制(Bidirectional)方案中,可以采用以下两种部署方式: 方式一:配置源和目标数据库可以同时保持Active 状态,同时进行应用系统的事务处理, 此时需由应用系 ...

  8. GoldenGate单向复制配置示例

    一:环境介绍 --source端 ip地址:192.168.123.10 数据库版本:11.2.0.1.0 32 bit 操作系统版本:centos 4.5 32 bit ogg版本:fbo_ggs_ ...

  9. goldengate 简单配置 oracle to oralce

    做oracle时配置的,goldengate 是同步异构数据库最好的工具.这个是基于oracle to oracle 单向复制 添加增量复制进程   add extract process -- -- ...

随机推荐

  1. Python3基础 函数 默认值参数示例

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  2. Chapter 1 First Sight——5

    "He's in a wheelchair now," Charlie continued when I didn't respond, 他现在在轮椅上了,没等我回答查理斯就继续说 ...

  3. Android 之 ServiceManager与服务管理

    ServiceMananger是android中比较重要的一个进程,它是在init进程启动之后启动,从名字上就可以看出来它是用来管理系统中的service.比如:InputMethodService. ...

  4. 关于配置Tomcat的URIEncoding

    遇到的问题: 程序需要发送http GET请求到服务器,请求的参数中包含了中文字符.程序中参数为UTF-8格式,且经过了UTF-8 URL编码再发送.使用的tomcat服务器,但服务器端后台程序中取到 ...

  5. 【BZOJ3524/2223】[Poi2014]Couriers 主席树

    [BZOJ3524][Poi2014]Couriers Description 给一个长度为n的序列a.1≤a[i]≤n.m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大 ...

  6. [iOS]C语言技术视频-10-指针变量

    下载地址: 链接: http://pan.baidu.com/s/1jGjbaXg 密码: u2t9

  7. (简单) POJ 3368 Frequent values,RMQ。

    Description You are given a sequence of n integers a1 , a2 , ... , an in non-decreasing order. In ad ...

  8. 关于安装Windows Live Writer后,内存被占满情况解决

    为了方便写博客,昨天安装了Windows Live Writer2012,但是出现了在安装好后还是正常的,第二天一开机就出现了内存被占满的情况,在资源监视器里看了下也没发现有什么问题.想还是重启一下, ...

  9. iOS8 UISearchViewController搜索功能讲解

    在iOS8以前我们实现搜索功能需要用到UISearchbar和UISearchDisplayController, 在iOS8之后呢, UISearchController配合UITableView的 ...

  10. APP被苹果APPStore拒绝的各种原因 分类: ios相关 app相关 2015-06-25 17:27 200人阅读 评论(0) 收藏

    APP被苹果APPStore拒绝的各种原因 1.程序有重大bug,程序不能启动,或者中途退出. 2.绕过苹果的付费渠道,我们之前游戏里的用兑换码兑换金币. 3.游戏里有实物奖励的话,一定要说清楚,奖励 ...