暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB A GaussRoach.py 恢复命令

墨天轮 2019-10-12
1176

恢复命令

功能

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论