5.6.2 双向配置示例
这个示例中,ggdba用户作为GoldenGate专用用户,ddw和ddws分别为两端数据库需要同步的schema(也可以同名,这里是为了便于区别),通过在两端Extract中配置排除ggdba的操作防止循环应用。以下ddw结尾的进程均在ddw用户所在数据库,ddws结尾的进程均在ddws用户所在数据库。
(1) ddw==>ddws
添加提取进程:
GGSCI> add extract extddw,tranlog,begin now /***
extract extddw userid ggdba,password ggdba exttrail E:\\ggoracle\\dirdat\\e1
tranlogoptions excludeuser ggdba --排除捕获ggdba dynamicresolution gettruncates TABLE ddw.*; ***/
GGSCI> add exttrail E:\\ggoracle\\dirdat\\e1, extract extddw
添加datapump:
GGSCI> add extract pumpddw,exttrailsource E:\\ggoracle\\dirdat\\e1,begin now /***
extract pumpddw
userid ggdba,password ggdba
rmthost 192.168.1.101, mgrport 7801 rmttrail E:\\ggoracle\\dirdat\\rep\\e1 PASSTHRU gettruncates table ddw.*; ***/
GGSCI> add rmttrail E:\\ggoracle\\dirdat\\rep\\e1, extract pumpddw
添加复制应用进程
GGSCI> add replicat repddws,exttrail E:\\ggoracle\\dirdat\\rep\\e1, nodbcheckpoint /***
replicat repddws userid ggdba,password ggdba ASSUMETARGETDEFS reperror default,discard
discardfile E:\\ggoracle\\log\\repddws.dsc,append,megabytes 200
31
gettruncates
HANDLECOLLISIONS
MAP ddw.*, TARGET ddws.*; ***/
(2) ddws==>ddw
添加提取进程:
GGSCI> add extract extddws,tranlog,begin now /***
extract extddws userid ggdba,password ggdba exttrail E:\\ggoracle\\dirdat\\e2
tranlogoptions excludeuser ggdba --排除捕获ggdba dynamicresolution gettruncates TABLE ddws.*; ***/
GGSCI> add exttrail E:\\ggoracle\\dirdat\\e2, extract extddws
添加datapump:
GGSCI> add extract pumpddws,exttrailsource E:\\ggoracle\\dirdat\\e2,begin now /***
extract pumpddws
userid ggdba,password ggdba
rmthost 192.168.1.101, mgrport 7801 rmttrail E:\\ggoracle\\dirdat\\rep\\e2 PASSTHRU gettruncates table ddws.*; ***/
GGSCI> add rmttrail E:\\ggoracle\\dirdat\\rep\\e2, extract pumpddws
添加复制应用进程:
GGSCI> add replicat repddw,exttrail E:\\ggoracle\\dirdat\\rep\\e2, nodbcheckpoint /***
replicat repddw userid ggdba,password ggdba ASSUMETARGETDEFS reperror default,discard
discardfile E:\\ggoracle\\log\\repddw.dsc,append,megabytes 200 gettruncates
HANDLECOLLISIONS
32
MAP ddws.*, TARGET ddw.*; ***/
开启所有进程,双向复制开始。
6、GoldenGate数据同步性能测试
这个GoldenGate同步性能测试,是在以前项目中,为测试该工具是否能满足实际项目中数据同步的实时性、高负载性,自己做的一次伪性能测试。 由于测试条件和个人能力所限,测试仅在局域网内的普通PC(实际为虚拟机上划分的两个OS环境)上进行;测试中的事务仅为单一简单语句(Insert),同步的表为一对一进行同步;测试中源端只提供了每秒5000多条的事务量,实际可以调整得更高些(当然受数据库性能制约),但在这个条件下峰值测试没有什么意义;GoldenGate的参数配置也不能满足最优化配置。
测试主要目的:
(1) 反映在这个条件下,实时同步大致的性能效率。 (2) 提出一个GoldenGate实时同步性能测试的方案。 (3) 提出实际项目部署中,需要考虑到哪些负载问题。
6.1 测试中主要监测数据和监测方式
(1)源端和目标端每秒提交数据量 测试数据生成时,以1秒为间隔统计2端端口性能表的数据量,记录在测试日志表GG_PERFORMANCE_TESTLOG中。
(2)测试过程中两端数据库生成的REDO量 测试前清空两端数据库的归档日志,测试后switch日志组,统计归档文件生成量。同时在测试中在线监测相关会话生成的REDO量。
(3)生成的测试数据在表空间中占用的空间大小 测试后分析per_test表进行空间大小统计。
(4)测试数据传输时生成的trail文件大小 关闭trail文件自动清除,比较测试前后相应trail队列的增长情况。
(5)记录测试时两端的网络流量情况 通过金山卫士的流量监控功能监控。同时在线监测replicat端的lag情况。
33
6.2 测试脚本和GoldenGate配置
同步性能测试在2个虚拟机之间进行,IP分别为192.168.0.146和192.168.0.142,由146向142同步数据,146上insert一条新记录作为一个事务提交。同步测试表为PER_TEST。
6.2.1 测试脚本
(1)DB Link
为监控方便,146上建立142的DB Link,主要为统计两边数据库提交的数据量,并不用于数据同步:
create database link DB142.REGRESS.RDBMS.DEV.US.ORACLE.COM connect to coss3 identified by coss3
using 'orcl142'; --146上142数据库的服务名
(2)性能测试日志表
create table GG_PERFORMANCE_TESTLOG (
RECORD_DATE TIMESTAMP(6), COUNTS_142 NUMBER, COUNTS_146 NUMBER, DIFFERENCE NUMBER,
MARKS VARCHAR2(500) )
(3)测试数据生成脚本
CREATE OR REPLACE PROCEDURE P_GG_PERFORDATA( /*
* INSERT TEST DATA FOR TESTING GOLDENGATE SYNC PERFORMANCE DATA;
* THE USER WHO EXEC PROCEDURE P_GG_PERFORDATA NEEDS 'execute on dbms_lock' PRIVILEGE
* AUTHOR ZHOUJIONG 2011-04-07 */
p_looptime in pls_integer ) AS
v_date date; Begin
34
v_date:=sysdate;
for i in 1..p_looptime loop
/** port performance data **/ insert into PER_TEST (sampletime, objectid, step,
OBTAINABLE,
PORT_IN_PKT_BROAD_SPEED, PORT_IN_PKT_DIS_SPEED, PORT_IN_PKT_ERR_SPEED, PORT_IN_PKT_MULTI_SPEED, PORT_IN_PKT_NUNI_SPEED, PORT_IN_PKT_UNI_SPEED, PORT_IN_SPEED,
PORT_OUT_PKT_BROAD_SPEED, PORT_OUT_PKT_DIS_SPEED, PORT_OUT_PKT_ERR_SPEED, PORT_OUT_PKT_MULTI_SPEED, PORT_OUT_PKT_NUNI_SPEED, PORT_OUT_PKT_UNI_SPEED, PORT_OUT_SPEED) values (v_date, i, i, 'T', 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32); commit; end loop;
dbms_lock.sleep(600); --执行完毕后停顿10分钟,便于在线收集redo量
35
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库GoldenGate安装部署(7)在线全文阅读。
相关推荐: