初始化配置
在进行备份和恢复等操作之前,您需要使用init命令对备份数据存放目录进行初始化。在完成初始化之后,您可以选择在使用命令时指定参数或者在配置文件pg_rman.ini(下称配置文件)中对相关参数进行配置。
参数含义
初始化配置特有的参数,此表中列出的参数在命令行、环境变量和配置文件中都可以进行设置。
参数名/缩写 | 环境变量/配置文件参数 | 描述 |
---|---|---|
--arclog-path/-A PATH | ARCLOG_PATH | "指定WAL归档日志文件存储的位置。 指定数据库WAL归档日志文件存放位置。 PATH的取值范围和默认值如下: 取值范围:GaussDB的WAL日志归档目录。 默认值:可以通过环境变量ARCLOG_PATH指定默认值。" |
--srvlog-path/-S PATH | SRVLOG_PATH | "指定数据库日志存放位置。 PATH的取值范围和默认值如下: 取值范围:GaussDB的日志文件存放位置。 默认值:$GAUSSDATA/pg_log。也可以通过环境变量SRVLOG_PATH指定默认值。" |
--backup-mode/-b MODE | BACKUP_MODE | "指定要备份的目标数据。 MODE的取值范围和默认值如下: 取值范围: Full:全量备份,备份整个数据库和WAL归档文件,缩写为F/f。 Incremental:增量备份,对在上一次验证过的备份之后的修改过的文件或页进行备份,缩写为I/i。 Archive:仅对归档文件进行备份,缩写为A/a。 默认值:与GaussDB的环境变量BACKUP_MODE的值相同,默认为空。" |
--with-serverlog/-s | WITH_SERVERLOG | 指定备份服务器日志。如果指定了-S参数,则必须指定此参数。 |
--smooth-checkpoint/-C | SMOOTH_CHECKPOINT | 在备份前执行smooth checkpoint操作。如果不指定此参数则备份前不执行smooth checkpoint操作。 |
--keep-data-generations=N | KEEP_DATA_GENERATIONS | "保存指定代数(备份的数量)的全量备份数据。 N的取值范围和默认值如下: 取值范围:正整数,1~2147483647。 默认值:2147483647。" |
--keep-data-days=DAY | KEEP_DATA_DAYS | "保存指定天数的全量备份数据。 说明: 系统将自动删除两个条件(keep-data-generations和keep-data-days)都不符合的备份数据。 DAY的取值范围和默认值如下: 取值范围:正整数,1~2147483647。 默认值:2147483647。" |
--keep-srvlog-files=NUM | KEEP_SRVLOG_FILES | "保存指定数量的WAL归档文件。 NUM的取值范围和默认值如下: 取值范围:正整数,1~2147483647。 默认值:2147483647。" |
--keep-srvlog-days=DAY | KEEP_SRVLOG_DAYS | "保存指定时间的WAL归档文件,默认不限制。 说明: 系统将自动删除两个条件(keep-arclog-files和keep-arclog-days)都不符合的备份数据。 DAY的取值范围和默认值如下: 取值范围:正整数,1~2147483647。 默认值:2147483647。" |
--keep-arclog-files=NUM | KEEP_ARCLOG_FILES | "保存指定数量的日志文件。 NUM的取值范围和默认值如下: 取值范围:正整数,1~2147483647。 默认值:2147483647。" |
--keep-arclog-days=DAY | KEEP_ARCLOG_DAYS | "保存指定时间的日志文件。 说明: 系统将自动删除两个条件(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. 初始化备份文件的存放目录
假设-D/-A/-S/-B的参数如下所示。
D:GaussDB的数据目录为/opt/gaussdb/data
A:WAL归档目录为/home/gaussdba/wal_backup
S:服务器运行日志目录为/opt/gaussdb/data/pg_log
B:初始化的备份文件目录为/home/gaussdba/rman_backup
执行如下命令初始化备份文件的存放目录:
gs_rman init -D /opt/gaussdb/data -A /home/gaussdba/wal_backup -S /opt/gaussdb/data/pg_log/ -B /home/gaussdba/rman_backup
系统输出信息如下:
gaussdba: ARCLOG_PATH is set to '/home/gaussdba/wal_backup'
gaussdba: SRVLOG_PATH is set to '/opt/gaussdb/data/pg_log/'
2. 在配置文件中设置相关参数,以提高备份/恢复效率
cd /home/gaussdba/rman_backup
vi pg_rman.ini
例如,要针对全量备份设置保存期限为7天,对服务器日志保存5个,归档日志文件保存5个,则在pg_rman.ini文件的最后增加如下信息。
KEEP_DATA_DAYS=7
KEEP_DATA_GENERATIONS=0
KEEP_SRVLOG_FILES=5
KEEP_SRVLOG_DAYS=0
KEEP_ARCLOG_FILES=5
KEEP_ARCLOG_DAYS=0
backup_mode=full
说明: 只有同时超过KEEP_DATA_DAYS和KEEP_DATA_GENERATIONS且经过验证的全量备份才会被删除;当在命令行参数与配置文件有冲突时,以命令行参数为准,如在备份时如指定“-b archive”,则backup_mode不生效。
3. 为了维护方便,您也可以设置环境变量简化操作
例如,您可以设置BACKUP_PATH环境变量,则备份恢复操作时可以省略-B参数。
export BACKUP_PATH=/home/gaussdba/rman_backup
说明:也可以将以上命令写入gaussdba用户的启动脚本(~gaussdba/.bashrc)中。