用gpcrondump备份

用gpcrondump备份

使用gpcrondump来备份数据库、数据以及数据库角色和服务器配置文件之类的对象。

gpcrondump工具在Master和每个Segment上转储一个Greenplum数据库的内容为SQL脚本文件。这些脚本文件接下来可以被用来恢复这个数据库。

Master的备份文件包含用于创建数据库模式的SQL命令。Segment的数据转储文件包含将数据装载到表中的SQL语句。Segment的转储文件被使用gzip压缩。可选地,服务器配置文件postgresql.confpg_ident.confpg_hba.conf以及角色和表空间这类全局数据可以被包括在备份中。

gpcrondump工具有一个必需的标志-x,它指定要转储的数据库:
gpcrondump -x mydb
这会执行指定数据库的一次完全备份到默认位置。
注意: 默认情况下,该工具会创建含有数据库转储细节的public.gpcrondump_history表。如果public方案已经被从数据库中删除,用户必须指定-H选项防止gpcrondump在尝试创建该表时返回错误。
默认情况下,gpcrondump会在Master和每个Segment实例上的data_directory/db_dumps目录中创建备份文件。用户可以用-u标志指定一个不同的备份位置。例如,下面的命令将把备份文件保存到/backups目录:
gpcrondump mydb -u /backups
gpcrondump工具在指定的目录中会创建db_dumps子目录。如果每台主机上有多于一个主Segment,该主机上所有的Segment都会把它们的备份文件写到相同的目录中。这与默认不同,默认行为是每个Segment把备份写到其自己的数据目录中。这可以被用来把备份联合到一个单一目录中或者挂载好的存储设备上。

db_dumps目录中,备份以格式YYYYMMDD被保存到一个目录中,例如data_directory/db_dumps/20151012是创建于2015年10月12日的一个备份。该目录中的备份文件名包含该备份的完整时间戳,格式为YYYYMMDDHHMMSS,例如gp_dump_0_2_20151012195916.gzgpdbrestore命令默认使用最近的备份,但用户也可以指定一个更早的备份来恢复。

该工具用这种文件名格式来创建备份文件。

prefix_gp_dump_content_dbid_timestamp
contentdbid是Greenplum数据库Segment实例的标识符,它们由Greenplum数据库分配。有关标识符的信息,请见Greenplum数据库参考指南中的Greenplum数据库系统目录表gp_id

如果包括-g选项,gpcrondump会把配置文件和备份保存在一起。这些配置文件在Master或者Segment数据目录中被转储为db_dumps/YYYYMMDD/config_files_timestamp.tar。如果指定了--ddboost,当设置了Data Domain Boost证书时,备份被放置在--ddboost-backupdir指定的目录中的默认存储单元上。-G选项把角色和表空间这类全局对象备份在Master备份目录中一个名为gp_global_-1_1_timestamp的文件中。

如果指定了--ddboost,当设置了Data Domain Boost证书时,备份被放置在--ddboost-backupdir指定的目录中的默认存储单元上。

还有很多gpcrondump选项可用来配置备份。有关所有可用的选项的信息请参考Greenplum工具参考指南。用Data Domain Boost备份的细节请见使用Data Domain Boost备份数据库

警告: 在运行ALTER TABLE的同时使用gpcrondump备份数据库可能会导致gpcrondump失败。

在运行DDL命令的同时用gpcrondump备份数据库可能会导致锁的问题。用户可能会看到DDL命令或者gpcrondump在等待获得锁。