oracle 12.2.0.1 dataguard 的 physical standby 启动时报错 ORA-10458: standby database requires recovery

数据库人生 2019-01-30 10:36:20  4883
 4883  收藏 2
 收藏 2 
分类专栏: # oracle ha data guard 文章标签: ORA-10458 ORA-01196 ORA-01110
版权
¥9.90
os: centos 7.4
db: oracle 12.1.0.2
本地虚拟机直接掉电,再启动 physical standby 时提示错误
启动报错
SQL> startup
ORACLE instance started.
Total System Global Area 1644167168 bytes
Fixed Size            2925024 bytes
Variable Size         1073745440 bytes
Database Buffers      553648128 bytes
Redo Buffers           13848576 bytes
Database mounted.
ORA-10458: standby database requires recovery
ORA-01196: file 1 is inconsistent due to a failed media recovery session
ORA-01110: data file 1: '/u01/app/oracle/oradata/orcl/system01.dbf'
- 1 
- 2 
- 3 
- 4 
- 5 
- 6 
- 7 
- 8 
- 9 
- 10 
- 11 
- 12 
- 13 
- 14 - SQL> set lines 500; SQL> set pages 500; - SQL> select instance_name,status,database_status,instance_role from v$instance; - INSTANCE_NAME STATUS DATABASE_STATUS INSTANCE_ROLE 
 - orcl MOUNTED ACTIVE PRIMARY_INSTANCE - SQL> select name,open_mode,database_role,dataguard_broker,guard_status,switchover_status from v$database; - NAME OPEN_MODE DATABASE_ROLE DATAGUAR GUARD_S SWITCHOVER_STATUS 
 - ORCL MOUNTED PHYSICAL STANDBY ENABLED NONE NOT ALLOWED 
- 1 
- 2 
- 3 
- 4 
- 5 
- 6 
- 7 
- 8 
- 9 
- 10 
- 11 
- 12 
- 13 
- 14 
- 15 
- 16 
解决方法1 重做 physical standby
这个比较简单,粗暴,不适用数据库偏大的情况.
解决方法2 恢复 physical standby
这个比较通用,也比较简单
从库上操作,启动到mount状态,启动恢复
SQL> shutdown immediate;
SQL> startup mount;
SQL> recover managed standby database using current logfile disconnect from session;
- 1
- 2
- 3
- 4
主库上操作,产生几个归档
SQL> alter system archive log current;
SQL> alter system checkpoint;
SQL> alter system archive log current;
SQL> select * from v$archive_dest where destination is not null;
- 1
- 2
- 3
- 4
- 5
一定要求确保 v$archive_dest 的 status 列为 ‘VALID’
在主库上查询一下归档情况:
SQL> select name,sequence#,archived,applied from v$archived_log order by sequence#;
- 1
- 2
如果返回结果 ‘APPLIED’ 都是 ‘YES’ 或者只有最后一个是 'NO’的话,说明全部归档日志全部已经归档完了.
备库上操作
SQL> alter database recover managed standby database cancel;
SQL> alter database open;
- 1
- 2
- 3
此时,如果数据库正常打开了,且如果是通过 sqlplus 手动配置的 dataguard,就执行如下命令
SQL> alter database recover managed standby database using current logfile disconnect from session;
- 1
- 2
如果是通过 dataguard broker 配置的,就直接进入 dgmgrl 操作.
DGMGRL> show configuration ;
Configuration - dgconf
  Protection Mode: MaxPerformance
  Members:
  orclp  - Primary database
    orcls1 - Physical standby database 
      Error: ORA-16766: Redo Apply is stopped
Fast-Start Failover: DISABLED
Configuration Status:
ERROR   (status updated 50 seconds ago) 
DGMGRL> 
DGMGRL> enable configuration;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
参考:

 
  
  
  
 
 
  
 
 
 