天天看点

gaussdb 物理备份恢复【gs_rman 备份】【03】

备份

gs_rman支持在线备份,它主要包含三种备份类型:全量备份、增量备份和备份WAL归档日志。在每一次备份后都应使用validate命令进行验证。

前提条件

已参照初始化配置完成备份目录初始化;在每个时间线上的增量备份和WAL归档日志备份之前必须至少完成了一次全量备份;gs_rman与gaussdb在同一台服务器上。

gaussdb 物理备份恢复【gs_rman 备份】【03】

参数说明

备份时特有的参数

参数名/缩写 描述
-b / --backup-mode mode "指定备份方式。 MODE的取值范围和默认值如下: 取值范围: Full:全量备份,备份整个数据库和WAL归档文件,缩写为F/f。 Incremental:增量备份,对在上一次验证过的备份之后的修改过的文件或页进行备份,缩写为I/i。 Archive:仅对归档文件进行备份,缩写为A/a。 默认值:如果没有指定,将持续还原到最新的备份时间。"
-s / --with-serverlog "备份指定的服务日志文件。 取值范围:如果指定了-S参数,则必须指定此参数。 默认值:无。"
-C / --smooth-checkpoint 在备份前执行smooth checkpoint。如果不指定此参数则备份前不执行smooth checkpoint操作。

-Z / --compress-data

-R / --compress-data-bzip

-L / --compress-data-lzma

"-Z指定使用zlib压缩库压缩备份文件。 -R指定使用bzip压缩库压缩备份文件。 -L指定使用lzma压缩库压缩备份文件。 如果不指定这3个参数的任意一个,则表示不对备份文件进行压缩。"
--keep-data-generations=N "保存指定代数(备份的数量)的全量备份数据。 N的取值范围和默认值如下: 取值范围:正整数,1~2147483647。 默认值:2147483647。"
--keep-data-day=DAY "保存指定天数的全量备份数据。 说明: 系统将自动删除两个条件(keep-data-generations和keep-data-days)都不符合的备份数据。 DAY的取值范围和默认值如下: 取值范围:正整数,1~2147483647。 默认值:2147483647。"
--keep-arclog-files=NUM "保存指定数量的WAL归档文件。 NUM的取值范围和默认值如下: 取值范围:正整数,1~2147483647。 默认值:2147483647。"
--keep-arclog-days=DAY "保存指定天数的WAL归档文件,默认不限制。 说明: 系统将自动删除两个条件(keep-arclog-files和keep-arclog-days)都不符合的备份数据。 DAY的取值范围和默认值如下: 取值范围:正整数,1~2147483647。 默认值:2147483647。"
--keep-srvlog-files=NUM "保存指定数量的日志文件。 NUM的取值范围和默认值如下: 取值范围:正整数,1~2147483647。 默认值:2147483647。"
--keep-srvlog-days=DAY "保存指定天数的日志文件。 说明: 系统将自动删除两个条件(keep-srvlog-files和keep-srvlog-days)都不符合的备份数据。 DAY的取值范围和默认值如下: 取值范围:正整数,1~2147483647。 默认值:2147483647。"

备份时公共参数

参数名/缩写 描述
-d / --dbname dbname "指定要连接的数据库名称,如postgres。 DBNAME的取值范围和默认值如下: 取值范围:GaussDB中存在的数据库名称。 默认值:与当前操作系统用户同名的数据库名称。"
-h / --host HOSTNAME "指定数据库服务所在的IP地址或者主机名。 HOSTNANME的取值范围和默认值如下: 取值范围: 127.0.0.1 localhost 默认值:localhost。"
-p / --port port "指定数据库服务的端口号。 PORT的取值范围和默认值如下: 取值范围:GaussDB的端口号。 默认值:5432。"
-U / --username username "指定连接到数据库的数据库用户名。 USERNAME的取值范围和默认值如下: 取值范围:GaussDB中存在的数据库用户名称。 默认值:与当前操作系统用户同名的数据库用户的名称。"
-d / --gaussdata path "指定数据库数据存放位置。 说明: gs_rman在root用户下使用sudo命令切换到某一用户运行时,需要增加此参数,以指定数据库数据存放位置。 PATH的取值范围和默认值如下: 取值范围:GaussDB的数据目录。 默认值:与GaussDB的环境变量GAUSSDATA的值相同。"
-A / --arclog-path path "指定数据库WAL归档日志文件存放位置。 PATH的取值范围和默认值如下: 取值范围:GaussDB的WAL归档日志目录。 默认值:可以通过环境变量ARCLOG_PATH 指定默认值,详细请参见初始化配置。"
-S / --srvlog-path path "指定数据库日志存放位置。 PATH的取值范围和默认值如下: 取值范围:GaussDB的运行日志目录。 默认值:$GAUSSDATA/pg_log。也可以通过环境变量SRVLOG_PATH指定默认值,详细请参见初始化配置。"
-b / --backup-path path "指定备份数据存放位置。 PATH的取值范围和默认值如下: 取值范围:GaussDB的数据目录。 默认值:可以通过环境变量BACKUP_PATH指定默认值,详细请参见初始化配置。"
--debug 显示命令的调试信息。
--verbose / -v 显示命令的执行信息。

1. 检查参数

检查WAL日志归档相关参数是否配置正确,否则无法对WAL归档日志进行备份,将导致备份变得没有意义;gs_rman的备份操作可以在单机上执行,也可以在双机环境的主机上执行。

参数名 取值要求 检查方法
archive_mode

单机:on

双机:on

以检查archive_mode参数为例,使用下面的命令检查:

cd /opt/gaussdb/data

cat postgresql.conf |grep archive_mode

wal_level

单机:archive

双机:hot_standby

hot_standby

单机:off

双机:on

2. 全量备份

说明:在进行增量备份和备份WAL之前应该至少进行一次全量备份,否则备份操作无法正常执行。

执行如下命令进行全量备份:

gs_rman backup -d postgres -p 5432 -B /home/gaussdba/rman_backup -b F
           

系统输出如下信息则表示备份成功,否则请根据提示信息排查错误:

gaussdba: database backup start 
NOTICE:  pg_stop_backup complete, all required WAL segments have been archived
           

3. 增量备份

说明:增量备份只备份上一次全量备份或增量备份之后修改的文件,包括新增的WAL归档日志。

执行如下命令进行增量备份:

gs_rman backup -d postgres -p 1258 -B /home/gaussdba/rman_backup -b I
           

系统输出如下信息则表示备份成功,否则请根据提示信息排查错误:

gaussdba: database backup start 
NOTICE:  pg_stop_backup complete, all required WAL segments have been archived
           

4. 备份WAL归档日志

执行如下命令进行WAL归档日志的备份:

gs_rman backup -d postgres -p 1258 -B /home/gaussdba/rman_backup -b a
           

系统输出如下信息则表示备份成功,否则请根据提示信息排查错误:

INFO: database backup start 
NOTICE:  pg_stop_backup complete, all required WAL segments have been archived
           

5. 对备份文件的正确性进行验证

gs_rman validate -B /home/gaussdba/rman_backup
           

系统输出类似如下信息表示验证成功,否则请根据提示信息排查错误:

gaussdba: validate: 2013-01-16 19:26:31 backup and archive log files by CRC
           

继续阅读