解决一例ORA-16086:Redo data cannot be written to the standby redo log

客户环境:

oracle 11gR2 + DataGuard配置,windows操作系统。

 

故障现象:

用户将DataGuard修改为最大可用模式时,提示此错误:

                                     解决一例ORA-16086:Redo data cannot be written to the standby redo log_第1张图片

日志不能传输到从库去,查看v$database如下:

                                   解决一例ORA-16086:Redo data cannot be written to the standby redo log_第2张图片

处于等待同步状态。

 

解决方案:

1、首先判断是否从库上没建standby log,或从库日志组数量较少,或大小与主库不一致。

                                             解决一例ORA-16086:Redo data cannot be written to the standby redo log_第3张图片

主库从库的日志文件大小为50M,与主库一致。从库standby log组比主库redo log多1组。

没发现问题。

 

2、怀疑参数文件配置有错,导致主库不能发现从库的standby log

主库参数文件:

解决一例ORA-16086:Redo data cannot be written to the standby redo log_第4张图片

从库参数文件:       

 解决一例ORA-16086:Redo data cannot be written to the standby redo log_第5张图片

也没发现什么大问题。

 

3、查看主从库alert.log

主库日志:

解决一例ORA-16086:Redo data cannot be written to the standby redo log_第6张图片

从库日志:

解决一例ORA-16086:Redo data cannot be written to the standby redo log_第7张图片

第一遍看,也没看出啥问题。

 

4、根据代码ORA-16086上网各种搜,没发现能解决这问题的方案

 

5、重新查看alert.log,终于看出问题了。

在从库的alert.log里面,可以看到:

解决一例ORA-16086:Redo data cannot be written to the standby redo log_第8张图片

从库在尝试归档standby log,但没找到可用的归档目的地。从库直接就挂起了,主库的LGWR进程自然写不进数据,返回错误ORA-16086。

 

找到原因,解决起来就快多了。

查看归档目的地的参数配置,果然主从库的log_archived_dest_1配置都有问题,将PRIMARY_ROLE改成ALL_ROLES,重启从库。

问题解决。

你可能感兴趣的:(解决一例ORA-16086:Redo data cannot be written to the standby redo log)