KingbaseES V8R6 集群运维案例 -- 集群备份到nfs共享存储初始化错误
案例说明:
在主备库建立nfs共享存储的文件系统,作为sys_rman备份的repo-path,在备库作为repo-path节点执行备份,出现数据库连接到'5432端口的错误',数据库实际的服务端口为54321。
适用版本:
KingbaseES V8R6
节点信息:
[kingbase@node102 bin]$ cat /etc/hosts
192.168.1.101 node101 # primary
192.168.1.102 node102 # standby
192.168.1.103 node103 # nfs server
一、配置NFS共享server
[root@node103 ~]# service nfs start
Redirecting to /bin/systemctl start nfs.service
# 查看共享存储
[root@node103 ~]# cat /etc/exports
/shdata 192.168.1.101(rw,no_root_squash) 192.168.1.102(rw,no_root_squash)
[root@node103 ~]# exportfs -v
/shdata 192.168.1.101(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
/shdata 192.168.1.102(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
[root@node103 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
......
/dev/mapper/myvg-mylv 20G 223M 20G 2% /shdata
# 共享文件系统属主和权限
[root@node103 ~]# id kingbase
uid=200(kingbase) gid=1001(kingbase) groups=1001(kingbase)
[root@node103 ~]# ls -lhd /shdata
drwxr-x--- 7 kingbase kingbase 4.0K Jan 12 17:43 /shdata
二、nfs client挂载共享文件系统
1、主库配置
[root@node101 ~]# showmount -e 192.168.1.103
Export list for 192.168.1.103:
/shdata 192.168.1.102,192.168.1.101
[root@node101 ~]# mkdir -p /data/kingbase/bk
[root@node101 ~]# chown kingbase.kingbase /data/kingbase/bk
[root@node101 ~]# mount 192.168.1.103:/shdata /data/kingbase/bk
[root@node101 ~]# ls -lhd /data/kingbase/bk
drwxr-x--- 2 kingbase kingbase 6 Apr 13 11:28 /data/kingbase/bk
2、备库配置
[root@node102 ~]# showmount -e 192.168.1.103
Export list for 192.168.1.103:
/shdata 192.168.1.102,192.168.1.101
[root@node102 ~]# mkdir -p /data/kingbase/bk
[root@node102 ~]# mount 192.168.1.103:/shdata /data/kingbase/bk
[root@node102 ~]# ls -lhd /data/kingbase/bk
drwxr-x--- 2 kingbase kingbase 6 Apr 13 11:28 /data/kingbase/bk
[root@node102 ~]# ls -lh /data/kingbase/bk
total 0
三、集群节点信息
[kingbase@node102 bin]$ ./repmgr cluster show
ID | Name | Role | Status | Upstream | Location | Priority | Timeline | LSN_Lag | Connection string
----+-------+---------+-----------+----------+----------+----------+----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------
1 | node1 | standby | running | node2 | default | 100 | 4 | 0 bytes | host=192.168.1.101 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
2 | node2 | primary | * running | | default | 100 | 5 | | host=192.168.1.102 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
四、配置sys_backup.conf
在备库执行备份,并将备份存储到nfs共享的文件系统下:
[kingbase@node102 bin]$ cat sys_backup.conf |grep -v ^$|grep -v ^#
_target_db_style="cluster"
_one_db_ip="192.168.1.101"
_repo_ip="192.168.1.102"
_stanza_name="kingbase"
_os_user_name="kingbase"
_repo_path="/data/kingbase/bk/c7_bk"
_repo_retention_full_count=5
_crond_full_days=7
_crond_diff_days=0
_crond_incr_days=1
_crond_full_hour=2
_crond_diff_hour=3
_crond_incr_hour=4
_band_width=0
_os_ip_cmd="/sbin/ip"
_os_rm_cmd="/bin/rm"
_os_sed_cmd="/bin/sed"
_os_grep_cmd="/bin/grep"
_single_data_dir="/home/kingbase/cluster/R6HA/ha7/kingbase/data"
_single_bin_dir="/home/kingbase/cluster/R6HA/ha7/kingbase/kingbase/bin"
_single_db_user="system"
_single_db_port="54321"
_use_scmd=off
_start_fast=y
_compress_type=none
_non_archived_space=1024
五、执行sys_backup.sh init
[kingbase@node102 bin]$ ./sys_backup.sh init
# pre-condition: check the non-archived WAL files
# 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/R6HA/ha7/kingbase/kingbase/log/sys_rman_stanza-create.log
备份故障日志:
[kingbase@node102 bin]$ cat /home/kingbase/cluster/R6HA/ha7/kingbase/kingbase/log/sys_rman_stanza-create.log
2023-04-13 11:41:50.915 P00 INFO: stanza-create command begin 2.27: --band-width=0 --config=/data/kingbase/bk/c7_bk/sys_rman.conf --exec-id=27638-be67f3b4 --log-level-console=info --log-level-file=info --log-path=/home/kingbase/cluster/R6HA/ha7/kingbase/kingbase/log --log-subprocess --kb1-path=/home/kingbase/cluster/R6HA/ha7/kingbase/data --repo1-host=192.168.1.102 --repo1-host-config=/data/kingbase/bk/c7_bk/sys_rman.conf --repo1-host-user=kingbase --repo1-path=/data/kingbase/bk/c7_bk --stanza=kingbase
WARN: unable to check kb-1: [DbConnectError] unable to connect to 'dbname='test' port=5432': could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.KINGBASE.5432"?
ERROR: [056]: unable to find primary cluster - cannot proceed
2023-04-13 11:41:50.915 P00 INFO: stanza-create command end: aborted with exception [056]
六、解决方案
方案1:
Tips:
由于主备非repo节点,不存储备份,只存储sys_rman.conf文件,不占用磁盘空间,可以考虑在本地节点建立存储目录。
1、umount主库的nfs共享文件系统
[root@node101 ~]# umount /data/kingbase/bk
[root@node101 ~]# ls -lhd /data/kingbase/bk
drwxr-xr-x 3 kingbase kingbase 17 Mar 29 11:59 /data/kingbase/bk
2、执行备份初始化
[kingbase@node102 bin]$ ./sys_backup.sh init
# pre-condition: check the non-archived WAL files
# 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)
# create stanza and check...DONE
# initial first full backup...(maybe several minutes)
# initial first full backup...DONE
# Initial sys_rman OK.
'sys_backup.sh start' should be executed when need back-rest feature.
'sys_backup.sh start' will add CRONTAB items.
Or you can manual backup once with user-guide.
方案2:
1)nfs server共享文件系统创建子目录
[kingbase@node103 ~]$ mkdir -p /shdata/bk{1,2}
[kingbase@node103 ~]$ ls -lh /shdata
total 0
drwxrwxr-x 2 kingbase kingbase 6 Apr 13 16:12 bk1
drwxrwxr-x 2 kingbase kingbase 6 Apr 13 16:12 bk2
2)nfs client挂载共享子目录
主库:
[root@node101 ~]# mount 192.168.1.103:/shdata/bk1 /data/kingbase/bk
[root@node101 ~]# df -h
.......
192.168.1.103:/shdata/bk1 20G 193M 20G 1% /data/kingbase/bk
备库:
[root@node102 ~]# mount 192.168.1.103:/shdata/bk2 /data/kingbase/bk
[root@node102 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
......
192.168.1.103:/shdata/bk2 20G 32M 20G 1% /data/kingbase/bk
3)备库执行sys_backup.sh init
[kingbase@node102 bin]$ ./sys_backup.sh init
# pre-condition: check the non-archived WAL files
# 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)
# create stanza and check...DONE
# initial first full backup...(maybe several minutes)
# initial first full backup...DONE
# Initial sys_rman OK.
'sys_backup.sh start' should be executed when need back-rest feature.
'sys_backup.sh start' will add CRONTAB items.
Or you can manual backup once with user-guide.
You have mail in /var/spool/mail/kingbase
4)查看备份信息
Tips:
备库作为repo,存储了所有备份,主库只是存储了sys_rman.conf。
备库:
[root@node102 ~]# ls -lh /data/kingbase/bk
total 0
drwxrwxr-x 4 kingbase kingbase 53 Apr 13 16:15 c7_bk
[root@node102 ~]# ls -lh /data/kingbase/bk/c7_bk/
total 4.0K
drwxr-x--- 3 kingbase kingbase 21 Apr 13 16:15 archive
drwxr-x--- 3 kingbase kingbase 21 Apr 13 16:15 backup
-rw-rw-r-- 1 kingbase kingbase 850 Apr 13 16:15 sys_rman.conf
主库:
[root@node101 ~]# ls -lh /data/kingbase/bk
total 0
drwxrwxr-x 2 kingbase kingbase 26 Apr 13 16:15 c7_bk
[root@node101 ~]# ls -lh /data/kingbase/bk/c7_bk
total 4.0K
-rw-rw-r-- 1 kingbase kingbase 451 Apr 13 16:15 sys_rman.conf
七、总结
在集群环境下,如果备库作为repo-path以‘cluster’模式执行备份,将同时会在主备库都建立repo-path对应的目录,在主库的repo-path中写入sys_rman.conf,在备库的repo-path中存储备份和写入sys_rman.conf;
如果主备库使用是nfs共享存储,将在写入数据时出现问题,对nfs共享存储备份的支持还需要进一步支持和细化。
KingbaseES V8R6 集群运维案例 -- 集群备份到nfs共享存储初始化错误的更多相关文章
- KingbaseES V8R6集群运维案例之---repmgr standby promote应用案例
案例说明: 在容灾环境中,跨区域部署的异地备节点不会自主提升为主节点,在主节点发生故障或者人为需要切换时需要手动执行切换操作.若主节点已经失效,希望将异地备机提升为主节点. $bin/repmgr s ...
- KingbaseES V8R3集群运维案例之---主库系统down failover切换过程分析
案例说明: KingbaseES V8R3集群failover时两个cluster都会触发,但只有一个cluster会调用脚本去执行真正的切换流程,另一个有对应的打印,但不会调用脚本,只是走相关的 ...
- KingbaseES V8R3集群运维案例之---用户自定义表空间管理
案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...
- KingbaseES V8R3集群运维案例之---kingbase_monitor.sh启动”two master“案例
案例说明: KingbaseES V8R3集群,执行kingbase_monitor.sh启动集群,出现"two master"节点的故障,启动集群失败:通过手工sys_ctl启动 ...
- KingbaseES V8R3集群运维案例之---cluster.log ERROR: md5 authentication failed
案例说明: 在KingbaseES V8R3集群的cluster.log日志中,经常会出现"ERROR: md5 authentication failed:DETAIL: password ...
- PB 级大规模 Elasticsearch 集群运维与调优实践
PB 级大规模 Elasticsearch 集群运维与调优实践 https://mp.weixin.qq.com/s/PDyHT9IuRij20JBgbPTjFA | 导语 腾讯云 Elasticse ...
- 集群运维ansible
ssh免密登录 集群运维 生成秘钥,一路enter cd ~/.ssh/ ssh-keygen -t rsa 讲id_rsa.pub文件追加到授权的key文件中 cat ~/.ssh/id_rsa.p ...
- 阿里巴巴大规模神龙裸金属 Kubernetes 集群运维实践
作者 | 姚捷(喽哥)阿里云容器平台集群管理高级技术专家 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击即可完成下载. 导读:值得阿里巴巴技术人骄傲的是 2019 ...
- Linux之nginx反向代理+三台web+nfs共享存储实现集群配置
作业四:nginx反向代理+三台web+nfs共享存储实现集群配置 在各个web服务器上挂载nfs [root@localhost nginx]# mount -t nfs 192.168.152.1 ...
- KingbaseES V8R6集群管理运维案例之---repmgr standby switchover故障
案例说明: 在KingbaseES V8R6集群备库执行"repmgr standby switchover"时,切换失败,并且在执行过程中,伴随着"repmr stan ...
随机推荐
- Java利用反射实现运行时方法调用
1.介绍 在这篇短文中,我们将快速了解如何在运行时使用Java反射API调用方法. 2.准备工作 来创建一个简单的类: public class Operations { public double ...
- Innodb之事务
目录 一.事务基本概念 事务的特性:ACID 事务类型 1.扁平事务 2.带保存点的扁平事务 3.链式事务 4.嵌套事务 5.分布式事务 二.事务的实现概述 三.redo log 1)组成 2)red ...
- 3分钟总览微软TPL并行编程库
有小伙伴问我每天忽悠的TPL是什么?☹️ 这次站位高一点,严肃讲一讲. 引言 俗话说,不想开飞机的程序员不是一名好爸爸:作为微软技术栈的老鸟,一直将代码整洁之道奉为经典, 优秀的程序员将优雅.高性能的 ...
- 全栈式测试平台RunnerGo核心功能模块-接口管理
全栈式测试平台RunnerGo相对于市面上其他性能测试产品来说更简单,它不用其他相关配件,天然支持分布式,有单独的机器做分布式的负载均衡,自有一套智能算法算压力机的配置从而平均分配,并从场景链路的流 ...
- win32 - wsprintfW的使用
文档:将格式化的数据写入指定的缓冲区.根据格式字符串中相应的格式说明,将转换任何参数并将其复制到输出缓冲区.该函数在其写入的字符后附加一个终止空字符,但返回值的字符计数中不包含终止空字符. 例子: # ...
- 零难度指南:手把手教你如何通过在线Excel实现资产负债表
前言 作为财务分析中的三大报表之一,资产负债表的作用是展示一个企业在特定时间点上的财务状况.今天小编就为大家介绍一下如何使用葡萄城公司的纯前端在线表格控件SpreadJS实现一个资产负债表. 环境准备 ...
- 用Taro写一个微信小程序——引入外部字体
小程序直接用.ttf字体文件,在开发工具看没有问题,但是打包编译会提示这个字体文件打包上传不成功. 一.字体文件转换为css 1.打开https://transfonter.org/ 注意选择Base ...
- python内置模块argparse的使用
官网文档 https://docs.python.org/3/howto/argparse.html # 简易教程 https://docs.python.org/3/library/argparse ...
- 【Azure 应用程序见解】通过Azure Funciton的门户启用Application Insights后,Application Insights无法收到监控数据
问题描述 比较早期创建的Azure Funciton服务,近期发现在门户中已经启用了Application Insights功能,但是正确配置Applicaiton Insights后,却无法获取关联 ...
- 【Azure 事件中心】 Event Grid(事件网格)+Azure Functions处理IOT Hub中的消息
问题描述 使用IOT Hub的Events功能,使用Event Grid(事件网格)订阅IOTHub状态消息,发送到Azure Functions.那如何来创建Event Grid触发的Functio ...