GaussDB备份失败
- 故障现象
- 云数据库 GaussDB 增量备份失败。
- 云数据库 GaussDB 手动全量备份失败。
- 云数据库 GaussDB 自动全量备份失败。
- 云数据库 GaussDB 自动差分备份失败。
- 故障原因
可能原因有以下:
- OBS问题:OBS网络不通, OBS负载异常等。
- 底层硬件问题: 物理机重启等。
- 内核问题:大集群免密超时,业务压力大触发PITR逻辑复制槽强推。
- 误删文件导致全备持续失败。
- 备份期间集群状态不正常。
- 处理方法
步骤 1 登录DBS运维管理平台,实例管理页面,以实例ID搜索,找到备份失败实例。
步骤 2 进入实例明细,参考查看任务流,找到备份失败的任务流,进入树表,找到失败的步骤,点击操作,修改Context。
Gaussdbv5BackupDb表示全量备份,Gaussdbv5BackupDifference表示增量备份。

说明:
上图介绍步骤,非失败的任务流。
步骤 3 找到任务流下发节点,nodeid为下发节点。

如上图,804e2d36bf5b4c8ca124a24a4980001fno14为下发节点nodeid。
步骤 4 参考登录实例节点,登录下发节点。
步骤 5 查看adaptor日志,搜索Send backup request to node关键词。
cd /home/Ruby/log/adaptor_log
vim om_adaptor.log
Send backup request to node之后的ip表示该备份任务的master节点。

如上图,10.10.8.85为master节点。
步骤 6 登录master节点,进入到controller日志目录,搜索The backup node list is关键词,查找备份执行节点。
全量备份:
cd $GAUSSLOG/roach/controller
vim roach_controller-****-**-**_******.log
The backup node list is之后的ip表示备份执行节点。

如上图,10.10.8.85, 10.10.8.20为备份执行节点。
增量备份:
cd $GAUSSLOG/roach/controller_inc
步骤 7 登录各备份执行节点,节点列表为步骤6获取到的ip。
步骤 8 查看备份执行节点roach_agent日志。
全量备份:
cd $GAUSSLOG/roach/agent
增量备份:
cd $GAUSSLOG/roach/agent_inc
1. 搜索Started Roach process关键词,表示本节点开始执行本次备份。

如上图,Started Roach process表示本节点开始执行备份。
2. 搜索Roach Statistics start关键词,表示本节点执行本次备份结束。

如上图,Roach Statistics start汇总备份执行信息,当前节点备份执行结束。
以上步骤介绍如何查找下发节点、master节点,备份执行节点列表。
步骤 9 查看备份进度(本步骤可选)。
在备份master节点执行以下命令。
ps ux | grep roach # 获取--metadata-destination
cd /var/chroot/var/lib/log/backup/metadata/roach/backup_key
cat .roach_task_progress.dat
步骤 10 针对不同报错,进行后续处理。
1. 增量备份,数据文件分批次超过范围问题。
agent节点roach_agent日志报错:error message is Provided partNumber within integer range。

原因:此问题为单次增量备份集过大,导致分10000批次,未能将备份集上传完,所以报错,此问题为bug。
临时规避办法:临时规避办法为手动创建一个全量备份,之后增量备份会成功。
最终解决办法:内核V500R002C10SPC630及以后版本修复。
2. OBS连接超时问题。
agent节点roach_agent日志报错:ERROR:responseCompleteCallback error message is The server did not receive a complete request message within the time that it was prepared to wait. [adapter/roach_obs_interface.c:242]。
问题节点查看obs日志,搜索ERROR日志。
cd $GAUSSLOG/bin/gs_obs目录下的日志,报如下错误:
vim gs_obs_run.log
报错:WARN:Code: RequestTimeout

原因:备份执行节点到OBS网络不通。
临时规避办法:此问题无法临时规避,需排查及解决网络问题。
最终解决办法:排查及解决网络问题。
3. OBS负载异常问题。
备份执行节点roach_agent日志报错:[OBS] Error: ErrorUnknown [adapter/roach_obs_interface.c:692]。
查看对应节点obs日志,报错如下:

原因:OBS负载异常。
临时规避办法:此问题无法临时规避,需排查及解决OBS负载问题。
最终解决办法:排查及解决OBS负载问题。
4. 集群免密超时问题。
master节点om_agent日志报错:[ERROR] check_time_out(free_login_common:155) Failed to execute cmd。

原因:此问题为增备任务下发时,同时下发开启集群免密的命令,集群免密开启失败,从而导致增备执行失败。
临时规避办法:
a.确认备份master节点上,切换到Ruby用户,后台备份进程是否存在。
ps ux | grep roach
− 若备份进程存在,则需先停止备份任务流,然后继续2)。
− 若备份不存在,继续b。
b.执行以下命令,停止备份进程。
python3 /usr/local/tool/script/GaussRoach.py -t stop
c.修改备份master节点脚本。
sed -i '146s/retry_times < 5/retry_times < 2/' /dbs/om-agent/agent_92629/common/free_login_common.py
sed -i '150s/val = result.get(60)/val = result.get(250)/' /dbs/om-agent/agent_92629/common/free_login_common.py
d.重启om-agent。
ps ux |grep om_agent.py |grep python |grep -v profile | grep -v grep | awk '{print \$2}' | xargs kill -9
e.检查om-agent是否启动成功。
ps ux |grep om_agent.py |grep python |grep -v profile | grep -v grep
f.重试备份任务流,或者等自动执行增备即可。
最终解决办法:内核503.0.RC1及以后版本修复。
5. 集群状态异常问题。
master节点roach-controller日志报错:[ERROR]:cluster state is unavaliable, try to stop resume backup。
原因:集群状态unavaliable导致备份无法下发。
临时规避办法:此问题无法临时规避,需排查及修复集群后继续备份任务。
最终解决办法:排查及修复集群后继续备份任务。
----结束
- 点赞
- 收藏
- 关注作者
评论(0)