重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛
标题: 缺失主库日志,导致备库不能同步;ORA-01194 [打印本页]
作者: Inkcup 时间: 2026-1-11 12:49
标题: 缺失主库日志,导致备库不能同步;ORA-01194
本帖最后由 Inkcup 于 2026-1-12 00:04 编辑
在主库向备库duplicate 传完以后,发现备库无法自动应用日志
SQL> alter database recover managed standby database using current logfile disconnect from session;
SQL> alter database recover managed standby database cancel;
SQL> alter database open;
出现报错:
ORA-10458: standby database requires recovery
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'D:\ORADATA\EMR\SYSTEM01.DBF'
经过检查,发现是主库上有自动删除归档日志的脚本,昨晚duplicate的时候就把日志清理掉了。现在备库上缺82527和82528两条。
由于主库本地的日志已经被删除了,于是需要使用rman恢复这两个日志。
在主库上进行操作:
rman target /
restore archivelog sequence 82527;
restore archivelog sequence 82528;
然后手动将这些日志拷到备库的归档路径下,
并在备库上重新应用
(需要先手动注册:
ALTER DATABASE REGISTER PHYSICAL LOGFILE 'D:\path\to\file';
或rman批量注册
-- 1. 使用RMAN注册目录下所有归档日志
RMAN> CATALOG START WITH 'D:\archive_log\' NOPROMPT;
)
alter database recover managed standby database disconnect from session;
注册成功,但发现备库仍然没有应用最新的日志
#应用最新的日志进行同步,但发现还是无法与主库实时同步
alter database recover managed standby database using current logfile disconnect from session;
检查主库后,发现了问题:
SQL> SELECT DEST_ID,STATUS,DESTINATION,ERROR,TRANSMIT_MODE FROM V$ARCHIVE_DEST WHERE DEST_ID = 2;
DEST_ID STATUS
---------- ------------------
DESTINATION
--------------------------------------------------------------------------------
ERROR
-----------------------------------------------------------------
TRANSMIT_MODE
------------------------
2 DEFERRED
emrdg
ASYNCHRONOUS
STATUS显示为DEFERRED,这意味着主库到备库的归档传输被禁用了。于是对主库的此参数进行修改。
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE;
再次检验: