首页 > 数据库 > > 命令行参考-恢复命令
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 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 | 对于磁盘:--media-type Disk 对于NBU:--media-type NBU | ||||||
--media- destination | 不涉及 | 字符串 | 指定介质的目的路径。
|
| 不涉及 | 对于NBU/OBS:--media-destination Samplepolicy 对于磁盘:--media-destination /home/cam/backu | ||||||
--meta valign="top" width="13.131313131313133%" headers="mcps1.3.3.3.1.8.1.2 "> 不涉及 | 字符串 | 元数据文件位置。 | 不涉及 | 不涉及 | --meta>/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。 说明:
| 不涉及 | False | --continue | ||||||
--contrib-config | NA | 字符串 | HDFS Hook功能的配置文件。该文件路径应为${GAUSSHOME}/bin。 说明:
| 不涉及 | 不涉及 | --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。 |
| False | --enable-logging True | ||||||
--failure-retry-count | 不涉及 | 整数 | 配置Roach工具失败后重试次数。如果设为n,Roach会进行n-1次重试。 | 0–256 | 32 | --failure-retry-count 3 | ||||||
--get valign="top" width="13.131313131313133%" headers="mcps1.3.3.3.1.8.1.2 "> 不涉及 | 整数 | 达到缓冲极限后的等待时间,单位为微秒。 说明: 此参数只用于从NBU恢复表数据的场景。 | 0–1800000000(微秒) | --get>2000 | ||||||||
--logging | 不涉及 | 布尔型 | 启用或禁用日志文件记录功能。 如果命令中指定了该参数,则参数值为true。否则值为false。 此参数将来会退化,建议使用--enable-logging。 | 不涉及 | False | --logging | ||||||
--logging-level | 不涉及 | 字符串 | 日志级别。
|
| 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可使用任意内存。 |
| 2–256 | --max-memory-usage 2 | ||||||
--meta valign="top" width="13.131313131313133%" headers="mcps1.3.3.3.1.8.1.2 "> 不涉及 | 整数 | 读取元数据文件的等待时长。 | 60–3600 (秒) | 60 (秒) | --meta> | --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 | --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 | --validation-type Full | ||||||
--verbose | 不涉及 | 布尔型 | 是否启用verbose选项来显示详细信息。 如果命令中指定了该参数,则参数值为true。否则值为false。 | 不涉及 | False | --verbose |
对于集群级恢复,必须提供介质类型、目标介质、备份秘钥和主代理端口。如果用户没有指定这些参数,Roach工具会报错。
对于表级恢复,必须提供介质类型、目标介质、表名、备份秘钥、代理端口和主代理端口。如果用户没有指定这些参数,Roach工具会报错。
python GaussRoach.py -t restore --clean --master-port 6000 --media-destination samplepolicy --media-type NBU --backup-key 20160121_190923 --meta>/home/userA/metadata
python GaussRoach.py -t restore --clean --master-port 6000 --media-destination /home/userA/media --media-type Disk --backup-key 20160121_190548 --meta>/home/userA/metadata
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 --meta>/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 --meta>/home/userA/metadata
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 --meta>从磁盘恢复多表
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 --meta>
- 增量恢复集群
python GaussRoach.py -t restore --clean --master-port 6000 --media-destination /home/userA/media --media-type DISK --backup-key 20170630_220442 --meta>/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 --meta>/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,以便在恢复之前校验备份集有无损坏。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3118610/ ,如需转载,请注明出处,否则将追究法律责任。