GaussDB(DWS)《ROACH小课堂Ⅲ问题定位篇之日志寻踪》
日志寻踪
1 综述
本文致力于帮助使用或学习ROACH工具的人员,在遇到问题时,具备基于日志系统的基本问题报错排查能力。尤其对于一线运维人员,在现场出现问题时,能够第一时间对问题有基本的认识并搜集足够的定位信息。部分叙述的理解,需要对于ROACH逻辑的基本认识,后续blog会对该部分补全;
2 ROACH日志系统简述
截止本文发表时间2022年1月24日,基于最新发布版本,ROACH工具已具备,单集群备份恢复以及双集群跨region的异地容灾能力。因此,日志系统的介绍也将从这两个应用方向展开叙述。
P1.单集群日志系统示意图
其中,
①为备份恢复控制管理层的controller日志;
②为集群各个节点执行层的agent日志;
二者的逻辑关系为,当发起单集群的备份或恢复后,controller代码负责处理备份恢复相关的参数信息,并在集群各个节点启动agent进程;各个节点的agent代码负责每个集群节点上各个集群实例的具体数据备份恢复行为,并通过socket和命令下发节点的controller进行通信。
P2.双集群日志系统示意图
其中,
①为容灾框架日志;
②为备份恢复控制管理层的controller日志;
③为集群各个节点执行层的agent日志;
以上三个日志为主备集群都有的。
④容灾备份恢复backupkey插入日志;
为备集群主节点(容灾命令下发节点)独有的日志。
3 单集群日志分析思路
日志查看的首要目标,是确认报错发生的阶段,其次寻找最先报错节点的第一处报错信息:
- 首先查看命令下发节点的agent日志是否有内容,确认备份或者恢复是否走到了实际执行阶段(大部分的失败都是发生在该阶段);
- 若agent日志有内容,寻找是否有关键日志语句;若没有内容,跳至步骤5;
Operation failed in agent:[hostname]
- 若有该语句,检查hostname是否与命令执行节点相同。不同,则说明该节点为第一个报错发生节点,跳转至该节点查看agent日志的第一处报错信息。
- 若没有该语句或hostname和命令下发节点相同,则当前节点为第一个报错节点,上翻查看第一处报错信息进行分析;
- 若agent日志无内容,或者agent日志不存在,则查看controller日志,寻找第一处报错信息分析即可;
4 双集群日志分析思路
双集群和单集群类似,日志查看的首要目标,依然是确认报错发生的阶段,其次寻找最先报错节点的第一处报错信息:
但由于双集群本身的运行机制,首先需要查看备集群的backuprestore.csv文件,确认是主集群备份失败,还是备集群恢复失败;
然后,和单集群排查方式类似,由命令下发节点的disaster-agent-*.log日志开始,逐层向上查找最先报错的阶段和第一处报错信息进行分析即可;
- 点赞
- 收藏
- 关注作者
评论(0)