今天帮一朋友检查主库alter日志的时候,发现大量错误报连接不上备库监听,发现备库监听日志已经15个多G监听挂了。重启监听。
select sequence#,first_time from v$archived_log order by sequence# ; --查询主库归档日志号已经到630
SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#; --查询备库才应用到3110
在主库上发现3111的归档日志已经被删除了,当时的备份也被删除了,所以只能整库恢复。
1、在主库上用rman做一个全备。
2、在主库上备一个备库用的控制文件,语法如下:
alter database create standby controlfile as '/free/oracle/oradata/orcl/standby.ctl';
3、主库上的rman全备文件和备份的控制文件传到备库上并覆盖备库所有控制文件。
备库上操作
RMAN> shutdown;
RMAN> startup nomount;
RMAN> restore starndy controlfile from '/home/oracle/rman/standby_ctl.ctl';
RMAN> alter database mount;
备库备份文件位置与主库保持一致
4、启动备库至mounted状态,进入rman,用list backup summary看一下控制文件中是否有这次备份(就是刚才在主库上的)
5、restore database
6、recover database
7、确认备库应用到主库的最大归档日志
8、关闭数据库,启动至mounted状态
alter database recover managed standby database using current logfile disconnect from session;