首页 > 数据库 > 国内数据库 > YashanDB巡检
巡检在YashanDB中为一个单独的后台线程,该线程类似于巡逻小队,不断地监控数据库的运行状况。当发生严重错误时,收集诊断数据存储在自动诊断存储库中,并且触发相应的修复手段或者限制损坏及中断。 巡检主要包含如下内容:
YashanDB的后台文件都存储着重要的信息,部分文件丢失可能导致数据库无法正常使用。此外,用户不可以手动改动数据库的文件,如数据文件被改动可能造成各种影响,系统需要对此及时响应避免造成更大的损坏及中断,共享集群模式下该功能禁用。
文件监控的范围
控制文件、数据文件、redo文件,如果开启双写也将监控双写文件。
文件监控的异常操作
异常响应
检测到数据库文件存在异常时,触发事件警报,收集事件诊断数据,并且触发反应式健康检查,将诊断数据存储在自动诊断存储库中。
故障处理
出现数据文件、redo文件被删除或者被移动等操作时,系统将数据库的状态置为ABNORMAL,数据库处于只读状态,用户执行业务报错,等待DBA介入修复故障。
下面以数据文件hm_test丢失时,文件监控的诊断数据为例:
数据文件丢失,数据库状态变为ABNORMAL,用户无法执行业务。
Note: 数据库的状态变为ABNORMAL时,DBA需要及时处理,避免用户业务一直等待。
数据文件丢失,数据库有可能异常退出,需要DBA及时响应。
数据文件丢失,DBA可以考虑是否offline该文件或者对该文件所在表空间进行离线修复,消除故障状态以使用户继续执行业务,也可以使用其他的处理策略。 以 offline 该文件所在表空间为例进行修复:
Note: 当出现ABNORMAL时,请及时查阅告警日志或者是事件视图V$DIAG_INCIDENT查看数据库ABNORMAL的诊断数据。
出现ABNORMAL时,需要先修复故障再消除故障,但是offline表空间数据DDL 操作,是不可以执行的,所以需要先消除故障状态,再进行offline 操作。
使用offline操作时,应采用IMMEDIATE选项,避免数据库出现异常退出的状况。
建议将数据库重启到mount阶段后,再执行offline数据文件操作,open阶段执行该操作存在风险,故障有可能会扩散。
反应式健康检查主要是用来排查潜在的故障。当YashanDB运行过程中出现某些故障时,会触发相应的健康检查,尽早地检测出潜在的故障,及时处理避免造成损坏。
以读取页面失败为例:
从以上示例可以发现:当执行业务发现页面损坏时,会触发单个文件的健康检查,不仅检测到页面(block 132)损坏,还发现了潜在的页面(block 152)损坏。
YashanDB的高可用架构支持三种保护模式,最大保护模式为其中一种,在最大保护模式下,同步备库与主库断连或者同步备库不可用时,主库用户的业务提交会卡住。
巡检线程检测到同步备库长时间不可用或者是断连状态时,会将数据库的状态设置为ABNORMAL,后续的业务将不再执行,如果正在提交或者是已经提交的业务会一直卡住,等待DBA介入修复故障。
处理该故障的推荐方案如下:
出现该故障的处理流程:
1.执行业务报错,数据库状态为 ABNORMAL。
2.查阅视图V$DIAG_INCIDENT或告警日志。
3.查看视图V$ARCHIVE_DEST_STATUS。
4.选取修复方案(以重新启动备库为例)。
5.DBA 消除故障状态,提交卡住的用户业务提交成功,用户可以继续执行业务。
Note:
有关最大保护模式的详细信息请查阅高可用相关的文档。
同步备库信息可以查看配置参数 QUORUM_SYNC_STANDBYS 和 REQUIRED_SYNC_STANDBYS 获取更多的信息。
如果故障未修复,直接执行 ALTER DATABASE CONVERT TO NORMAL 消除故障状态的话,数据库会重新将数据库设置为ABNORMAL状态,再次记录告警日志和收集诊断数据。
有些故障修复之后数据库会自动消除ABNORMAL 状态。例如:
归档空间不足,数据库状态被置为ABNORMAL,DBA 释放磁盘空间,数据库会自动消除ABNORMAL状态,用户可以继续执行业务。
最大保护模式下,同步备库长时间异常,数据库状态被置为 ABNORMAL, DBA 重启同步备库或者是其他的修复方案,数据库检测到修复完成,会自动消除ABNORMAL 状态,无需手动消除,用户可以继续执行业务。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3078641/ ,如需转载,请注明出处,否则将追究法律责任。