注意:在进行如下配置之前,先在源数据库(原来的目标数据库)端添加辅助的redolog配置:
      1、SQL> alter database add supplemental log data;
             SQL> alter system switch logfile;
        2、alter database force logging;
       
        否则启动extract进程会失败,使用view report eora_2查看详细信息时会显示如下错误:
        2012-12-07 06:58:03  GGS ERROR       500  Found unsupported in-memory undo record in sequence 60, at RBA 15113744, with SCN 0.4214362 (4214362)
... Minimum supplemental logging must be enabled to prevent data loss.
       
       
        3、在ogg环境下,添加日志跟踪:
        GGSCI (db.cn.oracle.com) 3> DBLOGIN USERID ogg, PASSWORD Ogg
        GGSCI (db.cn.oracle.com) 5> ADD TRANDATA scott.EMP_OGG

GGSCI (db.cn.oracle.com) 6> ADD TRANDATA scott.DEPT_OGG

一、双向复制节点2配置:
1)添加附加的redolog信息
DBLOGIN USERID ogg, PASSWORD ogg
 
ADD TRANDATA scott.*
 
2)配置extract
GGSCI (cuug97) 11>  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.*;

GGSCI (cuug97) 11>  ADD EXTRACT EORA_1, TRANLOG, BEGIN NOW
EXTRACT added.

GGSCI (cuug97) 12>  ADD EXTTRAIL ./dirdat/aa, EXTRACT EORA_1, MEGABYTES 5
EXTTRAIL added.

GGSCI (cuug97) 13> START EXTRACT EORA_1

3)配置pump进程
GGSCI (cuug97) 15>  EDIT PARAMS PORA_1

EXTRACT PORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
PASSTHRU
RMTHOST cuug95, MGRPORT 7809
RMTTRAIL ./dirdat/pa
TABLE scott.*;

GGSCI (cuug97) 16>  ADD EXTRACT PORA_1, EXTTRAILSOURCE ./dirdat/aa
EXTRACT added.

GGSCI (cuug97) 17> ADD RMTTRAIL ./dirdat/pa, EXTRACT PORA_1, MEGABYTES 5
RMTTRAIL added.

GGSCI (cuug97) 18>  START EXTRACT PORA_1

4、第一节点(原来的源数据库)
1、配置checkpoint

GGSCI (cuug95) 1> EDIT PARAMS ./GLOBALS
CHECKPOINTTABLE ogg.ggschkpt

GGSCI (cuug95) 1> exit

GGSCI (cuug95) 1> DBLOGIN USERID ogg, PASSWORD ogg
Successfully logged into database.

GGSCI (cuug95) 2> ADD CHECKPOINTTABLE

2、配置replicate
GGSCI (cuug95) 4> 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
MAP scott.*, TARGET scott.*;

GGSCI (cuug95) 4> ADD REPLICAT RORA_1, EXTTRAIL ./dirdat/pa

GGSCI (cuug95) 6> START REPLICAT RORA_1

注意:在双向复制的过程中,如果表有主键,那么更新表主键列的时候,oracle会在目标端insert一条新行,而不是在原来的行上更新;如果没有主键列,无论update哪个列,都在目标数据库insert新行。

二、支持DDL复制配置

1、在第两个节点执行执行DDL同步脚本命令:

先进入goldengate软件安装目录,以SYSDBA身份登录oracle执行以下脚本,执行脚本过程中,需要输入的用户全部是ogg,安装模式为INITIALSETUP,如果数据字典或者某些内部的包有错误,则需要运行catalog.sql和catproc.sql脚本。

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,在eora_1配置文件中添加以下一行:

DDL INCLUDE OBJNAME "scott.*"
   
    最终的内容如下:
EXTRACT EORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD Ogg
TRANLOGOPTIONS EXCLUDEUSER ogg
EXTTRAIL ./dirdat/aa
DDL INCLUDE OBJNAME "scott.*"
TABLE scott.*;

注意:先关闭eora_1进程,再添加,然后重新启动。
   
3、配置两个节点的replicat
    3.1、GGSCI (cuug95) 6> DBLOGIN USERID ogg, PASSWORD Ogg

GGSCI (cuug95) 7> add checkpointtable ogg.checkpoint
            
    如果之前已经添加过,则无需操作。
   
4、配置REPLICAT进程参数文件,添加以下几行到rora_1配置文件中:

DDL INCLUDE ALL
DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5
DDLERROR DEFAULT DISCARD
DDLERROR DEFAULT IGNORE RETRYOP

最终的内容如下:
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.*;

5、如果新建的表进行同步,update可能不成功,需要进行一下操作,这样子ogg才会去捕捉new_tab的日志信息:

ADD TRANDATA scott.new_tab;

注意:先关闭rora_1进程,再添加,然后重新启动。
   
   
5、如果是序列,无需关注,因为oracle是取得序列的值进行insert的。

6、如果源端建表的时候是基于子查询,如果子查询中访问的表在目标端没有,则无法实现ddl同步。或者子查询中的表如果数据不一样,则同步的表数据也不一样,根据各自数据库的子查询中的表来定。

7、如果是insert操作,数据基于子查询,如果子查询访问的表目标端没有,却不受影响,能够同步。

8、update某行时,如果目标数据库没有符合条件的行,ogg会insert一条新行。??
    解决办法: 在最新的GG11.2版本中针对此种情况设置了专门的冲突解决机制,在11.2以前配置解决这个冲突很复杂
(11:16:58 AM) louise.liang@oracle.com: 在initial load 中有一个参数可以避免这个冲突,但是在正常复制时一般不建议用

OGG双向复制的更多相关文章

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

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

  2. Goldengate双向复制配置

    一.Goldengate双向复制配置 1.1.在进行如下配置之前,先在源数据库source system(原来的目标数据库)端 添加辅助的redolog配置: SQL>alter databas ...

  3. 【OGG】OGG简单配置双向复制(三)

    [OGG]OGG简单配置双向复制(三) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O ...

  4. oracle ogg 单实例双向复制搭建(oracle-oracle)--Oracle GoldenGate

    oracle ogg 单实例双向复制搭建(oracle-oracle)--Oracle GoldenGate --继昨天的测试,这一篇实施单实例双向复制(完全重新搭建) --环境不变 db1,db2( ...

  5. Oracle Golden Gate - 概念和机制 (ogg)

    Golden Gate(简称OGG)提供异构环境下交易数据的实时捕捉.变换.投递. OGG支持的异构环境有: OGG的特性: 对生产系统影响小:实时读取交易日志,以低资源占用实现大交易量数据实时复制 ...

  6. OGG同构(ORACLE-ORACLE)、异构(ORACLE-MYSQL)同步配置及错误解析

    环境:11.2.0.3(已安装数据库实例)+OEL5.7 192.168.1.55 zlm sid:zlm11g 192.168.1.60 zlm2 sid:zlm11g 一.安装软件,配置环境,创建 ...

  7. OGG学习笔记04-OGG复制部署快速参考

    OGG学习笔记04-OGG复制部署快速参考 源端:Oracle 10.2.0.5 RAC + ASM 节点1 Public IP地址:192.168.1.27 目标端:Oracle 10.2.0.5 ...

  8. 【OGG】OGG基础知识整理

    [OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...

  9. [转载]Oracle Golden Gate - 概念和机制 (ogg)

    出处:https://www.cnblogs.com/qiumingcheng/p/5435907.html Golden Gate(简称OGG)提供异构环境下交易数据的实时捕捉.变换.投递. OGG ...

随机推荐

  1. e1087. 用For循环做数组的遍历

    The for statement can be used to conveninently iterate over the elements of an array. The general sy ...

  2. linux -- ubuntu 通过命令行,设置文件及其子文件的权限

    想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R表示启动递归处理. 例如: [root@localhost ~]# chmod 777 /home/user 注:仅把 ...

  3. myslq的索引类型为MyISAM和BDB的表:复合索引下的自增长

    本文源自:http://www.himigame.com/mysql/781.html 3.6.9. 使用AUTO_INCREMENT 可以通过AUTO_INCREMENT属性为新的行产生唯一的标识: ...

  4. Oracle 添加主键和索引

    数据的主键和索引一般情况下都是必须的,特别是表有大量数据的时候,索引和主键更是必不可少,这样可以提供数据的查询效率: 一.创建表的同时创建主键约束 (1)无命名 create table studen ...

  5. 在Office上怎么用MathType编辑公式

    随着无纸化的办公程序越来越深入普及到社会的各个层面,很多资料都是电子档.从前手写的内容全都转换到了电脑上.用Office办公时,有一个很大的问题,那就是其中的公式要怎么编辑? 从前用手写毫无困难,什么 ...

  6. NFS挂在文件系统启动参数

    1.tiny6410(增强版)bootargs启动参数(周学伟)noinitrd console=ttySAC0,115200 lcd=S70 init=/init root=/dev/nfs rw ...

  7. easyui------添加中文文件

    添加中文文件: 官网地址:http://www.jeasyui.net/download/去jquery-easyui官网下载的文件里面找到easyui-lang-zh_CN.js文件,添加入代码里面 ...

  8. Android开发之程序猿必需要懂得Android的重要设计理念2(5.20更新版)

    上篇文章介绍了Android开发的设计理念的一部分,并没有得到博友们的多大认可,仅仅看到了一位博友在以下留言期待下一篇文章的发表,为了这小小的唯一支持.我决定继续把后面的8个要点介绍一下,自己也潜心反 ...

  9. python中模块,包,库

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

  10. ch6-定制数据对象(打包代码和数据)

    为了看出数据属于哪个选手,教练向各个选手的数据文件中添加了标识数据:选手全名,出生日期,计时数据. 例如:sarah文件的数据更新为: Sarah Sweeney,2002-6-17,2:58,2.5 ...