示例:使用 GBase 8s Primary Storage Manager 管理存储设备

了解如何设置并使用 GBase 8s Primary Storage Manager 来管理 onbar 实用程序用于备份与复原实例的存储设备。每个示例显示如何针对特定备份策略使用存储管理器。

先决条件:

在这些示例中,存储管理器是指 GBase 8s Primary Storage Manager

示例 1:存储实例的备份

本例显示如何设置并使用 GBase 8s Primary Storage Manager 来将单个数据库服务器实例的数据和逻辑日志备份到目录 $GBASEDBTDIR/backups 中。

在本例中,您将更新配置文件以使 GBase 8s Primary Storage Manager 能够与 ON-Bar 通信,并指定您希望存储备份的目录。然后,使用 onbar 实用程序来执行所有联机存储空间和已用逻辑日志的标准 0 级备份。 通过检查记录的消息并使用 onpsm 实用程序来确认已创建了存储对象,从而验证该备份。

  1. 将 BAR_BSALIB_PATH 配置参数设置为存储管理器的共享库的完整路径和名称。

    例如,在 Linux™、Solaris 上:

    BAR_BSALIB_PATH	$GBASEDBTDIR/lib/libbsapsm.so

    必须使用为 GBase 8s Primary Storage Manager 提供的 XBSA 共享库版本。 0如果您不使用 BAR_BSALIB_PATH 配置参数指定路径,那么必须确保 XBSA 库位于您操作系统上的缺省位置中。

  2. 如果需要,请创建用于存储备份对象的目录。

    缺省情况下,存储管理器包含缺省池 LOGPOOL 和 DBSPOOL,每个池中使用缺省目录 $GBASEDBTDIR/backups

    • 如果要使用缺省备份目录,请验证 $GBASEDBTDIR/backups 目录是否存在。
    • 如果要使用其他备份目录,请使用 onpsm -D add 命令为 LOGPOOL 和 DBSPOOL 添加新的备份目录。例如,运行以下命令为 LOGPOOL 和 DBSPOOL 池添加其他备份目录:
      onpsm -D add /backups/infx/logs -g LOGPOOL -p HIGHEST -t FILE
      onpsm -D add /backups/infx/spaces -g DBSPOOL -p HIGHEST -t FILE

      对于应该首先填充的设备,请使用 HIGHEST 优先级。池中只能有一个设备的优先级设置可以为 HIGHEST。

  3. 运行 onbar 实用程序来执行所有联机存储空间和已用逻辑日志的标准 0 级备份。
    onbar -b -L 0
    如果存储目录表不存在,那么将在 $GBASEDBTDIR/etc/psm 目录中进行创建。
  4. 验证存储管理器是否已设置,以及是否创建了备份对象。
    1. ON-Bar 活动日志中查找以确认存储管理器已就绪且 ON-Bar 可识别存储管理器。

      例如,第一条消息来自存储管理器,第二条消息来自备份实用程序:

      2012-01-03 15:51:23 11193  2569 GBasedbt PSM is ready.
      2012-01-03 15:51:23 11193  2569 Using GBasedbt PSM version 12.10.FC1 
      as the Storage Manager. XBSA API version is 1.0.3.
      缺省情况下,存储管理器会将消息发布至 ON-Bar 活动日志。活动日志的位置由 BAR_ACT_LOG 配置参数设置。如果要分开记录存储管理器消息,必须设置 PSM_ACT_LOG 配置参数。
    2. 运行 onpsm -O list 命令来列出已创建的存储对象:

      列表(如以下示例中所示)包含存储对象标识、创建存储对象的日期、存储对象的大小,以及存储对象在存储设备中的位置。对象标识也存储在 ixbar 文件中,并由 ON-Bar 用于查找对象。

      ============================
      对象列表报告
      
                                              逻辑路径
      对象标识  创建日期            大小 (MB)    名称.版本(省略片段号)
      -------
           1  2012-08-06 12:02:10      12.5  /serv1/rootdbs/0/serv1.1
           2  2012-08-06 12:02:12       0.1  /serv1/logdbs/0/serv1.1
           3  2012-08-06 12:02:12       0.1  /serv1/dbs2/0/serv1.1
           4  2012-08-06 12:02:12       0.1  /serv1/dbs1/0/serv1.1
           5  2012-08-06 12:02:13       0.1  /serv1/physdbs/0/serv1.1
           6  2012-08-06 12:02:14       0.3  /serv1/10/9/serv1.1
           7  2012-08-06 12:02:14       0.0  /serv1/crit_files/ixbar/serv1.1
           8  2012-08-06 12:02:14       0.0  /serv1/crit_files/oncfg/serv1.1
           9  2012-08-06 12:02:14       0.1  /serv1/crit_files/onconfig/serv1.1
          10  2012-08-06 12:02:14       0.0  /serv1/crit_files/sqlhosts/serv1.1
      ============================
    3. 运行 onpsm -D list 命令来显示一个列表,其中显示该设备已添加到 DBSPOOL 和 LOGPOOL 池。以下示例显示该命令的输出:
      类型  优先级     块/大小 (MB)  池名称   设备名---
      FILE   HIGHEST       --/--         DBSPOOL     /backups/infx/logs
      
      FILE   HIGHEST       --/--         LOGPOOL     /backups/infx/spaces

通过几个简单步骤,您已配置了存储管理器并执行了某个实例到文件设备的完全备份。所需的配置极少,因为存储管理器使用各种 ON-Bar 配置参数的缺省设置。

GBase 8s 备份中不包含存储目录表。作为灾难恢复策略的一部分,请确保使用您的操作系统工具来备份存储目录表。如果存储目录表丢失,那么 onbar 实用程序无法复原 GBase 8s Primary Storage Manager 创建的备份对象。 存储目录表的位置由 PSM_CATALOG_PATH 配置参数设置(缺省值为 $GBASEDBTDIR/etc/psm)。

要从备份对象复原实例,请使用 onbar 实用程序。 存储管理器将为您跟踪备份对象和存储设备。

示例 2:存储两个实例的备份

此示例显示如何配置一个 GBase 8s Primary Storage Manager 实例来管理多驻留环境中的两个数据库服务器实例的存储设备。

在此示例中,您将在同一台计算机上设置两个独立的数据库服务器环境。每个数据库服务器都安装在一个独立的目录中:(/usr/gbasedbt/ids1210fc1/usr/gbasedbt/ids1210fc1b),并且具有一个数据库服务器实例。这两个数据库服务器实例上的备份操作的存储由一个 GBase 8s Primary Storage Manager 实例管理。 为每个实例配置了物理和逻辑数据的存储设备池。

  1. 对于每个实例,编辑 onconfig 文件以配置 ON-Bar 的存储管理。
    表 1. 配置参数及其关联的值.

    此表列出了您必须设置的配置参数以及要为每个参数指定的值。

    配置参数
    BAR_BSALIB_PATH
    指定存储管理器的共享库的完整路径和名称。
    /usr/gbasedbt/ids1210fc1b/lib/libbsapsm.so
    PSM_CATALOG_PATH
    指定存储目录表的路径。
    /usr/gbasedbt/ids1210fc1b/etc/psm
    PSM_DBS_POOL
    指定用于存储联机数据(数据库空间)备份的设备组的名称。

    FC1: DBSPOOL_FC1

    FC1B:DBSPOOL_FC1B

    PSM_LOG_POOL
    指定用于存储联机逻辑日志备份的设备组的名称。

    FC1: LOGPOOL_FC1

    FC1B:LOGPOOL_FC1B

  2. 对于每个实例,创建用于存储备份对象的目录。
    mkdir $GBASEDBTDIR/backups/dev_for_1201fc1
    mkdir $GBASEDBTDIR/backups/dev_for_1201fc1b
  3. 运行 onpsm 实用程序来为每个实例创建设备池。例如,指定:
    onpsm -P add DBSPOOL_FC1 -t DBSPACE
    onpsm -P add LOGPOOL_FC1 -t LOGFILE
    onpsm -P add DBSPOOL_FC1B -t DBSPACE
    onpsm -P add LOGPOOL_FC1B -t LOGFILE
  4. 运行 onpsm 实用程序来添加存储设备。
    onpsm -D add $GBASEDBTDIR/backups/dev_for_1201fc1 -t FILE -g DBSPOOL_FC1 
    onpsm -D add $GBASEDBTDIR/backups/dev_for_1201fc1 -t FILE -g LOGPOOL_FC1 
    onpsm -D add $GBASEDBTDIR/backups/dev_for_1201fc1b -t FILE -g DBSPOOL_FC1B 
    onpsm -D add $GBASEDBTDIR/backups/dev_for_1201fc1b -t FILE -g LOGPOOL_FC1B
  5. 对于每个实例,运行 onbar 实用程序来执行所有联机存储空间和已用逻辑日志的标准 0 级备份。
    onbar -b -L 0
  6. 验证存储管理器是否已设置,以及是否创建了备份对象。
    1. 对于每个实例,在 ON-Bar 活动日志中查找以确认存储管理器已就绪且 ON-Bar 可识别该存储管理器。例如,查找以下信息:
      2012-01-03 15:51:23 11193  2569 GBasedbt PSM is ready.
      2012-01-03 15:51:23 11193  2569 Using GBasedbt PSM version 12.10.FC1 
      as the Storage Manager. XBSA API version is 1.0.3.
    2. 使用 onpsm 实用程序可列出已创建的存储对象:
      onpsm -O list

      报告包含存储对象标识、创建存储对象的日期、存储对象的大小,以及存储对象在存储设备中的位置。

示例 3:将备份导出到另一个目录并从其复原备份

此示例显示如何将备份导出到新目录,并从该目录导入备份对象。

假设您保留了五个备份生成。作为额外的预防措施,您还将最近几个备份的副本保留在一个单独的目录中。在此示例中,您将使用 onsmsync 实用程序将最近备份导出到单独目录中的 GBase 8s Primary Storage Manager 外部池,并从中导入该备份。

存储管理器跟踪外部设备池 (EXTPOOL) 中的设备,以便可以与外部设备之间复制对象。(虽然存储管理器会跟踪设备,但它不会跟踪存储管理器目录中 EXTPOOL 池内部的文件和对象。)

  1. 按照示例 1:存储实例的备份中的步骤存储实例的备份。
  2. 运行 onpsm -D list 命令来检查 EXTPOOL 池中是否有设备。
    1. 如果 EXTPOOL 池中没有设备,请使用 onpsm -D add 命令添加一个设备。

      以下示例显示如何将路径为 /export/gbasedbt/psm_exportdir 的设备添加到 EXTPOOL 池。

      $ onpsm -D add /export/gbasedbt/psm_exportdir -g EXTPOOL -t FILE
  3. 运行 onsmsync 命令来导出第一次生成的 0 级备份中的所有备份对象,同时使用前缀 pw_sept5,该前缀将成为实用程序放置备份的子目录的名称:
    onsmsync -E -p pw_sept5 -g 1
    运行 onsmsync -E 命令来导出备份对象之后,将在 EXTPOOL 目录中看到一个子目录,其中包含保存备份对象和名为 export.bom 的文件的目录。
假设主备份目录中存储的备份生成出现问题,而您希望从第二个目录导入 pw_sept5 备份生成。要导入备份生成:
  1. 运行 onsmsync 命令来导入 pw_sept5 子目录中的所有备份对象:
    onsmsync -I -p pw_sept5

使用您自己的文件传输方法,根据需要将导出的备份移至其他机器。

示例 4:从一个服务器导出备份,并将其导入到另一个服务器

此示例显示如何使用 onsmsync 实用程序从名为 gbasedbt_serv1 的数据库服务器导出备份。 此示例还显示了如何使用 onsmsync 实用程序将数据导入到名为 gbasedbt_serv2 的服务器。

  1. 设置并导出数据库服务器 gbasedbt_serv1 上的文件:
    1. 设置 gbasedbt_serv1 的 GBASEDBTDIR、GBASEDBTSERVER、ONCONFIG、PATH 和 GBASEDBTSQLHOSTS 环境变量。
    2. 运行 onpsm -D list 命令来检查 EXTPOOL 池中是否有设备。如果 EXTPOOL 池中没有设备,请使用 onpsm -D add 命令添加一个设备。
    3. 运行 onsmsync 命令来导出第一次生成的 0 级备份中的所有备份对象,同时使用前缀 serv1_20120810,该前缀将成为实用程序放置备份的子目录的名称:
      $ onsmsync -E -p serv1_20120810 -g 1
  2. 准备导入第二个数据库服务器 gbasedbt_serv2 上的文件,如下所示:
    1. 设置 gbasedbt_serv2 的 GBASEDBTDIR、GBASEDBTSERVER、ONCONFIG、PATH 和 GBASEDBTSQLHOSTS 环境变量。
    2. 运行 onpsm -D list 命令以确定 EXTPOOL 是否具有您在步骤 1b 中查看或添加的相同设备。(对于共享设备,可能发生这种情况。)如果 EXTPOOL 池中没有设备,请使用 onpsm -D add 命令添加一个设备。
    3. 将先前导出的备份对象(例如,子目录 serv1_20120810)复制到将从中导入备份对象的 EXTPOOL 设备。
    4. 运行以下命令来从 EXTPOOL 设备导入备份对象:
      $ onsmsync -I -p serv1_20120810
      运行 onsmsync -I 命令以导入备份对象之后,这些对象将存储在新的 LOGPOOL 和 DBSPOOL 池中。
    5. 运行 onpsm -O list 命令来查看导入的对象。
      请注意,导入命令还会在 $GBASEDBTDIR/etc/ 目录中创建新的 ixbar 文件。
      $ ls -l $GBASEDBTDIR/etc/*ixbar*
      
      -rw-rw-- 1 gbasedbt gbasedbt     0 Aug 10 19:44 
       /usr/gbasedbt/etc/ixbar.12.20120810.194441
      -rw-rw-- 1 gbasedbt gbasedbt  2704 Aug 10 19:44 
       /usr/gbasedbt/etc/ixbar.12

      新的 ixbar 文件将列出导入的备份对象,以便您能够执行 ON-BAR 冷复原以将第一个数据库服务器中的 gbasedbt_serv1 实例复原到第二个数据库服务器上的 gbasedbt_serv2 实例。