GoldenGate的安装与配置(二)oracle——oracle双向复制(DML)

本文详细介绍了如何使用GoldenGate (OGG) 在两个Oracle数据库间配置DML和DDL的双向复制,包括配置步骤及验证同步的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述:.Goldengate DDL复制和DML复制相关概念和区别:

1.Goldengate是如何实现对DDL的复制?
OGG的DDL复制本质是基于数据库全局Trigger的复制。在源库建立一个Oracle全库级的Trigger捕捉DDL操作到中间表,Extract读取中间表DDL语句并与DML语句根据SCN排序,Pump投递到目标端,目标端的Replicat再重现该DDL语句。

2.OGG 实现DDL与DML复制的区别?
DDL复制与DM复制的复制机理是全完不同的,DDL复制基于Trigger,而DML复制是基于日志,其数据捕捉是没有联系的,只是在主Extract进程中通过SCN号按照发生的顺序进行组装,保证DDL操作和DML操作按照其原来的顺序执行。

3.说出几种OOG对DDL类型的限制。
OGG 10G DDL不支持ORACLE回收站功能。
OGG支持不超过2M长度的DDL语句。
OGG只支持单向的DDL复制,不支持双向的DDL复制。

配置DML双向复制:

1.环境介绍:ogg 版本11.2.0.1 数据库版本11.2.0.4.0 OS redhat 6.3 

主机orcl1《=========》主机orcl2(GG安装过程略)

2.配置orcl1到orcl2的复制:

A.配置mgr主进程组

edit params mgr

port 7809                                                   /* mgr所用端口号*/

dynamicportlist 7800-8000                                  /* mgr可用的端口范围*/

autostart  extract  *                                        /* 自动启动抽取进程 */   

autorestart extract *, waitminutes 2, resetminutes 5          /* 自动重启抽取进程 */    

lagreporthours 1                                             /* 每隔1小时检查延迟报告*/

laginfominutes 3                    /* 每隔3分钟检查延迟,如果超过延迟阈值,将写入错误日志*/

lagcriticalminutes 5                  /*延迟阈值5分钟*/

purgeoldextracts  /u01/ggate/dirdat/rt*, usecheckpoints, minkeepdays 3

 /* 队列传递结束后,依然保留本地队列3天*/

配置完成后启动mgr进程

start mgr

B. 配置Extract进程组

配置抓取进程eora

edit params eora

extract eora                                               

dynamicresolution

setenv (ORACLE_SID=CPP)                                 

setenv (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)       

userid ggate,password ggate                                   

exttrail /u01/ggate/dirdat/et                          

tranlogoptions excludeuser ggate     --/避免出现死循环复制,extract进程需要进行此项设置  

ddl include all                                             

ddloptions addtrandata, report

table hr.*;  

添加抽取进程

add extract eora, tranlog,begin now

添加本地trail文件

add exttrail /u01/ggate/dirdat/et,extract eora

启动服务

start extract eore

C.  配置pump进程组

edit params pump_so

extract pump_so                                                    

dynamicresolution

passthru

rmthost 192.168.1.176,mgrport 7809,compress                        

rmttrail /u01/ggate/dirdat/pt                                  

table hr.*;

添加pump进程

add extract pump_so,exttrailsource /u01/ggate/dirdat/et ---本地

添加远程trail文件

add rmttrail /u01/ggate/dirdat/pt,extract pump_so

说明: 指定远程trail文件

启动pump进程

start extract pump_so

D. 添加检查表(目标主机orcl2)

编辑全局配置文件

edit params ./GLOBALS
CHECKPOINTTABLE ogg.checkpoint

exit

./ggsci  

GGSCI (slave) 1> dblogin userid ggate,password ogg
Successfully logged into database.

GGSCI (slave) 2> add checkpointtable ggate.checkpoint
Successfully created checkpoint table GGATE.CHECKPOINT.

E.  配置replicat进程组

edit params repl

replicat repl

userid ggate,password ggate

assumetargetdefs

reperror default,discard

discardfile /u01/ggate/dirrpt/repl.dsc,append,megabytes 50

dynamicresolution

map hr.*, target hr.*;

2) 添加复制进程
add replicat repl,exttrail /u01/ggate/dirdat/pt, CHECKPOINTTABLE ggate.checkpoint

3) 启动进程
start repl 

主机orcl1到orcl2配置完毕,检查各进程的状态:

GGSCI (orcl1) 26> info mgr
Manager is running (IP port orcl1.7809).

GGSCI (orcl1) 24> info eora
EXTRACT    EORA      Last Started 2014-10-22 15:20   Status RUNNING
Checkpoint Lag       00:00:00 (updated 00:00:02 ago)
Log Read Checkpoint  Oracle Redo Logs
         2014-10-22 17:46:46  Seqno 29, RBA 16979968
          SCN 0.1096522 (1096522)

GGSCI (orcl1) 25> info pump_so

EXTRACT    PUMP_SO   Last Started 2014-10-22 15:30   Status RUNNING

Checkpoint Lag       00:00:00 (updated 00:00:06 ago)
Log Read Checkpoint  File /u01/ggate/dirdat/et000000
2014-10-22 16:56:33.000000  RBA 58771

主机orcl2:GGSCI (orcl2) 11> info mgr
Manager is running (IP port orcl2.7809).

GGSCI (orcl2) 9> info repl

REPLICAT   REPL      Last Started 2014-10-22 15:38   Status RUNNING
Checkpoint Lag       00:00:00 (updated 00:00:06 ago)
Log Read Checkpoint  File /u01/ggate/dirdat/pt000000
          2014-10-22 16:56:32.832793  RBA 58801

验证同步:SQL> !hostname
orcl1
SQL> select count(1) from t;
  COUNT(1)
----------
       107
SQL> insert into t select * from t;
107 rows created.
SQL> commit;
Commit complete;

SQL> select count(1) from t
  COUNT(1)
----------
       214

SQL> !hostname
orcl2
SQL> select count(1) from t;
  COUNT(1)
----------
        214                           ============>同步成功

从orcl2到orcl1复制,同样的操作,注意修改PUMP进程的远程主机IP:

GGSCI (orcl2) 13> view params pump_1
extract pump_1                                              
dynamicresolution
passthru
rmthost 192.168.1.175,mgrport 7809,compress                        
rmttrail /u01/ggate/dirdat/pt                                  
table hr.*;

配置完成如下:

GGSCI (orcl1) 27> info all
Program     Status      Group       Lag at Chkpt  Time Since Chkpt
MANAGER     RUNNING                                           
EXTRACT     RUNNING     EORA        00:00:00      00:00:03    
EXTRACT     RUNNING     PUMP_SO     00:00:00      00:00:10    

REPLICAT    RUNNING     REPL_1      00:00:00      00:00:09    

GGSCI (orcl2) 14> info all
Program     Status      Group       Lag at Chkpt  Time Since Chkpt
MANAGER     RUNNING                                           
EXTRACT     RUNNING     EORA_1      00:00:00      00:00:08    
EXTRACT     RUNNING     PUMP_1      00:00:00      00:00:02    

REPLICAT    RUNNING     REPL        00:00:00      00:00:01    

验证DML双向同步:

SQL> !hostname
orcl2
SQL> insert into t select * from t;
214 rows created.
SQL> commit;
Commit complete.
SQL> select count(1) from t;
  COUNT(1)
----------
        428


SQL> !hostname 
orcl1
SQL> select count(1) from t;
  COUNT(1)
---------  

428

--THE END--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值