用Veritas NetBackup备份数据库

用Veritas NetBackup备份数据库

对于Red Hat Enterprise Linux上的Greenplum数据库,用户可以配置Greenplum数据库用Veritas NetBackup执行备份和恢复操作。用户要配置Greenplum数据库和NetBackup,然后运行一个Greenplum数据库的gpcrondump或者gpdbrestore命令。下面的主题描述了如何设置NetBackup并且备份或者恢复Greenplum数据库。

关于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服务器软件通信。

  1. 在Greenplum数据库主机上安装NetBackup客户端软件。在UNIX系统上安装NetBackup客户端的信息请见NetBackup安装文档。
  2. 在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管理员指南

  3. 为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
  4. 执行这个命令来移除当前的LD_LIBRARY_PATH值:
    unset LD_LIBRARY_PATH
  5. 执行这个命令为Greenplum数据库更新环境变量:
    source $GPHOME/greenplum_path.sh

有关配置NetBackup服务器的信息请见Veritas NetBackup管理员指南

  1. 确保Greenplum数据库主机被列为NetBackup服务器的NetBackup客户端。

    在NetBackup管理控制台中,NetBackup客户端、媒介服务器和主服务器的信息在Host Properties节点的NetBackup Management节点中。

  2. 配置一个NetBackup存储单元。这个存储单元必须被配置为指向一个可写的磁盘位置。

    在NetBackup管理控制台中,NetBackup存储单元的信息在Storage节点的NetBackup Management节点中。

  3. 配置一种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管理员指南

  1. 确保Greenplum数据库主机被列为NetBackup服务器的NetBackup客户端。

    在NetBackup管理控制台中,NetBackup客户端、媒介服务器和主服务器的信息在Host Properties节点的NetBackup Management节点中。

  2. 配置一个NetBackup存储单元。这个存储单元必须被配置为指向一个可写的磁盘位置。

    在NetBackup管理控制台中,NetBackup存储单元的信息在Storage节点的NetBackup Management节点中。

  3. 配置一种NetBackup备份策略以及策略中的计划。

    在NetBackup管理控制台中,Master Server节点下面的Policy节点就是用户创建策略和策略的计划的地方。

    • Policy Attributes页面中,这些值是Greenplum数据库必需的:

      Policy type域中的值必须是DataStore

      Policy storage域中的值是前一步中创建的存储单元。

      Limit jobs per policy域中的值必需至少为3。

    • Policy Schedules页面中,为该策略创建一个NetBackup计划。

用NetBackup执行备份或者恢复

Greenplum数据库的gpcrondumpgpdbrestore工具支持备份或者恢复数据到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的nbgetconfignbsetconfig命令来查看并改变该选项值。

有关CLIENT_READ_TIMEOUT以及nbgetconfignbsetconfig命令的信息请见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