备份
gs_rman支持在线备份,它主要包含三种备份类型:全量备份、增量备份和备份WAL归档日志。在每一次备份后都应使用validate命令进行验证。
前提条件
已参照初始化配置完成备份目录初始化;在每个时间线上的增量备份和WAL归档日志备份之前必须至少完成了一次全量备份;gs_rman与gaussdb在同一台服务器上。

参数说明
备份时特有的参数
参数名/缩写 | 描述 |
---|---|
-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