单机+内部备份_全备案例

此场景为单机数据库节点内部备份,方便部署和操作,但备份REPO与数据库实例处于同一个物理主机,冗余度较低。

前期准备

配置ksql免密登录(必须)

在Kingbase数据库运行维护中,经常用到ksql工具登录数据库,本地免密登录可以让维护数据库时,摆脱每次登库输入用户名密码;下面介绍KingbaseES V8数据库2种配置免密登录的方法。
ksql登录时,会去数据库安装用户家目录下的密码文件.encpwd中读取账户,从而登入数据库;密码文件为普通文本文件,可以vi创建,也可以使用kingbase提供的工具sys_encpwd工具来生成密码文件。
本案例采用system用户做演示,若需其他用户视情况更改。

配置环境变量

su - kingbase
vi .bash_profile
export KINGBASE_USER=system
export KINGBASE_PORT=54326
export KINGBASE_DATABASE=test

.encpwd内容解析

每一行代表一条访问规则记录,可以配置多条记录;每条记录包含5个字段,字段与字段之间用冒号“:”分隔,5个字段分别为:主机地址、端口号、库名、用户名、密码(加密格式);
.encpwd若不存在会创建,若已存在,会追加记录。
例:

127.0.0.1:54321:test:u1:MTIzNDU2

sys_encpwd配置工具使用方法

该工具包含5个参数,5个参数均需要输入才能配置成功
参数说明:

-H, --hostname=主机地址,允许单主机地址匹配和全匹配,全匹配时使用*指定
-P, --portnum=端口号,仅允许单端口匹配
-D, --database=数据库名,允许单数据库匹配和全匹配,全匹配时使用*指定
-U, --user=用户名,仅允许单用户匹配
-W, --password=用户对应的密码,仅允许单用户匹配

注意:当前四个参数输入与原文件中的某一条记录完全相同时,会修改该条记录相应的密码,否则生成一条新的记录。

示例1:将新创建用户登录信息加入密码文件

--创建用fuwa并指定密码,用ksql测试登录需要输入密码
[kingbase@node1 ~]$ ksql -Usystem -W test
口令:
ksql (V8.0)
输入 "help" 来获取帮助信息.
test=# create user fuwa with password 'fuwa';
CREATE ROLE
test=# \q
[kingbase@node1 ~]$ ksql -Ufuwa test
ksql (V8.0)
输入 "help" 来获取帮助信息.
test=> --使用sys_encpwd工具配置密码,指定fuwa用户可以从任意主机、任意端口,登录任意数据库
[kingbase@node1 ~]$ sys_encpwd -H \* -P \* -D \* -U fuwa -W fuwa
[kingbase@node1 ~]$ cat .encpwd 
*:*:*:fuwa:ZnV3YQ==参数说明:-H 指定任意主机,-P指定任意端口,-D指定任意库*,“*”为特殊字符,需要加\转义**--测试用户fuwa免密登录
[kingbase@node1 ~]$ ksql -Ufuwa test
ksql (V8.0)
输入 "help" 来获取帮助信息.test=> 

示例2:对system用户登录信息加入密码文件

[kingbase@node1 ~]$ sys_encpwd -H \* -P \* -D \* -U system -W kingbase
[kingbase@node1 ~]$ cat .encpwd 
*:*:*:fuwa:ZnV3YQ==
*:*:*:system:a2luZ2Jhc2U=

问题:免密登录配置后登录失败

--问题描述
免密登录配置后登录失败
[kingbase@guanxishujukufuwuqi2 ~]$ cat .encpwd 
*:*:*:system:dG9wYWhwY18xMjM=
[kingbase@guanxishujukufuwuqi2 ~]$ ksql
ksql: error: could not connect to server: could not connect to server: No such file or directoryIs the server running locally and acceptingconnections on Unix domain socket "/tmp/.s.KINGBASE.54321"?
[kingbase@guanxishujukufuwuqi2 ~]$ ps -ef | grep Kingbase
kingbase    2044       1  0 Dec20 ?        00:00:08 /KingbaseV8R6/KESRealPro/V008R006C008B0014/Server/bin/kingbase -D /topsoft/kbdata
kingbase  563074  555702  0 19:45 pts/0    00:00:00 grep Kingbase--解决办法

数据库开启归档模式(必须)

--开启归档模式
[kingbase@node1 ~]$ vi /data/kingbase.conf
#archive_mode = off             # enables archiving; off, on, or always
#archive_command = ''
改为
archive_mode = on               # enables archiving; off, on, or always
archive_command = ''--重启库
[kingbase@node1 ~]$ sys_ctl restart -D /data/

补充:archive_command 没有被注释,内容将被脚本自动修改

规划备份目录

[root@node1 bin]# mkdir -p /kbrmanbak
[root@node1 bin]# chown -R kingbase:kingbase /kbrmanbak/
[root@node1 bin]# chmod -R 755 /kbrmanbak/

sys_rman的初始化配置

准备初始配置文件

sys_backup.conf,初始化配置文件,供操作人员修改的配置文件;
sys_rman.conf,运行时配置文件,由初始化动作自动生成,不推荐人为后续的修改。
工具按照如下顺序寻找初始化配置文件

cd /KingbaseES/V8/Server
# bin/sys_backup.conf
# share/sys_backup.conf

生成sys_backup.conf并更改

V008R006C005B0023之后的版本,支持securecmdd或sshd;之前的版本支持sshd。

--查找sys_backup.conf模板位置
[kingbase@node1 bin]$ find / -name sys_backup.conf
/KingbaseES/V8/Server/share/sys_backup.conf
/KingbaseES/V8/ClientTools/share/sys_backup.conf
/KingbaseES/V8/ManagerTools/share/sys_backup.conf--生成正式sys_backup.conf文件
[kingbase@node1 bin]$ cp /KingbaseES/V8/Server/share/sys_backup.conf /KingbaseES/V8/Server/bin/sys_backup.conf--正式sys_backup.conf文件  追加以下内容:
# 网络限速,单位固定为 MB/s, 默认为0,代表不限速,配置文件仅接受纯数字
# band witdh limit, fixed in MB/s, default 0 means no limit
_band_width=0
# 使用通讯协议,默认使用securecmdd,可选使用ssh,视生产环境版本更改参数值
# V008R006C005B0023之后的版本,支持securecmdd或sshd;之前的版本支持sshd。
# on means securecmdd, off means normal ssh
_use_scmd=on
# 是否快速启动备份,立即生成checkpoint,默认y
# whether to sys_start_backup() fastly, y or n
_start_fast=y
#可在指定备份时、还原时并行处理可使用的并发进程数量
--process-max=4 
# 是否在备份时使用压缩存储,默认为none不压缩 若指定压缩级别,可选范围 [ 0 - 9 ]
# whether to gz the target file, none or gz
_compress_type=gz
--compress-level=3
# 在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--更改正式sys_backup.conf文件,更改后内容如下:
[kingbase@node1 bin]$ cat /KingbaseES/V8/Server/bin/sys_backup.conf
#file: sys_backup.conf
#dest dir: <cluster_dir>/kingbase/bin/sys_backup.conf
#dest dir: <cluster_dir>/kingbase/share/sys_backup.conf#单机 single 集群 cluster 集群各节点独立备份 single-pro
# target db style enum:  single/cluster 
_target_db_style="single"
#一个数据库节点的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.40.110"  
#REPO备份节点的IP 本配置项支持主机名、IPv4、IPv6地址
# local repo IP, inner-REPO, must be same as one_db_ip, means repo located in one db node
# outer repo IP, outer-REPO, means repo located in outer node
_repo_ip="192.168.40.110"
# 备份服务器的标签,仅在备份范畴内使用
# 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="/kbrmanbak/kbbr_repo"
# 保存全量备份的数目,超过此数目的全量备份将被自动移除
# count of keep, over the count FULL-backup will be remove
_repo_retention_full_count=5 
# 自动执行全量备份的间隔天数
# count of days, interval to do FULL-backup
_crond_full_days=1  
# 自动执行差异备份的间隔天数,0表示不执行
# count of days, interval to do DIFF-backup
_crond_diff_days=0 
# 自动执行增量备份的间隔天数,0表示不执行
# count of days, interval to do INCR-backup
_crond_incr_days=0
# 自动执行全量备份的时间点,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="/bin/sed"
_os_grep_cmd="/bin/grep"
# 以下四个参数,仅用于单机模式
# !!! these follow 4 parameter ONLY for single style
# 单机数据库节点的数据目录
# data dir of single 
_single_data_dir="/data"
# 单机数据库节点的二进制目录
# bin dir of single
_single_bin_dir="/KingbaseES/V8/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,视生产环境版本更改参数值
# V008R006C005B0023之后的版本,支持securecmdd或sshd;之前的版本支持sshd。
# on means securecmdd, off means normal ssh
_use_scmd=on
# 是否快速启动备份,立即生成checkpoint,默认y
# whether to sys_start_backup() fastly, y or n
_start_fast=y
#可在指定备份时、还原时并行处理可使用的并发进程数量
--process-max=4 
# 是否在备份时使用压缩存储,默认为none不压缩 若指定压缩级别,可选范围 [ 0 - 9 ]
# whether to gz the target file, none or gz
_compress_type=gz
--compress-level=3
# 在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

注意事项:

[kingbase@node1 bin]$ vi /KingbaseES/V8/Server/bin/sys_backup.conf
....
# 使用通讯协议,默认使用securecmdd,可选使用ssh,视生产环境版本更改参数值
# V008R006C005B0023之后的版本,支持securecmdd或sshd;之前的版本支持sshd。
# on means securecmdd, off means normal ssh
_use_scmd=off
...--查看版本方法
[kingbase@node1 bin]$ ksql -V
ksql (Kingbase) V008R006C005B0023

sys_rman初始化

初始化步骤

kingbase@node1 kbrmanbak]$ sys_backup.sh init
The authenticity of host '192.168.40.110 (192.168.40.110)' can't be established.
ECDSA key fingerprint is b8:54:e0:74:c5:e2:33:46:0d:7d:39:91:e3:b5:5a:6d.
Are you sure you want to continue connecting (yes/no)? yes
root@192.168.40.110's password: 
# generate single sys_rman.conf...DONE
# update single archive_command with sys_rman.archive-push...DONE
# create stanza and check...(maybe 60+ seconds)
2023-12-22 13:43:32.069 CST [12140] 警告:  max_connections should be less than or equal than 10 (restricted by license)
2023-12-22 13:43:32.069 CST [12140] 提示:  the value of max_connect is set 10
# 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.

问题处理

check stanza failed
--问题描述:
sys_rman初始化报错
[kingbase@node1 bin]$ sys_backup.sh init
The authenticity of host '192.168.40.110 (192.168.40.110)' can't be established.
ECDSA key fingerprint is b8:54:e0:74:c5:e2:33:46:0d:7d:39:91:e3:b5:5a:6d.
Are you sure you want to continue connecting (yes/no)? yes
Please input password ...
root@192.168.40.110's password: local <-> root@192.168.40.110 ssh pwd-less OK.
# generate single sys_rman.conf...DONE
# update single archive_command with sys_rman.archive-push...DONE
# create stanza and check...(maybe 60+ seconds)
ERROR: check stanza failed, check log file /KingbaseES/V8/Server/log/sys_rman_check.log--分析过程
[kingbase@node1 bin]$ tail -300f  /KingbaseES/V8/Server/log/sys_rman_check.log
2023-12-22 13:38:56.493 P00   INFO: check command begin 2.27: --config=/kbrmanbak/kbbr_repo/sys_rman.conf --log-level-console=info --log-level-file=info --log-path=/KingbaseES/V8/Server/log --log-subprocess --kb1-path=/data --kb1-port=54321 --kb1-user=system --repo1-path=/kbrmanbak/kbbr_repo --stanza=kingbase
ERROR: [068]: archive_command '[null]' must contain sys_rman
2023-12-22 13:38:57.009 P00   INFO: check command end: aborted with exception [068]--解决办法
去掉archive_command前的#标识,去掉后如下
archive_command='/KingbaseES/V8/Server/bin/sys_rman --config /kbrmanbak/kbbr_repo/sys_rman.conf --stanza=kingbase archive-push %p'重启库
sys_backup.sh init删除目录
cd /kbrmanbak/
rm -rf kbbr_repo/再次sys_rman初始化成功
kingbase@node1 kbrmanbak]$ sys_backup.sh init
The authenticity of host '192.168.40.110 (192.168.40.110)' can't be established.
ECDSA key fingerprint is b8:54:e0:74:c5:e2:33:46:0d:7d:39:91:e3:b5:5a:6d.
Are you sure you want to continue connecting (yes/no)? yes
root@192.168.40.110's password: 
# generate single sys_rman.conf...DONE
# update single archive_command with sys_rman.archive-push...DONE
# create stanza and check...(maybe 60+ seconds)
2023-12-22 13:43:32.069 CST [12140] 警告:  max_connections should be less than or equal than 10 (restricted by license)
2023-12-22 13:43:32.069 CST [12140] 提示:  the value of max_connect is set 10
# 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.
securecmdd does not work
--问题描述
[kingbase@guanxishujukufuwuqi2 share]$ sys_backup.sh init
ERROR: securecmdd does not work, please check--解决办法[root@guanxishujukufuwuqi2 ~]# cd /KingbaseV8R6/KESRealPro/V008R006C008B0014/ClientTools/guitools/DeployTools/zip
[root@guanxishujukufuwuqi2 zip]$ ls -l
total 232164
-rwxrwxr-x 1 root root    179967 Sep  2 04:15 cluster_install.sh
-rw-rw-r-- 1 root root 234974045 Sep  2 04:15 db.zip
-rw-rw-r-- 1 root root     14409 Sep  2 04:15 install.conf
-rw-rw-r-- 1 root root   2552788 Sep  2 04:15 securecmdd.zip
-rwxrwxr-x 1 root root      7374 Sep  2 04:15 trust_cluster.sh
[root@guanxishujukufuwuqi2 zip]$ unzip securecmdd.zip 
Archive:  securecmdd.zipcreating: securecmdd/creating: securecmdd/lib/inflating: securecmdd/lib/libcrypt.so.1  inflating: securecmdd/lib/libcrypto.so.1.1  inflating: securecmdd/lib/libssl.so.1.1  creating: securecmdd/bin/inflating: securecmdd/bin/sys_securecmd  inflating: securecmdd/bin/sys_secureftp  inflating: securecmdd/bin/sys_HAscmdd.sh  inflating: securecmdd/bin/sys_securecmdd  creating: securecmdd/share/inflating: securecmdd/share/sys_HAscmdd.conf  inflating: securecmdd/share/key_file  inflating: securecmdd/share/securecmdd_config  inflating: securecmdd/share/securecmdd.service  inflating: securecmdd/share/securecmd_config  inflating: securecmdd/share/accept_hosts  [root@guanxishujukufuwuqi2 zip]$ cd securecmdd/bin/
[root@guanxishujukufuwuqi2 bin]$ ls -l
total 2032
-rwxr-xr-x 1 root root  34468 Sep  2 04:15 sys_HAscmdd.sh
-rwxr-xr-x 1 root root 854936 Sep  2 04:15 sys_securecmd
-rwxr-xr-x 1 root root 986600 Sep  2 04:15 sys_securecmdd
-rwxr-xr-x 1 root root 198976 Sep  2 04:15 sys_secureftp说明:必须root下启动[root@guanxishujukufuwuqi2 bin]# sh sys_HAscmdd.sh init
successfully initialized the sys_securecmdd, please use "sys_HAscmdd.sh start" to start the sys_securecmdd
[root@guanxishujukufuwuqi2 bin]# sh sys_HAscmdd.sh start
Created symlink /etc/systemd/system/multi-user.target.wants/securecmdd.service → /etc/systemd/system/securecmdd.service.
--问题描述
[kingbase@guanxishujukufuwuqi2 ~]$ sys_backup.sh init
# pre-condition: check the non-archived WAL files
# 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)
ERROR: full backup failed, check log file /KingbaseV8R6/KESRealPro/V008R006C008B0014/Server/log/sys_rman_backup.log[kingbase@guanxishujukufuwuqi2 ~]$ tail -300f /KingbaseV8R6/KESRealPro/V008R006C008B0014/Server/log/sys_rman_backup.log
2023-12-29 14:53:23.955 P01   INFO: backup file /topsoft/kbdata/base/1/1177 (0B, 99%)
2023-12-29 14:53:23.955 P02   INFO: backup file /topsoft/kbdata/.wallet/userkey.kr (0B, 99%)
2023-12-29 14:53:24.057 P03   INFO: backup file /topsoft/kbdata/.wallet/tspkey.kr (0B, 99%)
2023-12-29 14:53:24.257 P01   INFO: backup file /topsoft/kbdata/.wallet/tbcolkey.kr (0B, 99%)
2023-12-29 14:53:24.257 P02   INFO: backup file /topsoft/kbdata/.wallet/method.md (0B, 99%)
ERROR: [041]: raised from local-4 protocol: unable to open file '/topsoft/kbdata/kingbase.conf_back_2023-12-20_14_11_44' for read: [13] Permission denied[file_open_err] on retry after 0ms[file_open_err] on retry after 15000ms
2023-12-29 14:53:32.616 P00   INFO: backup command end: aborted with exception [041]

备份管理与优化

性能优化-并行处理

工具支持多进程并发拷贝物理文件;请根据当前环境的主库的性能情况,合理设置多进程数量。
可指定备份时、还原时并行处理可使用的并发进程数量。
–process-max=4 # 默认指定可并发4个进程来备份或还原 可选范围是1~999
image.png

性能优化-压缩优化

压缩将节约空间、消耗时间;不压缩将节约时间、消耗空间;请根据场景需要,设置是否压缩存储备份集和归档WAL日志文件。
指定备份文件实际存储时压缩算法和压缩级别

--compress-type= none  # none 不压缩,默认设置,可选 none / gz
--compress-level=3  # 指定压缩级别,可选范围 [ 0 - 9 ]

备份还原时限速

备份和还原时,工具可以进行限速,单位固定为MB/s,可以在sys_rman.conf中动态调整。
限速功能,在还原场景时,因为逐个文件进行checksum校验和比对,限速精度受到影响,实际均速低于设定速度。建议在还原时不开启限速功能, REPO_PATH/sys_rman.conf 配置 band-width=0 。
在单机和集群内部备份场景时,限速行为将生效

备份任务的启停

sys_backup.sh start

脚本使用crontab命令增加定时任务,使用sys_rman进行定时备份;可以通过crontab -l 查看定时任务。
全量备份、差异备份、增量备份,均为可选。
备份类型、备份周期和备份时间由配置文件sys_backup.conf指定。

[kingbase@node1 ~]$ sys_backup.sh start
Enable some sys_rman in crontab-daemon
Set full-backup in 1 days
0 2 */1 * * kingbase /KingbaseES/V8/Server/bin/sys_rman --config=/kbrmanbak/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup >> /KingbaseES/V8/Server/log/sys_rman_backup_full.log 2>&1[kingbase@node1 ~]$ crontab -l
0 2 */1 * *  /KingbaseES/V8/Server/bin/sys_rman --config=/kbrmanbak/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup >> /KingbaseES/V8/Server/log/sys_rman_backup_full.log 2>&1说明:
需要去掉以下中的kingbase,不然备份提示/bin/sh: kingbase: 未找到命令
[kingbase@node1 ~]$ crontab -l
0 2 */1 * *  kingbase /KingbaseES/V8/Server/bin/sys_rman --config=/kbrmanbak/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup >> /KingbaseES/V8/Server/log/sys_rman_backup_full.log 2>&1

sys_backup.sh stop

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

[kingbase@node1 ~]$ sys_backup.sh stop
Disable all sys_rman in crontab-daemon[kingbase@node1 kingbase]$ crontab -l
no crontab for kingbase

sys_backup.sh pause

暂时停止定时备份动作。

sys_backup.sh pause
Puase the sys_rman...DONE

sys_backup.sh unpause

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

sys_backup.sh unpause
Un-Puase the sys_rman...DONE

sys_backup.conf信息变化处理

如果sys_backup.conf中关于数据库的信息(包含IP、数据库名、端口等)有所修改,需要重新初始化备份,执行 sys_backup.sh init重新初始化备份功能。
如果sys_backup.conf中关于备份周期和时间点的信息有所修改,重新配置即可,执行sys_backup.sh start重新配置自动备份周期。

sys_rman.conf配置说明

运行时配置文件sys_rman.conf,不推荐手动修改,如果需要进行修改,请参考此段落:

以下参数修改后需要重新初始化生效

# DB节点的data目录
kb*-path=/home/kingbase/kingbase/data
# DB节点的监听端口
kb*-port=54321
# DB节点的数据库用户
kb*-user=esrep
# DB节点的IP地址
kb*-host=10.11.12.13
# DB节点的OS用户名
kb*-host-user=kingbase
# REPO节点的实际备份目录
repo1-path=/home/kingbase/kbbr_repo

修改完成后,执行以下命令完成重新初始化

/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase stanza-create
/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase check
/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --type=full backup

以下参数修改后需要一次全量备份生效

# 是否压缩备份的数据,默认none不压缩,可选 none / gz
# 压缩将节约空间、消耗时间;不压缩将节约时间、消耗空间。
compress-type=none
# 压缩级别, 默认3, 1~9,9代表最大压缩,同时也最耗时
compress-level=3

修改完成后,执行以下命令完成一次全量备份:

/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --type=full backup

以下参数修改后直接生效

# REPO节点保留至多的全量备份
repo*-retention-full=5
# REPO节点的sys_rman工具日志保存路径
log-path=/home/kingbase/kingbase/log
# 写入到日志文件的日志级别, info debug trace
log-level-file=info
# 执行命令时屏幕的日志级别, info debug trace
log-level-console=info
# 是否记录子进程的日志, y / n
log-subprocess=y
# 多进程的至多数目
process-max=4
# 是否快速生成checkpoint,在开启实际备份之前
start-fast=y
# 是否保留目录下的软链接
link-all=y
# 未归档的WAL文件容量的警告阈值
non-archived-space=1024
# 归档单个WAL的超时时间
archive-timeout=600
# 限速,单位固定为MB/s
band-width=0
# 备份过程中遇到校验和等问题时会执行的自定义命令,如发送告警邮件等
alert-command=( cd /opt/Kingbase/ES/Server/bin; ./sys_mail -s "%t" -b "%c" & )

常见异常处理

1、ERROR RMAN-00500: Non archived WAL files more than 1024 M , Please check the user-guide

原因:在初始化阶段,未归档的WAL文件超过了设定的容忍值
解决:

  • 确保这些WAL日志是否有被其他第三方使用,若有,请尽快联系第三方转移这些归档。
  • 确保这些WAL日志是否被不恰当使用后造成积压(例如归档目录意外删除,存储掉线等)。若有,将其积压文件用scp/cp等方式转移。
  • 在确认这些日志无用后,进入数据库子目录(默认data/sys_wal/archive_status/),rm -rf *.ready 。随后进入数据库执行checkpoint,此时会清理这些积压日志,此操作会引起IO高峰,选择在可维护时间段内进行。
  • 重新执行初始化 sys_backup.sh init

2、ERROR: [058]: version ‘12’ and path ‘…/data’ queried from cluster do not match version ‘12’ and ‘/home/kingbase/cluster/project/cluster/kingbase/data’ read from ‘/home/kingbase/cluster/project/cluster/kingbase/data/global/sys_control’

原因:备份工具需要绝对路径来寻找data目录
解决:启动数据库时,应该使用绝对路径来指定data目录

3、ERROR: sys_backup.conf does not exist

原因:在相应目录不存在sys_backup.conf文件
解决:确认./kingbase/bin/ 或 kingbase/share/ 存在此文件

4、ERROR: /home/kingbase/cluster/project/cluster/kingbase/bin/sys_backup.conf invalid.

原因:指明配置文件具有无效的配置内容
解决:请根据模板,确认配置文件的内容

5、ERROR: Configured repo-path [/home/kingbase/kbbr_repo] be NOT accessable by current user

原因:当前数据库用户不能有效访问配置文件指定的repo-path目录
解决:通过高权限用户比如ROOT去修改目标目录的权限,或重新指定目录

6、ERROR: Configured repo-retention-full invalid.

原因:配置文件中的repo-retention-full不是有效的数字
解决:该配置项repo-retention-full需要大于0的数字

7、ERROR: Configured crond-full-days invalid.

原因:配置文件中的crond-full-days不是有效的数字
解决:该配置项crond-full-days需要大于或等于0的数字

8、ERROR: Configured crond-diff-days invalid.

原因:配置文件中的crond-diff-days不是有效的数字
解决:该配置项crond-diff-days需要大于或等于0的数字

9、ERROR: Configured crond-incr-days invalid.

原因:配置文件中的crond-incr-days不是有效的数字
解决:该配置项crond-incr-days需要大于或等于0的数字

10、ERROR: Configured crond-full-hour invalid.

原因:配置文件中的crond-full-hour不是有效的数字
解决:该配置项crond-full-hour需要大于0

11、ERROR: Configured crond-diff-hour invalid.

原因:配置文件中的crond-diff-hour不是有效的数字
解决:该配置项crond-diff-hour需要大于0

12、ERROR: Configured crond-incr-hour invalid.

原因:配置文件中的crond-incr-hour不是有效的数字
解决:该配置项crond-incr-hour需要大于0

13、ERROR: sys_backup.sh init must executed firstly

原因:尚未初始化工具的环境
解决:执行其他命令之前,执行init初始化命令

14、ERROR: sys_backup.sh must be executed by db-specify user

原因:本脚本不能由非数据库OS用户执行
解决:使用数据库关联的OS用户执行

15、ERROR: repo_ip must located in local, and sys_backup.sh be executed at REPO host.

原因:配置文件sys_backup.conf指定的repo_ip不存在于本地
解决:初始化动作必须在REPO本机执行

16、ERROR: local ssh-keygen fail,please check /tmp/ssh-keygen.log

原因:REPO节点与数据库节点的SSH免密配置失败
解决:检查日志文件,确认系统原因

17、ERROR: config file ‘/home/kingbase/cluster/project/cluster/kingbase/etc/repmgr.conf’ does not exist

原因:不能找到需要的第三方工具配置文件repmgr.conf
解决:确认目录下存在repmgr.conf文件

18、ERROR: ‘/home/kingbase/cluster/project/cluster/kingbase/etc/repmgr.conf’ at ‘192.168.28.121’ invalid"

原因:在数据库节点192.168.28.121上的repmgr.conf文件内容有误
解决:确认此节点上的repmgr文件

19、ERROR: sys_backup.sh init must be executed by db-specify user ‘kingbase’

原因:初始化命令只能由数据库关联用户执行
解决:使用数据库关联用户执行

20、ERROR: can not connect to db at 192.168.28.37,please check /home/kingbase/cluster/project/cluster/kingbase/data/sys_log/

原因:不能访问节点的数据库服务
解决:检查本信息给出的日志目录,确认原因

21、ERROR: at 192.168.28.37, user ‘kingbase’ can not access the repo-path [/home/kingbase/kbbr_repo]

原因:在数据节点上,指定OS用户不能有效访问repo-path
解决:在此节点,确保指定OS用户的访问权限。

22、ERROR: create stanza failed, check log file /tmp/sys_rman_stanza-create.log

原因:创建stanza失败
解决:检查本信息给出的日志文件

23、ERROR: check stanza failed, check log file /tmp/sys_rman_check.log

原因:创建后的隐式check命令失败
解决:检查本信息给出的日志文件

24、ERROR: full backup failed, check log file /tmp/sys_rman_backup.log

原因:创建后的隐式第一次全量备份失败
解决:检查本信息给出的日志文件

25、ERROR: [050]: unable to acquire lock on file ‘/tmp/sys_rman/kbbr-backup.lock’:

原因:有另外的sys_rman进程在本地环境中运行或上一个进程没有正常退出
解决:删除 /tmp/sys_rman/ *.lock

26、ERROR: [082]: WAL segment 000000010000000000000001 was not archived before the 60000ms timeout HINT: check the archive_command to ensure that all options are correct (especially --stanza). HINT: check the Kingbase server log for errors.

原因之一:可能在互相ssh认证中,需要首次执行一遍YES/NO以过StrictHostKeyChecking的检测。 The authenticity of host ‘10.10.11.xxx (10.10.11.xxx)’ can’t be established. ECDSA key fingerprint is SHA256:dpXDPJcv1S0J8Iy1hpwk2jYi1z5ZxI5eCyKa72LnrYo. Are you sure you want to continue connecting (yes/no)?
解决:要求管理员在数据库节点与外部备份节点之间,以相应的OS用户,互相进行SSH登录,以验证SSH登录场景。
原因之二:可能此时数据库业务量较大,造成的WAL日志文件很多,导致WAL日志文件归档超时(默认60s)
解决:在所有节点的_repo_path/sys_rman.conf文件内的[global]下新增一行“archive-timeout=600”,增大超时时间

27、ERROR:Uncaught FileMissingError: unable to open missing file ‘/home/kingbase/kbbr_repo/backup/kingbase/20201022-141202F/backup.manifest’ for read

原因:因为上一次备份被意外中断,导致上一次备份的某些文件没有正常规整。
解决:进入此错误信息所示目录,找到backup.manifest.copy文件,重新命名为backup.manifest即可再次备份。

28、ERROR: Configured repo-path [/backup/kbbr_repo] already exists

原因:sys_backup.conf内repo-path目录设置不变时,不允许多次执行init操作
解决:将现有的repo-path目录删除(请确认无重要备份数据可以删除)或重命名或移动到其他位置,或者更改sys_backup.conf内repo-path目录设置

29、ERROR: [029]: new backup label ‘20210713-182300F_20210713-144328I’ is not later than latest backup label ‘20210713-182300F_20210713-225102I.manifest.gz’ HINT: has the timezone changed? HINT: is there clock skew?

原因:可能是集群节点时钟不同步
解决:集群中所有节点必须做时钟同步,系统时间需保持一致(要求至少误差范围在2s以内)

30、WARN: unable to check kb-1: [DbConnectError] unable to connect to ‘dbname=‘test’ port=54321 user=‘system’’: FATAL: database “test” does not exist

ERROR: [056]: unable to find primary cluster - cannot proceed
原因:可能是执行sys_rman备份等操作时连接的数据库(默认为test库)不存在,或者是 --kb1-database 参数指定了不存在的数据库
解决:重新创建test库 create database test ,或执行备份等操作时通过 --kb1-database 指定一个存在的数据库,例如: --kb1-database=test1

31、WARN: unable to check kb-1: [DbConnectError] unable to connect to ‘dbname=‘test’ port=54321 user=‘system’’: FATAL: database “test” does not exist

ERROR: [027]: no database found
原因:可能是执行sys_rman check等操作时连接的数据库(默认为test库)不存在,或者是 --kb1-database 参数指定了不存在的数据库
解决:重新创建test库 create database test ,或执行check等操作时通过 --kb1-database 指定一个存在的数据库,例如: --kb1-database=test1

32、ERROR: [055]: sys_control must be present in all online backups HINT: is something wrong with the clock or filesystem timestamps?

原因:可能是sys_control文件自上次备份后一直未被更新导致的,正常情况下,该文件应被频繁地或周期性地修改,对于集群的场景,可能是主节点异常导致备节点上sys_control停止更新
解决:确认sys_control文件的最后修改时间,并调查sys_control停止更新的原因,如问题发生在备节点上,请检查集群状态是否正常,在集群状态正常后再次进行备份

33、FATAL: hot standby is not possible because max_connections = 100 is a lower setting than on the master server (its value was 200)

原因:生成备份集后某时刻又将max_connections等参数改大;sys_rman restore将其还原成原小值,在hot_standby=on的场景下执行sys_ctl start启动重放WAL日志时禁止将max_connections等参数重放成一个更大的值,导致数据库无法启动,sys_log目录下日志显示以上报错
解决:启动数据库前,手动把max_connections等报错的参数改大后再启动数据库;此外,修改配置后即时备份可预防此类报错

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网络安全 | XCTF】simple_transfer

考察kali基本工具的使用 方法一 打开文件如图&#xff1a; 存在较多协议&#xff0c;将协议分级&#xff1a; 可以看到DLEP协议占比最大&#xff1a; 将其作为过滤器应用&#xff1a; 搜索DLEP&#xff1a; 并没有有利信息&#xff0c;但观察到多数数据包损坏&#xff1a; 执行…

Transformer(seq2seq、self-attention)学习笔记

在self-attention 基础上记录一篇Transformer学习笔记 Transformer的网络结构EncoderDecoder 模型训练与评估 Transformer的网络结构 Transformer是一种seq2seq 模型。输入一个序列&#xff0c;经过encoder、decoder输出结果也是一个序列&#xff0c;输出序列的长度由模型决定…

【超图】SuperMap iClient3D for WebGL/WebGPU —— 坐标系位置 —— Cartesian2

作者&#xff1a;taco 说到关于地理必然逃不开位置的关系。借用百度百科的内容来说地理学&#xff08;geography&#xff09;&#xff0c;是研究地球表层空间地理要素或者地理综合体空间分布规律、时间演变过程和区域特征的一门学科。所以位置&坐标系必然逃不掉了。那么在S…

自检服务器,无需服务器、不用编程。

自检服务器&#xff0c;无需服务器、不用编程。 大家好&#xff0c;我是JavaPub. 这几年自媒体原来热&#xff0c;很多人都知道了个人 IP 的重要性。连一个搞中医的朋友都要要做一个自己的网站&#xff0c;而且不想学编程、还不想花 RMB 租云服务。 老读者都知道&#xff0c…

SpringCloud(H版alibaba)框架开发教程之Ribbon负载均衡和Openfeign远程调用——附源码(3)

源码地址在这套教程的第一个里 我们打开order80的主类上的注释 Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具&#xff0c;它基于Netflix Ribbon实现。通过Spring Cloud的封装&#xff0c;可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的…

[RoarCTF 2019]Easy Java(java web)

题目 页面如下 页面长得像sql注入 点击help看一下 这里需要了解java web目录结构 WEB INF:Java的web应用安全目录&#xff1b; 此外如果想在页面访问WEB-INF应用里面的文件&#xff0c;必须要通过web.xml进行相应的映射才能访问&#xff1b; WEB-INF是Java Web应用程序中的一…

Java EE 网络原理之HTTPS

文章目录 1. HTTPS 是什么&#xff1f;2. "加密" 是什么&#xff1f;3. HTTPS 的工作过程3.1 引入对称加密3.2 引入非对称加密3.3 中间人攻击3.4 引入证书 4. Tomecat4.1 tomcat 的作用 1. HTTPS 是什么&#xff1f; HTTPS也是⼀个应用层协议&#xff0c;是在 HTTP …

js实时监听input输入框值的变化

实习日记之通过调用common chemistry的api接口实现输入keyword查找cas号和mw。做了一个简单的html网页&#xff0c;用到了ajax技术。比较简单&#xff0c;适合刚入门的宝学习参考。代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head>&l…

【HBuilder + IDEA + XFtp + XShell】打包部署上线

简述 前后端分离&#xff1a;需要将前后端的程序包打包发送至应用Linux服务器上Linux服务器 &#xff08;1&#xff09;需要启用SSHD服务&#xff0c;该服务会监听22号端口&#xff08;一般是开启的&#xff09; &#xff08;2&#xff09;搭建&#xff1a;MYSQL、Nginx、jdk、…

《HelloGitHub》第 93 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Python、Java、Go、C/C、Swift...让你在短时间内…

[Angular] 笔记 18:Angular Router

Angular Router 视频 chatgpt&#xff1a; Angular 具有内置的大量工具、功能和库&#xff0c;功能强大且经过良好设计&#xff0c;如组件化架构、依赖注入、模块化系统、路由和HTTP客户端等。这些功能可以直接用于项目中&#xff0c;无需额外的设置或第三方库。这简化了开发流…

显示器与按键(LCD 1602 + button)

一、实验目的&#xff1a; &#xff08;1&#xff09;学习lcd 1602的编程与使用、 &#xff08;2&#xff09;机械式复位开关button软件消抖的方法。 二、实验内容&#xff1a; 1、必做&#xff1a;先显示开机画面&#xff0c;&#xff1a;在1602显示器上&#xff0c;分两行…

白话机器学习的数学-2-分类

1、设置问题 图片分类&#xff1a;只根据尺寸把它分类为 纵向图像和横向图像。 如果只用一条线将图中白色的点和黑色的点分开&#xff1a; 这次分类的目的就是找到这条线。 2、内积 找到一条线&#xff0c;这是否意味着我们要像学习回归时那样&#xff0c;求出一次函数的斜率…

关于 K8s 的一些基础概念整理

〇、前言 Kubernetes&#xff0c;将中间八个字母用数字 8 替换掉简称 k8s&#xff0c;是一个开源的容器集群管理系统&#xff0c;由谷歌开发并维护。它为跨主机的容器化应用提供资源调度、服务发现、高可用管理和弹性伸缩等功能。 下面简单列一下 k8s 的几个特性&#xff1a; 自…

clickhouse连接工具dbeaver

地址 地址&#xff1a; Download | DBeaver Community 安装 表引擎 表引擎之TinyLog 以列文件的形式保存在磁盘上&#xff0c;不支持索引&#xff0c;没有并发控制。一般保存少量数据的小表&#xff0c; 生产环境上作用有限&#xff0c;多用于平时练习测试用。 内存引擎&am…

k8s 架构

主要组件 k8s有如下的主要组件&#xff1a; Control plane(s) and worker node(s)OperatorsServicesPods of containersNamespaces and quotasNetwork and policiesStorage. 一个k8s集群是有一个或多个 cp&#xff08;控制平面&#xff09;节点和一组worker 节点组成的。这个…

GaussDB数据库中的同义词SYNONYM

目录 一、前言 二、GasussDB数据库中的Synonym 1、Synonym的概念 2、语法介绍 3、Synonym的用途 三、Synonym在GaussDB数据库中是如何使用的 1、表的同义词使用&#xff08;示例&#xff09; 2、视图的同义词使用&#xff08;示例&#xff09; 3、函数的同义词使用&am…

YOLO训练results.csv文件可视化(原模型与改进模型对比可视化)

一、单独一个文件可视化&#xff08;源码对应utils文件夹下的plots.py文件的plot_results类&#xff09; from pathlib import Path import matplotlib.pyplot as plt import pandas as pd def plot_results(fileruns/train/exp9/results.csv, dir):# Plot training results.c…

前后端分离nodejs+vue医院预约挂号系统6nrhh

医院预约挂号系统主要有管理员、用户和医生三个功能模块。以下将对这三个功能的作用进行详细的剖析。 运行软件:vscode 前端nodejsvueElementUi 语言 node.js 框架&#xff1a;Express/koa 前端:Vue.js 数据库&#xff1a;mysql 开发软件&#xff1a;VScode/webstorm/hbuiderx均…

YOLOv8改进 | 细节创新篇 | iAFF迭代注意力特征融合助力多目标细节涨点

一、本文介绍 本文给大家带来的改进机制是iAFF&#xff08;迭代注意力特征融合&#xff09;&#xff0c;其主要思想是通过改善特征融合过程来提高检测精度。传统的特征融合方法如加法或串联简单&#xff0c;未考虑到特定对象的融合适用性。iAFF通过引入多尺度通道注意力模块(我…