kingbase物理备份sys_rman 初始化

4.1. 准备初始配置文件 

sys_backup.conf,初始化配置文件,供操作人员修改的配置文件;

sys_rman.conf,运行时配置文件,由初始化动作自动生成,不推荐人为后续的修改。

工具按照如下顺序寻找初始化配置文件

# ./kingbase/bin/sys_backup.conf# ./kingbase/share/sys_backup.conf

KingbaseES的安装目录 ./kingbase/share 目录下有初始配置文件的模板,包含以下参数:

表 4.1.6 操作系统配置 

参数名参数说明

_target_db_style选择性选项,可选single或cluster或single-pro。 single对应单机模式的目标数据库实例,cluster对应集群模式的目标数据库实例,single-pro对应集群模式的每个DB节点独立备份

_one_db_ip一个数据库节点的IP或主机名,支持主机名、IPv4、IPv6地址

_repo_ipREPO备份节点的IP或主机名,支持主机名、IPv4、IPv6地址

_stanza_name备份服务器的标签,仅在物理备份范畴内使用

_os_user_name操作系统的用户名

_repo_path实际保存备份集的目录

_repo_retention_full_count保存全量备份的数目,超过此数目的全量备份将被自动移除

_crond_full_days自动执行全量备份的间隔天数,0表示不执行

_crond_diff_days自动执行差异备份的间隔天数,0表示不执行

_crond_incr_days自动执行增量备份的间隔天数,0表示不执行

_crond_full_hour自动执行全量备份的时间点,2表示凌晨2点

_crond_diff_hour自动执行差异备份的时间点,3表示凌晨3点

_crond_incr_hour自动执行增量备份的时间点,4表示凌晨4点

_band_width网络限速,单位固定为 MB/s, 默认为0,代表不限速,配置文件仅接受纯数字

_os_ip_cmd操作系统常见命令ip的全路径文件名

_os_rm_cmd操作系统常见命令rm的全路径文件名

_os_sed_cmd操作系统常见命令sed的全路径文件名

_os_grep_cmd操作系统常见命令grep的全路径文件名

_single_data_dir单机数据库节点的数据目录

_single_bin_dir单机数据库节点的二进制目录

_single_db_user单机数据库节点的数据库登录用户名

_single_db_port单机数据库节点的端口

_use_scmd使用通讯协议,默认使用securecmdd,可选使用ssh

_start_fast是否快速启动备份,立即生成checkpoint,默认y

_compress_type是否在备份时使用压缩存储,默认为none不压缩

_non_archived_space在init过程中,检查未归档的WAL的容量,如果超过设置值,报错并退出init过程。单位固定为MB,可选 128 ~ 1024

_archive_statistics是否启用归档统计功能,默认n

示例如下:

#file: sys_backup.conf# 单机 single 集群 cluster 集群各节点独立备份 single-pro# target db style enum: single/cluster/single-pro_target_db_style="cluster"# 一个数据库节点的IP# 本配置项支持主机名、IPv4、IPv6地址# one kingbase node IP# just provide one IP, script will use 'repmgr cluster show' get other node IP_one_db_ip="192.168.28.37"# REPO备份节点的IP# 本配置项支持主机名、IPv4、IPv6地址# local repo IP, can be same as one_db_ip, means repo located in one db

 node_repo_ip="192.168.28.37"# 备份服务器的标签,仅在备份范畴内使用# label of this cluster_stanza_name="kingbase"# 操作系统的用户名# OS user name of database

os_user_name="jiqun"# 实际保存备份集的目录# !!!! dir to store the backup files# should be accessable for the OS user_repo_path="/home/jiqun/kbbr_repo"# 保存全量备份的数目,超过此数目的全量备份将被自动移除# count of keep, over the count FULL-backup will be remove_

repo_retention_full_count=9# 自动执行全量备份的间隔天数# count of days, interval to do FULL-backup_crond_full_days=7# 自动执行差异备份的间隔天数,0表示不执行# count of days, interval to do DIFF-backup_crond_diff_days=0# 自动执行增量备份的间隔天数# count of days, interval to do INCR-backup_crond_incr_days=1# 自动执行全量备份的时间点,2表示凌晨2点# HOUR to do the FULL-backup_crond_full_hour=2# 自动执行差异备份的时间点,3表示凌晨3点# HOUR to do the DIFF-backup_crond_diff_hour=3# 自动执行增量备份的时间点,4表示凌晨4点# 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="/usr/bin/sed"

os_grep_cmd="/bin/grep"# 以下四个参数,仅用于单机模式# !!! these follow 4 parameter ONLY for single style# 单机数据库节点的数据目录# data dir of single_

single_data_dir="/home/kingbase/ES/single/data"# bin dir of single# 单机数据库节点的二进制目录_single_bin_dir="/home/kingbase/ES/single/Server/bin"# 单机数据库节点的数据库登录用户名# database user of single_single_db_user="system"# 单机数据库节点的端口# database port of single_single_db_port="54321"# 网络限速,单位固定为 MB/s, 默认为0,代表不限速,配置文件仅接受纯数字# band witdh limit, fixed in MB/s, default 0 means no limit_band_width=0# 使用通讯协议,默认使用securecmdd,可选使用ssh# on means securecmdd, off means normal ssh_use_scmd=on# 是否快速启动备份,立即生成checkpoint,默认y# whether to sys_start_backup() fastly, y or n_start_fast=y# 是否在备份时使用压缩存储,默认为none不压缩# whether to gz the target file, none or gz_compress_type=none# 在init过程中,检查未归档的WAL的容量,# 如果超过设置值,报错并退出init过程# 单位固定为MB,可选 128 ~ 1024# if the non archived WAL files , more than this setting# show ERROR and break the backup-init, unit be fixed in MB, 128 ~ 1024_non_archived_space=1024# 不启用归档统计功能_archive_statistics=n

4.2. 执行初始化操作 

注意

管理员应当在sys_backup.sh init前,明确REPO角色所在的节点,确保在REPO节点上执行init初始化操作。

初始化配置流程:

配置文件参数有效性检查

检查数据库实例的未归档WAL的数量

配置REPO节点的运行时配置文件sys_rman.conf

配置各DB节点的运行时配置文件sys_rman.conf

修改各DB节点的archive_command配置,reload数据库实例

创建备份stanza,执行第一次全量备份

如遇异常情况,请参考章节 附录C:常见异常处理

4.2.1. 在单机+外部备份场景下 

确保kingbase.conf中以下两项配置:

archive_mode=onarchive_command 没有被注释,内容将被脚本自动修改

#file: sys_backup.conf# target db style enum: single/cluster/single-pro_target_db_style="single"_one_db_ip="192.168.28.37" # 数据节点IP_repo_ip="192.168.28.46" # 备份服务器IP

sys_backup.sh init# generate single sys_rman.conf...DONE# update single 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.

# database user of single_single_db_user="system"

注意

此配置项指明的数据库用户需要配置为ksql免密登录,请参考《安全指南手册》 用户密码配置工具使用方法

注意

要求管理员在sys_backup.sh init前,数据库节点与外部备份节点之间以相应的OS用户,互相进行SSH登录,以验证SSH登录场景,通过StrictHostKeyChecking的检测。

4.2.2. 在单机+内部备份场景下 

确保kingbase.conf中以下两项配置:

archive_mode=onarchive_command 没有被注释,内容将被脚本自动修改

#file: sys_backup.conf# target db style enum: single/cluster/single-pro_target_db_style="single"_one_db_ip="192.168.28.37" # IP地址相同_repo_ip="192.168.28.37" # IP地址相同

sys_backup.sh init# generate single sys_rman.conf...DONE# update single 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.

在单机环境下,

# database user of single_single_db_user="system"

注意

此配置项指明的数据库用户需要配置为ksql免密登录,请参考《安全指南手册》 用户密码配置工具使用方法

4.2.3. 在集群中每个节点单独备份 

注意

整个集群只执行一次init动作。

每个DB节点都是独立的REPO节点。

单独备份需要数据库实例的archvie_mode为always;

初始化脚本将检测此配置,如果需要,脚本将提示用户后进行设置并重启数据库实例。

确保es_rep.conf中以下两项配置:

archive_mode=alwaysarchive_command 没有被注释,内容将被脚本自动修改

#file: sys_backup.conf# target db style enum: single/cluster/single-pro_target_db_style="single-pro"_one_db_ip="10.10.11.11" # 本节点IP_repo_ip="10.10.11.11" # 本节点IP

sys_backup.sh init# Check 10.10.11.11 archive-mode == always# Check 10.10.11.12 archive-mode == always# WARNING: archive-mode on 10.10.11.12 is not alwayssys_backup.conf target_db_style=single-pro: require the archive-mode=always.Yes/Y: sys_backup.sh auto set all node archive-mode=always and restart databse cluster.No/N: abort sys_backup.sh, set archive-mode manually, execute sys_backup.sh again.Are you sure to set all node to archive-mode=always and restart databse?[Y/n]:# 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# create stanza and check on 10.10.11.12 ...(maybe 60+ seconds)# create stanza and check on 10.10.11.12 ...DONE# initial first full backup on 10.10.11.12 ...(maybe several minutes)# initial first full backup on 10.10.11.12 ...DONE# create stanza and check on 10.10.11.13 ...(maybe 60+ seconds)# create stanza and check on 10.10.11.13 ...DONE# initial first full backup on 10.10.11.13 ...(maybe several minutes)# initial first full backup on 10.10.11.13 ...DONE# Initial sys_rman OK.

4.2.4. 在一主一备+外部备份场景下 

确保es_rep.conf中以下两项配置:

archive_mode=onarchive_command 没有被注释,内容将被脚本自动修改

#file: sys_backup.conf# target db style enum: single/cluster/single-pro_target_db_style="cluster"

sys_backup.sh initPlease input password ...root@192.168.28.37's password: 【手动输入密码】Please input password ...kingbase@192.168.28.37's password: 【手动输入密码】local <-> kingbase@192.168.28.37 ssh pwd-less OK.# generate local sys_rman.conf...DONE# update all node: sys_rman.conf and archive_command withsys_rman.archive-push...Please input password ...kingbase@192.168.28.121's password: 【手动输入密码】local <-> kingbase@192.168.28.121 ssh pwd-less OK.# update all node: sys_rman.conf and archive_command withsys_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 init前,数据库节点与外部备份节点之间以相应的OS用户,互相进行SSH登录,以验证SSH登录场景,通过StrictHostKeyChecking的检测。

4.2.5. 在一主一备+内部备份场景下 

确保es_repo.conf中以下两项配置:

archive_mode=onarchive_command 没有被注释,内容将被脚本自动修改

#file: sys_backup.conf# target db style enum: single/cluster/single-pro_target_db_style="cluster"

sys_backup.sh init# generate local sys_rman.conf...DONE# update all node: sys_rman.conf and archive_command withsys_rman.archive-push...# update all node: sys_rman.conf and archive_command withsys_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.

4.3. 备份任务的启停 

4.3.1. sys_backup.sh start 

脚本使用crontab命令增加定时任务,使用sys_rman进行定时备份;可以通过crontab -l 查看定时任务。

全量备份、差异备份、增量备份,均为可选。

备份类型、备份周期和备份时间由配置文件sys_backup.conf指定。

在sys_backup.conf配置为cluster的情况下,整个集群只需要在REPO节点上执行;

在sys_backup.conf配置为single-pro的情况下,每个DB节点都是REPO节点,需要逐个执行start。

# 自动执行全量备份的间隔天数# count of days, interval to do FULL-backup_crond_full_days=7# 自动执行差异备份的间隔天数,0表示不执行# count of days, interval to do DIFF-backup_crond_diff_days=0# 自动执行增量备份的间隔天数# count of days, interval to do INCR-backup_crond_incr_days=1# 自动执行全量备份的时间点,2表示凌晨2点# HOUR to do the FULL-backup_crond_full_hour=2# 自动执行差异备份的时间点,3表示凌晨3点# HOUR to do the DIFF-backup_crond_diff_hour=3# 自动执行增量备份的时间点,4表示凌晨4点# HOUR to do the INCR-backup_crond_incr_hour=4

sys_backup.sh startEnable some sys_rman in crontab-daemonSet full-backup in 7 daysSet incr-backup in 1 days0 2 */7 * * kingbase/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman--config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase--archive-copy --type=full backup >>/tmp/sys_rman_backup_full.log 2>&10 4 */1 * * kingbase/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman--config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase--archive-copy --type=incr backup >>/tmp/sys_rman_backup_incr.log 2>&1

4.3.2. sys_backup.sh stop 

从系统CRONTAB中移除所有sys_rman相关的备份条目。

在sys_backup.conf配置为cluster的情况下,整个集群只需要在REPO节点上执行;

在sys_backup.conf配置为single-pro的情况下,每个DB节点都是REPO节点,需要逐个执行stop。

sys_backup.sh stopDisable all sys_rman in crontab-daemon

开启和停止定时任务的操作示范:

[kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin] ./sys_backup.sh start# pre-condition: check the non-archived WAL filesEnable some sys_rman in crontab-daemonSet full-backup in 7 daysSet incr-backup in 1 days0 2 */7 * * /home/kingbase/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup >>/home/kingbase/cluster/kingbase/log/sys_rman_backup_full.log 2>&10 4 */1 * * /home/kingbase/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=incr backup >>/home/kingbase/cluster/kingbase/log/sys_rman_backup_incr.log 2>&1[kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin] crontab -l0 2 */7 * * /home/kingbase/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup >>/home/kingbase/cluster/kingbase/log/sys_rman_backup_full.log 2>&10 4 */1 * * /home/kingbase/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=incr backup >>/home/kingbase/cluster/kingbase/log/sys_rman_backup_incr.log 2>&1[kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin][kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin] ./sys_backup.sh stop# pre-condition: check the non-archived WAL filesDisable all sys_rman in crontab-daemon[kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin] crontab -l[kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin]

4.3.3. sys_backup.sh pause 

暂时停止定时备份动作。

sys_backup.sh pausePuase the sys_rman...DONE

4.3.4. sys_backup.sh unpause 

恢复被暂停的定时备份动作。

sys_backup.sh unpauseUn-Puase the sys_rman...DONE

4.4. sys_backup.conf信息变化处理 

如果sys_backup.conf中关于数据库的信息(包含IP、数据库名、端口等)有所修改,需要重新初始化备份。

执行 sys_backup.sh init重新初始化备份功能。

如果sys_backup.conf中关于备份周期和时间点的信息有所修改,重新配置即可。

执行sys_backup.sh start重新配置自动备份周期。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容