【greenplum】6.21.3 备份恢复

1. 备份环境

工具版本备注
greenplum6.21.3
备份工具 gpbackup1.30.2
恢复工具 gprestore1.30.2

2. 安装备份工具

从Pivotal Network下载适用于的Greenplum数据库版本和OS平台的最新Pivotal Greenplum Backup and Restore软件发行版.
greenplum_backup_restore-1.30.2-gp6-rhel7-x86_64.gppkg

安装gpbackup/restore工具

su - gpadmin
gppkg -i greenplum_backup_restore-1.30.2-gp6-rhel7-x86_64.gppkg

查看是否安装成功

gpbackup --version
gprestore --version

3. 备份

3.1 备份选项

在这里插入图片描述

选项含义备注
–backup-dir string保存备份文件的目录的绝对路径
–compression-level int数据备份期间使用的压缩级别。有效值的范围取决于压缩类型(默认值为1),zstd压缩级别范围1-19, gzip压缩级别范围1-9。
–compression-type string数据备份期间使用的压缩类型。有效值gzip, zstd(默认值为gzip)
–copy-queue-size int使用–single data file选项进行备份时,gpbackup应排队的COPY命令数(默认值为1)
–data-only仅备份数据,不备份元数据
–dbname string要备份的数据库必填。
–debug打印详细和调试日志消息
–exclude-schema stringArray备份除指定架构中的对象之外的所有元数据,–可以多次指定排除结构。
–exclude-schema-file string包含要从备份中排除的架构列表的文件
–exclude-table stringArray备份指定表以外的所有元数据 --可以多次指定排除表。
–exclude-table-file string包含要从备份中排除的完全限定表列表的文件
–from-timestamp string用于建立当前增量备份的时间戳
–include-schema stringArray仅备份指定的架构–可以多次指定include架构。
–include-schema-file string包含要包含在备份中的架构列表的文件
–include-table stringArray仅备份指定的表–可以多次指定include表。
–include-table-file string包含要包含在备份中的完全限定表列表的文件。
–incremental仅备份自上次备份以来已修改的AO表的数据。
–jobs int备份数据时要使用的并行连接数。默认值为1。 不能和–metadata-only, --single-data-file参数一起使用。
–leaf-partition-data对于分区表,为每个业分区创建一个数据文件,而不是为整个表创建一个文件。备份必须参数,增量备份要求全备和增备都指定这个参数。
–metadata-only仅备份元数据,不备份数据。
–no-compression跳过数据文件的压缩。
–plugin-config string用于插件的配置文件
–quiet禁止显示非警告、非错误日志消息。
–single-data-file将所有数据备份到单个文件,而不是每个表一个文件。不能和–jobs共用,加上这个参数后,所有的表文件会被合入到一个文件中,相当于合并了一下。
–verbose打印详细日志消息
–version打印版本号并退出。
–with-stats备份查询计划统计。
–without-globals跳过全局元数据备份。

3.2 备份准备

创建备份目录

gpssh -f /home/gpadmin/conf/all_host 'sudo mkdir /opt/backup'
gpssh -f /home/gpadmin/conf/all_host 'sudo chmod -R 775 /opt/backup'
gpssh -f /home/gpadmin/conf/all_host 'sudo chown -R gpadmin. /opt/backup'

3.3 全量备份

全量备份

gpbackup --dbname test001 --backup-dir /opt/backup/ --leaf-partition-data --single-data-file --compression-type zstd --compression-level 19

集群中自带的数据库备份测试结果如下:
template0不能进行备份,报错如下: FATAL: database “template0” is not currently accepting connections (SQLSTATE 55000)
template1可以备份
postgres可以备份
gp_sydb可以备份
gpperfmon可以备份

备份之后的文件信息

master备份目录下的文件信息

[root@mdw1 ~]# ll /opt/backup/gpseg-1/backups/20240109/20240109102909/
总用量 24
-r--r--r-- 1 gpadmin gpadmin  881 1月   9 10:29 gpbackup_20240109102909_config.yaml
-r--r--r-- 1 gpadmin gpadmin 4417 1月   9 10:29 gpbackup_20240109102909_metadata.sql
-r--r--r-- 1 gpadmin gpadmin 1865 1月   9 10:29 gpbackup_20240109102909_report
-r--r--r-- 1 gpadmin gpadmin 7319 1月   9 10:29 gpbackup_20240109102909_toc.yaml

gpbackup_20240109102909_config.yaml

[root@mdw1 ~]# cat /opt/backup/gpseg-1/backups/20240109/20240109102909/gpbackup_20240109102909_config.yaml
backupdir: /opt/backup/
backupversion: 1.30.2
compressed: true
compressiontype: gzip
databasename: test001
databaseversion: 6.21.3 build commit:622fa9a831d189db93b0e2c338f1379d7d5f6e9d Open
  Source
segmentcount: 4
dataonly: false
datedeleted: ""
excluderelations: []
excludeschemafiltered: false
excludeschemas: []
excludetablefiltered: false
includerelations: []
includeschemafiltered: false
includeschemas: []
includetablefiltered: false
incremental: false
leafpartitiondata: true
metadataonly: false
plugin: ""
pluginversion: ""
restoreplan:
- timestamp: "20240109102909"
  tablefqns:
  - public.backup_tb
  - public.backup_tb_copy1
  - public.backup_tb_copy2
  - public.backup_tb_copy3
  - public.backup_tb_copy4
  - public.backup_tb_copy5
singledatafile: false
timestamp: "20240109102909"
endtime: "20240109102909"
withoutglobals: false
withstatistics: false
status: Success

gpbackup_20240109102909_metadata.sql

[root@mdw1 ~]# cat /opt/backup/gpseg-1/backups/20240109/20240109102909/gpbackup_20240109102909_metadata.sql
SET client_encoding = 'UTF8';
ALTER RESOURCE QUEUE pg_default WITH (ACTIVE_STATEMENTS=20);
ALTER RESOURCE GROUP admin_group SET CPU_RATE_LIMIT 1;
ALTER RESOURCE GROUP admin_group SET MEMORY_LIMIT 1;
ALTER RESOURCE GROUP default_group SET CPU_RATE_LIMIT 1;
ALTER RESOURCE GROUP default_group SET MEMORY_LIMIT 1;
ALTER RESOURCE GROUP default_group SET MEMORY_LIMIT 0;
ALTER RESOURCE GROUP default_group SET MEMORY_SHARED_QUOTA 80;
ALTER RESOURCE GROUP default_group SET MEMORY_SPILL_RATIO 0;
ALTER RESOURCE GROUP default_group SET CONCURRENCY 20;
ALTER RESOURCE GROUP default_group SET CPU_RATE_LIMIT 30;
ALTER RESOURCE GROUP admin_group SET MEMORY_LIMIT 10;
ALTER RESOURCE GROUP admin_group SET MEMORY_SHARED_QUOTA 80;
ALTER RESOURCE GROUP admin_group SET MEMORY_SPILL_RATIO 0;
ALTER RESOURCE GROUP admin_group SET CONCURRENCY 10;
ALTER RESOURCE GROUP admin_group SET CPU_RATE_LIMIT 10;
CREATE ROLE gpadmin;
ALTER ROLE gpadmin WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION PASSWORD 'md5b44a9b06d576a0b083cd60e5f875cf48' RESOURCE QUEUE pg_default RESOURCE GROUP admin_group CREATEEXTTABLE (protocol='http') CREATEEXTTABLE (protocol='gpfdist', type='readable') CREATEEXTTABLE (protocol='gpfdist', type='writable');
CREATE ROLE gpmon;
ALTER ROLE gpmon WITH SUPERUSER INHERIT NOCREATEROLE CREATEDB LOGIN PASSWORD 'md5172c791e492002d91ef60418bb9d5d72' RESOURCE QUEUE pg_default RESOURCE GROUP admin_group;
CREATE ROLE gpcc_basic;
ALTER ROLE gpcc_basic WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN RESOURCE QUEUE pg_default RESOURCE GROUP default_group;
CREATE ROLE gpcc_operator;
ALTER ROLE gpcc_operator WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN RESOURCE QUEUE pg_default RESOURCE GROUP default_group;
CREATE ROLE gpcc_operator_basic;
ALTER ROLE gpcc_operator_basic WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN RESOURCE QUEUE pg_default RESOURCE GROUP default_group;
CREATE DATABASE test001 TEMPLATE template0;
ALTER DATABASE test001 OWNER TO gpadmin;
COMMENT ON SCHEMA public IS 'standard public schema';
ALTER SCHEMA public OWNER TO gpadmin;
REVOKE ALL ON SCHEMA public FROM PUBLIC;
REVOKE ALL ON SCHEMA public FROM gpadmin;
GRANT ALL ON SCHEMA public TO PUBLIC;
GRANT ALL ON SCHEMA public TO gpadmin;
CREATE TABLE public.backup_za (
        id bigint NOT NULL,
        name character varying(255),
        age smallint,
        create_time timestamp without time zone,
        update_time timestamp without time zone
) DISTRIBUTED BY (id);
ALTER TABLE public.backup_za OWNER TO gpadmin;
CREATE TABLE public.backup_tb_copy1 (
        id bigint NOT NULL,
        name character varying,
        age smallint,
        create_time timestamp without time zone,
        update_time timestamp without time zone
) DISTRIBUTED BY (id);
ALTER TABLE public.backup_tb_copy1 OWNER TO gpadmin;
CREATE TABLE public.backup_tb_copy2 (
        id bigint NOT NULL,
        name character varying,
        age smallint,
        create_time timestamp without time zone,
        update_time timestamp without time zone
) DISTRIBUTED BY (id);
ALTER TABLE public.backup_tb_copy2 OWNER TO gpadmin;
CREATE TABLE public.backup_tb_copy3 (
        id bigint NOT NULL,
        name character varying,
        age smallint,
        create_time timestamp without time zone,
        update_time timestamp without time zone
) DISTRIBUTED BY (id);
ALTER TABLE public.backup_tb_copy3 OWNER TO gpadmin;
CREATE TABLE public.backup_tb_copy4 (
        id bigint NOT NULL,
        name character varying,
        age smallint,
        create_time timestamp without time zone,
        update_time timestamp without time zone
) DISTRIBUTED BY (id);
ALTER TABLE public.backup_tb_copy4 OWNER TO gpadmin;
CREATE TABLE public.backup_tb_copy5 (
        id bigint NOT NULL,
        name character varying,
        age smallint,
        create_time timestamp without time zone,
        update_time timestamp without time zone
) DISTRIBUTED BY (id);
ALTER TABLE public.backup_tb_copy5 OWNER TO gpadmin;
ALTER TABLE ONLY public.backup_za ADD CONSTRAINT backup_tb_pkey PRIMARY KEY (id);
ALTER TABLE ONLY public.backup_tb_copy1 ADD CONSTRAINT backup_tb_copy1_pkey PRIMARY KEY (id);
ALTER TABLE ONLY public.backup_tb_copy2 ADD CONSTRAINT backup_tb_copy2_pkey PRIMARY KEY (id);
ALTER TABLE ONLY public.backup_tb_copy3 ADD CONSTRAINT backup_tb_copy3_pkey PRIMARY KEY (id);
ALTER TABLE ONLY public.backup_tb_copy4 ADD CONSTRAINT backup_tb_copy4_pkey PRIMARY KEY (id);
ALTER TABLE ONLY public.backup_tb_copy5 ADD CONSTRAINT backup_tb_copy5_pkey PRIMARY KEY (id);

gpbackup_20240109102909_report

[root@mdw1 ~]# cat /opt/backup/gpseg-1/backups/20240109/20240109102909/gpbackup_20240109102909_report 
Greenplum Database Backup Report

timestamp key:         20240109102909
gpdb version:          6.21.3 build commit:622fa9a831d189db93b0e2c338f1379d7d5f6e9d Open Source
gpbackup version:      1.30.2

database name:         test001
command line:          gpbackup --dbname test001 --backup-dir /opt/backup/ --leaf-partition-data
compression:           gzip
plugin executable:     None
backup section:        All Sections
object filtering:      None
includes statistics:   No
data file format:      Multiple Data Files Per Segment
incremental:           False

start time:            Tue Jan 09 2024 10:29:09
end time:              Tue Jan 09 2024 10:29:12
duration:              0:00:03

backup status:         Success

database size:         112 MB
segment count:         4

count of database objects in backup:
aggregates                   0
casts                        0
collations                   0
constraints                  6
conversions                  0
default privileges           0
database gucs                0
event triggers               0
extensions                   0
foreign data wrappers        0
foreign servers              0
functions                    0
indexes                      0
operator classes             0
operator families            0
operators                    0
procedural languages         0
protocols                    0
resource groups              2
resource queues              1
roles                        5
rules                        0
schemas                      1
sequences                    0
tables                       6
tablespaces                  0
text search configurations   0
text search dictionaries     0
text search parsers          0
text search templates        0
triggers                     0
types                        0
user mappings                0
views                        0

gpbackup_20240109102909_toc.yaml

[root@mdw1 ~]# cat /opt/backup/gpseg-1/backups/20240109/20240109102909/gpbackup_20240109102909_toc.yaml 
globalentries:
- schema: ""
  name: ""
  objecttype: SESSION GUCS
  referenceobject: ""
  startbyte: 0
  endbyte: 31
  tier:
  - 0
  - 0
- schema: ""
  name: pg_default
  objecttype: RESOURCE QUEUE
  referenceobject: ""
  startbyte: 31
  endbyte: 93
  tier:
  - 0
  - 0
- schema: ""
  name: admin_group
  objecttype: RESOURCE GROUP
  referenceobject: ""
  startbyte: 93
  endbyte: 149
  tier:
  - 0
  - 0
- schema: ""
  name: admin_group
  objecttype: RESOURCE GROUP
  referenceobject: ""
  startbyte: 149
  endbyte: 203
  tier:
  - 0
  - 0
- schema: ""
  name: default_group
  objecttype: RESOURCE GROUP
  referenceobject: ""
  startbyte: 203
  endbyte: 261
  tier:
  - 0
  - 0
- schema: ""
  name: default_group
  objecttype: RESOURCE GROUP
  referenceobject: ""
  startbyte: 261
  endbyte: 317
  tier:
  - 0
  - 0
- schema: ""
  name: default_group
  objecttype: RESOURCE GROUP
  referenceobject: ""
  startbyte: 317
  endbyte: 373
  tier:
  - 0
  - 0
- schema: ""
  name: default_group
  objecttype: RESOURCE GROUP
  referenceobject: ""
  startbyte: 373
  endbyte: 437
  tier:
  - 0
  - 0
- schema: ""
  name: default_group
  objecttype: RESOURCE GROUP
  referenceobject: ""
  startbyte: 437
  endbyte: 499
  tier:
  - 0
  - 0
- schema: ""
  name: default_group
  objecttype: RESOURCE GROUP
  referenceobject: ""
  startbyte: 499
  endbyte: 555
  tier:
  - 0
  - 0
- schema: ""
  name: default_group
  objecttype: RESOURCE GROUP
  referenceobject: ""
  startbyte: 555
  endbyte: 614
  tier:
  - 0
  - 0
- schema: ""
  name: admin_group
  objecttype: RESOURCE GROUP
  referenceobject: ""
  startbyte: 614
  endbyte: 669
  tier:
  - 0
  - 0
- schema: ""
  name: admin_group
  objecttype: RESOURCE GROUP
  referenceobject: ""
  startbyte: 669
  endbyte: 731
  tier:
  - 0
  - 0
- schema: ""
  name: admin_group
  objecttype: RESOURCE GROUP
  referenceobject: ""
  startbyte: 731
  endbyte: 791
  tier:
  - 0
  - 0
- schema: ""
  name: admin_group
  objecttype: RESOURCE GROUP
  referenceobject: ""
  startbyte: 791
  endbyte: 845
  tier:
  - 0
  - 0
- schema: ""
  name: admin_group
  objecttype: RESOURCE GROUP
  referenceobject: ""
  startbyte: 845
  endbyte: 902
  tier:
  - 0
  - 0
- schema: ""
  name: gpadmin
  objecttype: ROLE
  referenceobject: ""
  startbyte: 902
  endbyte: 1244
  tier:
  - 0
  - 0
- schema: ""
  name: gpmon
  objecttype: ROLE
  referenceobject: ""
  startbyte: 1244
  endbyte: 1433
  tier:
  - 0
  - 0
- schema: ""
  name: gpcc_basic
  objecttype: ROLE
  referenceobject: ""
  startbyte: 1433
  endbyte: 1593
  tier:
  - 0
  - 0
- schema: ""
  name: gpcc_operator
  objecttype: ROLE
  referenceobject: ""
  startbyte: 1593
  endbyte: 1759
  tier:
  - 0
  - 0
- schema: ""
  name: gpcc_operator_basic
  objecttype: ROLE
  referenceobject: ""
  startbyte: 1759
  endbyte: 1937
  tier:
  - 0
  - 0
- schema: ""
  name: test001
  objecttype: DATABASE
  referenceobject: ""
  startbyte: 1939
  endbyte: 1984
  tier:
  - 0
  - 0
- schema: ""
  name: test001
  objecttype: DATABASE METADATA
  referenceobject: ""
  startbyte: 1984
  endbyte: 2027
  tier:
  - 0
  - 0
predataentries:
- schema: public
  name: public
  objecttype: SCHEMA
  referenceobject: ""
  startbyte: 2027
  endbyte: 2028
  tier: []
- schema: public
  name: public
  objecttype: SCHEMA
  referenceobject: ""
  startbyte: 2028
  endbyte: 2084
  tier: []
- schema: public
  name: public
  objecttype: SCHEMA
  referenceobject: ""
  startbyte: 2084
  endbyte: 2124
  tier: []
- schema: public
  name: public
  objecttype: SCHEMA
  referenceobject: ""
  startbyte: 2124
  endbyte: 2286
  tier: []
- schema: public
  name: backup_za
  objecttype: TABLE
  referenceobject: ""
  startbyte: 2288
  endbyte: 2494
  tier:
  - 1
  - 1
incrementalmetadata:
  ao: {}

segment host上备份目录下的文件信息

[root@sdw1 ~]# ll /opt/backup/gpseg0/backups/20240109/20240109102909/
总用量 24
-rw------- 1 gpadmin gpadmin 1674 19 10:29 gpbackup_0_20240109102909_16392.gz
-rw------- 1 gpadmin gpadmin 1674 19 10:29 gpbackup_0_20240109102909_16397.gz
-rw------- 1 gpadmin gpadmin 1674 19 10:29 gpbackup_0_20240109102909_16405.gz
-rw------- 1 gpadmin gpadmin 1674 19 10:29 gpbackup_0_20240109102909_16413.gz
-rw------- 1 gpadmin gpadmin 1674 19 10:29 gpbackup_0_20240109102909_16421.gz
-rw------- 1 gpadmin gpadmin 1674 19 10:29 gpbackup_0_20240109102909_16429.gz

[root@sdw1 ~]# ll /opt/backup/gpseg1/backups/20240109/20240109102909/
总用量 24
-rw------- 1 gpadmin gpadmin 1657 19 10:29 gpbackup_1_20240109102909_16392.gz
-rw------- 1 gpadmin gpadmin 1657 19 10:29 gpbackup_1_20240109102909_16397.gz
-rw------- 1 gpadmin gpadmin 1657 19 10:29 gpbackup_1_20240109102909_16405.gz
-rw------- 1 gpadmin gpadmin 1657 19 10:29 gpbackup_1_20240109102909_16413.gz
-rw------- 1 gpadmin gpadmin 1657 19 10:29 gpbackup_1_20240109102909_16421.gz
-rw------- 1 gpadmin gpadmin 1657 19 10:29 gpbackup_1_20240109102909_16429.gz

这些.gz文件解压之后,都是csv文件,里面保存着表的数据。

3,187635467,2,2023-12-01 12:00:00,2023-12-01 12:00:00
4,187635567,2,2023-12-01 12:00:00,2023-12-01 12:00:00
7,187635867,2,2023-12-01 12:00:00,2023-12-01 12:00:00
8,187635967,2,2023-12-01 12:00:00,2023-12-01 12:00:00
18,187636967,2,2023-12-01 12:00:00,2023-12-01 12:00:00
19,187637067,2,2023-12-01 12:00:00,2023-12-01 12:00:00
22,187637367,2,2023-12-01 12:00:00,2023-12-01 12:00:00
27,187637867,2,2023-12-01 12:00:00,2023-12-01 12:00:00
29,187638067,2,2023-12-01 12:00:00,2023-12-01 12:00:00

3.4 增量备份

增量备份

gpbackup --dbname test001 --backup-dir /opt/backup/ --leaf-partition-data --incremental --single-data-file --compression-type zstd --compression-level 19
  • –leaf-partition-data: 必须,增量备份时,基于的全量必须要该参数,增量备份时也必须要该参数。
  • –incremental: 必须,不能将--data-only或--metadata-only和--incremental一起使用
  • –from-timestamp: 可选。指定的时间戳是一个存在的备份对应的时间戳,可以是基于全量或增量备份。
  • –dbname: 数据库必须相同。
  • –backup-dir: 文件夹必须相同。备份集,全量和增量备份路径必须相同。
  • –single-data-file: 这个选项在集合中所有的备份,要么全部指定,要么全不指定。将所有数据备份到单个文件。
  • –no-compression: 备份集要么都压缩,要么都不压缩。备份集中的备份允许不同的压缩级别。

如果不做全量备份,直接做增量备份,根据report信息可以看到备份失败:

[gpadmin@mdw1 ~]$ gpbackup --dbname test001 --backup-dir /opt/backup/ --leaf-partition-data --incremental
20240109:10:26:43 gpbackup:gpadmin:mdw1:022034-[INFO]:-gpbackup version = 1.30.2
20240109:10:26:44 gpbackup:gpadmin:mdw1:022034-[INFO]:-Greenplum Database Version = 6.21.3 build commit:622fa9a831d189db93b0e2c338f1379d7d5f6e9d Open Source
20240109:10:26:44 gpbackup:gpadmin:mdw1:022034-[INFO]:-Starting backup of database test001
20240109:10:26:44 gpbackup:gpadmin:mdw1:022034-[INFO]:-Backup Timestamp = 20240109102644
20240109:10:26:44 gpbackup:gpadmin:mdw1:022034-[INFO]:-Backup Database = test001
20240109:10:26:44 gpbackup:gpadmin:mdw1:022034-[CRITICAL]:-There was no matching previous backup found with the flags provided. Please take a full backup.
20240109:10:26:45 gpbackup:gpadmin:mdw1:022034-[INFO]:-Found neither /usr/local/greenplum-db/bin/gp_email_contacts.yaml nor /home/gpadmin/gp_email_contacts.yaml
20240109:10:26:45 gpbackup:gpadmin:mdw1:022034-[INFO]:-Email containing gpbackup report /opt/backup/gpseg-1/backups/20240109/20240109102644/gpbackup_20240109102644_report will not be sent

做增量备份时,如果把segment host上全量备份的gz文件删除,再发起增量备份,是可以正常备份的。
做增量备份时,如果把master上全量备份的文件删除,再发起增量备份,不能备份成功,报错如下:

[gpadmin@mdw1 ~]$ gpbackup --dbname test001 --backup-dir /opt/backup/ --leaf-partition-data --incremental
20240109:11:00:57 gpbackup:gpadmin:mdw1:026222-[INFO]:-gpbackup version = 1.30.2
20240109:11:00:57 gpbackup:gpadmin:mdw1:026222-[INFO]:-Greenplum Database Version = 6.21.3 build commit:622fa9a831d189db93b0e2c338f1379d7d5f6e9d Open Source
20240109:11:00:57 gpbackup:gpadmin:mdw1:026222-[INFO]:-Starting backup of database test001
20240109:11:00:57 gpbackup:gpadmin:mdw1:026222-[INFO]:-Backup Timestamp = 20240109110057
20240109:11:00:57 gpbackup:gpadmin:mdw1:026222-[INFO]:-Backup Database = test001
20240109:11:00:57 gpbackup:gpadmin:mdw1:026222-[INFO]:-Gathering table state information
20240109:11:00:57 gpbackup:gpadmin:mdw1:026222-[INFO]:-Acquiring ACCESS SHARE locks on tables
Locks acquired:  6 / 6 [================================================================] 100.00% 0s
20240109:11:00:57 gpbackup:gpadmin:mdw1:026222-[INFO]:-Gathering additional table metadata
20240109:11:00:58 gpbackup:gpadmin:mdw1:026222-[INFO]:-Getting partition definitions
20240109:11:00:58 gpbackup:gpadmin:mdw1:026222-[INFO]:-Getting storage information
20240109:11:00:58 gpbackup:gpadmin:mdw1:026222-[INFO]:-Getting child partitions with altered schema
20240109:11:00:58 gpbackup:gpadmin:mdw1:026222-[INFO]:-Metadata will be written to /opt/backup/gpseg-1/backups/20240109/20240109110057/gpbackup_20240109110057_metadata.sql
20240109:11:00:58 gpbackup:gpadmin:mdw1:026222-[INFO]:-Basing incremental backup off of backup with timestamp = 20240109105639
20240109:11:00:58 gpbackup:gpadmin:mdw1:026222-[CRITICAL]:-open /opt/backup/gpseg-1/backups/20240109/20240109105639/gpbackup_20240109105639_toc.yaml: no such file or directory
20240109:11:00:59 gpbackup:gpadmin:mdw1:026222-[INFO]:-Found neither /usr/local/greenplum-db/bin/gp_email_contacts.yaml nor /home/gpadmin/gp_email_contacts.yaml
20240109:11:00:59 gpbackup:gpadmin:mdw1:026222-[INFO]:-Email containing gpbackup report /opt/backup/gpseg-1/backups/20240109/20240109110057/gpbackup_20240109110057_report will not be sent

3.5 查看历史备份记录

gpbackup_manager list-backups

3.6 删除备份

使用gpbackup_manager工具删除

删除指定备份

gpbackup_manager delete-backup 20240108184800

删除指定备份之前的备份集,下方例子会删除20240108184730之前的备份集,但是不会删除20240108184730这次备份。

gpbackup_manager delete-backups-before 20240108184730

4. 恢复

4.1 恢复选项

在这里插入图片描述

选项含义备注
–backup-dir string
–copy-queue-size int
–create-db元数据恢复之前创建数据库如果数据库存在,则会报错:[CRITICAL]:-Database “test001” already exists. Run gprestore again without --create-db flag.
–data-only只恢复数据,不恢复元数据
–debug打印调试信息
–exclude-schema stringArray
–exclude-schema-file string
–exclude-table stringArray
–exclude-table-file string
–include-schema stringArray
–include-schema-file string
–include-table stringArray
–include-table-file string
–incremental只恢复heap表和AO表自上次备份后修改的数据。
–jobs int恢复并发连接数当备份的时候使用了–single-data-file,恢复的时候不能指定该参数。
–metadata-only
–on-error-continue发生错误继续恢复
–plugin-config string
–quiet
–redirect-db string恢复到指定的数据库,而不是备份的数据库。需要和–create-db一起使用。
–redirect-schema string恢复到指定模式,而不是备份时的模式。
–report-dir string恢复报错和错误表将写入到这个目录下,绝对路径。
–resize-cluster
–run-analyze
–timestamp string恢复到具体的时间点,格式:YYYYMMDDHHMMSS必填。
–truncate-table清空表
–verbose
–version
–with-globals
–with-stats

4.2 恢复命令

gprestore --backup-dir /opt/backup/ --timestamp 20240514001813 --create-db --with-globals -jobs 8
gprestore --backup-dir /opt/backup/ --timestamp 20240109112419 --verbose

5. 补充

gpbackup或gprestore完成后返回的状态码含义:

  • 0: 备份或还原已完成,没有任何问题。
  • 1:备份或还原已完成,但非致命错误。
  • 2:备份或还原失败,并出现致命错误。

6. 专业名词

  • 交换分区
  • 分区表
  • Heap表
    即使用MEMORY存储引擎的表,这种表的数据存储在内存中,由于硬件问题或者断电,数据容易丢失,所以只能从其他数据表中读取数据作为临时表或者只读缓存来使用。
  • AO表
    AO最初设计是只支持append的,APPEND-ONLY。

7. 参考资料

  • 下载gpbackup/gprestore工具
    https://network.pivotal.io/products/greenplum-backup-restore/#/releases/1424076/file_groups/17406

  • gpbackup/gprestore github地址
    https://github.com/greenplum-db/gpbackup/releases

  • GreenPlum备份和恢复工具之gpbackup和gprestore
    https://www.modb.pro/db/1720258731890532352

  • Greenplum备份恢复工具gpbackup主题(上)- 简介与源码编译
    https://cn.greenplum.org/backup_tool_gpbackup/

  • Greenplum备份恢复工具gpbackup——参数
    https://cn.greenplum.org/gpbackup_-parameter/

  • PostgreSQL 技术内幕(二) Greenplum-AO表
    https://zhuanlan.zhihu.com/p/587753029

  • greenplum archive_mode默认
    https://blog.51cto.com/u_16175455/7391999?articleABtest=0

  • 使用gpbackup和gprestore创建增量备份
    https://docs-cn.greenplum.org/v6/admin_guide/managing/backup-gpbackup-incremental.html#topic_kvf_mkr_t2b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值