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

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'

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 重做 physical standby

这个比较简单,粗暴,不适用数据库偏大的情况.

解决方法2 恢复 physical standby

这个比较通用,也比较简单

从库上操作,启动到mount状态,启动恢复

SQL> shutdown immediate;
SQL> startup mount;
SQL> recover managed standby database using current logfile disconnect from session;

主库上操作,产生几个归档

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;

一定要求确保 v$archive_dest 的 status 列为 ‘VALID’

在主库上查询一下归档情况:

SQL> select name,sequence#,archived,applied from v$archived_log order by sequence#;

如果返回结果 ‘APPLIED’ 都是 ‘YES’ 或者只有最后一个是 'NO’的话,说明全部归档日志全部已经归档完了.
备库上操作

SQL> alter database recover managed standby database cancel;
SQL> alter database open;

此时,如果数据库正常打开了,且如果是通过 sqlplus 手动配置的 dataguard,就执行如下命令

SQL> alter database recover managed standby database using current logfile disconnect from session;

如果是通过 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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据库人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值