SinoDB备份恢复工具之ontape

  ontape是SinoDB数据库的备份恢复工具之一,可以记录、备份与恢复数据。因为不涉及到存储管理器,所以可以轻松实现其他备份方法,比如备份到 STDIO(标准输出)或备份到云。

1. ontape功能特性

  • 备份数据库服务器实例
  • 支持增量备份;
  • 支持备份和恢复逻辑日志;
  • 可以对整个数据库实例进行恢复,也可以只恢复特定的dbspace;
  • 支持标准的I/O读写,如磁带、文件或目录;
  • 支持备份到STDIO;
  • 支持备份到云;
  • 更改数据库的日志记录方式;
  • 无法直接使用ontape命令进行基于时间点的恢复;
  • ontape与onbar两个命令的数据备份不兼容。

2. 配置onconfig参数

  当使用ontape进行备份时,可以在onconfig文件中为其指定默认的备份设备路径,并指定其块的大小以及最大容量等相关参数,参数说明如下:

参数名称 说明
TAPEDEV 用于存储空间备份的目录文件系统或者磁带设备的绝对路径名称,指定ontape在归档过程中写入存储空间数据的目标位置,以及ontape在恢复过程中读取数据的源位置,当被设置为STDIO时。数据库备份时将向设备进行标准的I/O输出。
TAPEBLK 指定备份的块大小,单位KB。块大小在备份和还原期间必须相同。
TAPESIZE 用于指定备份和还原设备的最大大小,单位KB。将它设置为 0 会使用全部容量。
LTAPEDEV 指定用于逻辑日志备份和还原的磁带设备、目录或文件名。
LTAPEBLK 指定用于逻辑日志备份和还原期间的写入操作的设备的块大小。块大小在备份和还原期间必须保持相同,单位KB。
LTAPESIZE 指定用于逻辑日志备份设备的最大大小,单位KB。将它设置为 0 会使用全部容量

3. 使用ontape备份存储空间和逻辑日志

存储空间备份
   ontape 支持存储空间的 0、1 和 2 级备份。它按照以下顺序备份存储空间:根存储空间、物理和逻辑日志存储空间、blobspace、智能 blobspace 以及其他存储空间。

  在开始使用 ontape 创建备份之前,请确保 TAPEDEV 参数或-t 所指定的位置支持写入。

  • ontape -s -L 0:零级备份,备份所有的dbspace;

  • ontape -s -L 1:一级备份,备份所有的dbspace;

  • ontape -s -L 2:二级备份,备份所有的dbspace;

  • ontape -s -L 0 -t /backup:零级备份,备份所有的dbspace,并指定备份目录为/backup;

  备注:用ontape备份生成的备份文件名为:hostname_servernumber_Ln,日志文件名为:hostname_servernumber_Lognnnnnnnnnn,可以通过设置环境变量IFX_ONTAPE_FILE_PREFIX来覆盖永久文件名的前缀部分(hostname_servernumber)。

逻辑日志备份

  • ontape -a [-d]:手动逻辑日志备份。-d 指示执行ontape,同时没有交互提示信息

  • ontape -c:指定在逻辑日志写满后连续自动进行备份,-c选项需要ontape始终处于运行状态,并且需要专门的设备来存储逻辑日志。

4. 使用ontape恢复数据

冷恢复

  • ontape -r:冷恢复所有的dbspace;

  必须在数据库服务器处于离线状态时执行冷恢复。在进行冷恢复时,首先需要关闭数据库,然后执行ontape -r命令。在冷恢复开始时,然ontape 会提示用户挂载包含零级备份的磁带。当从一个目录还原时,ontape 会提示您输入目录的路径名。

  在物理恢复完成后,ontape将询问用户是否需要救援逻辑日志,若回答"y",将对逻辑日志进行备份。

  在零级备份恢复完成后,ontape将询问用户是否需要恢复一级或二级备份,若回答"y",则需要插入包含一级或二级备份的磁带。

  还原结束时,数据库服务器会保持在静默模式下,可以执行onmode -m将数据库切换到在线模式。

使用 ontape 执行重命名数据块还原

  可在冷还原期间使用 ontape 重命名数据块。但是,请确保在重命名数据块还原完成后执行 0 级备份。

  ontape -r -rename -p /chunk_old -o 0 -n /chunk_new -o 20000

path: /chunk_old and offset: 0 重命名为 path: /chunk_new )并将偏移设置为 20000。

热恢复

  • ontape -r -D [dbs1 dbs2…]:热恢复dbspace dbs1、dbs2等;

  当服务器处于在线模式,并且需要恢复的不是关键存储空间(root dbspace或逻辑日志所在的dbspace)时,才可以使用热恢复。可以在冷恢复中还原关键存储空间之后,对选定的存储空间(比如 dbs1 和 dbs2)执行热恢复。

混合还原
  当执行混合还原时,可以仅还原关键的存储空间,此外,还可以在冷还原期间还原一个或多个非关键存储空间。以后,可以对非关键存储空间执行热还原。

ontape -r -D rootdbs llogdbs plogdbs
ontape -r -D dbspace1 dbspace2

逻辑日志恢复

  • ontape -l :逻辑日志恢复;

  在执行混合还原时,必须还原最后一次 0 级备份之后备份的所有逻辑日志文件。在执行完整还原时,可以选择是否还原逻辑日志文件,也可以在之后使用ontape -l命令执行逻辑日志还原。

逻辑日志救援
  在执行还原之前将逻辑日志文件从磁盘备份到存储介质的过程称为逻辑日志救援*。在系统失败后可能需要执行还原操作;但是一些逻辑日志数据可能还未备份到备份介质。必须对这些数据进行救援,因为将系统恢复到故障时间点需要它们。在系统失败后执行的冷还原会自动尝试救援任何日志,但也可以选择在冷还原之前手动救援日志。ontape 救援日志命令是 ontape -S

5. ontape备份注意点

  • 在执行ontape备份前要对Onconfig文件中的TAPEDEV、TAPEBLK、TAPESIZE参数进行正确的设置。

  • 为了缩短数据恢复时间,应以进行0级为主,尽量减少1级和2级备份。

  • 如果需要将ontape备份的数据恢复到另一台服务器上时,要求两台服务器机型、操作系统、onconfig配置文件及非临时分配的Dbspace磁盘空间数量和大小必须一致,否则数据不能正常恢复。

  • 必须保证有足够可用的逻辑日志文件。如果剩余的逻辑日志空间小于单个逻辑日志的50%,数据库将拒绝执行备份操作。必须先备份已使用过的逻辑日志,然后才能进行数据备份。

  • 保留onconfig文件副本。在进行0级备份后,应备份onconfig文件,因为在恢复0级备份时需要读onconfig文件信息,如果onconfig配置被修改,数据恢复将失败,如果恢复此0级备份,必须恢复当时的配置。

  • 备份可以在online联机或静止方式下进行,在备份过程中不能改变online运行方式,否则备份会被中断。

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