其他备份恢复方法
本文将介绍使用UnvDB的两个插件ud_rman和ud_probackup来更灵活快捷地进行数据备份和恢复的方法
ud_rman
概述
ud_rman类似于oracle的rman备份策略,实现了全量、增量、归档的层级的备份,可以很灵活的管理unvdb数据库的备份,ud_rman是一款优秀的备份恢复插件,使用简单,一个命令即可完成备份和恢复,并支持在线全备,增量备份,归档备份。支持备份压缩,通过gzip工具实现页内压缩,也可以自动备份维护,自动删除过期的WAL备份文件。支持备份验证,并支持基于PITR的配置文件生成器。
修改配置文件
[root@ecs-221b-0002 ]# vim unvdbsvr.conf
修改归档配置项
archive_mode=on
archive_command='DATE=`date +%Y%m%d`; DIR="/home/xxx/ud_rman_backup/walbackup/"; (test -d $DIR || mkdir -p $DIR) && cp %p $DIR/%f'
重启 unvdb 数据库
ud_rman的使用参数
[root@ecs-221b-0002 ]# ud_rman --help
ud_rman manage backup/recovery of UNVDB database.
Usage:
ud_rman OPTION init
ud_rman OPTION backup
ud_rman OPTION restore
ud_rman OPTION show [DATE]
ud_rman OPTION show detail [DATE]
ud_rman OPTION validate [DATE]
ud_rman OPTION delete DATE
ud_rman OPTION purge
Common Options:
-D, --uddata=PATH location of the database storage area
-A, --arclog-path=PATH location of archive WAL storage area
-S, --srvlog-path=PATH location of server log storage area
-B, --backup-path=PATH location of the backup storage area
-G, --udconf-path=PATH location of the configuration storage area
-c, --check show what would have been done
-v, --verbose show what detail messages
-P, --progress show progress of processed files
Backup options:
-b, --backup-mode=MODE full, incremental, or archive
-s, --with-serverlog also backup server log files
-Z, --compress-data compress data backup with zlib
-C, --smooth-checkpoint do smooth checkpoint before backup
-F, --full-backup-on-error switch to full backup mode
if ud_rman cannot find validate full backup
on current timeline
NOTE: this option is only used in --backup-mode=incremental or archive.
--keep-data-generations=NUM keep NUM generations of full data backup
--keep-data-days=NUM keep enough data backup to recover to N days ago
--keep-arclog-files=NUM keep NUM of archived WAL
--keep-arclog-days=DAY keep archived WAL modified in DAY days
--keep-srvlog-files=NUM keep NUM of serverlogs
--keep-srvlog-days=DAY keep serverlog modified in DAY days
--standby-host=HOSTNAME standby host when taking backup from standby
--standby-port=PORT standby port when taking backup from standby
Restore options:
--recovery-target-time time stamp up to which recovery will proceed
--recovery-target-xid transaction ID up to which recovery will proceed
--recovery-target-inclusive whether we stop just after the recovery target
--recovery-target-timeline recovering into a particular timeline
--recovery-target-action action the server should take once the recovery target is reached
--hard-copy copying archivelog not symbolic link
Catalog options:
-a, --show-all show deleted backup too
Delete options:
-f, --force forcibly delete backup older than given DATE
Connection options:
-d, --dbname=DBNAME database to connect
-h, --host=HOSTNAME database server host or socket directory
-p, --port=PORT database server port
-U, --username=USERNAME user name to connect as
-w, --no-password never prompt for password
-W, --password force password prompt
Generic options:
-q, --quiet don't show any INFO or DEBUG messages
--debug show DEBUG messages
--help show this help, then exit
--version output version information, then exit
Usage: |选项|功能| |—-|—-| |init|初始化备份目录| |backup|在线备份| |restore|恢复| |show|查看备份历史| |validate|验证备份| |delete|删除备份文件| |purge|从备份目录中删除已删除备份| Common Options: |选项|解释| |—-|—-| |-D, –uddata=PATH|数据库存储区域的路径位置| |-A, –arclog-path=PATH|存档存储区的路径位置| |-S, –srvlog-path=PATH|服务器日志存储区域的路径位置| |-c, –check|检查| |-v, –verbose|详细显示消息的详细信息| |-P, –progress|显示已处理文件的进度| Backup options: |选项|解释| |—-|—-| |-b, –backup-mode=full, incremental, or archive|备份模式=完全模式、增量模式或归档模式| |-s, –with-serverlog|使用serverlog,还可以备份服务器日志文件| |-Z, –compress-data|压缩数据使用zlib压缩数据备份| |-C, –smooth-checkpoint|在备份之前的平滑检查点| |-F, –full-backup-on-error|完全备份出错:切换到完全备份模式| |–keep-data-generations=NUM|保留完整数据备份的NUM代| |–keep-data-days=NUM|保留足够的数据备份以恢复到N天前| |–keep-arclog-files=NUM|保留归档文件的数量| |–keep-arclog-days=DAY|以天为单位修改存档的WAL| |–keep-srvlog-files=NUM|保留服务器日志数| |–keep-srvlog-days=DAY|在DAY中修改服务器日志| |–standby-host=HOSTNAME|从备用主机进行备份时备用主机的主机名| |–standby-port=PORT|从备用端口进行备份时的备用端口| Restore options: |选项|解释| |—-|—-| |–recovery-target-time, –uddata=PATH|恢复将继续的时间戳| |–recovery-target-xid|恢复事务ID目标| |–recovery-target-inclusive|恢复目标,包括是否在恢复后立即停止| |–recovery-target-timeline|恢复到特定时间线| |–hard-copy|硬拷贝复制| |-a, –show-all|显示全部也显示已删除的备份| |-f, –force|强制删除早于给定日期的备份|
Connection options: |选项|解释| |—-|—-| |-d, –dbname=DBNAME|要连接的数据库| |-h, –host=HOSTNAME|端口数据库服务器端口| |-U, –username=USERNAME|要连接的用户名| |–recovery-target-timeline|恢复到特定时间线| |-w, –no-password|无密码连接,从不提示输入密码| |-W, –password|密码连接,强制密码提示| Generic options: |选项|解释| |—-|—-| |-q, –quiet|不显示任何信息或调试消息| |–debug|调试显示调试消息| |–help|帮助显示此帮助,然后退出| |–version|版本输出版本信息,然后退出|
初始化备份目录
首先需要初始化一个backup catalog,目录将用于存放备份的文件,目录也会存放一些元数据,例如备份的配置文件,数据库的systemid,时间线文件历史
注意:在初始化的时候,要先确认环境变量是否设置正确
建立备份路径
[root@ecs-221b-0002 ]# mkdir /home/wangcj/ud_rman_backup/{fullbackup,walbackup,srvlog} -p
初始化备份路径
[root@ecs-221b-0002 ]# ud_rman -B /home/wangcj/ud_rman_backup/fullbackup -S /home/wangcj/ud_rman_backup/srvlog -A /home/wangcj/ud_rman_backup/walbackup -D /data/soft/unvdb-data-36 init
ud_rman的全量备份
开始备份:
[root@ecs-221b-0002 ]# ud_rman backup --backup-mode=full --with-serverlog -A /home/wangcj/ud_rman_backup/walbackup -B /home/wangcj/ud_rman_backup/fullbackup -D /home/wangcj/unvdb-data-36 -d unvdb -U unvdb -h 127.0.0.1 -p 56789
INFO: copying database files
INFO: copying archived WAL files
INFO: copying server log files
INFO: backup complete
INFO: Please execute 'ud_rman validate' to verify the files are correctly copied.
ud_rman 备份集查看:
[root@ecs-221b-0002 ]# ud_rman show -B /home/wangcj/ud_rman_backup/fullbackup
=====================================================================
StartTime EndTime Mode Size TLI Status
=====================================================================
2023-08-24 14:06:02 2023-08-24 14:06:04 FULL 52MB 1 DONE
2023-08-24 11:40:51 2023-08-24 11:40:53 FULL 52MB 1 OK
未校验备份集 Status 显示为 DONE,开始校验:
[root@ecs-221b-0002 ]# ud_rman validate -B /home/wangcj/ud_rman_backup/fullbackup
INFO: validate: "2023-08-24 14:06:02" backup, archive log files and server log files by CRC
INFO: backup "2023-08-24 14:06:02" is valid
[root@ecs-221b-0002 ]# ud_rman show -B /home/wangcj/ud_rman_backup/fullbackup
=====================================================================
StartTime EndTime Mode Size TLI Status
=====================================================================
2023-08-24 14:06:02 2023-08-24 14:06:04 FULL 52MB 1 OK
2023-08-24 11:40:51 2023-08-24 11:40:53 FULL 52MB 1 OK
ud_rman的增量备份
增量备份是基于文件系统的update time时间线,增量备份必须有个对应的全库备份
[root@ecs-221b-0002 ]# ud_rman backup --backup-mode=incremental --with-serverlog -A /home/wangcj/ud_rman_backup/walbackup -B /home/wangcj/ud_rman_backup/fullbackup -D /home/wangcj/unvdb-data-36 -d unvdb -U unvdb -h 127.0.0.1 -p 56789
INFO: copying database files
INFO: copying archived WAL files
INFO: copying server log files
INFO: backup complete
INFO: Please execute 'ud_rman validate' to verify the files are correctly copied.
备份集查看:
[root@ecs-221b-0002 ]# ud_rman show -B /home/wangcj/ud_rman_backup/fullbackup
=====================================================================
StartTime EndTime Mode Size TLI Status
=====================================================================
2023-08-24 14:45:28 2023-08-24 14:45:30 INCR 33MB 1 DONE
2023-08-24 14:06:02 2023-08-24 14:06:04 FULL 52MB 1 OK
2023-08-24 11:40:51 2023-08-24 11:40:53 FULL 52MB 1 OK
[root@ecs-221b-0002 ]# ud_rman validate -B /home/wangcj/ud_rman_backup/fullbackup
INFO: validate: "2023-08-24 14:45:28" backup, archive log files and server log files by CRC
INFO: backup "2023-08-24 14:45:28" is valid
校验:
[root@ecs-221b-0002 ]# ud_rman show -B /home/wangcj/ud_rman_backup/fullbackup
=====================================================================
StartTime EndTime Mode Size TLI Status
=====================================================================
2023-08-24 14:45:28 2023-08-24 14:45:30 INCR 33MB 1 OK
2023-08-24 14:06:02 2023-08-24 14:06:04 FULL 52MB 1 OK
2023-08-24 11:40:51 2023-08-24 11:40:53 FULL 52MB 1 OK
ud_rman 归档备份:
归档备份就是静态文件的拷贝
[root@ecs-221b-0002 ]# ud_rman backup --backup-mode=archive --progress --compress-data -A /home/wangcj/ud_rman_backup/walbackup -B /home/wangcj/ud_rman_backup/fullbackup -D /home/wangcj/unvdb-data-36 -d unvdb -U unvdb -h 127.0.0.1 -p 56789
INFO: copying archived WAL files
Processed 10 of 10 files, skipped 9
INFO: backup complete
INFO: Please execute 'ud_rman validate' to verify the files are correctly copied.
[root@ecs-221b-0002 ]# ud_rman validate -B /home/wangcj/ud_rman_backup/fullbackup
INFO: validate: "2023-08-24 15:00:45" archive log files by CRC
INFO: backup "2023-08-24 15:00:45" is valid
[root@ecs-221b-0002 ]# ud_rman show -B /home/wangcj/ud_rman_backup/fullbackup
=====================================================================
StartTime EndTime Mode Size TLI Status
=====================================================================
2023-08-24 15:00:45 2023-08-24 15:00:46 ARCH 16kB 1 OK
2023-08-24 14:45:28 2023-08-24 14:45:30 INCR 33MB 1 OK
2023-08-24 14:06:02 2023-08-24 14:06:04 FULL 52MB 1 OK
2023-08-24 11:40:51 2023-08-24 11:40:53 FULL 52MB 1 OK
删除备份集
强制删除比规定日期更旧的备份:
[root@ecs-221b-0002 ]# ud_rman delete -f '2023-08-24 12:00:00' -B /home/wangcj/ud_rman_backup/fullbackup
DETAIL: Any remaining incremental backups that are older than the oldest available full backup cannot be restored.
INFO: delete the backup with start time: "2023-08-24 11:40:51"
清除备份集:物理删除已从catalog删除的备份集,上面从备份集中删除的备份,备份集文件夹并没有一起删除。
[root@ecs-221b-0002 ]# ud_rman purge -B /home/wangcj/ud_rman_backup/fullbackup
INFO: DELETED backup "2023-08-24 11:40:51" is purged
查看是否删除:
ud_rman show -B /home/wangcj/ud_rman_backup/fullbackup
=====================================================================
StartTime EndTime Mode Size TLI Status
=====================================================================
2023-08-24 15:00:45 2023-08-24 15:00:46 ARCH 16kB 1 OK
2023-08-24 14:45:28 2023-08-24 14:45:30 INCR 33MB 1 OK
2023-08-24 14:06:02 2023-08-24 14:06:04 FULL 52MB 1 OK
指定备份删除:
[root@ecs-221b-0002 ]# ud_rman delete '2023-08-24 12:00:00' -B /home/wangcj/ud_rman_backup/fullbackup
[root@ecs-221b-0002 ]# ud_rman purge -B /home/wangcj/ud_rman_backup/fullbackup
数据恢复
全量备份的恢复
[root@ecs-221b-0002 ]# ud_rman restore -B /home/wangcj/ud_rman_backup/fullbackup -D /home/wangcj/unvdb-data-36
--recovery-target-time "2023-08-24 14:06:04"
如果不指定 –recovery-target-time,将用最新数据恢复,恢复出来的数据库,部分文件(start.sh,stop.sh等)需要修改路径
ud_probackup
概述
ud_probackup是一个用于管理UnvDB数据库备份和恢复的工具,是基于ud_rman扩展而来,它旨在执行UnvDB实例的定期备份,能够在数据库发生故障时恢复服务器。
ud_probackup --help
ud_probackup - utility to manage backup/recovery of unvdb database.
ud_probackup help [COMMAND]
ud_probackup version
ud_probackup init -B backup-path
ud_probackup set-config -B backup-path --instance=instance_name
[-D uddata-path]
[--external-dirs=external-directories-paths]
[--log-level-console=log-level-console]
[--log-level-file=log-level-file]
[--log-format-file=log-format-file]
[--log-filename=log-filename]
[--error-log-filename=error-log-filename]
[--log-directory=log-directory]
[--log-rotation-size=log-rotation-size]
[--log-rotation-age=log-rotation-age]
[--retention-redundancy=retention-redundancy]
[--retention-window=retention-window]
[--wal-depth=wal-depth]
[--compress-algorithm=compress-algorithm]
[--compress-level=compress-level]
[--archive-timeout=timeout]
[-d dbname] [-h host] [-p port] [-U username]
[--remote-proto] [--remote-host]
[--remote-port] [--remote-path] [--remote-user]
[--ssh-options]
[--restore-command=cmdline] [--archive-host=destination]
[--archive-port=port] [--archive-user=username]
[--help]
ud_probackup set-backup -B backup-path --instance=instance_name
-i backup-id [--ttl=interval] [--expire-time=timestamp]
[--note=text]
[--help]
ud_probackup show-config -B backup-path --instance=instance_name
[--format=format]
[--help]
ud_probackup backup -B backup-path -b backup-mode --instance=instance_name
[-D uddata-path] [-C]
[--stream [-S slot-name] [--temp-slot]]
[--backup-ud-log] [-j num-threads] [--progress]
[--no-validate] [--skip-block-validation]
[--external-dirs=external-directories-paths]
[--no-sync]
[--log-level-console=log-level-console]
[--log-level-file=log-level-file]
[--log-format-console=log-format-console]
[--log-format-file=log-format-file]
[--log-filename=log-filename]
[--error-log-filename=error-log-filename]
[--log-directory=log-directory]
[--log-rotation-size=log-rotation-size]
[--log-rotation-age=log-rotation-age] [--no-color]
[--delete-expired] [--delete-wal] [--merge-expired]
[--retention-redundancy=retention-redundancy]
[--retention-window=retention-window]
[--wal-depth=wal-depth]
[--compress]
[--compress-algorithm=compress-algorithm]
[--compress-level=compress-level]
[--archive-timeout=archive-timeout]
[-d dbname] [-h host] [-p port] [-U username]
[-w --no-password] [-W --password]
[--remote-proto] [--remote-host]
[--remote-port] [--remote-path] [--remote-user]
[--ssh-options]
[--ttl=interval] [--expire-time=timestamp] [--note=text]
[--help]
ud_probackup restore -B backup-path --instance=instance_name
[-D uddata-path] [-i backup-id] [-j num-threads]
[--recovery-target-time=time|--recovery-target-xid=xid
|--recovery-target-lsn=lsn [--recovery-target-inclusive=boolean]]
[--recovery-target-timeline=timeline]
[--recovery-target=immediate|latest]
[--recovery-target-name=target-name]
[--recovery-target-action=pause|promote|shutdown]
[--restore-command=cmdline]
[-R | --restore-as-replica] [--force]
[--primary-conninfo=primary_conninfo]
[-S | --primary-slot-name=slotname]
[--no-validate] [--skip-block-validation]
[-T OLDDIR=NEWDIR] [--progress]
[--external-mapping=OLDDIR=NEWDIR]
[--skip-external-dirs] [--no-sync]
[-X WALDIR | --waldir=WALDIR]
[-I | --incremental-mode=none|checksum|lsn]
[--db-include | --db-exclude]
[--remote-proto] [--remote-host]
[--remote-port] [--remote-path] [--remote-user]
[--ssh-options]
[--archive-host=hostname]
[--archive-port=port] [--archive-user=username]
[--help]
ud_probackup validate -B backup-path [--instance=instance_name]
[-i backup-id] [--progress] [-j num-threads]
[--recovery-target-time=time|--recovery-target-xid=xid
|--recovery-target-lsn=lsn [--recovery-target-inclusive=boolean]]
[--recovery-target-timeline=timeline]
[--recovery-target-name=target-name]
[--skip-block-validation]
[--help]
ud_probackup checkdb [-B backup-path] [--instance=instance_name]
[-D uddata-path] [--progress] [-j num-threads]
[--amcheck] [--skip-block-validation]
[--heapallindexed] [--checkunique]
[--help]
ud_probackup show -B backup-path
[--instance=instance_name [-i backup-id]]
[--format=format] [--archive]
[--no-color] [--help]
ud_probackup delete -B backup-path --instance=instance_name
[-j num-threads] [--progress]
[--retention-redundancy=retention-redundancy]
[--retention-window=retention-window]
[--wal-depth=wal-depth]
[-i backup-id | --delete-expired | --merge-expired | --status=backup_status]
[--delete-wal]
[--dry-run] [--no-validate] [--no-sync]
[--help]
ud_probackup merge -B backup-path --instance=instance_name
-i backup-id [--progress] [-j num-threads]
[--no-validate] [--no-sync]
[--help]
ud_probackup add-instance -B backup-path -D uddata-path
--instance=instance_name
[--external-dirs=external-directories-paths]
[--remote-proto] [--remote-host]
[--remote-port] [--remote-path] [--remote-user]
[--ssh-options]
[--help]
ud_probackup del-instance -B backup-path
--instance=instance_name
[--help]
ud_probackup archive-push -B backup-path --instance=instance_name
--wal-file-name=wal-file-name
[--wal-file-path=wal-file-path]
[-j num-threads] [--batch-size=batch_size]
[--archive-timeout=timeout]
[--no-ready-rename] [--no-sync]
[--overwrite] [--compress]
[--compress-algorithm=compress-algorithm]
[--compress-level=compress-level]
[--remote-proto] [--remote-host]
[--remote-port] [--remote-path] [--remote-user]
[--ssh-options]
[--help]
ud_probackup archive-get -B backup-path --instance=instance_name
--wal-file-path=wal-file-path
--wal-file-name=wal-file-name
[-j num-threads] [--batch-size=batch_size]
[--no-validate-wal]
[--remote-proto] [--remote-host]
[--remote-port] [--remote-path] [--remote-user]
[--ssh-options]
[--help]
ud_probackup catchup -b catchup-mode
--source-uddata=path_to_uddata_on_remote_server
--destination-uddata=path_to_local_dir
[--stream [-S slot-name] [--temp-slot | --perm-slot]]
[-j num-threads]
[-T OLDDIR=NEWDIR]
[--exclude-path=path_prefix]
[-d dbname] [-h host] [-p port] [-U username]
[-w --no-password] [-W --password]
[--remote-proto] [--remote-host]
[--remote-port] [--remote-path] [--remote-user]
[--ssh-options]
[--dry-run]
[--help]
修改配置文件
vim unvdbsvr.conf
修改归档配置项: 如果要在primary上配置存档,则存档模式必须设置为“on”或“always”。要在standby下执行存档,请将此参数设置为“always” 设置archive_命令参数,如下所示:
archive_mode=on
archive_command='ud_probackup archive-push -B /home/wangcj/backup_dir --instance instance_name1 --wal-file-path=%p --wal-file-name=%f'
重启 unvdb 数据库
初始化备份
建立备份路径
mkdir /home/wangcj/backup_dir
初始化备份路径
所谓初始化:就是创建一个备份目录;用于存放备份文件和归档日志文件 初始化备份目录,请运行以下命令:
ud_probackup init -B backup_dir
-- 示例
[root@ecs-221b-0002 unvdb-data-36]# ud_probackup init -B /home/wangcj/backup_dir
INFO: Backup catalog '/home/wangcj/backup_dir' successfully initialized
ud_probackup创建备份目录,其中包含以下子目录:
wal/ -wal文件目录。
backups/ -备份文件的目录。
备份目录初始化了;我们可以添加备份实例
增加备份实例,关联备份数据路径
ud_probackup可以在一个备份目录中存储多个数据库集群的备份。要设置所需的子目录,必须将备份实例添加到要备份的每个数据库群集的备份目录中。
要添加新的备份实例,请运行以下命令:
ud_probackup add-instance -B backup_dir -D data_dir --instance instance_name [remote_options]
-- 本地添加备份instance 示例
[root@ecs-221b-0002 unvdb-data-36]# ud_probackup add-instance -B /home/wangcj/backup_dir -D /home/wangcj/unvdb-data-36 --instance instance_name1
INFO: Instance 'instance_name1' successfully initialized
data_dir是要备份的群集的数据目录。要设置和使用ud_probackup,需要对此目录的写访问权限。
instance_name是将存储此群集的WAL和备份文件的子目录的名称。
remote_options是可选参数,仅当data_dir位于远程系统上时,才需要指定这些参数。 默认超时 300 秒,有可能会超出,可能需要配置
[root@ecs-221b-0002 unvdb-data-36]# ud_probackup set-config -B /home/wangcj/backup_dir --instance=instance_name1 --archive-timeout=9000
备份和恢复操作
全量备份
[root@ecs-221b-0002 unvdb-data-36]# ud_probackup backup -B /home/wangcj/backup_dir --instance instance_name1 -b FULL
INFO: Backup start, ud_probackup version: 22.5.12, instance: instance_name1, backup ID: RZXJVZ, backup mode: FULL, wal mode: ARCHIVE, remote: false, compress-algorithm: none, compress-level: 1
INFO: wait for ud_start_backup()
INFO: ud_probackup archive-push WAL file: 00000001000000000000000D, threads: 1/1, batch: 1/1, compression: none
......
INFO: Backup RZXJVZ data files are valid
INFO: Backup RZXJVZ resident size: 30MB
INFO: Backup RZXJVZ completed
查看备份:
[root@ecs-221b-0002 unvdb-data-36]# ud_probackup show -B /home/wangcj/backup_dir
BACKUP INSTANCE 'instance_name1'
=======================================================================================================================================
Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status
=======================================================================================================================================
instance_name1 12 RZXJVZ 2023-08-25 12:45:37+08 FULL ARCHIVE 1/0 13s 30MB 16MB 1.00 0/E000028 0/F0000B8 OK
校验:
[root@ecs-221b-0002 unvdb-data-36]# ud_probackup validate backup -B /home/wangcj/backup_dir --instance instance_name1 -b FULL
INFO: Validate backups of the instance 'instance_name1'
INFO: Validating backup RZXJVZ
INFO: Backup RZXJVZ data files are valid
INFO: Backup RZXJVZ WAL segments are valid
增量备份
[root@ecs-221b-0002 unvdb-data-36]# ud_probackup backup -B /home/wangcj/backup_dir --instance instance_name1 -b page|delta|ptrack
INFO: wait for ud_start_backup()
INFO: Parent backup: RZXJVZ
INFO: ud_probackup archive-push WAL file: 000000010000000000000012, threads: 1/1, batch: 1/1, compression: none
INFO: ud_probackup archive-push completed successfully, pushed: 1, skipped: 0, time elapsed: 134ms
......
INFO: Backup RZXRPF data files are valid
INFO: Backup RZXRPF resident size: 7746kB
INFO: Backup RZXRPF completed
查看:
[root@ecs-221b-0002 unvdb-data-36]# ud_probackup show -B /home/wangcj/backup_dir
BACKUP INSTANCE 'instance_name1'
===========================================================================================================================================
Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status
===========================================================================================================================================
instance_name1 12 RZXRPF 2023-08-25 15:34:30+08 PAGE ARCHIVE 1/1 7s 7746kB 16MB 1.00 0/12000028 0/130000F0 OK
instance_name1 12 RZXJVZ 2023-08-25 12:45:37+08 FULL ARCHIVE 1/0 13s 30MB 16MB 1.00 0/E000028 0/F0000B8 OK
选项解释:
FULL — 创建一个完整备份,其中包含要恢复的集群的所有数据文件。
DELTA — 读取数据目录中的所有数据文件,并为自上次备份以来已更改的页面创建增量备份。
PAGE — 根据自上次完整或增量备份以来生成的 WAL 文件创建增量备份。仅从数据文件中读取更改的块。
PTRACK — 动态创建增量备份跟踪页面更改。
恢复
全量恢复
先关闭源数据库并备份原先的数据目录
[root@ecs-221b-0002 unvdb-data-36]# ud_ctl stop
waiting for server to shut down.... done
server stopped
[root@ecs-221b-0002 unvdb-data-36]# mv /home/wangcj/unvdb-data-36/ /home/wangcj/data_bak/
恢复:
[root@ecs-221b-0002 unvdb-data-36]# ud_probackup restore -B /home/wangcj/backup_dir --instance instance_name1 -D /home/wangcj/unvdb-data-36-restore
INFO: Validating parents for backup RZXRPF
INFO: Validating backup RZXJVZ
INFO: Backup RZXJVZ data files are valid
......
INFO: Restore incremental ratio (less is better): 100% (38MB/38MB)
INFO: Syncing restored files to disk
INFO: Restored backup files are synced, time elapsed: 7s
INFO: Restore of backup RZXRPF completed.
部分恢复
指定要恢复的数据库
ud_probackup restore -B backup_dir --instance instance_name --db-include=database_name #--db-include选项可以指定多次
要从恢复中排除一个或多个数据库,可以使用–db-exclude
ud_probackup restore -B backup_dir--instance instance_name--db-exclude=database_name #该--db-exclude选项可以指定多次
时间点 (PITR) 恢复
如果您在进行备份之前启用 了连续 WAL 归档,则可以使用 restore命令 的恢复目标选项将集群恢复到任意时间点(恢复目标)的状态。
要在准确时间恢复集群状态,可以使用–recovery-target-time
ud_probackup restore -B backup_dir --instance instance_name --recovery-target-time="2023-08-25 14:18:11+03"
要将集群状态恢复到特定的事务ID,可以使用以下–recovery-target-xid
ud_probackup restore -B backup_dir--instance instance_name --recovery-target-xid=687
要将集群状态恢复到特定 LSN,请使用 –recovery-target-lsn以下选项:
ud_probackup restore -B backup_dir--instance instance_name --recovery-target-lsn=16/B374D848
恢复出来的数据库,部分文件(start.sh,stop.sh 等)需要修改路径