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