OGG由于GGS处理SEQUENCE方式导致Ext延时_NOAUTOMATICSEQUENCEFLUSH处理
2016-05-11 15:12
549 查看
OGG Extlc延迟-由于GGS处理SEQUENCE方式导致延时_NOAUTOMATICSEQUENCEFLUSH
from:http://blog.sina.com.cn/s/blog_4d22b9720102v3xr.html(2014-10-30 14:06:01)
我们一直使用GGS作为数据库容灾的工具,配置上海本地以及北京异地的数据库容灾系统,采用的级联复制模式,即:SH(A)àSHLocal(B)àBJ(C).
之前使用的GGS的版本是10.4.0.19版本,每次在上海生产库上执行的DDL,都是特别慢,需要的时间特别久(这需要的时间无法忍受)才能传至北京的容灾数据库,已经影响到容灾环境正常运转。多次咨询OracleMetalink的工程师,都没有结果,他们给的最后答案是升级到最新版本。由于很多问题,我们并没有升级到最新版本,只是将到北京库的DDL复制取消,当然这给我们DBSQL升级人员带来麻烦,因为每次DDL升级必须北京容灾先升级。
恰好由于现在机房租赁的调整,我们所有设备将迁移到新机房之中,趁机我们更换的GGS的版本,更改为11.2.1.0.1版本。更改之后,我们上海本地GGS容灾的EXTLC进程中增加如下参数(增加到北京库的DDL功能):
extract extlc setenv (ORACLE_SID="paidit") setenv (NLS_LANG = AMERICAN_AMERICA.ZHS16GBK ) userid ggs, password ggsxxxx REPORT AT 01:59 numfiles 3000 IGNOREAPPLOPS, GETREPLICATES --ddl include mapped exclude mapped optype comment exclude mappedobjtype 'SNAPSHOT' exclude mapped instr 'moveTABLESPACE' --ddloptions nocrossrename,report --DDL include objname "IPSx.*" exclude objname"IPSx.TIPS_DIS_TRANS_TMP" DDL include objname IPSx.*,includeobjname AML.*,include objname IPSACCOUNT.* --DDL include objname AML.* DDLOPTIONS REMOVECOMMENTS BEFORE reportrollover at 02:00 --TRANLOGOPTIONS CONVERTUCS2CLOBS DDLOPTIONS GETREPLICATES,IGNOREAPPLOPS --TRANLOGOPTIONS EXCLUDEUSER ggs --THREADOPTIONSMAXCOMMITPROPAGATIONDELAY 3000 IOLATENCY3000 discardfile ./dirrpt/extlc.dsc,append,megabytes 10 --gettruncates --warnlongtrans 10m, checkintervals 3m exttrail ./dirdat/lc --numfiles 3000 dynamicresolution --obey ./dirprm/seq.txt --DDLERROR SKIPTRIGGERERROR 10 TRACE ./dirtmp/ext.trc TRACE2 ./dirtmp/ext.trc2 ---table table IPSx.*; table AML.*; table IPSACCOUNT.*; ---sequence sequence IPSx.*; sequence AML.*; sequence IPSACCOUNT.*; |
根据SEQUENCE这一点深入分析发现与metalinkDoc ID 1535322.1情况类似,主要是GGS为了保证把SEQUENCE取值可靠更新到目标库,将每一次SEQUENCE取值都要分解成以下类似SQL语句:
alter sequence .... cycle; ---- for the sequence with cycleoption
alter sequence ... nocycle; ---- for the sequence without cycleoption
这样就会导致目标库中产生大量的DDL脚本,此时上海容灾库的EXTLC进程再来捕获,从而导致速度过慢。DocID 1535322.1也提到类似解决方案,就是将上海容灾库上的REPLICAT进程增加如下参数:
DBOPTIONS_NOAUTOMATICSEQUENCEFLUSH
replicat replc setenv (ORACLE_SID="paidit") setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK) userid ggs, password ggsxxx sqlexec "Alter session setconstraints=deferred" REPORT AT 01:59 reportrollover at 02:00 --handlecollisions DBOPTIONS SUPPRESSTRIGGERS DBOPTIONS DEFERREFCONST DBOPTIONS_NOAUTOMATICSEQUENCEFLUSH --ddl include mapped --ddloptoins report ddl include all DDLERROR DEFAULT abend DDLSUBST 'enable' WITH 'disable' INCLUDE OBJTYPE'trigger', OPTYPE alter DDLSUBST 'enable' WITH 'disable' INCLUDE INSTR'ZGLT_CASCADE', OPTYPE alter, OBJTYPE 'CONSTRAINT' reperror default,abend discardfile ./dirrpt/replc.dsc,append, megabytes10 assumetargetdefs checksequencevalue allownoopupdates dynamicresolution numfiles 3000 map IPSx.*, target IPSx.*; map IPSACCOUNT.*, target IPSACCOUNT.*; map AML.*, target AML.*; |
相关文章推荐
- IOS开发-UIView之动画效果的实现方法(合集)
- Executors.newFixedThreadPool和ArrayBlockingQueue一点使用心得
- iOS开发之基础视图——UILabel
- UITextField 控制文本输入小数点和小数点后几位
- django1.8 提示(1_8.W001) The standalone TEMPLATE_* settings were deprecated in Django 1.8 and the TEMPLATES dictionary takes precedence. You must put the values of the following settings into your defau
- iOS开发 贝塞尔曲线UIBezierPath(后记)
- 学习笔记-UITableView的数据源(dataSource)和代理(delegate)
- iOS开发 贝塞尔曲线UIBezierPath
- Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备
- easyUI中tab中的html片段导包与父页面的包冲突
- 【FLUENT案例】06:与EDEM耦合计算
- 【代码】key-value模式下的哈希二次探测与简单的哈希类的实现
- UE4 性能优化方法(工具篇)
- hdu 3836 Equivalent Sets
- pat 1007. Maximum Subsequence Sum (25)
- 优化duilib中的CDateTimeUI控件-修正XP下无法使用的问题
- Hue 可视化的Hadoop架构工具
- 线程中更新 UILabel的text
- org.hibernate.PropertyAccessException: Null value was assigned to a property。。。。完美解决
- NGUI之UIGrid & UITable