首页 > 其他分享 >KingbaseES V8R6集群备份恢复案例之---远程外部备份故障案例

KingbaseES V8R6集群备份恢复案例之---远程外部备份故障案例

时间:2024-11-25 17:11:58浏览次数:5  
标签:log V8R6 cluster -- 备份 kingbase sys 案例 home

案例说明:
KingbaseES V8R6集群,通过‘cluster’模式执行远程异地的外部备份,在备份初始化时,故障显示,远程节点连接数据库失败,异常终止。原因是,数据库节点不支持本地数据库访问导致。

适用版本:
KingbaseES V8R6

集群架构:

一、问题现象
如下所示,在执行sys_backup.sh init后,提示远程备份服务器无法访问数据库节点:

二、问题分析

1、在备份服务器ksql连接测试
如下所示,远程备份服务器可以远程访问数据集群节点数据库服务:

2、执行以下语句测试到数据库的连接

/home/kingbase/cluster/v9/kingbase/bin/sys_securecmd -q -o ConnectTimeout=10 -o StrictHostKeyChecking=no -p 8890 -o ServerAliveInterval=2 -o ServerAliveCountMax=3 kingbase@主库ip 
             'ksql -U system test -c "select version();"'

经测试,当通过securecmdd远程连接到数据库服务器本机时,执行ksql本地连接失败,只能通过远程“-h”网络远程连接数据库:

三、测试模拟分析

1、如下所示备份配置

2、通过sys_hba.conf禁止数据库本地访问

如下所示,禁止数据库本地连接访问:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" 只能用于UNIX域套接字
# local   all             all                                     scram-sha-256

3、测试数据库连接
如下所示,远程节点通过在通过securecmdd远程连接到数据库节点后,不支持ksql本地访问:

# ksql -h远程访问
[kingbase@node202 bin]$ ./sys_securecmd kingbase@192.168.1.208 "/home/kingbase/cluster/v9/kingbase/bin/ksql  -U system test -p 54325 -h 192.168.1.208 -c 'select  version();'"
                                                       version                                                    
----------------------------------------------------------------------------------------------------------------------
 KingbaseES V009R001C002B0014 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 row)

# ksql本地访问
[kingbase@node202 bin]$ ./sys_securecmd kingbase@192.168.1.208 "/home/kingbase/cluster/v9/kingbase/bin/ksql  -U system test -p 54325  -c 'select  version();'"
ksql: error: could not connect to server: FATAL:  no sys_hba.conf entry for host "[local]", user "system", database "test", SSL off

4、测试备份初始化
如下所示,执行备份初始化异常:

[kingbase@node202 bin]$ ./sys_backup.sh init
# pre-condition: check the non-archived WAL files
# Check 192.168.1.208 archive-mode == always
# Check 192.168.1.209 archive-mode == always
# generate local sys_rman.conf...DONE
# update all node: sys_rman.conf and archive_command with sys_rman.archive-push...
# update all node: sys_rman.conf and archive_command with sys_rman.archive-push...DONE
# create stanza and check...(maybe 60+ seconds)
ERROR: create stanza failed, check log file /home/kingbase/cluster/v9/kingbase/log/sys_rman_stanza-create.log
[kingbase@node202 bin]$ cat /home/kingbase/cluster/v9/kingbase/log/sys_rman_stanza-create.log
2024-11-18 18:57:16.448 P00   INFO: stanza-create command begin 2.27: --band-width=0 --cmd-ssh=/home/kingbase/cluster/v9/kingbase/bin/sys_securecmd --config=/home/kingbase/kbbr_repo/sys_rman.conf --exec-id=10743-bd491a36 --kb1-host=192.168.1.208 --kb1-host-user=kingbase --kb1-path=/home/kingbase/cluster/v9/kingbase/data --kb1-port=54325 --kb1-user=system --log-level-console=info --log-level-file=info --log-path=/home/kingbase/cluster/v9/kingbase/log --log-subprocess --process-max=4 --repo1-path=/home/kingbase/kbbr_repo --stanza=kingbase
WARN: set process-max 4 is too large, auto set to CPU core count 1
2024-11-18 18:57:17.037 P00   INFO: stanza-create for stanza 'kingbase' on repo1
2024-11-18 18:57:17.397 P00   INFO: stanza-create command end: completed successfully (953ms)
2024-11-25 14:31:47.789 P00   INFO: stanza-create command begin 2.27: --backup-from=cluster --band-width=0 --cmd-ssh=/home/kingbase/cluster/v9/kingbase/bin/sys_securecmd --config=/home/kingbase/kbbr_repo/sys_rman.conf --exec-id=9257-11e09c11 --kb1-host=192.168.1.208 --kb2-host=192.168.1.209 --kb1-host-user=kingbase --kb2-host-user=kingbase --kb1-path=/home/kingbase/cluster/v9/kingbase/data --kb2-path=/home/kingbase/cluster/v9/kingbase/data --kb1-port=54325 --kb2-port=54325 --kb1-user=esrep --kb2-user=esrep --log-level-console=info --log-level-file=info --log-path=/home/kingbase/cluster/v9/kingbase/log --log-subprocess --process-max=4 --repo1-path=/home/kingbase/kbbr_repo --stanza=kingbase
WARN: set process-max 4 is too large, auto set to CPU core count 1
WARN: unable to check kb-1: [db_connect_err] raised from remote-0 ssh protocol on '192.168.1.208': unable to connect to 'application_name=internal_rman dbname='kingbase' port=54325 user='esrep'': FATAL:  no sys_hba.conf entry for host "[local]", user "esrep", database "kingbase", SSL off
WARN: unable to check kb-2: [db_connect_err] raised from remote-0 ssh protocol on '192.168.1.209': unable to connect to 'application_name=internal_rman dbname='kingbase' port=54325 user='esrep'': FATAL:  no sys_hba.conf entry for host "[local]", user "esrep", database "kingbase", SSL off
ERROR: [056]: unable to find primary cluster - cannot proceed
2024-11-25 14:31:48.906 P00   INFO: stanza-create command end: aborted with exception [056]

如下所示,备份服务器securecmdd远程连接主库后,sys_rman无法访问数据库服务:

四、问题解决
在解决数据库可以本地访问后,远程服务器备份正常。

五、总结
在远程外地备份模式中,远程服务器通过ssh或securecmdd连接到数据库服务器后,sys_rman需要在 数据库节点本地可以访问数据库服务,如果不支持,sys_rman备份将异常。

标签:log,V8R6,cluster,--,备份,kingbase,sys,案例,home
From: https://www.cnblogs.com/tiany1224/p/18568123

相关文章

  • 某保险理赔核心OB SQL优化案例
    某保险理赔核心系统oracle平迁ob国产化项目,目前已经投产完成,稳定运行。其中遇到条执行3600s慢sql,这条sql是hibernate拼接出来的语句,如果页面不同选项的话,表顺序,谓词过滤条件内容都会不一样。目前只针对这条拼接的慢sql进行优化,并无实际多大用处,记录个改法案例,实际优化方案还......
  • 【Linux定时自动备份脚本】
    流程清单创建备份用的用户back_up,只给需要被备份文件夹的读取权限,和备份存放目录的写权限创建备份脚本,创建清除备份的脚本使用back_up用户,赋予脚本权限,修改crontab定时任务创建备份用户分配权限创建用户sudoadduserback_uppasswdback_up分配只读文件和可读写文......
  • [python] asyncio库常见问题与实践案例
    本文详细介绍了在使用asyncio库编写异步程序时常见的错误和问题,并进一步通过实践案例进行分析和讨论,以便在项目中更有效地应用asyncio库。有关asyncio库的详细介绍,可参考:Python异步编程库asyncio使用指北。目录1asyncio程序的常见错误1.1试图直接调用并运行协程1.2主协程过......
  • 数据抽取平台pydatax使用案例---11个库项目使用
      数据抽取平台pydatax,前期项目做过介绍:    1,数据抽取平台pydatax介绍--实现和项目使用   项目2:客户有9个分公司,用的ERP有9套,有9个库,不同版本,抽取的同一个表字段长度有不一样,字段可能有多有少,客户ERP核心分公司ERP几个月后有大版本升级。   在2023年12月......
  • 类和对象综合案例——模仿电影信息系统
    1.需求2.实际操作1.创建一个实体类首先第一件事,就是写好一个实体类,为后面封装所有数据做准备,我们只需要私有化成员变量,然后再ptg即可2.创建处理业务类和测试类写好了实体类就要开始处理业务了,所以我们要再创建一个专门处理业务的类,名为MovieService写完了业务类后别着急......
  • Redis使用案例之限流器
    Redis使用案例之限流器一、什么是限流器限流器是一种流量限制的工具,可用于防止接口在同一时间有过高的并发Redis有两种实现限流器的算法1.基于桶令牌的算法​以时间段为单位,恒定的给桶中放入令牌,每次请求从桶中获取令牌2.基于漏桶算法​控制接口流速,先创建一个桶,......
  • 深入理解MySQL中的AUTO_INCREMENT属性:从案例到原理
    深入理解MySQL中的AUTO_INCREMENT属性:从案例到原理引言在数据库设计中,AUTO_INCREMENT是一种常见的属性,用于确保表中的某个字段在插入新记录时自动递增。尽管它不是传统意义上的约束,但在功能上确实起到了约束的作用,确保了字段的唯一性、非空性和自动递增性。本文将通过一个具体......
  • 大厂案例:Shopee 百亿级商品数据如何平稳实现千万级服务器成本缩减
    声明:本文中的细节来源于Shopee研发团队于2024年深圳ArchSummit上的分享。所有的技术细节都要归功于Shopee研发团队。原始内容和其他参考资料的链接在文章末尾的参考资料部分。本文试图分析细节并提供我们的意见。如果您发现任何不准确或遗漏,请留下评论,我们将尽力修复......
  • MySQL原理简介—6.简单的生产优化案例
    大纲1.MySQL日志的顺序写和数据文件的随机读指标2.Linux存储系统软件层原理及IO调度优化原理3.数据库服务器使用的RAID存储架构介绍4.数据库Toomanyconnections故障定位 1.MySQL日志的顺序写和数据文件的随机读指标(1)磁盘随机读操作(2)磁盘顺序写操作 (1)磁盘随机......
  • 道德与法治案例分析题答题技巧
    例如1:随着经济的发展、人民生活水平的提高,在许多学校的学生中,也出现了“手机族”。校园里,朗朗的读书中经常夹杂着此起彼伏的手机声。而有许多同学对手机的档次要求,也越来越高,你的是“彩玲”的,我就要“拍照”的,更有的同学上课也发起了短信。同学们议论纷纷,有的同学认为:“现在生活条......