设为首页 收藏本站
查看: 488|回复: 0

[经验分享] Oracle DG 逻辑Standby数据同步性能优化

[复制链接]

尚未签到

发表于 2018-9-14 11:44:32 | 显示全部楼层 |阅读模式
  1、调整APPLIER进程数
  APPLIER进程就是执行应用操作的进程。在默认情况下逻辑Standby会启动5个APPLIER进程,如果日志应用任务繁重(或者说Primary数据库修改量较大),则适当多启动几个APPLIER进程有助于提高应用的效率。
  先查看当前空闲的APPLIER进程数:

  SQL> SELECT COUNT(*) AS>  IDLE_APPLIER
  ------------
  0
  返回结果为0,难道都在忙?这个真不一定,空闲的APPLIER进程数为0不一定代表应用非常繁忙,也有可能是因为当前没什么需要应用的日志,甚至都没启动应用进程。
  说 明: status_code=16166表示进程是空闲状态,因为stats_code=16166对应的状态说明列STATS为ORA-16116: no work available。
  检查事务的应用情况:
  SQL> SELECT NAME,VALUE FROM V$LOGSTDBY_STATS WHERE NAME LIKE 'transactions%';
  NAME  VALUE
  ----- ---------------------------
  trans 358
  trans 358
  如果ready-applied的值比APPLIER进程数的两倍还要大,则说明DBA有必要考虑增加APPLIER进程的数目了,反之如果applied与ready的值差不多大,或者其差比APPLIER进程数还小,则说明APPLIER进程数偏多,DBA有必要考虑适当减小进程的数目。
  如果确认当前APPLIER进程都非常繁忙,要增加APPLIER进程,可按如下步骤操作:
  1) 停止逻辑Standby端的SQL应用:

  SQL>>
  Database>  2) 执行下列语句,调整APPLIER进程数为10:
  SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('APPLY_SERVERS',10);
  PL/SQL procedure successfully completed.
  3) 重新启动SQL应用:

  JSSLDG>>
  Database>  4) 查出的就是当前运行的APPLIER进程数:
  SQL> SELECT COUNT(0) FROM  V$LOGSTDBY_PROCESS WHERE TYPE='APPLIER';
  COUNT(0)
  ----------
  10
  也可以通过V$LOGSTDBY_STATS视图查询,例如:
  SQL> SELECT * FROM V$LOGSTDBY_STATS WHERE NAME='number of appliers';
  NAME  VALUE
  ----- ----------------------------------------------------------------
  numbe 10
  2、调整PREPARER进程数
  PREPAPER进程将接收到的REDO数据中的块修改转换成LCRs(Logical Change Records)。一般需要调整PREPAPER进程数的机会不多,通常只有一种情况:APPLIER进程有空闲,Transactions Ready还很多,但没有空闲的PREPAPER进程,这时候DBA可能就需要增加一些PREPAPER进程。
  先检查空闲PREPAPER进程数量:

  SQL> SELECT COUNT(*) AS>  WHERE TYPE = 'PREPARER' and status_code = 16166;
  IDLE_PREPARER
  -------------
  0
  说 明:如果显示为0,别怕,也有可能是因为当前没什么新的REDO数据需要处理。
  如果确实需要调整PREPAPER进程数量,可以按照下列步骤进行。
  首先停止SQL应用:

  SQL>>
  Database>  调整PREPAPER进程数量为4(默认只有1个PREPAPER进程):
  SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('PREPARE_SERVERS',4);
  PL/SQL procedure successfully completed.
  重新启动SQL应用即可:

  SQL>>
  Database>  查看当前启动的PREPAPER进程数, 查询V$LOGSTDBY_STATS视图,例如:
  SQL>  SELECT * FROM V$LOGSTDBY_STATS WHERE NAME='number of preparers';
  NAME  VALUE
  ----- ----------------------------------------------------------------
  numbe 4
  3、调整LCR使用的内存
  LCR中保存的是转换后的块修改的记录,这部分数据保存在SGA中。
  查询当前LCR可用的最大内存:
  SQL> SELECT * FROM V$LOGSTDBY_STATS WHERE NAME='maximum SGA for LCR cache';
  NAME                                                VALUE
  ------------------------------------ --------------------
  maximum SGA for LCR cache                              30
  显示的参数值默认单位为M,当前结果显示LCR内存区可用空间为30M。
  要增加LCR可用的内存,可按照下列步骤操作。
  1) 首先还是需要停止SQL应用:

  SQL>>
  Database>  2) 调整内存大小为100M:
  SQL> EXEC DBMS_LOGSTDBY.APPLY_SET('MAX_SGA',100);
  PL/SQL procedure successfully completed.
  3)最后重启SQL应用即可

  SQL>>
  Database>  4、调整事务应用方式
  在默认情况下逻辑Standby端事务应用顺序与Primary数据库提交顺序相同。如果DBA希望逻辑Standby端事务应用不按照Primary数据库顺序执行的话,可以按照下列步骤操作:
  1)停止SQL应用:

  SQL>>  2)允许事务不按照Primary的提交顺序应用:
  SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('PRESERVE_COMMIT_ORDER', 'FALSE');
  3)重新启动SQL应用:

  SQL>>  恢复逻辑Standby按照事务提交顺序应用的话,可按照下列步骤操作:
  1)先停止SQL应用:

  SQL>>  2)重置参数PRESERVE_COMMIT_ORDER的初始值:
  SQL> EXECUTE DBMS_LOGSTDBY.APPLY_UNSET('PRESERVE_COMMIT_ORDER');
  3)重新启动SQL应用:

  SQL>>  oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-582623-1-1.html 上篇帖子: Oracle DG 逻辑Standby数据同步性能优化 下篇帖子: Oracle goldengate同步sql server to oracle
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表