更新时间:2023-09-04
功能说明
DMP支持Oracle、MySQL、PostgreSQL数据库实例的故障自愈,数据库实例发生故障(如节点异常关机、后台进程被kill)时可自动实现分钟级的修复和拉起。
MySQL主要覆盖场景如下表所示:
表 1 MySQL故障自愈主要覆盖场景
Master | Slave | 判断维护模式 | 处理场景 | 说明 |
异常 | 无(单机) | 是 | 不处理 | |
否 | 走故障自愈场景 | 检测VM状态是否异常,并尝试进行恢复 |
异常 | 正常 | 是 | 不处理 | |
否 | 主从切换 | 不能有其他任务正在执行,如备份任务;检测relaylog执行进度,执行完成再切换;切换完成后,需恢复旧主,并作为新的从节点加入集群; |
异常 | 异常 | 是 | 不处理 | |
否 | 走故障自愈场景 | 与单机架构下Master异常一致 |
优先尝试拉起Master;拉起完成同步的slave重新选为Master;拉起slave节点,重新恢复集群 |
正常 | 异常 | 是 | 不处理 | |
否 | 自愈从节点,并加入集群 | 多次自愈未果,短时间内不再自愈;自愈后,加入失败需手动处理 |
短时间内连续故障 | 要设定触发时段,该时段内连续切换2次后,不支持再进行切换 |
Oracle主要覆盖场景如下表所示:
表 2 Oracle故障自愈覆盖场景
故障场景 | 判断维护模式 | 处理方式 | 说明 |
RAC单节点故障 | 是 | 不处理 | |
否 | 修复故障节点 | RAC自身机制会保障服务仍可用,但不会处理故障节点;DMP会对其进行修复并重组RAC |
RAC两节点均故障 | 是 | 不处理 | |
否 | 修复故障节点 | 不能此时RAC自身也无法工作,DMP会将故障节点一一拉起,并重组RAC,重启RAC服务 |
Oracle服务异常 | 是 | 不处理 | |
否 | 修复Oracle服务 | Oracle服务出现异常,其自身机制无法应对,DMP会介入进行修复 |
磁盘组异常 | 是 | 不处理 | |
否 | 重新扫描磁盘 | 磁盘组出现离线等,DMP会介入重新发现尝试恢复磁盘组连接,再由RAC进行自修复 |
PostgreSQL主要覆盖场景如下表所示:
表 3 PostgreSQL故障自愈覆盖场景
Master | Slave | 判断维护模式 | 处理场景 | 说明 |
异常 | 无(单机) | 是 | 不处理 | |
否 | 走故障自愈场景 | 检测数据库状态是否异常,识别到异常后,会重启数据库,重启数据库后会检测数据库是否异常,如果依旧异常会重启DBVM,如果依旧异常,则无法自愈 |
异常 | 正常 | 是 | 不处理 | |
否 | 主从切换 | 不能有其他任务正在执行,如备份任务;执行完成再切换;切换完成后,需恢复旧主,并作为新的从节点加入集群; |
异常 | 异常 | 是 | 不处理 | |
否 | 走故障自愈场景 | 优先尝试拉起Master;与单机架构下Master异常一致 |
正常 | 异常 | 是 | 不处理 | |
否 | 自愈从节点,并加入集群 | 从库尝试执行pg_rewind同步主库数据,如果pg_rewind失败,会执行pg_basebackup重做从库 |
前提条件
数据库状态为“运行中”。
注意事项
- 数据库未进入“维护模式”。
- 故障自愈功能默认为开启状态。
操作步骤
在[数据库]页面,点击对应数据库名称,跳转至[数据库详情/故障自愈]页面,打开<故障自愈>开关,点击<保存>按钮,完成故障自愈配置。