摘要:当数据库发生故障时,你会如何进行应急处理?本文通过梳理南大通用GBase 8a数据库系统使用中可能出现的各种异常情况,以期帮助大家应对GBase 8a数据库使用中的突发故障,提供基本的问题解决思路。
当数据库发生故障时,你会如何进行应急处理?本文通过梳理南大通用GBase 8a数据库系统使用中可能出现的各种异常情况,以期帮助大家应对GBase 8a数据库使用中的突发故障,提供基本的问题解决思路。
5.数据丢失
5.1.集群中多节点故障,导致集群数据丢失
现象描述
多节点故障,集群数据丢失
现象分析
比较极端的情况下,GBase 8a数据库多节点故障,导致集群数据丢失,数据无法修复。
应急操作流程
用备份数据进行恢复。
1)通知开放平台和GBase厂商协助排查问题;
2)运行部门停止运行任务。(10分钟)
3)GBase厂商停止数据库服务;
4)GBase厂商从备份介质恢复最近的备份数据;(数据量大小不同,恢复需要的时间差异较大,通常在12-24小时之间)
5)GBase厂商启动服务,校验集群数据一致性;(30分钟)
6)运行部门恢复服务,通知运行部门启动任务。
6.其他异常
6.1 数据不一致错误
现象描述
集群节点出现数据不一致报警
现象分析
某个节点网络闪断的情况下,会出现数据不一致的情况,通常会在网络恢复之后自动进行数据同步。如果长时间处于数据不一致状态,则需要手工同步数据。
应急操作流程
在网络恢复的情况下,数据不一致的节点会自动恢复,检查网络情况,如果网络恢复后一个小时数据依然不同步,考虑进行手工同步过程。
1)运行部门通知开放平台和GBase厂商协助排查问题
2)临时表加载个别报警可以等待10分钟,集群自动同步成功,则问题正常结束,否则需要GBase现场支持判断是否需要停止集群服务,停止运行任务,执行3-6步操作。(取决于当时任务的大小,通常在1小时-4小时之间)
3)GBase 8a停止数据库服务(20分钟)
4)GBase厂商分析数据不一致的表,进行手工同步 (根据表大小和不一致的表的数量,时间通常在2-8小时之间)
5)GBase厂商启动数据库服务,校验数据一致性(30分钟)
6)GBase通知运行部门,系统恢复,启动任务运行。
6.2数据错误
现象描述
某SQL语句执行结果集错误。
现象分析
由GBase 8a数据库执行计划bug导致SQL语句结果集错误。
应急操作流程
如发现此类问题,需应用配合分析目前系统受到的影响范围及考虑后续修复方法。
1)运行部门通知开放平台和GBase厂商协助排查问题;
2)GBase厂商分析定位问题,给出详细原因说明及修复方案、规避方法;
3)应用部门依据厂商说明,分析影响范围,排查影响范围;
4)运行部门和GBase厂商修复错误数据,并修改程序规避问题。
5)GBase厂商提供修复问题版本。
6.3 执行报错
现象描述
某SQL语句执行报错。
现象分析
由GBase 8a数据库bug导致SQL语句执行报错。
应急操作流程
如发现此类问题,需责成厂商分析该bug原因,并提供解决期限。
1)通知门通知开放平台和GBase厂商协助排查问题;
2)Gbase厂商分析并提供规避方案。
3)应用部门依据厂商说明,进行问题规避;
4)GBase厂商提供修复问题版本。
6.4 并发过高导致的数据库节点负载过高问题
判断并发过高主要表现在以下几个方面:
(1)系统CPU使用平均超过90%。
(2)磁盘IO接近饱和。
(3)通过show processlist查看发现并发过高,且有1~3个超长任务(超过或接近1小时)。
解决方法:
1)降低调度系统并发数。
2)调整长作业与短作业并发顺序,长作业与短作业均匀运行,避免长作业集中运行。
来源:GBASE南大通用