金仓数据库物理备份脚本配置
金仓数据库物理备份脚本写数据的方式有三种: single/cluster/single-pro
现以集群为例:
数据库服务器一:192.168.40.148
数据库服务器二:192.168.40.149


当配置cluster进行备份时
cd /home/kingbase/cluster/HA_R6/kha/kingbase/share;
vim sys_backup.conf
# target db style enum: single/cluster
_target_db_style="cluster" -------single改为cluster
# one kingbase node IP
# just provide one IP, script will use 'repmgr cluster show' get other node IP
_one_db_ip="192.168.40.148" --数据节点ip,集群中某一台服务器IP地址,可以不是master
# local repo IP, can be same as one_db_ip, means repo located in one db node
_repo_ip="192.168.40.148" --备份节点ip,指异地备份服务器ip
# label of this cluster
_stanza_name="kingbase"
# OS user name of database
_os_user_name="kingbase"
# !!!! dir to store the backup files
# should be accessable for the OS user
_repo_path="/home/kingbase/kbbr_repo" ------存放备份文件及备份配置文件路径
# count of keep, over the count FULL-backup will be remove
_repo_retention_full_count=1 ---全量备份文件保留1次
# count of days, interval to do FULL-backup
_crond_full_days=7 --7天备份一次全量
# count of days, interval to do DIFF-backup
_crond_diff_days=0 --不做差异备份
# count of days, interval to do INCR-backup
_crond_incr_days=1
# HOUR to do the FULL-backup
_crond_full_hour=2
# HOUR to do the DIFF-backup
_crond_diff_hour=3
# HOUR to do the INCR-backup
_crond_incr_hour=4
# OS cmd define
_os_ip_cmd="/sbin/ip"
_os_rm_cmd="/bin/rm"
_os_sed_cmd="/bin/sed"
_os_grep_cmd="/bin/grep"
# !!! these follow 4 parameter ONLY for single style
# data dir of single
_single_data_dir=" /home/kingbase/cluster/HA_R6/kha/kingbase/data" ---集群data路径
# bin dir of single
_single_bin_dir=" /home/kingbase/cluster/HA_R6/kha/kingbase/bin" ---集群安装路径
# database user of single
_single_db_user="system" ---初始化时登录用户
# database port of single
_single_db_port="54321" ----数据库端口
# on means sys_securecmd, off means normal ssh
_use_scmd=off
后面几行的参数略,基本不用配置
------------------------------------------------------------------------------------------------------------------
cd /home/kingbase/cluster/HA_R6/kha/kingbase/bin;
148上执行物理备份初始化:sh sys_backup.sh init

149上查看物理备份情况:可以看出149上没有初始化成功;

当配置single-pro进行备份时 :
148上执行配置:

148上可以看到初始备份在备份脚本指定的路径/home/kingbase/kbbr_repo生成了一个全备;同时在149上相同的路径下也有个全备;可见参数为single-pro和参数cluster执行的结果是不一样的,single-pro参数适合本地和异地同路径同时备份,cluster适合本地或异地单独备份;


148上启动物理备份脚本

此时149上若想要创建定时任务进行物理备份,需要单独配置sys_backup.conf,然后单独执行sh sys_backup.sh start

当配置single进行备份,当用默认的archive_mode=always ,archive_command='exit 0',执行sh sys_backup.sh init报错,如下图:



修改sys_backup.conf,single类型只能备份在本地:

再执行初始化,配置免密:sys_encpwd -H \* -P 54321 -D \* -U system -W '12345678ab'; 执行初始化成功;

接着启动物理备份脚本:sh sys_backup.sh start

当选择single类型来做物理备份时,集群的备机149上就无法做物理备份了,除非切机到149上再单独进行识别主机用本机备份;
总结:
一、从备份角度来说,archive_mode=on时,主库归档wal,archive_mode=always时,主备库都归档wal,在物理备份时,如果单实例备份时_target_db_style=sinle时archive_mode=on 或者 always
如果集群备份时分2种情况:
1、集群中每个节点单独备份:_target_db_style=sinle-pro,此时archive_mode=always,只能是always
2、集群DB节点备份:_target_db_style=cluster,此时archive_mode=on 或者 always,
所以在进行物理备份时,如果不考虑牺牲一点点性能损失,可以把archive_mode默认设置为always
二、archive_mode 参数有三个可能的值:
-
off:
-
WAL 归档被禁用。这是默认设置。
-
在这种模式下,KingbaseES不会保存任何用于归档的 WAL 日志。
-
on:
-
启用 WAL 归档。
-
当 WAL 日志段满时,它会被复制到配置的归档目录中。
-
需要注意的是,仅仅设置
archive_mode = on是不够的,你还需要配置archive_command来指定如何归档这些日志。 -
always:
-
在这种模式下,无论 WAL 日志段是否已满,都会强制进行归档。
-
这主要用于某些备份策略,确保即使在低负载情况下也有足够的 WAL 日志进行归档。
-
与
on模式一样,你也需要配置archive_command。

浙公网安备 33010602011771号