#故障状态
YashanDB检测到异常故障时,防止扩散影响,会将数据库的状态置为ABNORMAL,数据库处于故障只读状态,可以查询,不能执行写的业务。
当数据库为ABNORMAL状态时,可以查看V$DIAG_INCIDENT视图或告警日志明确故障原因。
--故障发生时,数据库状态为ABNORMAL
SELECT STATUS FROM V$DATABASE;
STATUS
---------------------------------
ABNORMAL
1 row fetched.
--故障修复后,执行如下语句消除ABNORMAL状态
ALTER DATABASE CONVERT TO NORMAL;
SELECT STATUS FROM V$DATABASE;
STATUS
---------------------------------
NORMAL
Copied!
下表列示数据库状态被置为ABNORMAL的常见故障及修复建议。
故障类型 | 说明 | 修复建议 |
---|---|---|
归档日志磁盘空间不足 | 归档空间不足会导致业务卡住,设置为ABNORMAL,避免大量业务连接再进来,等待DBA释放空间 | 故障修复后,手动消除状态或等数据库检测到修复后会自动清除 * 增加磁盘空间或释放空间 *归档清理,删除无用的归档,参考归档管理 |
最大保护模式,同步备库异常 | 最大保护模式下,同步备库长时间异常会导致主库的业务提交会卡住 | 故障修复后,手动修复或等数据库检测到修复后会清除故障 * 排查原因,修复同步备 * 修改同步备配置 * 调整保护模式 |
数据文件或redo文件被手动操作,(例如:rm或mv等) | 数据文件被异常操作,可能会导致数据库不可用 | 故障修复后,需要手动消除。 |
数据库发生Fatal错误 | 数据库可能因为资源、IO等原因出现故障,导致数据库无法运行,具体的错误原因查看V$DIAG_INCIDENT视图或运行日志明确故障原因。 | 该故障状态不可消除,数据库已经不能再继续运行了,只能shutdown abort,修复故障后重启数据库。 |
Note: 有些故障未修复,直接消除ABNORMAL状态,数据库会检测到还是存在故障,会重新置为ABNORMAL状态,重新上报事件。例如:归档磁盘空间不足、最大保护模式下同步备异常等。
数据文件被手动操作,手动消除ABNORMAL状态后,不会再重新置为ABNORMAL,所以需要保证故障被修复。