GoldenGate安装部署(8)

2019-03-09 13:26

Exception

when others then

dbms_output.put_line(substr(SQLERRM, 1, 1000)); End P_GG_PERFORDATA;

(4)数据统计脚本

每秒统计142、146上端口性能表中已提交的数据量和差值。 CREATE OR REPLACE PROCEDURE P_GG_TESTLOG( /*

* COMPARE THE ROWS COUNTS BETWEEN 146 AND 142 FOR TESTING GOLDENGATE SYNC; * IT SHOULD BE CALLED BEFORE WHEN THE P_GG_PERFORDATA WILL BE CALLED * AUTHOR ZHOUJIONG 2011-04-07 */

p_marks in varchar2 default null --for marking which tests the records belong to ) AS

v_timestamp timestamp; v_rows_146 number:=0; v_rows_142 number:=0; begin

for i in 1..1200 loop

v_timestamp:=systimestamp;

select (select count(*) from per_test) num1,

(select count(*) from per_test@DB142.REGRESS.RDBMS.DEV.US.ORACLE.COM) num2

into v_rows_146,v_rows_142 from dual;

insert into GG_PERFORMANCE_TESTLOG(RECORD_DATE,COUNTS_142,COUNTS_146,DIFFERENCE,MARKS) values (v_timestamp, v_rows_142, v_rows_146,

v_rows_146-v_rows_142, p_marks); commit;

dbms_lock.sleep(1); end loop;

Exception

when others then

dbms_output.put_line(substr(SQLERRM, 1, 1000)); end P_GG_TESTLOG;

36

6.2.2 GoldenGate配置

为统计生成的trail文件量,首先将两端的mgr.rpm中的PURGEOLDEXTRACTS C参数注释掉,并重启mgr进程。

(1)146上extract进程配置 ext3.prm /***

extract ext3 SETENV (ORACLE_SID = ORCL)

userid COSS360,password COSS360 exttrail C:\\ggoracle\\dirdat\\e3

dynamicresolution gettruncates

TABLE COSS360.per_test, keycols (sampletime, objectid); ***/

pump3.prm /***

extract pump3

userid COSS360,password COSS360 rmthost 192.168.0.142, mgrport 7801 rmttrail D:\\ggoracle\\dirdat\\trail146\\e3 NOPASSTHRU gettruncates

table COSS360.res_p_s_*; ***/

(2)142上应用进程配置 rep146e3.prm /***

REPLICAT rep146e3

USERID coss3,PASSWORD coss3

--SOURCEDEFS d:\\ggoracle\\dirdef\\ext146\\ext3.ref assumetargetdefs

REPERROR default,discard

DISCARDFILE d:\\ggoracle\\log\\rep148e3.dsc,append,megabytes 200 gettruncates

37

HANDLECOLLISIONS

BATCHSQL BATCHESPERQUEUE 200, OPSPERBATCH 2000 MAP coss360.per_test, TARGET coss3.per_test, keycols (sampletime, objectid); ***/

6.3 测试步骤

(1)清空两端测试表

SQL> truncate table per_test;

(2)清空归档和日志

sqlplus sys/broada_plat@orcl142 as sysdba SQL> alter system switch logfile;

SQL> host RMAN target sys/broada_plat@orcl142 RMAN> delete noprompt archivelog all; RMAN> exit

SQL> conn sys/broada_plat@orcl146 as sysdba SQL> alter system switch logfile;

SQL> host RMAN target sys/broada_plat@orcl146 RMAN> delete archivelog all;

这里需要注意的是,extract进程应该在归档清空后开始抓取,即建立extract进程应该在这个时间点之后begin。主要了防止日志大小统计的不准确。

(3)开启两端GoldenGate进程,记录初始trail file大小 146:2K 142:2K

(4)执行测试脚本

分别在两个命令行窗口中执行2个脚本,其中p_gg_testlog提前于P_GG_PERFORDATA执行,以记录完整的测试信息:

SQL> exec p_gg_testlog(p_marks => 'one')

SQL> exec P_GG_PERFORDATA(p_looptime => 10000000); --实际执行时间约1882秒

(5)测试数据生成结束、会话未关闭时(即10分钟停顿时间内)数据监控 查看相应SESSION

146 user commit: 10000000次 142 user commit: 10082次

备注:在应用端配置了每1000条事务进行一次批量提交

38

会话REDO生成情况统计:

select s.sid, n.name, round(s.value / 1024 / 1024) \ from v$sesstat s, v$statname n where s.statistic# = n.STATISTIC# and n.name like '%redo size%' order by 3 desc; 统计结果:

142上会话redo量(SID 288) ------------------------------------- 1 288 redo size 1679M

146上会话redo量(SID 211) ------------------------------------- 1 211 redo size 10037M

金山卫士流量监控中记录142总下载流量为3.1G。

GoldenGate应用端控制台中,查看lag信息,基本在3秒以内。

(6)统计表大小

SQL> analyze table per_test compute statistics; --190s左右

SQL> select s.segment_name,(s.bytes/1024)||'K' bytes from s.segment_name=UPPER('per_test');

146上

---------------------------------------------------------------- 1 PER_TEST 770048K

142上

---------------------------------------------------------------- 1 PER_TEST 770048K

两端的rows均为1000万行,传输中无数据丢失。

(7)检查trail文件大小 测试后trail文件大小:(e3*) 146:3,326,940,923 142:3,326,956,814

(8)检查生成的归档文件大小

sqlplus sys/broada_plat@orcl142 as sysdba SQL> alter system switch logfile;

sqlplus sys/broada_plat@orcl146 as sysdba SQL> alter system switch logfile;

39

user_segments s where 146:12,413,898,752 142:1,826,665,472

备注:146上的归档还包含一部分因日志表数据插入造成的归档数据。但在前面redo统计中则不包含,因为2个脚本分别运行,在不同的会话下。

(9)查看146上日志表

通过以下语句查看这次测试的日志表数据:

select * from gg_performance_testlog t where regexp_like(marks,'one') order by 1

日志表记录了同步过程中,两端同步表已提交数据的数量和差值,每秒记录一次。可以通过日志表的数据,计算出每秒事务量,并估算出同步效率。如果差值大,表明网络延迟较大;如果差值不断增大,表明应用端同步效率较低,无法满足源端的事务量。

另一文档《性能测试日志表数据》中记录了这次测试的日志表数据。

6.4 性能测试结果

6.4.1 测试数据计算

测试日志表中,记录了测试数据生成时间是从9:58:34到10:31:06,约32分32秒,生成1000万条测试记录,每生成一条记录提交一次,所以: 每秒事务量=10,000,000/1952=5123 次/秒

根据测试日志表记录,统计差值情况:

select avg(difference) avg,max(difference) max from gg_performance_testlog t where regexp_like(marks,'one') and difference>0; avg max

------------------------------------------ 17895.8988970588 51260

即同步时两端记录平均差值约17896行,最大差值为51260行。差值并不随着时间增大,表明应用进程的应用效率能满足抓取的每秒事务量。

146端在10:31:06完成所有事务,相应的,142端10:31:11完成所有应用,最终同步lag约5秒。 生成的trail文件大小3,326,956,814字节,约3172.8M或3.1G,与前面记录的网络传输流量3.1G基本一致,所以: 每秒网络传输流量=3172.8/1952=1.6M/s 源端1000万条记录,相应生成的redo为10037M,约9.80G;应用端同步生成的redo

40


GoldenGate安装部署(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浙江乐清电厂施工组织设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: