恢复命令
功能
restore命令用于从磁盘、NBU恢复集群或表数据。
命令格式
python GaussRoach.py -t restore --agent-port <agent-port> --backup-key <backup-key> --master-port <master-port> --media-type <media-type> --media-destination <media-destination-path> --metadata-destination <metadata-path> [--buffer-size <buffer-size>] [--buffer-block-size <block-size>] [--clean] [--continue] [--contrib-config <configuration-file>] [--cpu-relinquish-size <cpu-relinquish-size-value>] [--cpu-relinquish-time <cpu-relinquish-time-value>] [--dbname <database-name>] [--enable-logging <true/false>] [--failure-retry-count <count>] [--getdata-waittime-afterthreshold <wait-time>] [--logging] [--logging-level <logging-level>] [--logging-path <logging-path>] [--logical] [--log-filecount <maximum-log-file-count>] [--log-filesize <maximum-log-file-size>] [--max-memory-usage <maximum-number-of-bytes>] [--metadata-file-wait-time <wait time>] [--parallel-process <process-count>] [--pre-disk-space] [--resource-retry-count <count>] [--master-ip <xx.xx.xx.xx>] [--restore-buffer-threshold <buffer-percentage>] [--restore-new-cluster [--restore-configs]] [--restore-target-time <YYYY-MM-DD hh:mm:ss>] [--table-list <file-name>] [--retry-wait-time <time>] [--tablename <table-name>] [--username <user-name>] [--validation-type <validation-type>] [--verbose]参数说明
恢复命令行参数列表
完整选项
缩写选项
数据类型
说明
取值范围
缺省值
应用实例
-t
不涉及
字符串
Roach接口支持多种功能。恢复期间指定该参数为restore,表示调用恢复功能。
- -t backup
- -t stop
- -t validate
- -t delete
- -t restore
- -t show
- -t generate
- -t genstack
- -t getobject
- -t start
- -t clean
- -t config
- -t version
- -t help
不涉及
-t restore
--agent-port
不涉及
整数
Roach非主代理所在节点运行的端口。
说明:进行表级备份时使用该选项。
1024–65535
不涉及
--agent-port 6812
--backup-key
不涉及
字符串
执行恢复操作使用的backup key。
不涉及
不涉及
--backup-key 20150315-16103
--master-port
不涉及
整数
Roach主代理进程的执行端口。
1024–65535
6812
--master-port 8808
--media-type
不涉及
字符串
介质类型。
- NBU
- Disk(磁盘)
- Disk
- NBU
NBU
对于磁盘:--media-type Disk
对于NBU:--media-type NBU
--media- destination
不涉及
字符串
指定介质的目的路径。
- NBU/OBS:
样例策略
- Disk(磁盘):
绝对路径
- Disk
- NBU
- OBS
不涉及
对于NBU/OBS:--media-destination Samplepolicy
对于磁盘:--media-destination /home/cam/backu
--metadata-destination
不涉及
字符串
元数据文件位置。
不涉及
不涉及
--metadata-destination /home/username
--buffer-block-size
不涉及
整数
单个缓冲块大小。
8192–8388608(字节)
2097152(字节)
--buffer-block-size 9058
--buffer-size
不涉及
整数
缓存大小。
256–16384 (MB)
256( MB)
--buffer-size 10000
--clean
不涉及
布尔型
恢复前是否清除数据。
如果命令中指定了该参数,则参数值为true。否则值为false。适用于与集群、单表、 多表的恢复命令一起使用。
不涉及
False
--clean
--continue
不涉及
布尔型
大量数据恢复失败后仍继续恢复操作。
如果命令中指定了该参数,则参数值为true。否则值为false。
说明:
- 该参数仅用来进行表恢复操作。
- 如果Roach工具在准备进入备份CSV文件时遇到错误(例如,该文件不存在,文件具有无效的权限,或者路径具有无效的权限),工具会忽略这些错误,继续恢复操作。
不涉及
False
--continue
--contrib-config
NA
字符串
HDFS Hook功能的配置文件。该文件路径应为${GAUSSHOME}/bin。
说明:
- 可指定HDFS Hook功能的配置文件。该文件包含调用HDFS备份API所需的选项。
- 使用自定义库时,确保该参数值为新库(SO文件)的路径。
不涉及
不涉及
--contrib-config roach_contrib.conf
--cpu-relinquish-size
不涉及
整数
处理释放大小后CPU的释放大小值。
1-10000 GB
不涉及
--cpu-relinquish-size 10 GB
--cpu-relinquish-time
不涉及
整数
CPU的释放时间。
说明:将CPU释放时间设置为60秒或60秒以上以减小CPU使用率。
0到3600秒
不涉及
--cpu-relinquish-time 1000
--dbname
-d
字符串
数据库名。
说明:如果未指定数据库名称,默认使用postgres为数据库名称。
不涉及
postgres
--dbname DBNew01
--enable-logging
不涉及
布尔型
启用/禁用登录到日志文件功能。
建议使用此参数而不是--logging。
- True
- False
False
--enable-logging True
--failure-retry-count
不涉及
整数
配置Roach工具失败后重试次数。如果设为n,Roach会进行n-1次重试。
0–256
32
--failure-retry-count 3
--getdata-waittime-afterthreshold
不涉及
整数
达到缓冲极限后的等待时间,单位为微秒。
说明:此参数只用于从NBU恢复表数据的场景。
0–1800000000(微秒)
0
--getdata-waittime-afterthreshold 2000
--logging
不涉及
布尔型
启用或禁用日志文件记录功能。
如果命令中指定了该参数,则参数值为true。否则值为false。
此参数将来会退化,建议使用--enable-logging。
不涉及
False
--logging
--logging-level
不涉及
字符串
日志级别。
- FATAL(致命):导致系统停止工作的、无法恢复的故障。该级别为最严重级别。
- ERROR(错误):重大错误。
- WARNING(警告):异常情况。系统在该情况下可能会继续处理任务。
- INFO(提示):日志记录过程中的提示性日志。
- DEBUG(调试):用于调试的详细信息。
- DEBUG2(调试2):最详细的日志信息,通常会过滤不显示。该级别严重程度最轻。
- FATAL
- ERROR
- WARNING
- INFO
- DEBUG
- DEBUG2
INFO
--logging-level info
--logging-path
不涉及
字符串
日志在磁盘中的存放路径。
不涉及
$GAUSSLOG/roach/controller
--logging-path $GAUSSLOG/roach/controller
--logical
不涉及
不涉及
多表逻辑备份或恢复时使用,必须与--table-list一起使用。携带该参数则表示多表逻辑备份或恢复,不携带则表示多表物理备份或恢复。
不涉及
不涉及
--logical
--log-filecount
不涉及
整数
日志文件最大个数。
5~1024
10
--log-filecount 5
--log-filesize
不涉及
整数
最大日志文件的大小。
5~20 MB
5(MB)
--log-filesize 5
--max-memory-usage
不涉及
无符号整数
Roach可用的最大字节数。
默认值0表示无指定配额,即Roach可使用任意内存。
- 0
- 2–256(GB)
2–256
--max-memory-usage 2
--metadata-file-wait-time
不涉及
整数
读取元数据文件的等待时长。
60–3600 (秒)
60
(秒)
--metadata-file-wait-time 100
--parallel-process
不涉及
整数
应使用的进程个数。
说明:表级备份和恢复不支持并行处理。
1–32
1
--parallel-process 10
--pre-disk-space
不涉及
布尔型
是否有足够的磁盘空间完成即将进行的操作。
如果命令中指定了该参数,则参数值为true。否则值为false。
不涉及
False
--pre-disk-space
--resource-retry-count
NA
整数
Roach工具在资源分配失败后的重试次数。如果设为n,Roach会进行n-1次重试。
说明:该参数可用于Roach工具任何操作中系统资源分配失败时进行的任何操作。系统资源包括堆内存、线程、数据库API。对其他失败操作的重试由--failure-retry-count参数控制。
0–256
0
--resource-retry-count 3
--master-ip
不涉及
IP地址
输入当前节点所在集群的IP地址,即当前登录节点在集群配置文件中指定的IP地址。
x.x.x.x
不涉及
--master-ip
x.x.x.x
--restore-buffer-threshold
不涉及
整数
恢复操作前的可用缓存百分比。
1–100(%)
100
--restore-buffer-threshold 10
--restore-configs
不涉及
字符串
将旧集群的默认配置项恢复到目的集群。将备份恢复到新集群时可使用该参数。该单数仅能与--restore-new-cluster一起使用。
-
-
--restore-new-cluster --restore-configs
--restore-new-cluster
不涉及
布尔型
将集群恢复到另一主机上。该参数仅在media type为Disk和OBS时有效。
如果命令中指定了该参数,则参数值为true。否则值为false。
说明:在使用--restore-new-cluster时,restore操作后的start命令还必须包含--restore-new-cluster -X选项,如下所示:GaussRoach.py -t start --restore-new-cluster-X <xml path of the new cluster>
不涉及
不涉及
--restore-new-cluster
--restore-target-time
不涉及
日期
指定目标日期/时间格式为YYYY-MM-DD hh:mm:ss。
有效日期和时间。
不涉及
--restore-target-time 2018-03-31 08:00:00
--retry-wait-time
不涉及
整数
配置Roach工具在失败后重试时需要等待的时间。
说明:仅适用集群级备份和恢复至NBU或从NBU备份和恢复的场景。
1–3600(秒)
10(秒)
--retry-wait-time 1200
--table-list
不涉及
字符串
进行逻辑备份的表名称汇总文件。
不涉及
不涉及
--table-list
/home/roack/bklist.txt
--tablename
不涉及
字符串
进行逻辑备份的表名称。
说明:用户一次仅可以指定一个表进行备份。
不涉及
不涉及
--tablename Students
--username
-U
字符串
集群安装用户名
不涉及
不涉及
--username cluster_user
--validation-type
NA
字符串
验证是基于SHA-256还是文件大小。
- Full(全量)
- Partial(部分)
- Full
- Partial
Full
--validation-type Full
--verbose
不涉及
布尔型
是否启用verbose选项来显示详细信息。
如果命令中指定了该参数,则参数值为true。否则值为false。
不涉及
False
--verbose
使用指南
对于集群级恢复,必须提供介质类型、目标介质、备份秘钥和主代理端口。如果用户没有指定这些参数,Roach工具会报错。
对于表级恢复,必须提供介质类型、目标介质、表名、备份秘钥、代理端口和主代理端口。如果用户没有指定这些参数,Roach工具会报错。
命令示例
- 从NBU恢复集群
python GaussRoach.py -t restore --clean --master-port 6000 --media-destination samplepolicy --media-type NBU --backup-key 20160121_190923 --metadata-destination /home/userA/metadata- 从磁盘恢复集群
python GaussRoach.py -t restore --clean --master-port 6000 --media-destination /home/userA/media --media-type Disk --backup-key 20160121_190548 --metadata-destination /home/userA/metadata- 从NBU恢复单表
python GaussRoach.py -t restore --master-port 6000 --media-destination samplepolicy --media-type NBU --agent-port 7000 --dbname postgres --tablename tbl_restore --backup-key 20160126_165029 --metadata-destination /home/userA/metadata- 从磁盘恢复单表
python GaussRoach.py -t restore --master-port 6000 --media-destination /home/userA/backup --media-type Disk --agent-port 7000 --dbname postgres --tablename tbl_backup --backup-key 20160126_164639 --metadata-destination /home/userA/metadata- 从NBU恢复多表
python GaussRoach.py -t restore --master-port 6000 --media-destination samplepolicy --media-type NBU --agent-port 7000 --logical --table-list /home/roach/bklist.txt --backup-key 20180605_190322 --dbname postgres --metadata-destination /home/userA/metadata- 从磁盘恢复多表
python GaussRoach.py -t restore --master-port 6000 --media-destination /home/userA/media --media-type DISK --agent-port 7000 --logical --table-list /home/roach/bklist.txt --backup-key 20180605_185302 --dbname postgres --metadata-destination /home/userA/metadata
- 增量恢复集群
python GaussRoach.py -t restore --clean --master-port 6000 --media-destination /home/userA/media --media-type DISK --backup-key 20170630_220442 --metadata-destination /home/userA/metadata- 将集群恢复到新集群
python GaussRoach.py -t restore --clean --master-port 6000 --media-destination /home/userA/media --media-type Disk --backup-key 20160621_190548 --restore-new-cluster --restore-configs --metadata-destination /home/userA/metadata说明:
将集群恢复到新集群的前提条件和注意事项:
- 新集群与备份集群的拓扑相似。
- 新集群与备份集群的平台、操作系统相似。
- 确保新集群节点ID与备份文件所在原节点ID相同。
- 确保运行Roach的主代理ID与备份集群的Roach主代理ID相同。
- 在目标集群所有CN和DN的postgresql.conf文件中启用archive_mode和archive_command。
- 如果备份集群中存在表空间文件夹,必须在新集群中新建表空间文件夹,且确保:
- 新建表空间文件夹的路径与备份集群中的表空间文件夹路径匹配。
- 用户有权限访问这些文件夹。
- 用户可对将数据备份到磁盘集群执行恢复操作。
- 对数据备份到磁盘的集群执行此操作时,必须将备份内容(包括backup.in文件)从源集群复制到目标集群。
- 源集群的节点必须1对1映射到目标集群的节点,并且备份内容必须复制到其各自的节点。
- 在恢复集群之前用户需要执行文件清理操作,建议用户在执行恢复命令时增加--clean参数来完成该操作。这样系统会先检测是否满足恢复条件,只有满足时才会清理集群数据。
用户也可选择在恢复之前单独执行clean命令清理集群数据,但是在集群恢复时如果系统检测到不满足恢复条件,那么集群将无法回到正常状态。
- 建议用户在执行恢复命令时增加校验参数--validation-type,以便在恢复之前校验备份集有无损坏。
相关命令
备份命令
查看更多:华为GaussDB 200 GaussRoach.py 命令行参考「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论




