20200805-Oracle dg归档同步失败

在这里插入图片描述

问题现象:

DG搭建完成后,主库归档不能自动同步到备库。

问题排查:

主库告警日志报错:

PING[ARC2]: Heartbeat failed to connect to standby 'cjcdb02'. Error is 16058.

报错原因:

备库故障,主库无法连接备库,备库恢复后,主库没有尝试重连备库。

解决方案:

主库重新激活log_archive_dest_state_2
过程如下:
主库:
切换归档

SQL> alter system switch logfile ;
System altered.
SQL> archive log list;
Database log mode       Archive Mode
Automatic archival       Enabled
Archive destination       /arch
Oldest online log sequence     15
Next log sequence to archive   17
Current log sequence       17

备库:
没有接收到归档日志

SQL> archive log list;
Database log mode       Archive Mode
Automatic archival       Enabled
Archive destination       /arch
Oldest online log sequence     0
Next log sequence to archive   0
Current log sequence       0

查看备库告警日志,没有报错,RFS进程已经启动

RFS connections are allowed

主库:
主库告警日志:

Use the following SQL commands on the standby database to create
standby redo logfiles that match the primary database:
ALTER DATABASE ADD STANDBY LOGFILE 'srl1.f' SIZE 52428800;
ALTER DATABASE ADD STANDBY LOGFILE 'srl2.f' SIZE 52428800;
ALTER DATABASE ADD STANDBY LOGFILE 'srl3.f' SIZE 52428800;
ALTER DATABASE ADD STANDBY LOGFILE 'srl4.f' SIZE 52428800;
Tue Aug 04 15:29:26 2020
ALTER SYSTEM SET log_archive_dest_state_2='ENABLE' SCOPE=MEMORY SID='*';
Tue Aug 04 15:29:26 2020
PING[ARC2]: Heartbeat failed to connect to standby 'cjcdb02'. Error is 16058.
Tue Aug 04 15:29:28 2020

主库连接一次备库失败后,没有尝试重连。

主库:
重新激活

SQL> alter system set log_archive_dest_state_2=defer;
SQL> alter system set log_archive_dest_state_2=enable;

主库告警日志:

Tue Aug 04 15:33:58 2020
ALTER SYSTEM SET log_archive_dest_state_2='DEFER' SCOPE=BOTH;
Tue Aug 04 15:34:22 2020
ALTER SYSTEM SET log_archive_dest_state_2='ENABLE' SCOPE=BOTH;
Tue Aug 04 15:34:22 2020
Thread 1 cannot allocate new log, sequence 20
Checkpoint not complete
  Current log# 1 seq# 19 mem# 0: /oracle/oradata/cjcdb01/redo01.log
Thread 1 cannot allocate new log, sequence 20
Private strand flush not complete
  Current log# 1 seq# 19 mem# 0: /oracle/oradata/cjcdb01/redo01.log
Thread 1 advanced to log sequence 20 (LGWR switch)
  Current log# 2 seq# 20 mem# 0: /oracle/oradata/cjcdb01/redo02.log
Tue Aug 04 15:34:29 2020
Archived Log entry 17 added for thread 1 sequence 19 ID 0x3995c964 dest 1:
Tue Aug 04 15:34:29 2020
ARC0: Standby redo logfile selected for thread 1 sequence 19 for destination LOG_ARCHIVE_DEST_2
Tue Aug 04 15:34:29 2020
******************************************************************
LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_2
******************************************************************
LNS: Standby redo logfile selected for thread 1 sequence 20 for destination LOG_ARCHIVE_DEST_2

备库告警日志:

Tue Aug 04 15:34:21 2020
RFS[1]: Assigned to RFS process 11502
RFS[1]: Opened log for thread 1 sequence 14 dbid 966115684 branch 1047470758
Tue Aug 04 15:34:21 2020
RFS[2]: Assigned to RFS process 11504
RFS[2]: Opened log for thread 1 sequence 16 dbid 966115684 branch 1047470758
Tue Aug 04 15:34:21 2020
RFS[3]: Assigned to RFS process 11506
RFS[3]: Opened log for thread 1 sequence 15 dbid 966115684 branch 1047470758
Archived Log entry 1 added for thread 1 sequence 14 rlc 1047470758 ID 0x3995c964 dest 2:
RFS[1]: Opened log for thread 1 sequence 17 dbid 966115684 branch 1047470758
Archived Log entry 2 added for thread 1 sequence 16 rlc 1047470758 ID 0x3995c964 dest 2:
Archived Log entry 3 added for thread 1 sequence 17 rlc 1047470758 ID 0x3995c964 dest 2:
Archived Log entry 4 added for thread 1 sequence 15 rlc 1047470758 ID 0x3995c964 dest 2:
RFS[2]: Opened log for thread 1 sequence 18 dbid 966115684 branch 1047470758
Archived Log entry 5 added for thread 1 sequence 18 rlc 1047470758 ID 0x3995c964 dest 2:
RFS[2]: Selected log 4 for thread 1 sequence 19 dbid 966115684 branch 1047470758
Tue Aug 04 15:34:28 2020
Archived Log entry 6 added for thread 1 sequence 19 ID 0x3995c964 dest 1:
Tue Aug 04 15:34:28 2020
Primary database is in MAXIMUM PERFORMANCE mode
RFS[4]: Assigned to RFS process 11514
RFS[4]: Selected log 4 for thread 1 sequence 20 dbid 966115684 branch 1047470758

欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!

Oracle数据库启用了数据守护进程(Data Guard)的归档模式时,可能会出现归档文件丢失的问题。下面是一些处理此问题的方法: 1. 检查归档丢失的原因:可以查看数据库归档日志文件,确认是由于硬件故障、磁盘满了或者人为错误等原因导致的归档文件丢失。 2. 恢复缺失的归档文件:如果找到了丢失的归档文件,可以手动将其从备份中恢复到归档目录中。然后使用命令"alter database register logfile"将其注册到数据库中。 3. 重新配置归档模式:如果归档文件无法找到或者无法恢复,可以重新配置归档模式。首先需要将数据库切换到非归档模式下,使用命令"alter database noarchivelog"。然后重新启用归档模式,使用命令"alter database archivelog"。 4. 检查备份策略:如果归档文件无法找到或者恢复,也可以检查数据库的备份策略。可以使用备份文件来恢复归档文件。如果备份文件也不存在或者损坏,可以考虑使用其他备份源来恢复归档文件。 5. 更新Data Guard配置:如果使用了Oracle Data Guard来实现数据库的冗余备份,可以更新Data Guard配置来同步丢失的归档文件。可以使用命令"alter database recover managed standby database"来实现。 总而言之,处理Oracle DG归档丢失问题的关键是找到归档文件丢失的原因,并根据具体情况进行恢复或重新配置。同时,保持数据库的定期备份和监控也是非常重要的,以确保数据的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值