onbar -r 数据恢复命令详解

要执行完整的复原,请使用 onbar -r 命令。 要运行 ON-Bar 命令,您必须是用户 root 或用户 informix,或者是 UNIX 上 bargroup 组的成员或…

要执行完整的复原,请使用 onbar -r 命令。

阅读语法图跳过直观语法图
执行复原

>>-onbar-- -r--------------------------------------------------->

>--+---+-----+--+-----+--+-----+--+-------------+--+----------+--+---------------+---+-><
   |   '- -w-'  '- -p-'  '- -e-'  +- -t--"time"-+  +- -O------+  +- -f--filename-+   |   
   |                              '- -n--log----'  '-| 重命名块 |-'  | .-------.     |   |   
   |                                                             | V       |     |   |   
   |                                                             '---space-+-----'   |   
   '- -l--+-------------+------------------------------------------------------------'   
          +- -C---------+                                                                
          +- -X---------+                                                                
          +- -t--"time"-+                                                                
          '- -n--log----'                                                                

重命名块

|--+- -rename-- -f--filename------------------------------------------------------+--|
   | .--------------------------------------------------------------------------. |   
   | V                                                                          | |   
   '--- -rename-- -p--old_path-- -o--old_offset-- -n--new_path-- -o--new_offset-+-'   

表 1. onbar -r 命令的选项。
选项 描述
-r 指定复原。如果数据库服务器处于脱机状态,ON-Bar 将执行冷复原。如果数据库服务器处于联机、停顿或快速恢复方式,ON-Bar 将执行热复原。

在冷复原中,-r 选项会复原所有存储空间,回收并复原逻辑日志。在热复原中,-r 选项复原所有脱机的存储空间并复原逻辑日志。

必须先指定 -r 选项。

space 指定将备份哪些存储空间,以空格分隔的一个或多个数据库空间、Blob 空间或智能大对象空间名称的列表表示。

ON-Bar 仅复原列出的存储空间。如果数据库服务器处于脱机状态,必须列出所有关键数据库空间。不能指定临时空间。

-C 从当前逻辑日志磁带中连续复原逻辑日志,而不发送安装磁带的提示。

服务器处于暂挂日志复原状态,在最后一个可用日志复原后,该命令依然存在。如果日志存在于多个磁带中,那么服务器将发出提示。配置参数 RESTARTABLE_RESTORE 不会影响连续日志复原。

-e 指定外部复原。在外部复原存储空间后,运行 onbar -r -e 命令。 将存储空间标记为已物理复原,复原逻辑日志并使存储空间联机。
-f filename 指定用于列出要复原或重命名的存储空间的文本文件的路径和文件名。

使用该选项可避免输入一长串存储空间。

有关更多信息,请参阅文件中的存储空间的列表

-l 指定仅逻辑复原。复原并前滚逻辑日志。逻辑复原仅应用于已物理复原的存储空间。

要点: 为提高性能,在热复原期间以并行方式重放逻辑日志事务。使用 ON_RECVRY_THREADS 配置参数来设置并行线程数。要在冷复原期间以并行方式重放逻辑日志事务,请使用 OFF_RECVRY_THREADS 配置参数。有关更多信息,请参阅《IBM Informix 性能指南》。
-n log 指示冷复原中要复原的最后一个逻辑日志的唯一标识。数据库服务器必须处于脱机状态。

要查找唯一标识,请使用 onstat -l 命令。

日志点复原是特殊的时间点复原。必须在日志点复原中复原所有存储空间以保持数据的一致性。如果指定的日志后存在任何逻辑日志,ON-Bar 不会复原这些日志,它们的数据将丢失。如果特定逻辑日志应用于多个时间线,那么 ON-Bar 将使用最新的时间线。

不能与 -p 选项一起使用。

-n new_path 指定块的新路径。与 -rename 选项一起使用。
-O 覆盖内部错误检查。允许联机存储空间的复原。强制重新创建不再存在的块文件。

用来覆盖内部错误检查以执行以下任务:

  • 强制联机存储空间的复原。如果要复原的存储空间的列表中某个存储空间是联机的,那么 ON-Bar 将使该存储空间脱机,然后将其复原。如果此操作成功,那么 ON-Bar 将完成并带有退出码 177。
  • 强制创建不存在的块文件。如果所复原的存储空间的块文件不再存在,那么 ON-Bar 将重新创建该文件。新创建的块文件是格式化的磁盘空间,不是原始磁盘空间。如果 ON-Bar 成功地重新创建了缺少的块文件,那么 ON-Bar 将完成并带有退出码 179。
  • 如果缺少关键存储空间,那么强制冷复原继续进行。在冷复原中,ON-Bar 将检查每个关键空间是否正在复原。此检查偶尔会引起假警告。如果警告有效,那么复原失败。如果警告为 false 并且 ON-Bar 成功复原了服务器,那么 ON-Bar 将完成并带有退出码 115。

对整个系统的复原使用 -O 选项仅仅是为了重新创建丢失的块文件。当数据库服务器处于联机状态时不能使用 onbar -r -w -O 命令,因为在整个系统复原期间无法让根数据库空间脱机。

-o new_offset 指定已重命名的块的偏移量。与 -rename 选项一起使用。
-o old_offset 指定要重命名的块的偏移量。 与 -rename 选项一起使用。
-p 指定仅物理复原。

除非您使用整个系统的复原,否则在可以访问数据之前必须在逻辑复原后执行物理复原。 该选项关闭冷复原前的自动日志回收。如果 LTAPEDEV 配置参数设置为 /dev/nullNUL,那么必须在复原期间使用 -p 选项。

不能与 -n 选项一起使用。

-p old_path 指定要重命名的块的路径。 与 -rename 选项一起使用。
-rename 在冷复原期间重命名一个或多个块。数据库服务器必须处于脱机状态。

如果需要将存储空间复原到与完成备份的磁盘不同的磁盘上,该选项很有帮助。可以重命名任意类型的块,包括关键块和镜像块。您可以重命名具有 0 级备份的块。

-ttime 指定在冷复原中要从逻辑日志复原的最后一个事务的时间。数据库服务器必须处于脱机状态。

指定的所有存储空间都将复原到相同的时间点。但是,如果先执行物理复原,然后执行逻辑复原,那么该逻辑复原可以复原到更晚的时间点。例如,您可能检测到当前备份损坏,且需要复原先前备份。在这种情况下,请使用先前备份的时间戳记启动物理复原,然后将逻辑恢复启动到更新的时间戳记。

时间点复原通常用来从错误复原。例如:如果您意外删除了数据库,那么可以将服务器复原到删除数据库之前的时间点。

要确定时间点复原的相应日期和时间,请使用 onlog 实用程序。 onlog 实用程序输出显示了逻辑日志中已落实事务的日期和时间。在复原命令中指定的时间后发生的所有数据事务将丢失。

使用引号括起日期和时间。英语语言环境的格式是 yyyy-mm-dd hh:mm:ss。如果设置了 GL_DATETIME 环境变量,那么必须根据该变量指定日期和时间。

-w 从上次整个系统的备份对所有存储空间和逻辑日志执行整个系统的复原。数据库服务器必须处于脱机状态。

整个系统的复原完成后,服务器处于停顿方式。

如果指定 onbar -r -w 而不带整个系统的备份,将返回返回码 147,因为 ON-Bar 找不到作为整个系统的备份一部分而备份的任何存储空间。

-X 停止连续逻辑日志复原。将服务器保留在逻辑复原暂挂状态中的停顿方式下,而不复原其他日志。

用途

您可以复原存储在原始文件和格式化文件中的存储空间。如果系统包含主存储空间和镜像存储空间,那么复原(外部复原除外)期间 ON-Bar 将同时写入主块和镜像块。 不能指定复原临时空间。复原关键数据库空间(例如根数据库空间)时,数据库服务器重新创建临时数据库空间,但它们为空。

如果 BAR_MAX_BACKUP 配置参数设置为大于 1 的值,那么 ON-Bar 将并行复原存储空间。要加速复原,您可以添加更多 CPU 虚拟处理器。

在以下情况下,当数据库服务器处于联机状态时,可以在热复原中复原非关键存储空间:

  • 存储空间处于联机状态,但它的一个块处于脱机、正在复原或不一致状态。
  • 存储空间处于脱机或关闭状态。

您无法同时执行多个热复原。 如果您需要复原多个存储空间,请对 ON-Bar 指定要复原的存储空间集,或通过不显式指定任何空间来允许 ON-Bar 复原所有关闭的存储空间。

提示: 要在复原中得到更快的性能,请为备份存储空间和逻辑日志指定不同的存储设备。如果物理备份和逻辑备份在存储介质上混合在一起,这将花费较长的时间用于在复原期间扫描介质。

在某些情况下,您可能想分阶段地执行复原。如果有多个设备可用于复原,那么可以分别或同时复原多个存储空间,然后再执行单一的逻辑复原。

缺省情况下,ON-Bar 复原最新的备份。如果不希望复原最新的备份,可以从较旧备份中进行复原:例如,在备份验证失败或备份介质丢失时。 您可以执行时间点复原或日志点复原。 或者,您也可以使存储管理器中的错误备份到期,运行 onsmsync 命令,然后从较旧备份中复原。如果意外删除了某存储空间,您可以使用时间点复原或日志点复原来将其复原。

通过使用 -O 选项,可以强制执行联机存储空间的复原(除了关键数据库空间以外)。数据库服务器开始复原每个存储空间之前会自动将其关闭。让存储空间脱机以确保在复原进程中用户不会试图更新该空间中的表。

可以在冷复原期间使用 ON-Bar 指定新块路径和偏移量来重命名块。如果需要将存储空间复原到与完成备份的磁盘不同的磁盘上,该选项很有帮助。可以重命名任意类型的块,包括关键块和镜像块。

示例:执行整个系统的复原

整个系统的复原是冷复原,必须在服务器处于脱机状态时执行。以下命令复原整个系统的备份:

onbar -r -w复制代码

示例:复原特定存储空间

以下示例复原两个特定存储空间 fin_dbspace1fin_dbspace2

onbar -r fin_dbspace1 fin_dbspace2复制代码

示例:分阶段执行热复原

以下命令执行物理复原,备份逻辑日志,然后执行逻辑复原:

onbar -r -p
onbar -b -l
onbar -r -l复制代码

示例:时间点复原

以下命令将数据库服务器数据复原到其在特定日期和时间的状态:

onbar -r -t “2011-05-10 11:35:57”复制代码

在此示例中,复原将重放在指定时间或指定时间之前落实的事务,包括带有落实时间 11:35:57 的所有事务。正在处理但未在 11:35:57 之前落实的事务将回滚。

示例:法语语言环境中的时间点复原

法语语言环境 fr_fr.8859-1 的缺省日期和时间格式使用格式“%A %.1d %B %iY %H:%M:%S”。

以下命令将数据复原到针对法语语言环境格式化的特定时间点:

onbar -r -t "Lundi 6 Juin 2011 11:20:14"复制代码
可以将 GL_DATETIME 设置为使用日期、月份、两位数表示的年份、小时、分钟和秒的不同日期和时间格式。例如:

%.1d %B %iy %H:%M:%S复制代码
以下命令通过为法语语言环境指定两位数年份来复原到特定时间点:

onbar -r -t "6 Juin 11 11:20:14"复制代码

示例:分阶段的时间点复原

以下命令执行到相同时间点的物理复原和逻辑复原:

onbar -r -p -t "2011-05-10 11:35:57"
onbar -r -l -t "2011-05-10 11:35:57"复制代码

示例:复原已删除的存储空间和块

假设某个事务删除了名为 dbspace1 的存储空间,并在时间 2011-05-10 12:00:00 删除了块。以下命令在服务器处于脱机状态时复原该存储空间并重新创建已删除的块:

onbar -r -t "2011-05-10 11:59:59" -O复制代码

作者: admin

为您推荐

返回顶部