SinoDB备份恢复工具之onbar

  onbar是SinoDB数据库的备份工具之一,它可以根据用户选择的线程数量并行地运行备份或恢复。不同于 ontape,onbar 必须先安装和配置存储管理器,进行才能备份和恢复。

1. onbar功能特性

  • 支持选择具体的存储空间进行备份或恢复

  • 支持基于时间点的恢复

  • 支持执行单独的物理和逻辑恢复

  • 支持并行备份和恢复

  • 支持导入的恢复

  • 支持外部备份与恢复

  • 不支持从云存储进行备份或恢复

2. 了解onbar组件

  onbar 由各种组件组成,,它与存储管理器一起使用来备份和恢复数据。

  • sysutils数据库:其中包含onbar目录表

  • onbar 和 onbar_d 命令行实用程序

  • 系统上存储管理器的 XBSA 共享库

  • onbar活动日志

  • onbar紧急引导文件

  • 用于存储备份的存储介质

3. onbar设置步骤

  在使用onbar之前,用户需要执行以下配置操作

  (1) 配置存储管理器。

  (2) 设置适当的ONCONFIG参数

  (3) 确定逻辑日志备份策略。在使用onbar备份日志时,不能将 LTAPEDEV设置为空。

  onbar会自动备份onconfig、ixbar和oncfg 文件,并将它们保留在onbar 自身的归档内。

4. 配置存储管理器

  使用onbar必须安装和配置存储管理器,才能执行备份和恢复。存储管理器控制用于备份和恢复的存储设备和介质,而 onbar 则负责管理数据移动以及数据库和存储管理器之间的通信。

  onbar 使用 X/Open Backup Services 应用编程接口 (XBSA) 与存储管理系统交换信息。可交换两种类型的信息:控制数据和备份数据。

  • 控制数据 :用于验证 onbar 和 XBSA 是否兼容,跟踪备份对象的历史记录。
  • 备份数据:来自备份或恢复的存储空间、blobspace 或日志文件的实际数据。

  可使用 XBSA 事务通过 onbar 在数据库服务器与存储管理器之间传输数据库对象(存储空间或逻辑日志)。该事务是一种保持数备份和恢复数据一致性的方式。它可保证备份或恢复对象中的所有数据都已在数据库服务器和存储管理器之间传输过,或者没有传输任何数据。每个会话可执行多个 XBSA 事务,每个服务器可执行多个并发会话。

  在使用 onconfig 文件中的 BAR_BSALIB_PATH 配置参数设置 XBSA 库的路径名时,需要指定绝对路径名。不能对 BAR_BSALIB_PATH 使用相对路径名。

5. onbar配置参数

参数 说明
BAR_ACT_LOG 指定活动日志的完整路径名。
BAR_DEBUG onbar可以调试备份和恢复故障。此参数定义了调试级别,更高的值会生成更详细的信息。该参数值的范围是 0-9。默认值为 0,表示未启用调试。
BAR_DEBUG_LOG 指定调试日志的完整路径名。
BAR_MAX_BACKUP 定义并行程度,确定要并发运行的备份和恢复进程数
BAR_RETRY 指定onbar尝试一备份或恢复操作的次数。默认值为 1。
BAR_NB_XPORT_COUNT 指定每个备份或恢复进程用于与SinoDB服务器交换数据的共享内缓冲区数量。此参数的值会影响 onbar 性能。
BAR_XFER_BUF_SIZE 以页面为单位指定传输缓冲区的大小。用于备份和恢复的缓冲区大小必须相同。
BAR_PROGRESS_FREQ 指定进度消息在备份和恢复操作的onbar活动日志中出现的频率。默认值 0 表示onbar不向活动日志写入任何进度消息。要监视进度,该值不得小于 5 分钟。
BAR_HISTORY 指定在使用 onsmsync 工具让旧备份过期时,sysutils 数据库是否维护备份历史。0=从 sysutils 数据库删除过期备份对象的记录;1=将过期备份对象的记录保留在 sysutils 数据库中。
BAR_BSALIB_PATH 指定不同存储管理器的共享库(XBSA)。存储管理器和 onbar 依靠共享库来彼此交互。请使用绝对路径名。
BAR_SIZE_FACTOR 增大存储空间大小的估算值,然后将该信息传递给存储管理器。
BAR_CKPTSEC_TIMEOUT 用来来增加超时期限。
BAR_PERFORMANCE 指定要在针对备份和恢复操作的 bar 活动日志中报告的性能统计信息类型。0=关闭性能监视(默认值);1=显示用于在服务器和存储管理器之间传输数据的时间;2=以亚秒级精确度显示时间戳;3=显示时间戳和传输统计信息

6. 使用onbar备份数据

  可使用 onbar 执行以下类型的备份:

  • 标准备份
  • 全系统备份
  • 物理备份

6.1 标准onbar备份

  在标准备份中,数据库服务器在备份每个存储空间时都会为其创建一个检查点。为了保持数据一致性,必须从标准备份恢复逻辑日志。下面给出了标准 onbar 备份的一些示例。

命令 说明
onbar -b -L 0 对所有在线、非临时的存储空间和使用的逻辑日志执行标准的 0 级备份
onbar -b -L 0 dbs1 dbs2 对特定的存储空间(比如两个名为 dbs1 和 dbs2 的存储空间)和逻辑日志执行标准的 0 级备份
onbar -b -L1 对所有在线、非临时的存储空间和使用的逻辑日志执行标准的1级备份

6.2 全系统onbar备份

  全系统备份 (onbar -b -w) 基于单个检查点对所有存储空间和逻辑日志执行顺序备份或并行备份。无需逻辑日志便可恢复全系统备份,因为所有存储空间中的数据在此备份中都是一致的。当没有保存逻辑日志时,需要使用-w选项进行恢复。以下列出了全系统 onbar 备份的示例。

命令 说明
onbar -b -w -L 0 对所有在线的、非临时的存储空间和使用的逻辑日志执行0 级全系统备份
onbar -b -w -L 1 对所有在线的、非临时的存储空间和使用的逻辑日志执行1级全系统备份

6.3 onbar物理备份

  物理备份仅备份存储空间,不备份逻辑日志。可以使用 onbar对特定或所有存储空间执行物理备份。例如,onbar -b -p对所有存储空间执行物理备份。

6.4 onbar逻辑日志备份

如果执行标准备份,则必须备份逻辑日志,因为必须同时恢复存储空间和逻辑日志。

命令 说明
onbar -b -l 执行逻辑日志全备份,但当前的逻辑日志不被备份
onbar -b -l -c 关闭并且备份当前的逻辑日志以及其它写满的逻辑日志
onbar -b -l -C 指定在逻辑日志写满后连续自动进行备份

6.5 逻辑日志救援

  在冷恢复中,onbar会在恢复根存储空间之前自动备份逻辑日志,除非仅指定了一次物理恢复。为了避免数据丢失,在包含逻辑日志的设备仍然可用时,或者计划仅执行一次物理恢复的时候,可以在开始冷恢复之前手动救援逻辑日志。例如,可以使用onbar -b -l -s 手动救援逻辑日志。

7. 伪onbar备份

  可使用onbar -b -F命令执行伪备份。无论是否存在存储管理器程序,都可以执行该命令,但是不能从伪备份中恢复。在如下情况下使用伪备份:

  • 改变数据库日志模式;
  • 将RAW表变为STANDARD表;
  • 允许用户在不执行备份的情况下使用新的日志、chunk 或者镜像。
  • 当管理员判断不需要备份时;

8. 验证onbar备份

  可以使用以下验证 onbar 备份,逻辑日志未验证。

命令 说明
onbar -v 验证对所有存储空间的一次备份。逻辑日志未验证。这适用于标准和全系统备份。
onbar -v -f dbsfile 验证一个名为 dbsfile 的文件中列出的存储空间的备份。
onbar -v -t “YYYY-MM-DD HH:MM:SS” 基于时间点,验证对所有存储空间的备份。

9.使用onbar恢复数据

  可以使用 onbar 执行以下类型的恢复:

  • 冷恢复
  • 热恢复
  • 混合恢复
  • 逻辑日志恢复

9.1 onbar冷恢复

  如果由于一个磁盘故障而导致关键存储空间损坏,从而出现数据库服务器故障,则必须对所有关键存储空间执行冷恢复。要执行冷恢复,数据库服务器必须处于离线状态。冷恢复首先恢复所有关键的存储空间,然后恢复非关键存储空间,最后恢复逻辑日志。完成这些恢复操作后,数据库服务器会进入静默模式。可使用 onmode 命令让其处于联线状态。需要对以下任务之一执行冷恢复:

  • 全系统恢复

  全系统恢复需要进行一个全系统备份,尽管它不需要恢复逻辑日志。如果执行仅使用物理方式的全系统恢复,在完成恢复后,数据库服务器将进入快速恢复模式。可以使用 onmode 命令执行逻辑恢复或让服务器处于联线状态。

命令 说明
onbar -r 指定一个恢复,如果数据居库服务器处于离线状态,则onbar执行冷恢复;如果服务器处于在线状态或者快速恢复状态,则onbar 执行热恢复。在冷恢复中,-r选项为恢复所有存储空间、抢救的日志和逻辑日志;在热恢复中,-r选项为恢复所有离线的存储空间和逻辑日志
onbar -r -w 执行具有自动日志救援功能的全系统恢复。
onbar -r -p -w 执行一次仅物理方式的全系统恢复(没有日志救援)。
onbar -r -t “YYYY-MM-DD HH:MM:SS” -w 执行一次全系统时间点恢复
  • 时间点恢复

  时间点恢复支持将数据库服务器恢复到它在特定时间点上所处的状态。通常使用它从错误(比如意外丢弃数据库)中恢复。在这种情况下,可以将服务器恢复到丢弃数据库之前的时刻。例如,onbar -r -t “YYYY-MM-DD HH:MM:SS” 命令可以恢复到在指定的时刻或之前提交的事务。

  • 日志点恢复

  日志点恢复类似于时间点恢复。它将数据恢复到指定的逻辑日志中列出的最后提交事务的时刻。onbar -r -n “Log Number” 命令执行日志点恢复,以便恢复到指定的日志编号。

  • 导入的恢复

  在导入的恢复中,数据恢复到与用于备份的数据库服务器实例不同的实例。XBSA 和存储管理器版本必须在备份和恢复操作之间兼容。

  • 重命名数块恢复

  对于重命名数据块恢复,可以在冷恢复期间指定新数据块路径和偏移来重命名数据块。此选项可用于将存储空间恢复到不同于执行备份的路径名的路径名。在完成重命名数据块恢复后,需要执行 0 级归档。例如:

  onbar -r -rename -p /chunk_old -o 0 -n /chunk_new -o 20000
  命令将数据块从 (path: /chunk_old and offset: 0) 重命名为 (path: /chunk_new and offset: 20000)。

9.2 onbar热恢复

  如果存储空间关闭并且数据库服务器未处于离线状态,则可以在热还原中还原非关键存储空间。热恢复需要将逻辑日志前滚到当前的逻辑日志,所以无法使用它来恢复意外丢弃的表或删除的数据。

命令 说明
onbar -r 在热恢复中,-r选项为恢复所有离线的存储空间和逻辑日志
onbar -r dbs1,dbs2 恢复列出的存储空间。如果数据库离线,则需要列出所有关键存储空间(root dbspace或逻辑日志所在的dbspace)
onbar -r -p -w 执行一次仅物理方式的全系统恢复(没有日志救援)。
onbar -r -t “YYYY-MM-DD HH:MM:SS” -w 执行一次全系统时间点恢复

9.3 onbar混合还原

  混合还原是首先对所有关键存储空间执行冷还原,然后对剩余存储空间执行热还原的过程。因为不是所有存储空间都会在初始冷还原期间还原,所以与对所有存储空间执行冷还原相比,执行混合还原可以让服务器更快地上线。

9.4 onbar逻辑日志还原

  要执行逻辑日志还原,可使用 onbar -r -l 命令。在热还原期间会使用一个临时空间重新放置逻辑日志文件。请确保拥有足够的临时空间来执行逻辑还原。

9.5 onbar可重新开始的还原

  如果在还原期间发生故障,可以从还原失败的位置重新开始还原。RESTARTABLE_RESTORE 参数的默认值为 ON。如果在物理还原期间发生故障,onbar可以在发生故障的级别上在存储空间上重新开始还原。如果在冷逻辑还原期间发生故障,onbar 会从最后一个检查点重新开始执行逻辑还原。可重新开始的还原不适用于热还原的逻辑部分。要重新开始失败的还原,可发出onbar -RESTART 命令。

10. 使用onbar备份注意点

  • 使用onbar工具时,需要配置存储管理器,如PSM或者其他第三方的存储管理器.

  • onbar工具不支持从云存储进行备份或恢复,如果有这方面的需求,建议选择ontape工具。

  • 用PSM作为存储管理器的onbar工具不支持其他主机上的远程备份设备。

更多具体操作,请参考:
基于onbar的备份与恢复实验 - 知识库 / 运维管理 - Sinoregal Tech Forum