数据库意外终止
主库
处理时序图:
处理过程说明:
序号 | 类型 | 执行方 | 操作过程说明 | 如何验证成功 |
---|---|---|---|---|
1 | 自动 | HAS | 由HAS自动启动数据库服务,分为三种情况: 数据库服务重启成功,并且作为主库重新加入集群,进入步骤10。 数据库服务重启成功,但是以异步备库重新加入集群,进入步骤5。 数据库服务重启失败,进入步骤2~9。 | |
2 | 自动 | HAS | 原同步备库升级为主库。 | 在原同步备库上执行数据库主备角色检查命令,此时检查结果应是主库。 通过vsql连接数据库。 执行数据库流复制状态检查命令,可以看到原异步备库的sync_state为Sync。 调用HAS状态查看命令,查看集群状态,此时集群状态应为一主一同步备,并且leader为原同步备库。 分别在三个节点上执行查看网络接口命令,发现vip绑定在原主库以及同步备库节点上。 |
3 | 自动 | HAS | 原异步备库升级为同步备库。 | |
4 | 人工 | DBA | 通过kill -9 杀掉HAS进程,HAS进程终止时自动释放vip。 通过日志等手段排查该节点实际问题并处理。 | 执行HAS进程状态检查命令 。 分别在三个节点上执行查看网络接口命令,发现vip绑定在同步备库节点上。 |
5 | 人工 | DBA | 调用HAS启动命令。 | 通过vsql连接数据库。 执行数据库流复制状态检查命令,可以看到原主库的sync_state为Async,原异步备库的sync_state为Sync。 调用HAS状态查看命令,查看集群状态,此时集群状态应为一主一同步备一异步备,并且leader为原同步备库。 |
6 | 人工 | DBA | 调用HAS关闭命令。 | 通过vsql连接数据库。 执行数据库流复制状态检查命令,可以看到原主库的sync_state为Sync,原异步备库关闭。 调用HAS状态查看命令,查看集群状态,此时集群状态应为一主一同步备,并且leader为原同步备库。 |
7 | 自动 | HAS | 异步备升级为同步备。 | |
8 | 人工 | DBA | 调用HAS启动命令。 | 通过vsql连接数据库。 执行数据库流复制状态检查命令,可以看到原主库的sync_state为Sync,原异步备库的sync_state为Async。 调用HAS状态查看命令,查看集群状态,此时集群状态应为一主一同步备一异步备,并且leader为原同步备。 分别在三个节点上执行查看网络接口命令,发现vip绑定在原同步备库节点上。 |
9 | 人工 | DBA | 执行主备切换命令。 | 通过vsql连接数据库。 执行数据库流复制状态检查命令,可以看到原同步备库库的sync_state为Sync,异步备库的sync_state为Async。 调用HAS状态查看命令,查看集群状态,此时集群状态应为一主一同步备一异步备,并且leader为原主库。 |
同步备库
处理时序图:
处理过程说明:
序号 | 类型 | 执行方 | 操作过程说明 | 如何验证成功 |
---|---|---|---|---|
1 | 自动 | HAS | 出现故障短时间内由HAS自动启动数据库服务,有可能成功,也有可能失败,如果成功,集群恢复正常(状态与最初相同),否则进入序号2。 | |
2 | 自动 | HAS | 异步备库自动升级为同步备库。 | 通过vsql连接数据库。 执行数据库流复制状态检查命令,可以看到原异步备库的sync_state为Sync。 调用HAS状态查看命令,查看集群状态,此时集群状态应为一主一同步备,并且leader为原主库。 |
3 | 人工 | DBA | 通过kill -9 杀掉HAS进程。 通过日志等手段排查该节点实际问题并处理。 | 执行HAS进程状态检查命令。 |
4 | 人工 | DBA | 调用HAS启动命令。 | 通过vsql连接数据库。 执行数据库流复制状态检查命令,可以看到原同步备库的sync_state为Async,原异步备库的sync_state为Sync。 调用HAS状态查看命令,查看集群状态,此时集群状态应为一主一同步备一异步备,并且leader为原主库。 |
5 | 人工 | HAS | 调用HAS关闭命令。 | 通过vsql连接数据库。 执行数据库流复制状态检查命令,可以看到原同步备库的sync_state为Sync,原异步备库关闭。 调用HAS状态查看命令,查看集群状态,此时集群状态应为一主一同步备,并且leader为原主库。 |
6 | 自动 | HAS | 异步备库(原同步备库)自动升级为同步备库。 | |
7 | 人工 | HAS | 调用HAS启动命令。 | 通过vsql连接数据库。 执行数据库流复制状态检查命令,可以看到原同步备库的sync_state为Sync,原异步备库的sync_state为Async。 调用HAS状态查看命令,查看集群状态,此时集群状态应为一主一同步备一异步备,并且leader为原主库。 |
异步备库
处理时序图:
处理过程说明:
序号 | 类型 | 执行方 | 操作过程说明 | 如何验证成功 |
---|---|---|---|---|
1 | 自动 | HAS | 由HAS自动启动数据库服务,有可能成功,也有可能失败,如果成功,进入序号4,否则进入序号2~3。 | |
2 | 人工 | DBA | 通过kill -9 杀掉HAS进程。 通过日志等手段排查该节点实际问题并处理。 | 执行HAS进程状态检查命令。 |
3 | 人工 | DBA | 调用HAS启动命令。 | 通过vsql连接数据库。 执行数据库流复制状态检查命令,可以看到原同步备库的sync_state为Sync,原异步备库的sync_state为Async。 调用HAS状态查看命令,查看集群状态,此时集群状态应为一主一同步备一异步备,并且leader为原主库。 |
4 | 自动 | HAS |