Green Plum 备份恢复方案

Green Plum 备份恢复方案

1 环境

centos 7

    • 145.170.41.153(master) root/123456
    • 145.170.41.154(segment) root/123456
    • 145.170.41.155(segment) root/123456
    • 145.170.41.156(master) root/123456
    • 145.170.41.157(segment) root/123456
    • 145.170.41.158(segment) root/123456

Green Plum 6.12.1

gpadmin/gpadmin

2 前言

Greenplum数据库集群虽然支持关系型数据库事务的ACID特性,可以用在OLTP业务场景,但它的定位还是数据仓库,主要用来支撑OLAP业务场景,其数据来源更多的是从其他数据库汇聚过来,而不是直接由业务产生的,对于greenplum集群来说,PITR的场景需求并不高,且其自身提供了镜像(standby + mirror)来保证集群的高可用,所以Greenplum目前的备份恢复方案指的都是逻辑备份恢复。

Greenplum提供两种备份恢复方式:并行和非并行

  • 并行方式:master节点会备份ddl和元数据文件,各个segment会将自己的数据以CSV的方式存储在本地服务器上,如果将备份恢复到其他集群,需要保证其他集群和原集群有相同的架构

    • GP5.X gpcrondump 和 gpdbrestore 是推荐的备份恢复工具
    • GP6.X 去掉了gpcrondump 和 gpdbrestore工具的支持,gpbackup 和 gprestore 成为推荐的备份恢复工具
  • 非并行方式:所有的数据通过网络存放到master节点服务器,这需要master节点有足够的磁盘空间,这种方式不要求新集群与原集群有相同的架构,典型的工具是pg_dump/pg_dumpall、pg_restore

image

3 gpbackup和gprestore

3.1备份恢复工具安装

下载地址: gpbackup备份工具下载

gpbackup和gprestore工具并没有和数据库安装包在一起,需要单独下载,参考文档安装,备份和恢复工具的版本号与数据库版本也是分离的,但会向下兼容,这里选用当前最新的版本1.25

3.2安装软件

这里下载gppkg文件,然后通过greenplum自带的gppkg工具进行安装

[root@node1 software]# ll |grep -i pivotal_greenplum_backup_restore-1.25.0-gp6-rhel-x86_64.gppkg
-rw-r--r--.  1 gpadmin gpadmin  15722882 Sep 27 22:37 pivotal_greenplum_backup_restore-1.25.0-gp6-rhel-x86_64.gppkg

[gpadmin@node1 ~]$ gppkg -i /opt/software/pivotal_greenplum_backup_restore-1.25.0-gp6-rhel-x86_64.gppkg
20220927:22:40:51:020460 gppkg:node1:gpadmin-[INFO]:-Starting gppkg with args: -i /opt/software/pivotal_greenplum_backup_restore-1.25.0-gp6-rhel-x86_64.gppkg
20220927:22:40:51:020460 gppkg:node1:gpadmin-[INFO]:-Installing package pivotal_greenplum_backup_restore-1.25.0-gp6-rhel-x86_64.gppkg
20220927:22:40:51:020460 gppkg:node1:gpadmin-[INFO]:-Validating rpm installation cmdStr='rpm --test -i /opt/greenplum-db-6.22.0/.tmp/gpbackup_tools_RHEL-1.25.0-1.x86_64.rpm --dbpath /opt/greenplum-db-6.22.0/share/packages/database --prefix /opt/greenplum-db-6.22.0'
20220927:22:40:56:020460 gppkg:node1:gpadmin-[INFO]:-Installing pivotal_greenplum_backup_restore-1.25.0-gp6-rhel-x86_64.gppkg locally
20220927:22:40:57:020460 gppkg:node1:gpadmin-[INFO]:-Validating rpm installation cmdStr='rpm --test -i /opt/greenplum-db-6.22.0/.tmp/gpbackup_tools_RHEL-1.25.0-1.x86_64.rpm --dbpath /opt/greenplum-db-6.22.0/share/packages/database --prefix /opt/greenplum-db-6.22.0'
20220927:22:40:57:020460 gppkg:node1:gpadmin-[INFO]:-Installing rpms cmdStr='rpm -i --force /opt/greenplum-db-6.22.0/.tmp/gpbackup_tools_RHEL-1.25.0-1.x86_64.rpm --dbpath /opt/greenplum-db-6.22.0/share/packages/database --prefix=/opt/greenplum-db-6.22.0'
20220927:22:40:58:020460 gppkg:node1:gpadmin-[INFO]:-Completed local installation of pivotal_greenplum_backup_restore-1.25.0-gp6-rhel-x86_64.gppkg.
20220927:22:40:58:020460 gppkg:node1:gpadmin-[INFO]:-gpbackup 1.25.0 successfully installed
20220927:22:40:58:020460 gppkg:node1:gpadmin-[INFO]:-pivotal_greenplum_backup_restore-1.25.0-gp6-rhel-x86_64.gppkg successfully installed.

[gpadmin@node1 ~]$ gpbackup --version
gpbackup version 1.25.0
[gpadmin@node1 ~]$ gprestore --version
gprestore version 1.25.0

3.3使用限制

  • GPDB 4.3.22及以后版本
  • GPDB 5.5.0及以后版本
  • GPDB 6.0.0及以后版本
  • 不同的gpbackup会生成不同的时间戳,gprestore 必须通过–timestamp选项指定
  • 备份是指定了–single-data-file,则恢复时不能使用并行
  • 不能将扩容前的备份恢复到扩容后的集群
  • 备份的同时执行DDL操作,会到导致备份失败

这里对各个版本的备份工具做一下总结:

  • GPDB 4.x/5.x的某些版本(具体版本参考上面),可以同时使用gpcrondump和gpbackup两种工具;
  • GPDB 6.x版本开始,gpcrondump已经去掉了,只能使用gpbackup工具;
  • GPDB 6.x版本开始,官方版本的gpbackup提供单独的安装包,需要自行从vmware tanzu下载使用;开源版本的gpbackup可以从GitHub Relaese上下载发布包,或者自己进行源码编译。

3.3增量备份条件

  • 在全量/增量备份以后有以下操作之一:ALTER TABLE、DELETE、INSERT、TRUNCATE、UPDATE、DROP and then re-create the table
  • 需要一个备份集,包括全量备份和所有基于此全量备份的所有增量备份
  • 备份集内的所有备份都需要指定–leaf-partition-data参数
  • 增量备份只对AO表有效,Heap表每次都会进行全量备份,而创建表默认是Heap表,且创建AO不能有唯一索引

4 gpbackup备份

4.1gpbackup备份参数详解

gpbackup --help
gpbackup is the parallel backup utility for Greenplum

Usage:
  gpbackup [flags]

Flags:
      --backup-dir string            `可选参数`, 写入备份文件的绝对路径,不能采用相对路径,如果您指定了该路径,备份操作会将所有备份文件(包括元数据文件)都放到这个目录下。如果您不指定这个选项,元数据文件会保存到Master节点的 `$MASTER_DATA_DIRECTORY/backups/YYYYMMDD/YYYYMMDDhhmmss/` 目录下,数据文件会存放在segment主机的 `<seg_dir>/backups/YYYYMMDD/ YYYYMMDDhhmmss/`目录下。该选项不能与 `--plugin-config` 选项共同使用。
      --compression-level int        `可选参数`, 压缩级别。大家需要注意,在当前随GPDB版本发布的gpbackup包中,只支持gzip压缩格式,如果您自行编译gpbackup,可以看到已经增加了 `compression-type` 类型,该类型支持其他的压缩类型。压缩级别的默认值为1,gpbackup在备份时,会默认启用gzip压缩。
      --compression-type string      `可选参数`, 压缩类型。有效值有 'gzip','zstd',默认为 'gzip',如果要使用 'zstd' 压缩,需要在所有服务器上安装该压缩类型以保证shell可以执行 `zstd` 命令,安装方式参考:https://github.com/facebook/zstd 。
      --copy-queue-size int          `可选参数`, 自行编译最新版本gpbackup带有的参数,该参数只能配合 `--single-data-file` 参数一起使用,当定义了 `--single-data-file` 参数以后,通过执行 `--copy-queue-size` 参数的值来指定gpbackup命令使用COPY命令的个数,默认值为1。
      --data-only                    `可选参数`, 只备份数据,不备份元数据。
      --dbname string                `必选参数`, 只要进行备份的数据库名称,必须指定,否则会报错,备份无法进行。
      --debug                        `可选参数`, 显示备份过程中详细的debug信息,通常用在排错场景。
      --exclude-schema stringArray   `可选参数`, 指定备份操作要排除的数据库模式(schema), 如果要排除多个模式,需要多次定义,不支持 `--exclude-schema=schema1,schema2` 的方式。另外该参数与 '--exclude-schema-file, exclude-table, --exclude-table-file, --include-schema, --include-schema-file, --include-table, --include-table-file' 这几个参数不能同时使用。
      --exclude-schema-file string   `可选参数`, 包含备份操作要排除的数据库模式的文件,每一行为一个模式名,该文件不能包含多余的符号,如果数据库中的模式包含除了:字母、数字和下划线以外的特殊符号,那么请在文件中用双引号进行包裹。该参数与 '--exclude-schema, --exclude-table, --exclude-table-file, --include-schema, --include-schema-file, --include-table, --include-table-file' 这几个参数不能同时使用。
      --exclude-table stringArray    `可选参数`, 指定备份操作中要排除的表名,该参数与 '--exclude-schema, --exclude-schema-file, --exclude-table-file, --include-schema, --include-schema-file, --include-table, --include-table-file' 这几个参数不能同时使用。指定表名时,必须使用 `<schema-name>.<table-name>` 的格式指定匹配到具体的模式,如果数据库中的模式包含除了:字母、数字和下划线以外的特殊符号,那么请在文件中用双引号进行包裹。另外该参数也支持多次指定。
      --exclude-table-file string    `可选参数`, 指定文件包含备份操作中要排除的表名,该参数与 '--exclude-schema, --exclude-schema-file, --exclude-table, --include-schema, --include-schema-file, --include-table, --include-table-file' 这几个参数不能同时使用。指定表名时,必须使用 `<schema-name>.<table-name>` 的格式指定匹配到具体的模式,如果数据库中的模式包含除了:字母、数字和下划线以外的特殊符号,那么请在文件中用双引号进行包裹。如果有多个表,需要在文件中分行多次指定。
      --from-timestamp string        `可选参数`, 指定增量备份的时间戳。被指定的备份必须有增量备份集,如果没有,备份操作会自动创建一个增量备份集;如果被指定的备份是一个增量备份,则备份操作会向备份集增加一个备份。使用该参数时,必须指定参数 `--leaf-partition-data`, 并且不能与`--data-only或--metadata-only`参数一起使用。如果没有任何全量备份存在,则会报错退出备份过程。
      --help                         显示命令行参数帮助信息。
      --include-schema stringArray   `可选参数`, 指定备份操作要包含的数据库模式(schema), 如果要包含多个模式,需要多次定义,不支持 `--include-schema=schema1,schema2` 的方式。另外该参数与 '--exclude-schema, --exclude-schema-file, exclude-table, --exclude-table-file, --include-schema-file, --include-table, --include-table-file' 这几个参数不能同时使用。
      --include-schema-file string   `可选参数`, 包含备份操作要包含的数据库模式的文件,每一行为一个模式名,该文件不能包含多余的符号,如果数据库中的模式包含除了:字母、数字和下划线以外的特殊符号,那么请在文件中用双引号进行包裹。该参数与 '--exclude-schema, --exclude-schema-file, --exclude-table, --exclude-table-file, --include-schema, --include-table, --include-table-file' 这几个参数不能同时使用。
      --include-table stringArray    `可选参数`, 指定备份操作中要包含的表名,该参数与 '--exclude-schema, --exclude-schema-file, --exclude-table, --exclude-table-file, --include-schema, --include-schema-file, --include-table-file' 这几个参数不能同时使用。指定表名时,必须使用 `<schema-name>.<table-name>` 的格式指定匹配到具体的模式,如果数据库中的模式包含除了:字母、数字和下划线以外的特殊符号,那么请在文件中用双引号进行包裹。另外该参数也支持多次指定。
      --include-table-file string    `可选参数`, 指定文件包含备份操作中要包含的表名,该参数与 '--exclude-schema, --exclude-schema-file, --exclude-table, --exclude-table-file, --include-schema, --include-schema-file, --include-table' 这几个参数不能同时使用。指定表名时,必须使用 `<schema-name>.<table-name>` 的格式指定匹配到具体的模式,如果数据库中的模式包含除了:字母、数字和下划线以外的特殊符号,那么请在文件中用双引号进行包裹。如果有多个表,需要在文件中分行多次指定。
      --incremental                  `可选参数`, 增量备份功能,增量备份只支持AO表的增量,Heap表不支持增量备份。指定该选项后,会在备份集合中继续增加增量备份。在GPDB里面,备份可以全部都由全量备份构成,也可以由全量备份+增量备份的方式构成,增量备份必须与前面的全量备份组成一个连续的集合,否则无法进行恢复。如果已经做了一个全量备份但是没有增量备份,那该参数会在备份时创建一个增量备份集;如果全量和增量都已经存在了,那么该参数会在现有增量备份集中增加一个最新的备份;另外也可以通过指定 '--from-timestamp' 参数来改变默认行为。
      --jobs int                     `可选参数`, 指定进行表备份过程中的并行任务数,如果不指定,该值默认为1,gpbackup会使用一个任务(即一个数据库连接)进行备份。可以通过增加该值来提升备份速度,如果指定了大于1的值,备份操作会以表为单位进行并发操作,每个表开启一个单独的事务。需要特别注意的是,指定该参数进行并发备份时,不要进行外部程序操作,否则无法保证多表之间的事物一致性。该参数可以与 `--metadata-only, -- single-data-file, --plugin-config` 参数共同使用。
      --leaf-partition-data          `可选参数`, 为分区表的每一个叶子节点单独创建备份文件,而不是为整个表创建一个备份文件(默认)。使用该参数配合 `--include-table, -- include-table-file, --exclude-table, --exclude-table-file` 参数可以实现包含或排除叶子节点数据的操作。
      --metadata-only                `可选参数`, 仅备份元数据(即创建数据库对象的DDL语句),不备份任何实际的生产表数据。
      --no-compression               `可选参数`, 不启用压缩。
      --plugin-config string         `可选参数`, 指定plugin配置文件位置,该文件是一个有效的YAML文件,用来指定在备份过程中使用的plugin应用的配置信息。由于备份的plugin通常都是为了将备份放到远程存储,所以该选项不能与 `--backup-dir` 同时使用;例如可以使用s3的库将备份文件放到亚马逊S3存储上。也可以通过开放接口自己编写plugin,具体可以参考:https://gpdb.docs.pivotal.io/6-17/admin_guide/managing/backup-plugins.html
      --quiet                        `可选参数`, 静默模式,除了warning和error信息都不打印。
      --single-data-file             `可选参数`, 每个segment的数据备份成一个未见,而不是每个表备份一个文件(默认)。如果指定了该选项,在使用gprestore恢复的时候,不能使用 `--job` 选项进行并发恢复。需要特别注意,如果要使用该参数,需要配合 `gpbackup_helper` 命令一起使用,该命令与gpbackup和gpresotre一起编译生成,需要把这个命令放到所有segment host的greenplum-db/bin目录下。
      --verbose                      `可选参数`, 打印详细日志信息。
      --version                      打印gpbackup的版本号并退出。
      --with-stats                   `可选参数`, 备份查询计划统计信息。
      --without-globals              `可选参数`, 不备份全局对象。

4.2全备

master执行

/usr/local/gpb/gpbackup --dbname=gpdw --backup-dir=/home/gpadmin/nfs/gp

4.3增备

/usr/local/gpb/gpbackup --dbname=db3 --backup-dir=/data/backups/ --leaf-partition-data

/usr/local/gpb/gpbackup --dbname=db3 --backup-dir=/data/backups/ --leaf-partition-data --incremental

重新备份,先执行全量备份,再执行增量备份,此处需要注意,增量备份所使用的基础备份,必须也带有 --leaf-partition-data 参数,否则会报错。

5 gprestore恢复

5.1 gprestore 备份参数详解

如果要使用 gprestore 进行数据库恢复,那就要求您必须已经使用 gpbackup 进行了数据库备份,恢复时通过指定 --timestamp 参数把备份集传给 gprestore。如果您指定的是一个增量备份的时间戳,那这个增量备份的 base 全量备份及其他增量文件必须均存在,恢复时会校验备份集合的完整性,防止恢复出错。

在恢复数据时,默认情况下会将数据恢复到 gpbackup 备份的数据库中,如果该数据库已经不存在了,需要通过指定 --create-db 参数来自动创建数据库;如果数据库存在但是模式不存在,也会自动创建模式,如果模式已经存在,则会告警提示并继续恢复数据;如果数据库中同名的表已经存在,则恢复会失败并立刻停止。

gprestore --help
gprestore is the parallel restore utility for Greenplum

Usage:
  gprestore [flags]

Flags:
      --backup-dir string            `可选参数`, 写入备份文件的绝对路径,不能采用相对路径,如果您指定了该路径,恢复操作会在所有机器上的这个目录下查找备份文件(包括元数据文件)。如果您不指定这个选项,元数据文件会从Master节点的 `$MASTER_DATA_DIRECTORY/backups/YYYYMMDD/YYYYMMDDhhmmss/` 目录下查找,数据文件会从segment主机的 `<seg_dir>/backups/YYYYMMDD/ YYYYMMDDhhmmss/`目录下查找。该选项不能与 `--plugin-config` 选项共同使用。
      --copy-queue-size int          `可选参数`, 自行编译最新版本gpbackup带有的参数,该参数只能配合 `--single-data-file` 参数一起使用,当定义了 `--single-data-file` 参数以后,通过执行 `--copy-queue-size` 参数的值来指定gprestore命令使用COPY命令的个数,默认值为1。
      --create-db                    `可选参数`, 在执行数据库对象(metadata)恢复之前先创建数据库,该操作实际上通过复制标准模版数据库template0来实现;如果不指定该参数,默认不会创建数据库,此时就要求该数据库必须存在,否则恢复失败。
      --data-only                    `可选参数`, 仅恢复数据,不恢复表结构信息,这就要求要恢复的表必须已经在数据库中存在。需要特别注意的是,该表上SEQUENCE的值会被恢复成备份时的状态。
      --debug                        `可选参数`, 打印详细的调试信息。
      --exclude-schema stringArray   `可选参数`, 指定恢复操作要排除的数据库模式(schema), 如果要排除多个模式,需要多次定义,不支持 `--exclude-schema=schema1,schema2` 的方式。另外该参数与 '--exclude-schema-file, exclude-table, --exclude-table-file, --include-schema, --include-schema-file, --include-table, --include-table-file' 这几个参数不能同时使用。
      --exclude-schema-file string   `可选参数`, 包含恢复操作要排除的数据库模式的文件,每一行为一个模式名,该文件不能包含多余的符号,如果数据库中的模式包含除了:字母、数字和下划线以外的特殊符号,那么请在文件中用双引号进行包裹。该参数与 '--exclude-schema, --exclude-table, --exclude-table-file, --include-schema, --include-schema-file, --include-table, --include-table-file' 这几个参数不能同时使用。
      --exclude-table stringArray    `可选参数`, 指定恢复操作中要排除的表名,该参数与 '--exclude-schema, --exclude-schema-file, --exclude-table-file, --include-schema, --include-schema-file, --include-table, --include-table-file' 这几个参数不能同时使用。指定表名时,必须使用 `<schema-name>.<table-name>` 的格式指定匹配到具体的模式,如果数据库中的模式包含除了:字母、数字和下划线以外的特殊符号,那么请在文件中用双引号进行包裹。另外该参数也支持多次指定。
      --exclude-table-file string    `可选参数`, 指定文件包含恢复操作中要排除的表名,该参数与 '--exclude-schema, --exclude-schema-file, --exclude-table, --include-schema, --include-schema-file, --include-table, --include-table-file' 这几个参数不能同时使用。指定表名时,必须使用 `<schema-name>.<table-name>` 的格式指定匹配到具体的模式,如果数据库中的模式包含除了:字母、数字和下划线以外的特殊符号,那么请在文件中用双引号进行包裹。如果有多个表,需要在文件中分行多次指定。
      --help                         显示命令行参数帮助信息,与具体的恢复操作无关。
      --include-schema stringArray   `可选参数`, 指定恢复操作要包含的数据库模式(schema), 如果要包含多个模式,需要多次定义,不支持 `--include-schema=schema1,schema2` 的方式。另外该参数与 '--exclude-schema, --exclude-schema-file, exclude-table, --exclude-table-file, --include-schema-file, --include-table, --include-table-file' 这几个参数不能同时使用。
      --include-schema-file string   `可选参数`, 包含恢复操作要包含的数据库模式的文件,每一行为一个模式名,该文件不能包含多余的符号,如果数据库中的模式包含除了:字母、数字和下划线以外的特殊符号,那么请在文件中用双引号进行包裹。该参数与 '--exclude-schema, --exclude-schema-file, --exclude-table, --exclude-table-file, --include-schema, --include-table, --include-table-file' 这几个参数不能同时使用。
      --include-table stringArray    `可选参数`, 指定恢复操作中要包含的表名,该参数与 '--exclude-schema, --exclude-schema-file, --exclude-table, --exclude-table-file, --include-schema, --include-schema-file, --include-table-file' 这几个参数不能同时使用。指定表名时,必须使用 `<schema-name>.<table-name>` 的格式指定匹配到具体的模式,如果数据库中的模式包含除了:字母、数字和下划线以外的特殊符号,那么请在文件中用双引号进行包裹。另外该参数也支持多次指定。
      --include-table-file string    `可选参数`, 指定文件包含恢复操作中要包含的表名,该参数与 '--exclude-schema, --exclude-schema-file, --exclude-table, --exclude-table-file, --include-schema, --include-schema-file, --include-table' 这几个参数不能同时使用。指定表名时,必须使用 `<schema-name>.<table-name>` 的格式指定匹配到具体的模式,如果数据库中的模式包含除了:字母、数字和下划线以外的特殊符号,那么请在文件中用双引号进行包裹。如果有多个表,需要在文件中分行多次指定。
      --incremental                  `可选参数`, `测试功能`: 该选项与 '--data-only' 必须一起使用,仅恢复 '--timestamp' 参数指定的时间戳备份的数据,不恢复之前的全量和增量备份。该功能只对AO表有效,恢复的数据包括Heap表全量数据、最新修改备份的AO表增量数据、最新修改备份的叶子分区增量数据。
      --jobs int                     `可选参数`, 指定进行表恢复过程中的并行任务数,如果不指定,该值默认为1,gprestore会使用一个任务(即一个数据库连接)进行备份。可以通过增加该值来提升备份速度,如果指定了大于1的值,备份操作会以表为单位进行并发操作,每个表开启一个单独的事务。需要特别注意的是,指定该参数进行并发备份时,不要进行外部程序操作,否则无法保证多表之间的事物一致性。该参数与 `-- single-data-file` 参数共同使用时,只能设置为1。
      --metadata-only                `可选参数`, 只恢复数据库的模式信息,该操作假设数据库中不存在要恢复的表。可以同时配合 '--with- global' 参数恢复数据库全局对象。如果后期想恢复数据,可以配合 '--data-only' 参数一起使用。
      --on-error-continue            `可选参数`, 指定该参数可以在出现恢复错误时,让恢复操作继续。默认情况下出错后马上退出恢复。在该操作模式下,错误信息会记录到备份目录的对应文件下,元数据恢复错误记录到日志文件 'gprestore_<backup-timestamp>_<restore- time>_error_tables_metadata' 中,生产数据恢复错误记录到日志文件 'gprestore_<backup-timestamp>_<restore- time>_error_tables_data' 中。
      --plugin-config string         `可选参数`, 指定plugin配置文件位置,该文件是一个有效的YAML文件,用来指定在恢复过程中使用的plugin应用的配置信息。该参数通常对应gpbackup使用该参数的场景,从一些非本地存储设备上进行恢复。
      --quiet                        `可选参数`, 静默模式,除了warning和error信息都不打印。
      --redirect-db string           `可选参数`, 将数据恢复到指定的数据库,而不是恢复到原来备份的数据库中。
      --redirect-schema string       `可选参数`, 恢复数据到指定模式,而不是恢复到原来备份的模式中。即使原来的数据来自多个模式的多个表,也可以同时恢复到指定的模式和表中。这个参数必须与参数 '--include-table-file, --include-schema, 或 --include-schema- file' 一起使用以指定原来的表或者模式名称,当然这也决定了我们不能将它与参数 '-- exclude-schema 或 --exclude-table' 同时使用。该参数还可以配合 '--metadata-only 或 --data-only' 来恢复元数据或生产数据。
      --run-analyze                  `可选参数`, 在运行完表数据恢复后,执行 'ANALYZE' 操作,该参数不能与 '--with-stats' 参数同时使用;默认情况下,针对分区表,会ANALYZE根分区,如果您指定了 '--leaf-partition-data' 则只会去ANALYZE对应恢复了数据的子分区。
      --timestamp string             `必选参数`, 指定要恢复的备份集的时间戳,格式为:'YYYYMMDDHHMMSS'。
      --truncate-table               `必选参数`, 在恢复之前先把目标表清空,该参数主要为了避免数据重复问题。
      --verbose                      `可选参数`, 打印详细日志信息。
      --version                      打印gpbackup的版本号并退出。
      --with-globals                 `可选参数`, 恢复全局对象。
      --with-stats                   `可选参数`, 恢复查询计划统计信息。

5.2 全量+增量恢复

master执行

/usr/local/gpb/gprestore --backup-dir=/home/gpadmin/nfs/gp --timestamp=20221125120214 --create-db

6.备份恢复查询

gpbackup_manager

此工具用来管理备份集,包括删除备份集,查看备份集和查看备份报告等

[gpadmin@node1 ~]$ gpbackup_manager --help

gpbackup_manager helps manage Greenplum Database backup sets

Usage:
  gpbackup_manager [command]

Available Commands:
  completion       为指定的shell生成自动完成脚本
  delete-backup    删除指定时间戳的备份集
  display-report   显示指定时间戳的备份报告
  encrypt-password 加密密码加密要在DDBoost插件配置文件中使用的纯文本密码
  help             帮助信息
  list-backups     以列表形式显示特定于已执行备份的信息
  replicate-backup 复制指定时间戳的备份集


Flags:
  -h, --help      help for gpbackup_manager
  -v, --version   version for gpbackup_manager

Use "gpbackup_manager [command] --help" for more information about a command.

查看备份

[gpadmin@node1 ~]$ gpbackup_manager list-backups

  timestamp        date                       status    database   type          object filtering   plugin   duration   date deleted
  20220928143051   Wed Sep 28 2022 14:30:51   Success   gptestdb   incremental                               00:00:03
  20220928143011   Wed Sep 28 2022 14:30:11   Success   gptestdb   incremental                               00:00:02
  20220928134744   Wed Sep 28 2022 13:47:44   Success   gptestdb   incremental                               00:00:03
  20220928134435   Wed Sep 28 2022 13:44:35   Success   gptestdb   full                                      00:00:02
  20220928133757   Wed Sep 28 2022 13:37:57   Failure   gptestdb   incremental                               00:00:02
  20220928133132   Wed Sep 28 2022 13:31:32   Failure   gptestdb   incremental                               00:00:02
  20220928133028   Wed Sep 28 2022 13:30:28   Failure   gptestdb   incremental                               00:00:01
  20220928132902   Wed Sep 28 2022 13:29:02   Failure   gptestdb   incremental                               00:00:02
  20220928132021   Wed Sep 28 2022 13:20:21   Success   gptestdb   full                                      00:00:02
  20220928131900   Wed Sep 28 2022 13:19:00   Success   gptestdb   full                                      00:00:02
  20220928111945   Wed Sep 28 2022 11:19:45   Success   gptestdb   full

过滤出最新列的备份集信息

gpbackup_manager list-backups| grep -i -A1 'timestamp'| grep -i '[dbname]'

删除无效备份

[gpadmin@node1 ~]$ gpbackup_manager delete-backup 20220928132902

Are you sure you want to delete-backup 20220928132902? (y/N): y
20220928:14:41:25 gpbackup_manager:gpadmin:node1:009291-[INFO]:-Deletion of 20220928132902 in progress.

Deletion of 20220928132902 done.

[gpadmin@node1 ~]$ gpbackup_manager list-backups

  timestamp        date                       status    database   type          object filtering   plugin   duration   date deleted
  20220928143051   Wed Sep 28 2022 14:30:51   Success   gptestdb   incremental                               00:00:03
  20220928143011   Wed Sep 28 2022 14:30:11   Success   gptestdb   incremental                               00:00:02
  20220928134744   Wed Sep 28 2022 13:47:44   Success   gptestdb   incremental                               00:00:03
  20220928134435   Wed Sep 28 2022 13:44:35   Success   gptestdb   full                                      00:00:02
  20220928133757   Wed Sep 28 2022 13:37:57   Failure   gptestdb   incremental                               00:00:02
  20220928133132   Wed Sep 28 2022 13:31:32   Failure   gptestdb   incremental                               00:00:02
  20220928133028   Wed Sep 28 2022 13:30:28   Failure   gptestdb   incremental                               00:00:01   Wed Sep 28 2022 14:41:41
  20220928132902   Wed Sep 28 2022 13:29:02   Failure   gptestdb   incremental                               00:00:02   Wed Sep 28 2022 14:41:25
  20220928132021   Wed Sep 28 2022 13:20:21   Success   gptestdb   full                                      00:00:02
  20220928131900   Wed Sep 28 2022 13:19:00   Success   gptestdb   full                                      00:00:02
  20220928111945   Wed Sep 28 2022 11:19:45   Success   gptestdb   full
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值