金仓数据库物理备份脚本配置

金仓数据库物理备份脚本写数据的方式有三种: single/cluster/single-pro

现以集群为例:

数据库服务器一:192.168.40.148

数据库服务器二:192.168.40.149

image

 

image

当配置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

image

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

image

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

148上执行配置:

image

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

image

 

image

 148上启动物理备份脚本

image

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

image

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

image

 

image

image

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

image

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

image

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

image

 当选择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 参数有三个可能的值:

  1. off:

    • WAL 归档被禁用。这是默认设置。

    • 在这种模式下,KingbaseES不会保存任何用于归档的 WAL 日志。

  2. on:

    • 启用 WAL 归档。

    • 当 WAL 日志段满时,它会被复制到配置的归档目录中。

    • 需要注意的是,仅仅设置 archive_mode = on 是不够的,你还需要配置 archive_command 来指定如何归档这些日志。

  3. always:

    • 在这种模式下,无论 WAL 日志段是否已满,都会强制进行归档。

    • 这主要用于某些备份策略,确保即使在低负载情况下也有足够的 WAL 日志进行归档。

    • 与 on 模式一样,你也需要配置 archive_command

posted @ 2025-08-24 23:35  缘来不是你我  阅读(52)  评论(0)    收藏  举报