golendgate(29)---goldengate架构之数据分发(data distribution)
系统架构:
整个系统架构是4台机器,两台机器组成dataguard库,主库发送日志到备库,备库只接受日志,不应用,属于数据分发中心,另外两台是复制数据。
该goldengate分发架构进程以及trail文件:
源端exract抽取进程一个,关联本地trail文件一个;
源端pump投递进程两个,关联相同的本地trail文件一个,关联目的端不同trail文件各一个;
目的端replicat复制进程两个,每一台一个,关联trail文件各一个。
例子:
ADD EXTRACT , EXTTRAILSOURCE , BEGIN
ADD EXTRACT , EXTTRAILSOURCE , BEGIN
ADD RMTTRAIL , EXTRACT
ADD RMTTRAIL , EXTRACT
Target_1
ADD REPLICAT , EXTTRAIL , BEGIN
Target_2
ADD REPLICAT , EXTTRAIL , BEGIN
配置简介:
配置dataguard库,这个配置不做介绍,goldengate配置在备库以及另外两台分发的数据库。主库作为日志传送端,备库作为日志接受端,也是源端,另外两台作为目的端,从源端复制相同的数据,这个两台机器一台是linux平台,一台是windows平台,该台windows机器与源端作为异构复制。具体配置异构的文档请见我前面写的文档。
源端配置如下:
GGSCI (oggmiddle) 8> view params ./GLOBALS
GGSCHEMA ggs
GGSCI (oggmiddle) 9> view params mgr
PORT 7809
DYNAMICPORTLIST 7810-7820, 7830
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *, RETRIES 4, WAITMINUTES 4
STARTUPVALIDATIONDELAY 5
PURGEOLDEXTRACTS /u01/app/oracle/ggs/dirdat/trail/cc*, USECHECKPOINTS, MINKEEPDAYS 5
登陆到本地库添加extract进程
GGSCI (dbhouse) 5> dblogin userid ggs, password ggs sysdba
Successfully logged into database.
GGSCI (dbhouse) 6> add EXTRACT s_ex_hr, tranlog, begin now
.
EXTRACT added.
GGSCI (dbhouse) 7> add exttrail /u01/app/oracle/ggs/dirdat/trail/cc, extract s_ex_mid
EXTTRAIL added.
GGSCI (oggmiddle) 10> view params s_ex_mid
EXTRACT s_ex_mid
-- SETENV (NLS_LANG = CHINESE_CHINA.ZHS16GBK)
SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1")
SETENV (ORACLE_SID = "dbking")
USERID ggs@dbking, PASSWORD ggs
TRANLOGOPTIONS ARCHIVEDLOGONLY
-- TRANLOGOPTIONS ASMUSERsys@asm, ASMPASSWORD grid sysdba
TRANLOGOPTIONS DBLOGREADER
TRANLOGOPTIONS ALTARCHIVELOGDEST INSTANCE dbking /arch/archivelog
TRANLOGOPTIONS DBLOGREADERBUFSIZE 1048576
EXTTRAIL /u01/app/oracle/ggs/dirdat/trail/cc
TABLE gis_test.*;
GGSCI (dbhouse) 6> add extract pump_mid, EXTTRAILSOURCE /u01/app/oracle/ggs/dirdat/trail/cc
EXTRACT added.
GGSCI (dbhouse) 7> add RMTTRAIL C:\app\oracle\ggs\dirdat\mid\mm, extract pump_mid
RMTTRAIL added.
GGSCI (oggmiddle) 11> view params pump_mid
EXTRACT pump_mid
USERID ggs@dbking, PASSWORD ggs
RMTHOST 10.23.5.155, MGRPORT 7809
RMTTRAIL C:\app\oracle\ggs\dirdat\mid\mm
PASSTHRU
TABLE gis_test.*;
add extract pump_un, EXTTRAILSOURCE /u01/app/oracle/ggs/dirdat/trail/cc
RMTTRAIL added.
GGSCI (oggmiddle) 9> add RMTTRAIL /u01/app/oracle/ggs/dirdat/rtrail/pp, extract pump_un
RMTTRAIL added.
GGSCI (oggmiddle) 60> view params pump_un
EXTRACT pump_un
USERID ggs@dbking, PASSWORD ggs
RMTHOST 10.23.5.71, MGRPORT 7809
RMTTRAIL /u01/app/oracle/ggs/dirdat/rtrail/pp
PASSTHRU
TABLE gis_test.*;
GGSCI (oggmiddle) 12> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING PUMP_MID 00:00:00 00:00:06
EXTRACT RUNNING S_EX_MID 00:00:00 00:00:06
目标端配置:
目标端之一:
GGSCI (pc-ggs) 4> view params ./GLOBALS
CHECKPOINTTABLE ggs.GGS_CHECKPOINT
GGSCI (pc-ggs) 5> view params mgr
PORT 7809
DYNAMICPORTLIST 7810-7820, 7830
AUTOSTART REPLICAT *
AUTORESTART REPLICAT *, RETRIES 4, WAITMINUTES 4
STARTUPVALIDATIONDELAY 5
PURGEOLDEXTRACTS c:\app\oracle\ggs\dirdat\win\ww*, USECHECKPOINTS, MINKEEPDAYS
5
PURGEOLDEXTRACTS c:\app\oracle\ggs\dirdat\mid\mm*, USECHECKPOINTS, MINKEEPDAYS
5
登陆到本地库添加checkpointtable
GGSCI (primary) 15> dblogin userid ggs,password ggs
Successfully logged into database.
GGSCI (primary) 16> add CHECKPOINTTABLE ggs.GGS_CHECKPOINT
Successfully created checkpoint table GGS.GGS_CHECKPOINT.
add REPLICAT rep_mid, EXTTRAIL c:\app\oracle\ggs\dirdat\mid\mm, CHECKPOINTTABLE ggs.GGS_CHECKPOINT
GGSCI (pc-ggs) 6> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP_MID 00:00:00 00:00:10
目标端之二:
GGSCI (primary) 6> create subdirs
GGSCI (primary) 10> view params mgr
PORT 7809
DYNAMICPORTLIST 7810-7820, 7830
AUTOSTART REPLICAT *
AUTORESTART REPLICAT *, RETRIES 4, WAITMINUTES 4
STARTUPVALIDATIONDELAY 5
PURGEOLDEXTRACTS /u01/app/oracle/ggs/dirdat/rtrail/pp*, USECHECKPOINTS, MINKEEPDAYS 5
登陆到本地库添加checkpointtable
GGSCI (primary) 11> dblogin userid ggs,password ggs
Successfully logged into database.
GGSCI (primary) 12> add CHECKPOINTTABLE ggs.GGS_CHECKPOINT
Successfully created checkpoint table ggs.GGS_CHECKPOINT.
GGSCI (primary) 13> EDIT PARAMS ./GLOBALS
add REPLICAT rep_un, EXTTRAIL /u01/app/oracle/ggs/dirdat/rtrail/pp, CHECKPOINTTABLE ggs.GGS_CHECKPOINT
GGSCI (primary) 22> view params rep_un
REPLICAT rep_un
ASSUMETARGETDEFS
DISCARDFILE /u01/app/oracle/ggs/dirrpt/discard/rep.dsc, APPEND
USERID ggs, PASSWORD ggs
MAP gis_test.*, TARGET gis_test.*;
GGSCI (primary) 3> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP_un 00:00:00 00:00:05
测试:
源端插入数据
表wangkkk有主键,登陆远程主库添加表级别附加日志:
GGS>dblogin userid ggs@dbking, password ggs
GGS>add trandata gis_test.wangkkk
insert into gis_test.wangkkk values (1,'c');
insert into gis_test.wangkkk values (2,'b');
insert into gis_test.wangkkk values (3,'b');
commit;
select * from gis_test.wangkkk;
1 1 a
2 2 b
3 3 c
目标端一复制到了数据
目标端二复制到了数据。
注意使用dblogin登陆数据库的时候,一会儿登陆本地,一会儿登陆远程,不要搞糊涂了。只有对表添加附加日志的时候 ,是登陆远程主库,因为你的表是在远程主库;其他一律是本地添加,例如:添加本地extract进程,添加本地复制进程,添加本地checkpinttable.
goldengate分发数据架构测试完成。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21266384/viewspace-757668/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21266384/viewspace-757668/