ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

炫“库”行动-人大金仓有奖征文-金仓分析型数据库KADB的备份和恢复(二)-并行备份和恢复

2021-10-11 14:29:57  阅读:150  来源: 互联网

标签:20211011 INFO 金仓 -- KADB mppadmin mdw gpbackup 备份


上一章测试了KADB的串行备份和恢复,pg_dump/pg_restore。这章测试一下KADB的并行备份和恢复gpbackup/gprestore。

因为pg_dump和pg_restore受主节点master的限制,不能满足用户大量数据的备份和恢复,所以KADB又提供了gpbackup和gprestore并行备份恢复工具。

 gpbackup 具体的参数说明可以通过执行
 gpbackup --help获取

--dbname database_name  指定要备份的数据库。

--backup-dir directory 复制所有备份文件(元数据文件和数据文件)到指定路径。

--compression-level level  指定用来压缩数据文件的gzip压缩级别(从1到9)。默认为1。注意,gpbackup 默认使用压缩。

--data-only 仅将表数据备份到CSV文件,不备份用来重建表和其他数据库对象的元数据文件。

--debug 显示操作期间的调试信息。

--exclude-schema schema_name  指定要被排除备份的模式名。该参数可以指定多次以排除多个模式。

--exclude-table schema.table 指定要排除在备份中的表。

--exclude-table-file file_name 指定一个包含需要排除在备份之外的列表文件。

--include-schema schema_name 指定要包含在备份中的数据库模式名。

--include-table schema.table 指定一个要包含在备份中的表。

--include-table-file file_name  指定一个备份时需要的表名列表文件。

--incremental 指定该选项可以增加一个增量备份到增量备份集中。

--from-timestamp backup-timestamp 指定备份时间戳。

--jobs int  指定进行表备份的并行任务数量。默认gpbackup采用1个任务(数据库连接)。 增加该参数的值可以提高数据备份的速度。

--leaf-partition-data 对于分区表,该选项定义后会为每一个子分区创建一个单独的数据文件,而不是为整个表创建一个 完成的文件(默认)

--metadata-only 仅创建可用来重建数据库的元数据文件(DDL),不备份表的实际数据。

--no-compression 不对表数据CSV文件进行压缩。

--plugin-config config-file_location 指定gpbackup插件配置文件的位置,该文件是一个YAML格式的文本文件。

--quiet 不显示所有非告警、非错误日志信息。

--single-data-file 在每个Segment主机上为所有备份的表创建一个单独的数据文件。

--verbose 打印详细日志信息。

--version 打印工具版本号并退出。

--with-stats 在备份集中包含查询计划统计信息。

--help 显示在线帮助信息。

 测试gpbackup备份

  • 创建备份数据库
drop database if exists restore;
create database restore;

  • 登陆备份库,创建备份表
CREATE TABLE t1(i int, j int) with(appendonly=true,orientation=row);
INSERT INTO t1 SELECT a , a from generate_series(1,10000) as a;

  •  执行备份
[mppadmin@mdw ~]$ gpbackup  --dbname restore --leaf-partition-data  --backup-dir  /home/mppadmin/dbbackup/
20211011:13:51:39 gpbackup:mppadmin:mdw:004497-[INFO]:-gpbackup version = 1.12.1+dev.95.g18c6fdd
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Greenplum Database Version = 6.0.0 build dev.V003R002C001B0110.befc7c7b48
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Starting backup of database restore
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Backup Timestamp = 20211011135139
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Backup Database = restore
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Gathering table state information
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Acquiring ACCESS SHARE locks on tables
Locks acquired:  1 / 1 [================================================================] 100.00% 0s
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Gathering additional table metadata
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Getting partition definitions
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Getting storage information
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Getting child partitions with altered schema
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Metadata will be written to /home/mppadmin/dbbackup/mppseg-1/backups/20211011/20211011135139/gpbackup_20211011135139_metadata.sql
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Writing global database metadata
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Global database metadata backup complete
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Writing pre-data metadata
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Pre-data metadata metadata backup complete
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Writing post-data metadata
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Post-data metadata backup complete
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Writing data to file
Tables backed up:  1 / 1 [==============================================================] 100.00% 0s
20211011:13:51:40 gpbackup:mppadmin:mdw:004497-[INFO]:-Data backup complete
20211011:13:51:41 gpbackup:mppadmin:mdw:004497-[INFO]:-Found neither /home/mppadmin/mpp/bin/gp_email_contacts.yaml nor /home/mppadmin/gp_email_contacts.yaml
20211011:13:51:41 gpbackup:mppadmin:mdw:004497-[INFO]:-Email containing gpbackup report /home/mppadmin/dbbackup/mppseg-1/backups/20211011/20211011135139/gpbackup_20211011135139_report will not be sent
20211011:13:51:41 gpbackup:mppadmin:mdw:004497-[INFO]:-Backup completed successfully

备份成功查看备份文件 

gprestore 恢复命令

具体的参数说明可以通过执行
 gprestore --help获取

--timestamp YYYYMMDDHHMMSS  指定一个用来恢复gpbackup备份集的时间戳。

--backup-dir directory  从指定的路径下找所有备份文件(元数据文件和数据文件)。

--create-db 在恢复数据库对象元数据之前先创建数据库。

--data-only 仅恢复gpbackup创建的表数据,不恢复创建数据库表的操作。

--debug 显示操作期间的详细信息和调试日志。

--exclude-schema schema_name  指定恢复操作期间要排除的数据库模式。

--exclude-table schema.table 指定恢复操作期间要排除的表。

--exclude-table-file file_name 指定恢复期间要排除的表的列表文件。

--include-schema schema_name 指定要恢复的数据库模式。

--include-table schema.table 指定一个要恢复的表。

--include-table-file file_name 指定一个包含恢复表名的列表文件。

--jobs int 指定恢复表数据和元数据的并行连接的数量。默认gprestore使用1个连接。 增加该参数会提高数据恢复的速度。

--metadata-only 从一个gpbackup创建的备份集中创建数据库表,不恢复数据。

--on-error-continue 指定该选项以在创建数据库元数据(例如表、对象或函数)或恢复数据过程中出现SQL错误时, 忽略错误继续执行。如果有其他类型错误出现,工具会退出。工具会显示错误信息汇总并将错误信息写入到 gprestore日志文件,并继续恢复操作。

默认为第一次出现错误即退出。

--plugin-config config-file_location  指定gpbackup插件配置文件位置,它是一个YAML格式的文本文件。

--quiet  禁止任何非告警、非错误日志输出。

--redirect-db database_name 恢复到指定的database_name,而不是备份时的默认数据库名。

--verbose 显示恢复操作期间的详细日志信息。

--version 打印版本号并退出。

--with-globals  恢复备份集合中的KADB数据库系统对象,和其余数据库对象。

--with-stats 从备份集合恢复查询计划统计信息。

--help  显示在线帮助信息。

 测试gprestore恢复数据库表

  • 删除备份数据库,执行恢复命令。
[mppadmin@mdw ~]$ psql
Timing is on.
psql (9.4.24)
Type "help" for help.

test=# drop database restore ;
DROP DATABASE
Time: 298.357 ms
test=# \q
[mppadmin@mdw ~]$ gprestore --timestamp 20211011135139 --create-db --backup-dir /home/mppadmin/dbbackup/
20211011:14:00:32 gprestore:mppadmin:mdw:006638-[INFO]:-Restore Key = 20211011135139
20211011:14:00:32 gprestore:mppadmin:mdw:006638-[INFO]:-gpbackup version = 1.12.1+dev.95.g18c6fdd
20211011:14:00:32 gprestore:mppadmin:mdw:006638-[INFO]:-gprestore version = 1.12.1+dev.95.g18c6fdd
20211011:14:00:32 gprestore:mppadmin:mdw:006638-[INFO]:-Greenplum Database Version = 6.0.0 build dev.V003R002C001B0110.befc7c7b48
20211011:14:00:32 gprestore:mppadmin:mdw:006638-[INFO]:-Creating database
20211011:14:00:34 gprestore:mppadmin:mdw:006638-[INFO]:-Database creation complete for: restore
20211011:14:00:34 gprestore:mppadmin:mdw:006638-[INFO]:-Restoring pre-data metadata
Pre-data objects restored:  6 / 6 [=====================================================] 100.00% 0s
20211011:14:00:34 gprestore:mppadmin:mdw:006638-[INFO]:-Pre-data metadata restore complete
Tables restored:  1 / 1 [===============================================================] 100.00% 0s
20211011:14:00:34 gprestore:mppadmin:mdw:006638-[INFO]:-Data restore complete
20211011:14:00:34 gprestore:mppadmin:mdw:006638-[INFO]:-Restoring post-data metadata
20211011:14:00:34 gprestore:mppadmin:mdw:006638-[INFO]:-Post-data metadata restore complete
20211011:14:00:34 gprestore:mppadmin:mdw:006638-[INFO]:-Found neither /home/mppadmin/mpp/bin/gp_email_contacts.yaml nor /home/mppadmin/gp_email_contacts.yaml
20211011:14:00:34 gprestore:mppadmin:mdw:006638-[INFO]:-Email containing gprestore report /home/mppadmin/dbbackup/mppseg-1/backups/20211011/20211011135139/gprestore_20211011135139_20211011140032_report will not be sent
20211011:14:00:34 gprestore:mppadmin:mdw:006638-[INFO]:-Restore completed successfully
[mppadmin@mdw ~]$
  • 查看恢复结果

数据库和表均被恢复。

gpbackup和gprestore是KADB提供的并行备份工具,所有节点会各自备份各自的数据到本地,恢复时也是从本地进行恢复。这样就不会受主节点master的限制,从而提高备份和恢复的速度。。同时gpbackup和gprestore 还支持AO表的增量备份。增量备份的前提是需要有一次全量备份,使用上面的全量备份来测试增量备份。

具体备份方式如下:

  • 在向备份表中插入1000条数据。

  • 执行增量备份
[mppadmin@mdw ~]$ gpbackup  --dbname restore --leaf-partition-data  --backup-dir  /home/mppadmin/dbbackup/ --incremental
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-gpbackup version = 1.12.1+dev.95.g18c6fdd
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Greenplum Database Version = 6.0.0 build dev.V003R002C001B0110.befc7c7b48
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Starting backup of database restore
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Backup Timestamp = 20211011141517
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Backup Database = restore
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Gathering table state information
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Acquiring ACCESS SHARE locks on tables
Locks acquired:  1 / 1 [================================================================] 100.00% 0s
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Gathering additional table metadata
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Getting partition definitions
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Getting storage information
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Getting child partitions with altered schema
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Metadata will be written to /home/mppadmin/dbbackup/mppseg-1/backups/20211011/20211011141517/gpbackup_20211011141517_metadata.sql
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Writing global database metadata
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Global database metadata backup complete
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Writing pre-data metadata
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Pre-data metadata metadata backup complete
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Writing post-data metadata
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Post-data metadata backup complete
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Basing incremental backup off of backup with timestamp = 20211011135139
20211011:14:15:17 gpbackup:mppadmin:mdw:010109-[INFO]:-Writing data to file
Tables backed up:  1 / 1 [==============================================================] 100.00% 0s
20211011:14:15:18 gpbackup:mppadmin:mdw:010109-[INFO]:-Data backup complete
20211011:14:15:19 gpbackup:mppadmin:mdw:010109-[INFO]:-Found neither /home/mppadmin/mpp/bin/gp_email_contacts.yaml nor /home/mppadmin/gp_email_contacts.yaml
20211011:14:15:19 gpbackup:mppadmin:mdw:010109-[INFO]:-Email containing gpbackup report /home/mppadmin/dbbackup/mppseg-1/backups/20211011/20211011141517/gpbackup_20211011141517_report will not be sent
20211011:14:15:19 gpbackup:mppadmin:mdw:010109-[INFO]:-Backup completed successfully
[mppadmin@mdw ~]$
  •  查看备份文件

 20211011141517 下为增量备份文件

  • 删除备份库,进行恢复
[mppadmin@mdw ~]$ psql
Timing is on.
psql (9.4.24)
Type "help" for help.

test=# drop database restore ;
DROP DATABASE
Time: 285.860 ms
test=# \q
[mppadmin@mdw ~]$ gprestore --timestamp 20211011141517 --create-db --backup-dir /home/mppadmin/dbbackup/
20211011:14:22:27 gprestore:mppadmin:mdw:011798-[INFO]:-Restore Key = 20211011141517
20211011:14:22:27 gprestore:mppadmin:mdw:011798-[INFO]:-gpbackup version = 1.12.1+dev.95.g18c6fdd
20211011:14:22:27 gprestore:mppadmin:mdw:011798-[INFO]:-gprestore version = 1.12.1+dev.95.g18c6fdd
20211011:14:22:27 gprestore:mppadmin:mdw:011798-[INFO]:-Greenplum Database Version = 6.0.0 build dev.V003R002C001B0110.befc7c7b48
20211011:14:22:27 gprestore:mppadmin:mdw:011798-[INFO]:-Creating database
20211011:14:22:28 gprestore:mppadmin:mdw:011798-[INFO]:-Database creation complete for: restore
20211011:14:22:28 gprestore:mppadmin:mdw:011798-[INFO]:-Restoring pre-data metadata
Pre-data objects restored:  6 / 6 [=====================================================] 100.00% 0s
20211011:14:22:28 gprestore:mppadmin:mdw:011798-[INFO]:-Pre-data metadata restore complete
Tables restored:  1 / 1 [===============================================================] 100.00% 0s
20211011:14:22:29 gprestore:mppadmin:mdw:011798-[INFO]:-Data restore complete
20211011:14:22:29 gprestore:mppadmin:mdw:011798-[INFO]:-Restoring post-data metadata
20211011:14:22:29 gprestore:mppadmin:mdw:011798-[INFO]:-Post-data metadata restore complete
20211011:14:22:29 gprestore:mppadmin:mdw:011798-[INFO]:-Found neither /home/mppadmin/mpp/bin/gp_email_contacts.yaml nor /home/mppadmin/gp_email_contacts.yaml
20211011:14:22:29 gprestore:mppadmin:mdw:011798-[INFO]:-Email containing gprestore report /home/mppadmin/dbbackup/mppseg-1/backups/20211011/20211011141517/gprestore_20211011141517_20211011142227_report will not be sent
20211011:14:22:29 gprestore:mppadmin:mdw:011798-[INFO]:-Restore completed successfully
[mppadmin@mdw ~]$
  • 查看恢复结果

 从恢复结果上看,删除的备份库被正常恢复。增量备份大大减少了备份的时间,但目前gpbackup只支持AO表的增量备份。

目前来看KADB提供的多种备份方式可以满足用户的备份需求,当然也有要完善的地方,希望KADB的备份后面会更加完善,为客户提供更好的服务。

标签:20211011,INFO,金仓,--,KADB,mppadmin,mdw,gpbackup,备份
来源: https://blog.csdn.net/liuzhiliang2010/article/details/120700004

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有