案例说明:

在使用ps工具查看主库进程,发现主库‘archiver’进程失败,检查sys_log日志可以发现归档失败的信息。通过sys_log日志提取归档语句手工执行归档操作,提示“当前数据库启动的data目录和sys_rman.conf配置的‘kb1-path'参数指定的路径不一致”。后查看备份配置文件sys_rman.conf发现,是因为此主机测试过单实例库的备份,导致sys_rman.conf文件被修改,因此导致集群的归档失败。重新在集群环境下初始化备份,归档自动恢复。

数据库版本:

  1. test=# select version();
  2. version
  3. ----------------------------------------------------------------------------------------------------------------------
  4. KingbaseES V008R006C005B0041 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
  5. (1 row)

集群架构:

一、故障现象

=查看主库数据库进程,archiver进程失败=

  1. [kingbase@node101 sys_wal]$ ps -ef |grep kingbase
  2. root 1101 1 0 09:34 ? 00:00:00 sys_securecmdd: /home/kingbase/cluster/R6HA/kha/kingbase/bin/sys_securecmdd -f /etc/.kes/securecmdd_config [listener] 0 of 128-256 startups
  3. kingbase 2789 1 0 09:35 ? 00:00:09 /home/kingbase/cluster/R6HA/kha/kingbase/bin/kbha -A daemon -f /home/kingbase/cluster/R6HA/kha/kingbase/bin/../etc/repmgr.conf
  4. kingbase 13069 1 0 10:35 ? 00:00:01 /home/kingbase/cluster/R6HA/kha/kingbase/bin/kingbase -D /home/kingbase/cluster/R6HA/kha/kingbase/data
  5. kingbase 13070 13069 0 10:35 ? 00:00:00 kingbase: logger
  6. kingbase 13072 13069 0 10:35 ? 00:00:00 kingbase: checkpointer
  7. kingbase 13073 13069 0 10:35 ? 00:00:00 kingbase: background writer
  8. kingbase 13074 13069 0 10:35 ? 00:00:00 kingbase: walwriter
  9. kingbase 13075 13069 0 10:35 ? 00:00:00 kingbase: autovacuum launcher
  10. kingbase 13076 13069 0 10:35 ? 00:00:00 kingbase: archiver failed on 00000005.history
  11. kingbase 13077 13069 0 10:35 ? 00:00:00 kingbase: stats collector
  12. kingbase 13078 13069 0 10:35 ? 00:00:00 kingbase: ksh writer
  13. kingbase 13079 13069 0 10:35 ? 00:00:00 kingbase: ksh collector
  14. kingbase 13080 13069 0 10:35 ? 00:00:00 kingbase: kwr collector
  15. kingbase 13081 13069 0 10:35 ? 00:00:00 kingbase: logical replication launcher
  16. kingbase 13096 13069 0 10:35 ? 00:00:07 kingbase: system esrep 192.168.1.101(18471) idle
  17. kingbase 13099 1 0 10:35 ? 00:00:13 /home/kingbase/cluster/R6HA/kha/kingbase/bin/repmgrd -d -v -f /home/kingbase/cluster/R6HA/kha/kingbase/bin/../etc/repmgr.conf

二、故障分析

1、查看主库sys_log日志

  1. 2022-04-26 11:26:49.072 CST,,,13076,,62675a58.3314,202,,2022-04-26 10:35:04 CST,,0,LOG,00000,"archive command failed with exit code 32","The failed archive command was: export TZ=Asia/Shanghai;/home/kingbase/cluster/R6HA/kha/kingbase/bin/sys_rman --config /home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase archive-push sys_wal/00000005.history",,,,,,,,""
  2. 2022-04-26 11:26:50.079 CST,,,13076,,62675a58.3314,203,,2022-04-26 10:35:04 CST,,0,LOG,00000,"archive command failed with exit code 32","The failed archive command was: export TZ=Asia/Shanghai;/home/kingbase/cluster/R6HA/kha/kingbase/bin/sys_rman --config /home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase archive-push sys_wal/00000005.history",,,,,,,,"

=== 从日志信息获知,wal日志文件归档失败。===

2、查看归档失败的wal日志文件

=查看wal日志文件是否因为被删除导致归档失败。=

  1. [kingbase@node101 sys_wal]$ ls -lh *.history
  2. -rw------- 1 kingbase kingbase 41 Mar 29 16:44 00000002.history
  3. -rw------- 1 kingbase kingbase 83 Apr 8 10:49 00000003.history
  4. -rw------- 1 kingbase kingbase 126 Apr 25 10:49 00000004.history
  5. -rw------- 1 kingbase kingbase 169 Apr 25 11:13 00000005.history
  6. -rw------- 1 kingbase kingbase 212 Apr 25 11:23 00000006.history
  7. -rw------- 1 kingbase kingbase 255 Apr 25 11:33 00000007.history

3、查看归档配置

4、手工执行归档命令

=== 手工执行归档命令,通过错误信息判断归档失败的原因。===

  1. [kingbase@node101 sys_wal]$ /home/kingbase/cluster/R6HA/kha/kingbase/bin/sys_rman --config /home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase archive-push sys_wal/00000005.history
  2. 2022-04-26 11:28:57.575 P00 INFO: archive-push command begin 2.27: [sys_wal/00000005.history] --compress-level=3 --compress-type=gz --config=/home/kingbase/kbbr_repo/sys_rman.conf --exec-id=27788-e059621b --kb1-path=/data/kingbase/v8r6_041/data1 --log-level-console=info --log-level-file=info --log-path=/opt/Kingbase/ES/V8R6_041/Server/log --log-subprocess --process-max=4 --repo1-path=/home/kingbase/kbbr_repo --stanza=kingbase
  3. ERROR: [032]: Kingbase working directory '/home/kingbase/cluster/R6HA/kha/kingbase/data/sys_wal' is not the same as option kb1-path '/data/kingbase/v8r6_041/data1'

5、查看备份配置文件sys_rman.conf(归档时会读取此配置文件)

=== 通过以上分析,得出故障原因,是因为此主机曾经测试过单实例的sys_bakcup.sh的备份,导致sys_rman.conf文件被修改,在集群环境下归档时,读取此文件’kb1-path'配置错误,导致归档失败。===

三、故障解决方案

1、重新在集群环境下初始化sys_backup.sh

  1. [kingbase@node101 bin]$ ./sys_backup.sh init
  2. # generate single sys_rman.conf...DONE
  3. # update single archive_command with sys_rman.archive-push...DONE
  4. # create stanza and check...(maybe 60+ seconds)
  5. # create stanza and check...DONE
  6. # initial first full backup...(maybe several minutes)
  7. # initial first full backup...DONE
  8. # Initial sys_rman OK.
  9. 'sys_backup.sh start' should be executed when need back-rest feature.

2、查看sys_rman.conf配置

  1. [kingbase@node101 bin]$ cat /home/kingbase/kbbr_repo/sys_rman.conf
  2. # Genarate by script at 20220426113905, should not change manually
  3. [kingbase]
  4. kb1-path=/home/kingbase/cluster/R6HA/kha/kingbase/data
  5. kb1-port=54321
  6. kb1-user=system
  7. [global]
  8. repo1-path=/home/kingbase/kbbr_repo
  9. repo1-retention-full=5
  10. log-path=/home/kingbase/cluster/R6HA/kha/kingbase/log
  11. log-level-file=info
  12. log-level-console=info
  13. log-subprocess=y
  14. process-max=4
  15. #### default gz, support: gz none
  16. compress-type=gz
  17. compress-level=3
  18. band-width=0
  19. cmd-ssh=/home/kingbase/cluster/R6HA/kha/kingbase/bin/sys_securecmd

3、检查归档进程

  1. [kingbase@node101 bin]$ ps -ef |grep kingbase
  2. /home/kingbase/cluster/R6HA/kha/kingbase/bin/sys_securecmdd -f /etc/.kes/securecmdd_config [listener] 0 of 128-256 startups
  3. kingbase 2789 1 0 09:35 ? 00:00:11 /home/kingbase/cluster/R6HA/kha/kingbase/bin/kbha -A daemon -f /home/kingbase/cluster/R6HA/kha/kingbase/bin/../etc/repmgr.conf
  4. kingbase 13069 1 0 10:35 ? 00:00:01 /home/kingbase/cluster/R6HA/kha/kingbase/bin/kingbase -D /home/kingbase/cluster/R6HA/kha/kingbase/data
  5. kingbase 13070 13069 0 10:35 ? 00:00:00 kingbase: logger
  6. kingbase 13072 13069 0 10:35 ? 00:00:00 kingbase: checkpointer
  7. kingbase 13073 13069 0 10:35 ? 00:00:00 kingbase: background writer
  8. kingbase 13074 13069 0 10:35 ? 00:00:00 kingbase: walwriter
  9. kingbase 13075 13069 0 10:35 ? 00:00:00 kingbase: autovacuum launcher
  10. kingbase 13076 13069 0 10:35 ? 00:00:00 kingbase: archiver last was 00000007000000000000003A.00000028.backup
  11. kingbase 13077 13069 0 10:35 ? 00:00:00 kingbase: stats collector
  12. kingbase 13078 13069 0 10:35 ? 00:00:00 kingbase: ksh writer
  13. kingbase 13079 13069 0 10:35 ? 00:00:00 kingbase: ksh collector
  14. kingbase 13080 13069 0 10:35 ? 00:00:00 kingbase: kwr collector
  15. kingbase 13081 13069 0 10:35 ? 00:00:00 kingbase: logical replication launcher
  16. kingbase 13096 13069 0 10:35 ? 00:00:08 kingbase: system esrep 192.168.1.101(18471) idle
  17. kingbase 13099 1 0 10:35 ? 00:00:15 /home/kingbase/cluster/R6HA/kha/kingbase/bin/repmgrd -d -v -f /home/kingbase/cluster/R6HA/kha/kingbase/bin/../etc/repmgr.conf

4、查看sys_log日志

5、查看已经归档wal日志

=从以上信息可知,归档失败问题已经解决。=

四、总结

在kingbaseES 数据库启动sys_backup.sh执行物理备份后,wal日志的归档是由sys_rman命令来执行,归档时会读取数据库归档配置及sys_rman.conf的配置文件,所以在数据库出现归档错误时要检查数据库的归档配置及sys_rman.conf文件的配置。

KingbaseES R6集群归档备份故障分析解决案例的更多相关文章

  1. KingbaseES R6 集群“双主”故障解决案例

    实际工作中,可能会碰到集群脑裂的情况,在脑裂时,会出现双 primary情况.这时,需要用户介入,人工判断哪个节点的数据最新,减少数据丢失. 一.测试环境信息 操作系统: [kingbase@node ...

  2. KingbaseES R6 集群repmgr witness 手工配置案例

    使用见证服务器: 见证服务器是一个正常的KingbaseES实例,不是流复制群集的一部分; 其目的是,如果发生故障转移情况,则提供证明它是主服务器本身不可用的证据,而不是例如在不同物理位置之间的网络分 ...

  3. KingbaseES R6 集群主库网卡down测试案例

    数据库版本: test=# select version(); version ------------------------------------------------------------ ...

  4. KingbaseES R6 集群repmgr.conf参数'recovery'测试案例(一)

    KingbaseES R6集群repmgr.conf参数'recovery'测试案例(一) 案例说明: 在KingbaseES R6集群中,主库节点出现宕机(如重启或关机),会产生主备切换,但是当主库 ...

  5. KingbaseES R6 集群 recovery 参数对切换的影响

    案例说明:在KingbaseES R6集群中,主库节点出现宕机(如重启或关机),会产生主备切换,但是当主库节点系统恢复正常后,如何对原主库节点进行处理,保证集群数据的一致性和安全,可以通过对repmg ...

  6. KingbaseES R6 集群启动‘incorrect command permissions for the virtual ip’故障案例

    案例说明: KingbaseES R6集群启动时,出现"incorrect command permissions for the virtual ip"故障,本案例介绍了如何分析 ...

  7. KingbaseES R6 集群创建流复制只读副本库案例

    一.环境概述 [kingbase@node2 bin]$ ./ksql -U system test ksql (V8.0) Type "help" for help. test= ...

  8. KingbaseES R6 集群修改物理IP和VIP案例

    在用户的实际环境里,可能有时需要修改主机的IP,这就涉及到集群的配置修改.以下以例子的方式,介绍下KingbaseES R6集群如何修改IP. 一.案例测试环境 操作系统: [KINGBASE@nod ...

  9. KingbaseES R6 集群通过备库clone在线添加新节点

    案例说明: KingbaseES R6集群可以通过图形化方式在线添加新节点,但是在添加新节点clone环节时,是从主库copy数据到新的节点,这样在生产环境,如果数据量大,将会对主库的网络I/O造成压 ...

随机推荐

  1. VueX的模块你知道多少?

    为什么会出现VueX的模块呢?当你的项目中代码变多的时候,很难区分维护.那么这时候Vuex的模块功能就这么体现出来了. 那么我们就开始吧!一.模块是啥? /* eslint-disable no-un ...

  2. this关键字、static关键字、方法的调用

    1.带有static关键字的方法,不可使用this关键字.因为其调用方法为类名.方法名(建议这种方式,调用不需要对象的参与),不存在对象. 2.实例方法调用必须有对象的存在,先创建对象,通过引用.的方 ...

  3. label问题排查:打不开标注好的图像

    问题描述 之前标注好的文件,标注有bbox和若干points.选择Open Dir打开图像目录,选择Change Output Dir选择json文件所在目录.发现有些图片能正常显示标注后的状态.而有 ...

  4. Netty 如何高效接收网络数据?一文聊透 ByteBuffer 动态自适应扩缩容机制

    本系列Netty源码解析文章基于 4.1.56.Final版本,公众号:bin的技术小屋 前文回顾 在前边的系列文章中,我们从内核如何收发网络数据开始以一个C10K的问题作为主线详细从内核角度阐述了网 ...

  5. 关于C标准库stdarg.h

    看<数据结构(C语言版)>(严蔚敏)时看到p94上面va_list啥的,看不懂了,于是整理一下这一部分的知识. 1/当无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表. i ...

  6. 共享手机中的VXN流量给其他设备使用

    此篇博文讲的什么 不想看废话的,直接看这里就行了: 手机端(IOS,已越狱)装的传统的VXN,没法直接共享流量给其他设备用,可以在手机端开放个socketsserver,我现在用的ssh,它也能提供这 ...

  7. E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/t

    sudo apt-get remove libappstream3

  8. pyhon推荐的命名规范

    类别 public Internal Modules(模块) low_with_under _low_with_under Packages(包) low_with_under   Classes(类 ...

  9. Webpack干货系列 | Webpack5 怎么处理字体图标、图片资源

    程序员优雅哥(youyacoder)简介:十年程序员,呆过央企外企私企,做过前端后端架构.分享vue.Java等前后端技术和架构. 本文摘要:主要讲解在不需要引入额外的loader的条件下运用Webp ...

  10. 优雅哥学 Webpack - 01 - Webpack 5 快速体验

    程序员优雅哥简介:十年程序员,呆过央企外企私企,做过前端后端架构.分享vue.Java等前后端技术和架构 本文摘要:主要讲解 webpack 5 初体验.从webpack 5 初识到便写代码.优雅哥将 ...