Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

999

积分

1

好友

942

主题
1#
发表于 2013-10-10 20:04:08 | 查看: 8565| 回复: 0
OGG goldengate 常用性能调优

常用调优方法 –  寻找extract瓶颈

使用系统工具监控Extract运行的CPU/IO/Mem
CPU:top,topas,sar等
IO:iostat等
Mem:vmstat等
使用TESTMAPPINGSPEED
可以使Extract只解析日志但不写队列,用于测试日志抽取速度
如果加入该参数使Extract性能能够显著提高,则写队列为可能瓶颈
缩小Extract包含的表范围
只保留一个数据变化较小表或者加一个测试表,观察Extract处理速度是否得到提高,如有显著提高则可能瓶颈在数据库fetch,可通过查询运行期间存在哪些select语句予以验证
Extract的瓶颈一般在于LCR转换为UDF


进程拆分
最有效方式,可以使用多个CPU并行处理
注:每个进程可以最多占用CPU个数为RAC节点数+1,即如果是2节点RAC则每个抽取进程最高占用3个CPU内核
如果系统IO出现瓶颈:
增大日志读取间隔
EOFDELAY 3 //间隔3秒,缺省为1秒
增大内存刷新间隔
FLUSHSECS 3 //间隔为3秒,缺省为1秒


常用调优方法 –  data pump调优



使用PASSTHRU避免与源数据库交互
如网络带宽较低
加入数据压缩
RMTHOST …, COMPRESS //压缩在网络上传输的数据。如果本地局域网则无须加入压缩,因为其会增加CPU压力。
增大tcp缓存大小
RMTHOST newyork, MGRPORT 7809, TCPBUFSIZE 100000, TCPFLUSHBYTES 300000
如IO出现瓶颈
增大队列读取间隔
EOFDELAY 3 //间隔3秒,缺省为1秒
增大内存刷新间隔
FLUSHSECS 5 //间隔为5秒,缺省为1秒


常用调优方法 –  寻找Replicat瓶颈


使用系统工具监控Extract运行的CPU/IO/Mem
CPU:top,topas,sar等
IO:iostat等
Mem:vmstat等
使用TESTMAPPINGSPEED
可以使Replicat只解析队列但不实际写数据库,用于测试读队列速度
如果能使Replicat性能能够显著提高,则写数据库队为瓶颈
Replicat的瓶颈一般在于写数据库


常用调优方法 –  replicat调优

表一定要指定主键或者唯一索引
使用操作合并
         BATCHSQL BATCHESPERQUEUE 100, OPSPERBATCH 8000
说明:只适用于小表,对于列特别多或者字段特别长的表反而可能降低性能;对于少量表重复进行操作的情景例如批处理比较有效。可以通过对两个子参数的组合进行尝试获取最佳性能。
对于密集小交易使用交易合并
GROUPTRANSOPS 1000
对大交易使用交易分拆
MAXTRANSOPS 10000
使用insertappend加速插入速度
拆分为多个replicat


GROUPTRANSOPS与MAXTRANSOPS


Grouptransops示例
三个交易,分别有25/50/60个记录
假如grouptransops 为100 (缺省值),则Replicat一直要等待到第三个交易时25 + 50 + 60 > 100才后Commit
两参数关系算法
if end of transaction OR num of operations >= maxtransops then
if num of operations >= grouptransops then
COMMIT transaction.
举例
假设Grouptransops = 100, maxtransops = 1,则上述例子中同样要等待第三个交易后提交
假设Grouptransops = 1, maxtransops = 1,则每个交易提交一次
假设Grouptransops = 10, maxtransops = 10,则每10个记录提交一次
建议二者设置为相同值 MAXTRANSOPS = GROUPTRANSOPS


常用调优方法 –  并行处理与进程拆分

拆分粒度
可以通过schema进行区分,每个复制链路负责一个或多个schema;
也可以根据表进行分割,每个进程负责不同表的集合;
对于同一个表也可以通过Range拆分为几个进程同时处理。例如:
Replicat 1:
MAP sales.acct, TARGET sales.acct, FILTER (@RANGE (1, 2));
Replicat 2:
MAP sales.acct, TARGET sales.acct, FILTER (@RANGE (2, 2));
进程拆分的注意事项
各进程间没有同步机制,应尽量确保同一交易涉及表在一个进程
单个extract进程可处理日志一般为30-50G/小时,单个replicat进程一般只能处理1G队列/小时,可采用一个extract对多个replicat的模式
由于extract在catch up(追赶)模式需要读取归档日志,速度慢且耗费资源高,建议extract一旦出现较大延迟则立即进行拆分


常用调优方法 –  并行处理交易一致性

保证抽取一致性
由于OGG的Extract性能较高,可以使用尽量少的Extract完成抽取,多个之间以业务或Schema进行区分
单个Extract抽取出来的队列中可以保证交易的一致性和先后顺序
尽量保证投递一致性
如单个Replicat无法满足一个队列投递数据要求
可以根据表进行分割,每个进程负责不同表的集合,尽量保证同一业务涉及表放在一个Replicat中,可以保证一致性;(需临时禁止表间的外键链接保证Replicat可进行拆分)
对于同一个表也可以通过Range拆分为几个进程同时处理
Replicat拆分可能临时造成各进程间不同步,但是
多个Replicat性能会得到很大提高,可以保证数据复制始终是实时的
当源端出现灾难后,由于Extract可以保证源端抽取时数据的一致性,而目标端多Replicat读取的是同一个队列,当它们应用队列数据完毕后是可以达到数据一致的


下载专业ORACLE数据库恢复工具PRM-DUL  For Oracle http://www.parnassusdata.com/

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638  QQ: 47079569     邮箱:service@parnassusdata.com
您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-5-7 05:26 , Processed in 0.047733 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569