设为首页 加入收藏

TOP

搭建oracle到oracle的Goldengate双向复制环境(四)
2014-11-23 20:01:44 来源: 作者: 【 】 浏览:88
Tags:搭建 oracle Goldengate 双向 复制 环境
RANDATA

table ttgg.*;

2 、to configure the pump

GGSCI (gg2) 17> add extract p02,exttrailsource /u01/ggate/dirdat/td,begin now

EXTRACT added.

GGSCI (gg2) 19> add rmttrail /u01/ggate/dirdat/dp,extract p02

RMTTRAIL added.

GGSCI (gg2) 27> view params p02

extract p02

userid ggtest,password oracle

rmthost 192.168.50.230,mgrport 7809

rmttrail /u01/ggate/dirdat/dp

table ttgg.*;

3.to configure the replicat group

GGSCI (gg2) 7> add replicat r01,exttrail /u01/ggate/dirdat/pd,begin now

ERROR: No checkpoint table specified for ADD REPLICAT.

GGSCI (gg2) 8> add replicat r01,exttrail /u01/ggate/dirdat/pd,checkpointtable ggtest.checkpoint;

REPLICAT added.

GGSCI (gg2) 28> view params r01

replicat r01

assumetargetdefs

userid ggtest,password oracle

DISCARDFILE /u01/ggate/dirdat/sdisc.dsc,append,megabytes 100

DISCARDFILE不能直接在安装目录/u01/ggate/,进程可能起不来。

DDL INCLUDE MAPPED

DDLERROR DEFAULT IGNORE RETRYOP

map ssgg.*, target ttgg.*;

启动所有进程:

GGSCI (gg2) 3> start mgr

Manager started.

GGSCI (gg2) 4> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING

EXTRACT RUNNING EXT02 00:00:00 00:00:03

EXTRACT RUNNING P02 00:00:00 00:00:07

REPLICAT RUNNING R01 00:00:14 00:00:04

数据同步测试:

Gg1:

SQL> conn ssgg/oracle

Connected.

SQL> select * from tab;

TNAME TABTYPE CLUSTERID

------------------------------ ------- ----------

SSGG TABLE

TTGG TABLE

SQL> create table test as select * from ssgg;

Table created.

SQL> select * from test;

ID

----------

1

5

SQL> commit;

Commit complete.

然后查看gg2,看数据是否同步

Gg2:

SQL> conn ttgg/oracle

Connected.

SQL> select * from tab;

TNAME TABTYPE CLUSTERID

------------------------------ ------- ----------

SSGG TABLE

TTGG TABLE

SQL> /

TNAME TABTYPE CLUSTERID

------------------------------ ------- ----------

SSGG TABLE

TEST TABLE

TTGG TABLE

SQL> insert into test values(10);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from test;

ID

----------

1

5

10

再返回gg1,查看数据是否同步:

SQL> host hostname

gg1

SQL> select * from test;

ID

----------

1

5

10

至此,Oracle到Oracle的双向数据同步成功(DML+DDL)。

实现双向复制,一般用于双业务中心环境下在实际应用中。双向复制(DDL+DML)面临着许多问题,主要有如下几点:

1. 如果两个库同时更新同一条记录如何处理?调整业务规则

2. 如果网络出现失败如何处理?支持断点续传

3. 如果数据不同步后如何修复?导出源端,导入目标端

总结:

双向复制避免数据冲突是难点,解决这个难点根本还是调整业务:

a) 只在一段开展业务

b) 两端开展不同业务,涉及不同数据集

c) 两端开展相同业务,但依据地域或其他条件对数据予以区分,两边不操作同一条数据

补充:

在oracle中可以通过rowid来定位某条记录,但是目标端的数据库和源端数据库的数据库可能完全不一样,所以无法通过rowid来确定源端数据库的逻辑变化,这时附加日志supplemental log便登上了表演的舞台。数据库在开启附加日志功能后,对于源端的修改操作,oracle会同时追加能够唯一标示记录的列到redo log。这样目标端数据库就可以知道源端发生了哪些具体的变化。

在目标库上创建checkpointtable ,此表中保存的检查点指示 Replicat 进程的当前读写位置。这用于在进程需要重启时或者在服务器出现任何故障或网络停顿时防止数据丢失。如果没有这一机制,将导致数据丢失。另一个好处是,通过使用检查点,多个 Extract 或 Replicat 进程可通过相同的一组线索进行读取。

对于以批处理模式运行的 Extract 和 Replicat 进程,检查点不是必需的,因为这样的进程总是可以重启。然而,在 Extract 和 Replicat 进程连续工作的情况下,检查点是必需的。检查点通常保存在 dirchk 子目录的文件中,但是对于 Replicat,可以选择在数据库的检查点表中保存检查点。

首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇如何判断多个字段组成的关键字在.. 下一篇Oracle技术_UTL_FILE包用法详解_..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: