ORA-10458: standby database requires recovery ORA-01196: 文件 1 因为介质恢复会话失败而不一致 ORA-01110: 数据文件 1: 'XXXXXXXXXXXXXXXXXX\XXXXX1.DBF'linux
一个项目作了Oracle主从数据库同步,经过Dataguard实现,从库服务器宕机,再开机的时候,从库没法启动,报“ORA-01196: 文件 1 因为介质恢复会话失败而不一致”这个错误,具体日志信息以下:sql
ORA-10458: standby database requires recovery
ORA-01196: 文件 1 因为介质恢复会话失败而不一致
ORA-01110: 数据文件 1: 'XXXXXXXXXXXXXXXXXX\XXXXX1.DBF'
复制代码
正常启动的顺序应该是先启动备库再启动主库。因为从库宕机致使有段时间日志未同步,主备不一致,从库没法启动。数据库
blog.csdn.net/linux_wang1…bash
备份主库数据【/home/oracle/backup/20190506/】服务器
mkdir /home/oracle/backup/20190506
复制代码
sqlplus / as sysdba
SQL> create directory data_dir as '/home/oracle/backup/20190506';
复制代码
expdp SYSTEM/密码@orcl schemas=用户名 dumpfile=bak20190506.dmp directory=data_dir logfile=bak20190506.log;
复制代码
恢复以前须要了解当前备库的数据库文件、日志文件,查看主备库是否一致【如不一致须要拷贝】。session
SQL> set linesize 300
SQL> col MEMBER for a60
SQL> select type,member from v$logfile;
复制代码
SQL> select name from v$datafile;
复制代码
关闭备库,并启动了实例,加载数据库,可是数据库没有打开。打开日志进程oracle
shutdown immediate
startup mount;
alter database recover managed standby database using current logfile disconnect from session;
复制代码
alter system switch logfile; 强制日志切换,不必定就归档当前的重作日志文件(若自动归档打开,就归档前的重作日志,若自动归档没有打开,就不归档当前重作日志。)app
alter system switch logfile;
复制代码
多操做几回,操做以后,稍等一段时间,时间视网速而定,过一段时间后,在主库上查询一下同步状况:ui
select name,sequence#,archived,applied from v$archived_log order by sequence#;
复制代码
若是返回结果"APPLIED"都是“YES”或者只有最后一个是“NO”的话,说明所有归档日志所有已经归档完了 ,此时到备库上上操做spa
alter database recover managed standby database cancel;
alter database open;
alter database recover managed standby database using current logfile disconnect from session;
复制代码