GoldenGate_Oracle灾备_双业务解决方案——双向复制配置

Oracle GoldenGate 容灾、双业务解决方案

GoldenGate_Oracle灾备_双业务解决方案——双向复制配置_第1张图片

双向复制的实现

两单机、RAC集群服务器之间在非计划停机时保持业务连续性,在高可用基础上分担业务负载。

双向复制的优缺点

优点:

1.当任何一端挂起或崩溃时,快速回复和切换到另一端,不影响用户正常使用。

2.应急备份,支持断点续传,最小化数据损失。

3.负载均衡,提高系统整体性能。

 

缺点:必须区分两端数据库的业务,否则任何一端数据被更改对系统都会受影响,

双向复制详细配置

双向复制系统架构如下:

GoldenGate_Oracle灾备_双业务解决方案——双向复制配置_第2张图片

 

双向复制的注意点

1.防止数据循环

         双向复制中,最主要的问题是需要防止数据的循环应用。在GoldenGate中,需要从两方面进行预防:

(1)防止Extract进程抓取Replicat进程的SQL操作。

在默认配置下,GoldenGate的Extract进程会忽略捕获由Replicat执行的SQL操作(Teradata除外,需要进行额外配置),所以这部分一般不需要额外设置。

(2)使Extract进程识别本地Replicat执行的DML事务,并进行忽略。

         这步在Oracle(10g andlater)中的配置为在Extract进程加入参数:

TRANLOGOPTIONSEXCLUDEUSER 进行排除。

不同的数据库这里需要配置的参数不同。如果是Oracle9i或之前的版本,需要配置tracetable

 

2.防止数据冲突

         由于是双向复制,那么当两端都对同一数据进行操作时,就会发生冲突。比如同时对某行数据进行修改,修改的操作将会被覆盖(视LAG以及事务的先后);又比如两端插入或删除相同键值的数据。

         对于这类数据冲突,最好是在业务应用层解决。比如,可以划分两端数据库应用的业务范围,一部分数据只在一端修改维护,另一端则修改维护其他数据;在两端定义不同的键值生成策略;关注同步表上的触发器和on delete cascade约束。也可以借助GoldenGate的映射和过滤功能,对于两端同步的数据进行区分。

         总之,在配置双向复制环境时,需要综合考虑当时业务情况,一般都需要在应用层进行适当的修改,以防止数据冲突带来的数据丢失和不一致。

 

双向配置示例

         这个示例中,gatedba用户作为GoldenGate专用用户,gate01和gate02分别为两端数据库需要同步的schema(也可以同名,这里是为了便于区别),通过在两端Extract中配置排除gatedba的操作防止循环应用。以下gate01结尾的进程均在gate01用户所在数据库,gate02结尾的进程均在gate02用户所在数据库。

 

软件准备:

1.Oracle10.2.0.1

2.ggs_Windows_x86_ora10g_32bit

3.wls1033_win32

4.gg-director-serversetup_win_v11_1_1_1_0_001

5.gg-director-clientsetup_win_v11_1_1_1_0_001

 

==============================

Oracle DataaBase

添加用户

Oracle GoldenGate DirectorServer11.1.1.1.0_001 专用

database user: ggserver/ggserver11

配置

alter database add supplemental log data;

alter database add supplemental log data(primary key,unique,foreign key) columns;

 

GoldenGate

专用

gatedba/gatedba

 

测试用户

gate01/gate01 

 

=====================

步骤:

 

1.安装ggs_Windows_x86_ora10g_32bit

 

2.

***************Gate01 服务器 添加GoldenGate  进程***************

dblogin userid gatedba,password gatedba

start mgr

 

edit param extgate1

/***

extract extgate1 

                            

userid gatedba,password gatedba

 

exttrailC:\ggs_Windows_x86_ora10g_32bit\dirdat\e1

 

tranlogoptions excludeuser gatedba 

 

dynamicresolution                       

 

gettruncates

 

TABLE gate01.*;

***/

add extract extgate1,tranlog,begin now

 

add exttrailC:\ggs_Windows_x86_ora10g_32bit\dirdat\e1, extract extgate1

 

edit param ppgate1

/***

extract ppgate1

 

userid gatedba,password gatedba

 

rmthost 192.168.64.101,mgrport7809,compress, COMPRESSTHRESHOLD 0

 

rmttrailC:\ggs_Windows_x86_ora10g_32bit\dirdat\rep\e1

 

PASSTHRU 

 

gettruncates

 

table gate01.*;

***/

add extract ppgate1,exttrailsource C:\ggs_Windows_x86_ora10g_32bit\dirdat\e1,beginnow

 

add rmttrail C:\ggs_Windows_x86_ora10g_32bit\dirdat\rep\e1, extract ppgate1

 

 

edit param repgate2

/***

replicat repgate2 

                              

userid gatedba,password gatedba

                   

ASSUMETARGETDEFS   

                  

reperror default,discard 

                   

discardfileC:\ggs_Windows_x86_ora10g_32bit\dirrpt\repgate2.dsc,append,megabytes 200 

 

gettruncates

 

HANDLECOLLISIONS

 

MAP gate02.*, TARGET gate01.*;

***/

add replicat repgate2,exttrailC:\ggs_Windows_x86_ora10g_32bit\dirdat\rep\e2, nodbcheckpoint

 

***************Gate02 服务器 添加GoldenGate  进程********************

dblogin userid gatedba,password gatedba

start mgr

 

edit param extgate2

/***

extract extgate2    

                         

userid gatedba,password gatedba

 

exttrailC:\ggs_Windows_x86_ora10g_32bit\dirdat\e2

 

tranlogoptions excludeuser gatedba 

 

dynamicresolution         

             

gettruncates

 

TABLE gate02.*;

 

***/

 

add extract extgate2,tranlog,begin now

 

add exttrailC:\ggs_Windows_x86_ora10g_32bit\dirdat\e2, extract extgate2

 

edit param ppgate2

/***

extract ppgate2

 

userid gatedba,password gatedba

 

rmthost 192.168.64.100,mgrport7809,compress, COMPRESSTHRESHOLD 0

 

rmttrail C:\ggs_Windows_x86_ora10g_32bit\dirdat\rep\e2

 

PASSTHRU 

 

gettruncates

 

table gate02.*;

***/

 

add extract ppgate2,exttrailsourceC:\ggs_Windows_x86_ora10g_32bit\dirdat\e2,begin now

 

add rmttrail C:\ggs_Windows_x86_ora10g_32bit\dirdat\rep\e2, extract ppgate2

 

edit param repgate1

/***

replicat repgate1    

                         

userid gatedba,password gatedba 

                  

ASSUMETARGETDEFS 

                    

reperror default,discard

                    

discardfile C:\ggs_Windows_x86_ora10g_32bit\dirrpt\repgate1.dsc,append,megabytes200 

 

gettruncates

 

HANDLECOLLISIONS

 

MAP gate01.*, TARGET gate02.*;

***/

 

add replicat repgate1,exttrailC:\ggs_Windows_x86_ora10g_32bit\dirdat\rep\e1, nodbcheckpoint

 

===============================

3.安装Oracle Golden Gatedirector Server

oracle database :

ggserver/ggserver11

 

4.安装Oracle Golden Gatedirector client

配置框架如下图所示:

 

登陆帐户:

username:admin

password:admin

server: 192.168.64.100:7001

 

5.配置Oracle GDSC AdminTool

GoldenGate_Oracle灾备_双业务解决方案——双向复制配置_第3张图片

登陆帐户:

username:admin

password:admin

 

添加DataSource

host identity:

 fully qualified domain name:192.168.64.100

 manager port: 7809

 data source name gate01--自定义别名,用来区分数据库

 

GoldenGate info:

 Host operating system:WU

 Database:ORA

 Goldengate version:11.1.1.1

 

Default DB Credentials:

 DSN: --没有Host解析不填

 Username: gatedba --专用

 password: gatedba

 

Access Control

 owner: admin

 Host is observale: yes

 

开启所有进程,双向复制开始。

你可能感兴趣的:(Oracle)