用Veritas NetBackup备份数据库
对于Red Hat Enterprise Linux上的Greenplum数据库,用户可以配置Greenplum数据库用Veritas NetBackup执行备份和恢复操作。用户要配置Greenplum数据库和NetBackup,然后运行一个Greenplum数据库的gpcrondump或者gpdbrestore命令。下面的主题描述了如何设置NetBackup并且备份或者恢复Greenplum数据库。
- 关于NetBackup软件
- 限制
- 为NetBackup配置Greenplum数据库主机
- 为Greenplum数据库配置NetBackup
- 用NetBackup执行备份或者恢复
- NetBackup备份和恢复命令例子
上级主题: 备份和恢复数据库
关于NetBackup软件
NetBackup包括下列服务器和客户端软件:
- NetBackup的主服务器管理NetBackup备份、归档和恢复。主服务器负责NetBackup的媒介和设备选择。
- NetBackup的媒介服务器是NetBackup的设备主机,它通过允许NetBackup使用附加到其上的存储设备来提供额外的存储。
- NetBackup的客户端软件位于含有要备份数据的Greenplum数据库主机上。
有关NetBackup的信息请见Veritas NetBackup入门指南。
限制
- NetBackup与DDBoost不兼容。不能在单次的备份或恢复操作中同时使用NetBackup和DDBoost。
- 对于增量备份集(一个完全备份和相关的增量备份),备份集必须在单个设备上。例如,一个备份集必须都在一个NetBackup系统上。备份集不能有一些备份在NetBackup系统上而其他备份在本地文件系统或者Data Domain系统上。
为NetBackup配置Greenplum数据库主机
用户在Greenplum数据库的Master主机和所有Segment主机上安装并且配置NetBackup的客户端软件。NetBackup客户端软件必须能够与NetBackup服务器软件通信。
- 在Greenplum数据库主机上安装NetBackup客户端软件。在UNIX系统上安装NetBackup客户端的信息请见NetBackup安装文档。
在Greenplum数据库的Master和Segment主机上的NetBackup配置文件/usr/openv/netbackup/bp.conf中设置参数。在每台Greenplum数据库主机上设置下列参数。
表 1. 用于Greenplum数据库的NetBackup bp.conf参数 参数 描述 SERVER NetBackup主服务器的主机名 MEDIA_SERVER NetBackup媒介服务器的主机名 CLIENT_NAME Greenplum数据库主机的主机名 有关bp.conf文件的信息请见Veritas NetBackup管理员指南。
为Greenplum数据库主机设置LD_LIBRARY_PATH环境变量以使用NetBackup客户端。Greenplum数据库会安装用于NetBackup客户端的NetBackup SDK库文件。要配置Greenplum数据库使用对应于主机上安装的NetBackup客户端版本的库文件,在文件$GPHOME/greenplum_path.sh增加下面的行:
LD_LIBRARY_PATH=$GPHOME/lib/nbuNN/lib:$LD_LIBRARY_PATH
将NN替换为安装在该主机上的NetBackup客户端版本(例如对NetBackup 7.7.x使用77)。
LD_LIBRARY_PATH行应该被加在$GPHOME/greenplum_path.sh中这一行的前面:
export LD_LIBRARY_PATH
执行这个命令来移除当前的LD_LIBRARY_PATH值:
unset LD_LIBRARY_PATH
执行这个命令为Greenplum数据库更新环境变量:
source $GPHOME/greenplum_path.sh
有关配置NetBackup服务器的信息请见Veritas NetBackup管理员指南。
确保Greenplum数据库主机被列为NetBackup服务器的NetBackup客户端。
在NetBackup管理控制台中,NetBackup客户端、媒介服务器和主服务器的信息在Host Properties节点的NetBackup Management节点中。
配置一个NetBackup存储单元。这个存储单元必须被配置为指向一个可写的磁盘位置。
在NetBackup管理控制台中,NetBackup存储单元的信息在Storage节点的NetBackup Management节点中。
配置一种NetBackup备份策略以及策略中的计划。
在NetBackup管理控制台中,Master Server节点下面的Policy节点就是用户创建策略和策略的计划的地方。
在Policy Attributes页面中,这些值是Greenplum数据库必需的:
Policy type域中的值必须是DataStore
Policy storage域中的值是前一步中创建的存储单元。
Limit jobs per policy域中的值必需至少为3。
在Policy Schedules页面中,为该策略创建一个NetBackup计划。
为Greenplum数据库配置NetBackup
有关配置NetBackup服务器的信息请见Veritas NetBackup管理员指南。
确保Greenplum数据库主机被列为NetBackup服务器的NetBackup客户端。
在NetBackup管理控制台中,NetBackup客户端、媒介服务器和主服务器的信息在Host Properties节点的NetBackup Management节点中。
配置一个NetBackup存储单元。这个存储单元必须被配置为指向一个可写的磁盘位置。
在NetBackup管理控制台中,NetBackup存储单元的信息在Storage节点的NetBackup Management节点中。
配置一种NetBackup备份策略以及策略中的计划。
在NetBackup管理控制台中,Master Server节点下面的Policy节点就是用户创建策略和策略的计划的地方。
在Policy Attributes页面中,这些值是Greenplum数据库必需的:
Policy type域中的值必须是DataStore
Policy storage域中的值是前一步中创建的存储单元。
Limit jobs per policy域中的值必需至少为3。
在Policy Schedules页面中,为该策略创建一个NetBackup计划。
用NetBackup执行备份或者恢复
Greenplum数据库的gpcrondump和gpdbrestore工具支持备份或者恢复数据到NetBackup存储单元的选项。在执行备份时,Greenplum数据库直接把数据文件传输到NetBackup存储单元。没有备份数据文件被创建在Greenplum数据库主机上。备份元数据文件同时被存储在主机上以及被被分到NetBackup存储单元。
在执行恢复时,文件从NetBackup服务器检索出来,然后被恢复。
下列是用于NetBackup的gpcrondump工具选项:
--netbackup-service-host netbackup_master_server
--netbackup-policy policy_name
--netbackup-schedule schedule_name
--netbackup-block-size size(可选)
--netbackup-keyword keyword(可选)
gpdbrestore工具为NetBackup提供了下列选项:
--netbackup-service-host netbackup_master_server
--netbackup-block-size size(可选)
注意: 在执行操作从NetBackup恢复时,用户必须用gpdbrestore工具的-t选项指定备份时间戳。
策略名和计划名被定义在NetBackup的主服务器上。有关策略名和计划名的信息请见为Greenplum数据库配置NetBackup。有关Greenplum数据库工具的信息请见Greenplum数据库工具指南。
注意: 用户必须在为NetBackup计划定义的时间窗口期间运行gpcrondump或者gpdbrestore命令。
在备份或恢复操作期间,会为下列类型的Greenplum数据库数据创建一个单独的NetBackup任务:
- 每个Segment实例的Segment数据
- C数据库数据
- 元数据
- Master的Post数据
- 状态文件全局对象(gpcrondump -G选项)
- Master和Segment的配置文件(gpcrondump -g选项)
- 报告文件(gpcrondump -h选项)
在NetBackup管理控制台中,活动监视器会列出NetBackup任务。对每个任务,任务详情会显示Greenplum数据库的备份信息。
注意: 在备份或者恢复大量数据时,将NetBackup的CLIENT_READ_TIMEOUT选项设置为一个至少两倍于预期操作时长(以秒为单位)的值。CLIENT_READ_TIMEOUT的默认值是300秒(5分钟)。
例如,如果一次备份要用3小时,那么将CLIENT_READ_TIMEOUT设置为21600(2 x 3 x 60 x 60)。用户可以在NetBackup服务器上使用NetBackup的nbgetconfig和nbsetconfig命令来查看并改变该选项值。
有关CLIENT_READ_TIMEOUT以及nbgetconfig和nbsetconfig命令的信息请见NetBackup文档。
NetBackup备份和恢复命令例子
这个gpcrondump命令备份数据库customer并且指定一种定义在NetBackup主服务器nbu_server1上的NetBackup策略和计划。块尺寸1024字节被用来传输数据到NetBackup服务器。
gpcrondump -x customer --netbackup-service-host=nbu_server1 \
--netbackup-policy=gpdb_cust --netbackup-schedule=gpdb_backup \
--netbackup-block-size=1024
这个gpdbrestore命令从由NetBackup主服务器nbu_server1管理的数据中恢复Greenplum数据库数据。选项-t 20170530090000指定创建备份时gpcrondump生成的时间戳。-e选项指定在恢复目标数据库之前先删除它。
gpdbrestore -t 20170530090000 -e --netbackup-service-host=nbu_server1