摘要
windows Server 2019 上部署的 Oracle 19C RAC ADG,备库遭遇停电,导致;来电后集群环境异常。
FQ 1:备库集群服务异常
1.故障现象
查看集群状态,集群服务未正常启动
crsctl check crs
2.问题分析
机房停电后,因存储与服务器启动顺序问题,导致服务器启动后无法识别到ASM磁盘。
3.解决方法
重启集群服务。
FQ 2: qlplus ORA-12560错误
1.故障现象
使用sqlplus遭遇ORA-12560错误:
C:\Documents and Settings\Administrator>sqlplus "/as sysdba"
SQL*Plus: Release 11.2.0.2.0 Production on 星期一 6月 18 14:32:52 2012
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:
ORA-12560: TNS: 协议适配器错误
请输入用户名:
2.问题分析
因为是在WINDOWS上,服务可能没启动,尝试重启服务。
3.解决方法
重启 oracleserviceora 服务后,在使用sqlplus 正常。
FQ 3:ora-10458,ora-01196,ora-01110
1.故障现象
启动 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'
2.问题分析
停电后日志应用中段,或故障导致数据文件损坏。
3.解决方法
解决方法1: 重做 physical standby
解决方法2: 恢复 physical standby
从库上操作
step 1.确认备库的 DATABASE_ROLE
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
step 2.启动到mount状态,启动恢复
SQL> shutdown immediate;
SQL> startup mount;
SQL> recover managed standby database using current logfile disconnect from session;
备库执行命令时报错如下:
SQL> recover managed standby database using current logfile disconnect from session;
alter database recover managed standby database using current logfile disconnect from session
*
ERROR at line 1:
ORA-01153: an incompatible media recovery is active
重复启用日志应用所致,故取消应用:
SQL> alter database recover managed standby database cancel;
Database altered.
再次开启应用:
SQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered.
主库上操作
切换归档日志
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’
在Oracle 12 C数据库中,varchive_dest是用于管理归档目标的视图。通过查询varchive_dest视图,我们可以获取与归档日志相关的信息,例如归档目标的状态(status)列。当状态列显示为’ERROR’时,表示存在一些问题需要解决。
这将返回一个结果集,其中包含归档目标的ID(dest_id)、状态(status)和名称(dest_name)。
归档目标状态的含义
当状态列显示为’ERROR’时,表示归档目标存在一些问题。以下是一些常见的状态和其含义:
- VALID:归档目标是有效的。
- DEFERRED:归档目标未就绪,等待进行某些操作。
- INACTIVE:归档目标处于不活动状态,可能由于某些原因而暂停了传输。
- ERROR:归档目标存在错误,需要进行故障排除。
在主库上查询一下归档情况:
SQL> select name,sequence#,archived,applied from v$archived_log order by sequence#;
如果返回结果 ‘APPLIED’ 都是 ‘YES’ 或者只有最后一个是 'NO’的话,说明全部归档日志全部已经归档完了
备库上操作
step 1.取消日志应用,打开数据库
SQL> alter database recover managed standby database cancel;
SQL> alter database open;
此时,如果数据库正常打开了
step 2.启用日志应用
通过 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;




