点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!
1)如果数据块的大小不为8KB,pgbackrest不能进行备份。 2)sys_rman没有该问题。
[kingbase@PG-1 bin]$ sys_rman
sys_rman 2.27 - General help
Usage:
sys_rman [options] [command]
Commands:
archive-get Get a WAL segment from the archive. #数据库恢复时使用
archive-push Push a WAL segment to the archive. #数据库WAL归档时使用
backup Backup a database cluster. #执行数据库备份
check Check the configuration.
expire Expire backups that exceed retention.#删除过期的备份
help Get help.
info Retrieve information about backups. #列举备份信息
restore Restore a database cluster.
stanza-create Create the required stanza data.
stanza-delete Delete a stanza.
stanza-upgrade Upgrade a stanza.
start Allow sys_rman processes to run.
stop Stop sys_rman processes from running.
version Get version.
Use 'sys_rman help [command]' for more information.
sys_rman help stanza-create
--backup-standby 默认:n,是否允许从standby节点发起备份; --config sys_rman 配置文件路径; --stanza 定义stanza; --cmd-ssh 客户端的ssh路径; --log-file-console 日志级别; --repo-path 存储备份和归档的路径; --kb-host 通过ssh操作的kingbase数据库主机; --kb-host-port 当kb-host设置时,需要设置该参数,ssh远程操作使用的端口; --kb-host-user ssh远程操作使用的操作系统用户,当kb-host设置时,需要设置该参数; --kb-path kingbase数据库的数据目录; --kb-port kingbase数据库的端口; --kb-user kingbase数据库的用户; --kb-pass kingbase用户的密码,base64的编码;
vim /data/kingbase_backup/sys_rman.conf
[kingbasetest]
kb1-path=/data/kingbase
kb1-user=system
kb1-port=54321
[global]
repo1-path=/data/kingbase_backup
repo1-retention-full-type=count
repo1-retention-full=7
compress-level=3
compress-type=gz
log-subprocess=y
process-max=4
log-level-console=info
log-level-file=info
log-level-stderr=info
log-timestamp=y
[global:archive-push]
compress-level=3
compress-type=gz
process-max=3
sys_rman
--config data/kingbase_backup/sys_rman.conf --stanza=kingbasetest stanza-create
archive_command='/opt/Kingbase/ES/V8/Server/bin/sys_rman
--config data/kingbase_backup/sys_rman.conf --stanza=kingbasetest archive-push %p'
sys_rman --config /data/kingbase_backup/sys_rman.conf -
-stanza=kingbasetest check
sys_rman --config /data/kingbase_backup/sys_rman.conf -
-stanza=kingbasetest --type=full --archive-copy backup
sys_rman help check
--backup-standby 默认:n,是否允许从standby节点发起备份; --cmd-ssh 客户端的ssh路径; --config sys_rman 配置文件路径; --stanza 定义stanza; --log-file-console 日志级别; --repo-host 通过ssh操作远程备库目录的主机; --repo-host-port 通过ssh操作时使用的端口; --repo-host-user 通过ssh操作时,使用的操作系统用户; --repo-path 存储备份和归档的路径; --kb-host 通过ssh操作的kingbase数据库主机; --kb-host-port 当kb-host设置时,需要设置该参数,ssh远程操作使用的端口; --kb-host-user ssh远程操作使用的操作系统用户,当kb-host设置时,需要设置该参数; --kb-path kingbase数据库的数据目录; --kb-port kingbase数据库的端口; --kb-user kingbase数据库的用户; --kb-pass kingbase用户的密码,base64的编码。
sys_rman help backup
--archive-copy 在备份过程中将恢复到一致性的WAL日志拷贝到备份中; --backup-standby 默认:n,是否允许从standby节点发起备份; --type 备份类型,full 全量备份;incr 增量备份;diff 差异备份。默认:incr; --cmd-ssh 客户端ssh的路径; --compress 备份是否压缩,默认:y; --compress-level 压缩级别; --compress-type 压缩类型,默认:gz; --config sys_rman的配置文件; --stanza 指定定义的stanza; --log-file-console 日志级别; --repo-path 指定备份目录; --kb-host 通过ssh操作的kingbase数据库主机; --kb-host-port 当kb-host设置时,需要设置该参数,ssh远程操作使用的端口; --kb-host-user ssh远程操作使用的操作系统用户,当kb-host设置时,需要设置该参数; --kb-path kingbase数据库的数据目录; --kb-port
--kb-user kingbase数据库的用户; --kb-pass kingbase用户的密码,base64的编码。
sys_rman --config /data/kingbase_backup/sys_rman.conf -
-stanza=kingbasetest --type=full --archive-copy backup
sys_rman help info
--set 查看指定备份集的信息; --cmd-ssh 客户端ssh路径; --config sys_rman的配置文件; --stanza 查看指定stanza的备份信息; --log-level-console 日志级别; --repo-host 通过ssh操作远程备库目录的主机; --repo-host-port 通过ssh操作时使用的端口; --repo-host-user 通过ssh操作时,使用的操作系统用户。
[kingbase@PG-1 ~]$ sys_rman --config /home/kingbase/testkingbase/sys_rman.conf info
stanza: test
status: ok
cipher: none
db (current)
wal archive min/max (V008R006C005B0023-1): 0000001300000001000000AA/00000015000000020000001F
full backup: 20211230-131047F
timestamp start/stop: 2021-12-30 13:10:47 / 2021-12-30 13:11:13
wal start/stop: 0000001300000001000000B8 / 0000001300000001000000B8
database size: 1.9GB, backup size: 1.9GB
repository size: 632.9MB, repository backup size: 632.9MB
full backup: 20211230-165342F
timestamp start/stop: 2021-12-30 16:53:42 / 2021-12-30 16:54:13
wal start/stop: 0000001500000001000000BB / 0000001500000001000000BB
database size: 1.9GB, backup size: 1.9GB
repository size: 633.0MB, repository backup size: 633.0MB
[kingbase@PG-1 ~]$ sys_rman --config /home/kingbase/testkingbase/sys_rman.conf --stanza=test info
stanza: test
status: ok
cipher: none
db (current)
wal archive min/max (V008R006C005B0023-1): 0000001300000001000000AA/00000015000000020000001F
full backup: 20211230-131047F
timestamp start/stop: 2021-12-30 13:10:47 / 2021-12-30 13:11:13
wal start/stop: 0000001300000001000000B8 / 0000001300000001000000B8
database size: 1.9GB, backup size: 1.9GB
repository size: 632.9MB, repository backup size: 632.9MB
full backup: 20211230-165342F
timestamp start/stop: 2021-12-30 16:53:42 / 2021-12-30 16:54:13
wal start/stop: 0000001500000001000000BB / 0000001500000001000000BB
database size: 1.9GB, backup size: 1.9GB
repository size: 633.0MB, repository backup size: 633.0MB
[kingbase@PG-1 ~]$ sys_rman --config /home/kingbase/testkingbase/sys_rman.conf --stanza=test --set='20211230-165342F' info
stanza: test
status: ok
cipher: none
db (current)
wal archive min/max (V008R006C005B0023-1): 0000001300000001000000AA/00000015000000020000001F
full backup: 20211230-165342F
timestamp start/stop: 2021-12-30 16:53:42 / 2021-12-30 16:54:13
wal start/stop: 0000001500000001000000BB / 0000001500000001000000BB
database size: 1.9GB, backup size: 1.9GB
repository size: 633.0MB, repository backup size: 633.0MB
database list: esrep (16384), security (16169), system (24716), test (16168)
sys_rman help expire
--set 将指定的备份集过期,使用该参数数必须指定备份节点stanza; --cmd-ssh 客户端ssh路径; --config sys_rman的配置文件; --stanza 指定备份节点stanza; --log-level-console 日志级别; --repo-path 指定备份存储的路径; --kb-host 通过ssh操作的kingbase数据库主机; --kb-host-port 当kb-host设置时,需要设置该参数,ssh远程操作使用的端口; --kb-host-user ssh远程操作使用的操作系统用户,当kb-host设置时,需要设置该参数。
[kingbase@PG-1 test]$ sys_rman --config /home/kingbase/testkingbase/sys_rman.conf --stanza=test info
stanza: test
status: ok
cipher: none
db (current)
wal archive min/max (V008R006C005B0023-1): 0000001300000001000000B8/000000150000000200000025
full backup: 20211230-131047F
timestamp start/stop: 2021-12-30 13:10:47 / 2021-12-30 13:11:13
wal start/stop: 0000001300000001000000B8 / 0000001300000001000000B8
database size: 1.9GB, backup size: 1.9GB
repository size: 632.9MB, repository backup size: 632.9MB
full backup: 20211230-165342F
timestamp start/stop: 2021-12-30 16:53:42 / 2021-12-30 16:54:13
wal start/stop: 0000001500000001000000BB / 0000001500000001000000BB
database size: 1.9GB, backup size: 1.9GB
repository size: 633.0MB, repository backup size: 633.0MB
full backup: 20211230-210955F
timestamp start/stop: 2021-12-30 21:09:55 / 2021-12-30 21:13:14
wal start/stop: 000000150000000200000021 / 000000150000000200000021
database size: 2.6GB, backup size: 2.6GB
repository size: 903.3MB, repository backup size: 903.3MB
full backup: 20211230-211401F
timestamp start/stop: 2021-12-30 21:14:01 / 2021-12-30 21:14:35
wal start/stop: 000000150000000200000023 / 000000150000000200000023
database size: 2.6GB, backup size: 2.6GB
repository size: 903.3MB, repository backup size: 903.3MB
full backup: 20211230-211640F
timestamp start/stop: 2021-12-30 21:16:40 / 2021-12-30 21:17:13
wal start/stop: 000000150000000200000025 / 000000150000000200000025
database size: 2.6GB, backup size: 2.6GB
repository size: 903.3MB, repository backup size: 903.3MB
[kingbase@PG-1 test]$ sys_rman --config /home/kingbase/testkingbase/sys_rman.conf --stanza=test info
stanza: test
status: ok
cipher: none
db (current)
wal archive min/max (V008R006C005B0023-1): 0000001500000001000000BB/000000150000000200000027
full backup: 20211230-165342F
timestamp start/stop: 2021-12-30 16:53:42 / 2021-12-30 16:54:13
wal start/stop: 0000001500000001000000BB / 0000001500000001000000BB
database size: 1.9GB, backup size: 1.9GB
repository size: 633.0MB, repository backup size: 633.0MB
full backup: 20211230-210955F
timestamp start/stop: 2021-12-30 21:09:55 / 2021-12-30 21:13:14
wal start/stop: 000000150000000200000021 / 000000150000000200000021
database size: 2.6GB, backup size: 2.6GB
repository size: 903.3MB, repository backup size: 903.3MB
full backup: 20211230-211401F
timestamp start/stop: 2021-12-30 21:14:01 / 2021-12-30 21:14:35
wal start/stop: 000000150000000200000023 / 000000150000000200000023
database size: 2.6GB, backup size: 2.6GB
repository size: 903.3MB, repository backup size: 903.3MB
full backup: 20211230-211640F
timestamp start/stop: 2021-12-30 21:16:40 / 2021-12-30 21:17:13
wal start/stop: 000000150000000200000025 / 000000150000000200000025
database size: 2.6GB, backup size: 2.6GB
repository size: 903.3MB, repository backup size: 903.3MB
full backup: 20211230-211828F
timestamp start/stop: 2021-12-30 21:18:28 / 2021-12-30 21:19:04
wal start/stop: 000000150000000200000027 / 000000150000000200000027
database size: 2.6GB, backup size: 2.6GB
repository size: 903.3MB, repository backup size: 903.3MB
[kingbase@PG-1 test]$ sys_rman --config /home/kingbase/testkingbase/sys_rman.conf --stanza=test --set='20211230-165342F' expire
2021-12-30 21:21:23.147 P00 INFO: expire command begin 2.27: --config=/home/kingbase/testkingbase/sys_rman.conf --log-level-console=info --log-level-file=info --log-path=/home/kingbase/kbdb_repo/log --log-subprocess --repo1-path=/home/kingbase/kbdb_repo --repo1-retention-full=5 --set=20211230-165342F --stanza=test
2021-12-30 21:21:23.149 P00 INFO: expire adhoc backup 20211230-165342F
2021-12-30 21:21:23.154 P00 INFO: remove expired backup 20211230-165342F
2021-12-30 21:21:23.301 P00 INFO: expire command end: completed successfully (159ms)
您在 /var/spool/mail/kingbase 中有新邮件
[kingbase@PG-1 test]$ sys_rman --config /home/kingbase/testkingbase/sys_rman.conf --stanza=test info
stanza: test
status: ok
cipher: none
db (current)
wal archive min/max (V008R006C005B0023-1): 0000001500000001000000BB/000000150000000200000027
full backup: 20211230-210955F
timestamp start/stop: 2021-12-30 21:09:55 / 2021-12-30 21:13:14
wal start/stop: 000000150000000200000021 / 000000150000000200000021
database size: 2.6GB, backup size: 2.6GB
repository size: 903.3MB, repository backup size: 903.3MB
full backup: 20211230-211401F
timestamp start/stop: 2021-12-30 21:14:01 / 2021-12-30 21:14:35
wal start/stop: 000000150000000200000023 / 000000150000000200000023
database size: 2.6GB, backup size: 2.6GB
repository size: 903.3MB, repository backup size: 903.3MB
full backup: 20211230-211640F
timestamp start/stop: 2021-12-30 21:16:40 / 2021-12-30 21:17:13
wal start/stop: 000000150000000200000025 / 000000150000000200000025
database size: 2.6GB, backup size: 2.6GB
repository size: 903.3MB, repository backup size: 903.3MB
full backup: 20211230-211828F
timestamp start/stop: 2021-12-30 21:18:28 / 2021-12-30 21:19:04
wal start/stop: 000000150000000200000027 / 000000150000000200000027
database size: 2.6GB, backup size: 2.6GB
repository size: 903.3MB, repository backup size: 903.3MB
sys_rman help restore
--link-all 恢复所有的符号连接,默认:n; --link-map 修改符号连接的目标; --set 指定使用哪个备份集进行恢复,需要同时使用--stanza指定备份节点; --tablespace-map 将表空间恢复到指定位置; --tablespace-map-all 将所有的表空间恢复到指定位置; --target 恢复目标;time,xid,lsn; --target-action 恢复完成后的执行的动作; --type 基于time,xid,lsn恢复; --cmd-ssh 客户端ssh路径; --config sys_rman的配置文件; --stanza 指定数据节点; --log-level-console 日志级别; --repo-host 通过ssh操作远程备库目录的主机; --repo-host-port 通过ssh操作时使用的端口; --repo-host-user 通过ssh操作时,使用的操作系统用户; --kb-path 指定恢复到哪个数据目录。
sys_rman --config /data/kingbase_backup/sys_rman.conf -
-stanza=test --type=time --recovery='2021-12-30 20:09:00' --kb1-path=/data/kingbase_standby restore
sys_rman help archive-push
--archive-async 默认:n,异步归档WAL日志; --archive-push-queue-max 归档队列的大小; --cmd-ssh 客户端ssh路径; --compress 归档是否压缩,默认:y; --compress-level 压缩级别; --compress-type 压缩算法,默认:gz; --stanza 指定数据节点; --log-level-console 日志级别; --repo-host 通过ssh操作远程备库目录的主机; --repo-host-port 通过ssh操作时使用的端口; --repo-host-user 通过ssh操作时,使用的操作系统用户; --repo-path 归档存储路径; --kb-path kingbase数据目。
archive_command='sys_rman --config
/home/kingbase/sys_rman.conf --stanza=test --archive-async=n archive-push %p'
sys_rman help archive-get
--archive-async 异步获取WAL日志,默认:n; --cmd-ssh 客户端ssh路径; --config sys_rman配置文件; --stanza 指定数据节点; --log-level-console 日志级别; --repo-host 通过ssh操作远程备库目录的主机; --repo-host-port 通过ssh操作时使用的端口; --repo-host-user 通过ssh操作时,使用的操作系统用户; --repo-path 归档存储路径; --kb-path 归档恢复到哪个kingbase数据目;
restore_command='sys_rman --config
/home/kingbase/sys_rman.conf --kb1-
path=/data/kingbase_standby --stanza=test --archive-async=n archive-get %f "%p"'
sys_rman help stanza-delete
--cmd-ssh 客户端的ssh路径; --config sys_rman 配置文件路径; --stanza 定义stanza; --log-file-console 日志级别; --repo-path 存储备份和归档的路径; --kb-host 通过ssh操作的kingbase数据库主机; --kb-host-port 当kb-host设置时,需要设置该参数,ssh远程操作使用的端口; --kb-host-user ssh远程操作使用的操作系统用户,当kb-host设置时,需要设置该参数; --kb-path kingbase数据库的数据目录; --kb-port kingbase数据库的端口; --kb-user kingbase数据库的用户; --kb-pass kingbase用户的密码,base64的编码。
sys_rman help stanza-upgrade
--backup-standby 默认:n,是否允许从standby节点发起备份; --cmd-ssh 客户端ssh的路径; --config sys_rman的配置文件; --stanza 指定定义的stanza; --log-file-console 日志级别; --repo-path 指定备份目录; --kb-host 通过ssh操作的kingbase数据库主机; --kb-host-port 当kb-host设置时,需要设置该参数,ssh远程操作使用的端口; --kb-host-user ssh远程操作使用的操作系统用户,当kb-host设置时,需要设置该参数; --kb-path kingbase数据库的数据目录; --kb-port kingbase数据库的端口; --kb-user kingbase数据库的用户; --kb-pass kingbase用户的密码,base64的编码。
[kingbase@PG-1 ~]$ sys_rman
--config /home/kingbase/testkingbase/sys_rman.conf
--stanza=test stop
2021-12-30 22:05:27.109 P00 INFO: stop command begin 2.27:
--config=/home/kingbase/testkingbase/sys_rman.conf
--log-level-console=info
--log-level-file=info
--log-path=/home/kingbase/kbdb_repo/log
--log-subprocess
--repo1-path=/home/kingbase/kbdb_repo
--stanza=test
2021-12-30 22:05:27.109 P00 INFO:
stop command end: completed successfully (5ms)
再次执行备份:
[kingbase@PG-1 ~]$ sys_rman
--config /home/kingbase/testkingbase/sys_rman.conf
--stanza=test --type full
--archive-copy backup
2021-12-30 22:05:41.546 P00 INFO: backup command begin 2.27:
--archive-copy --compress-level=3 --compress-type=gz
--config=/home/kingbase/testkingbase/sys_rman.conf
--log-level-console=info
--log-level-file=info
--log-path=/home/kingbase/kbdb_repo/log
--log-subprocess --kb1-path=/data/kingbase --kb1-port=54321 --kb1-user=system
--process-max=4
--repo1-path=/home/kingbase/kbdb_repo
--repo1-retention-full=5
--stanza=test --type=full
ERROR: [062]: stop file exists for stanza test
2021-12-30 22:05:41.546 P00 INFO: backup command end: aborted with exception [062]
[kingbase@PG-1 ~]$ sys_rman --config /home/kingbase/testkingbase/sys_rman.conf
--stanza=test start
2021-12-30 22:05:53.659 P00 INFO: start command begin 2.27:
--config=/home/kingbase/testkingbase/sys_rman.conf
--log-level-console=info
--log-level-file=info --log-path=/home/kingbase/kbdb_repo/log
--log-subprocess
--repo1-path=/home/kingbase/kbdb_repo
--stanza=test
2021-12-30 22:05:53.659 P00 INFO: start command end: completed successfully (7ms)

本文作者:魏 强(上海新炬中北团队)
本文来源:“IT那活儿”公众号





