Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3565430
  • 博文数量: 715
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 7745
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-07 08:51
个人简介

偶尔有空上来看看

文章分类

全部博文(715)

文章存档

2023年(75)

2022年(134)

2021年(238)

2020年(115)

2019年(11)

2018年(9)

2017年(9)

2016年(17)

2015年(7)

2014年(4)

2013年(1)

2012年(11)

2011年(27)

2010年(35)

2009年(11)

2008年(11)

最近访客

分类: Oracle

2021-07-14 16:15:09

有时看到dg不同步,让人捉急,来来来,看看oracle的手段

步骤 1.检查主数据库上远程归档目标的状态
  1. SELECT DESTINATION, STATUS, ERROR FROM V$ARCHIVE_DEST WHERE DEST_ID=2;
步骤 2.启停远程存档目标:
  1. ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER;
  2. ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
步骤 3.在主数据库上执行 2 次日志切换:
  1. SQL>ALTER SYSTEM SWITCH LOGFILE;
  2. SQL>ALTER SYSTEM SWITCH LOGFILE;
步骤 4.再次检查远程存档目的地的状态
  1. SELECT DESTINATION, STATUS, ERROR FROM V$ARCHIVE_DEST WHERE DEST_ID=2;
如果远程存档中没有错误,则远程存档目的地的状态将为“valid”

步骤 5. 使用以下命令检查备用日志是否收到了重做日志:
  1. SELECT THREAD#,MAX(SEQUENCE#) FROM V$ARCHIVED_LOG GROUP BY THREAD#;
在主数据库上执行 2 次日志切换
  1. ALTER SYSTEM SWITCH LOGFILE;
  2. ALTER SYSTEM SWITCH LOGFILE;
(为什么是2次?可能是为了判断是手工触发的sequence#增加,而不是碰巧自动触发,所以3次也行,5次更明显)
检查 SEQUENCE# 是否改变

  1. SELECT THREAD#,MAX(SEQUENCE#) FROM V$ARCHIVED_LOG GROUP BY THREAD#;
如果 sequence# 增加,远程归档工作正常。

步骤 6.检查主数据库上 log_archive_max_processes 的值

  1. SHOW PARAMETER LOG_ARCHIVE_MAX_PROCESSES

  2. 将 log_archive_max_processes 的值增加到 10(从 10.2 开始,您可以将值增加到 30)
  3. 强烈建议增加此值以避免出现 GAP 时出现任何问题

  4. ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=10;
步骤 7.为主数据库生成新的 ARC 进程
(这步就有点狠了)

  1. ps -ef|grep -i arc| grep $ORACLE_SID
  2. kill -9 ...
注意:
1. 杀死 arc 进程不会损害主数据库,因为当你杀死它们时,新的 arc 进程会立即产生。
2. 重新启动主数据库会产生新的 ARC 进程,所以如果您不习惯手动终止进程,那么请重新启动主数据库以产生新的 ARC 进程。
3. 从 11.2 开始,杀死任何空闲/挂起超过 5 分钟(300 秒)的 DG 进程。


参考:
如何解决远程归档中的错误(文档 ID 799353.1)
日志不会传送到物理备用数据库 (Doc ID 1130523.1)

上述是对老环境的处理办法,对于新环境,还得从头检查



有时初始化参数也非常重要,比如log_archive_config被置为空,dg怎么都不会同步的。

阅读(6127) | 评论(0) | 转发(0) |
0

上一篇:计算DG 所需带宽

下一篇:$'\r':未找到命令

给主人留下些什么吧!~~