使用 ON-Bar 配置、命令和语法
本节将介绍 ON-Bar 设置和语法。
理解 ON-Bar 设置步骤
使用 ON-Bar 之前,您需要执行以下操作:
1. 配置存储管理器。
2. 设置适当的 ONCONFIG 配置参数。
3. 确定逻辑日志的备份策略。如果要使用 ON-Bar 备份日志,那么不得 将 LTAPEDEV 设置为 /dev/null(或 Windows 平台上的 NUL)。
请记住,ON-Bar 备份不包含以下内容:
- 分配给盘区但目前尚未使用的存储空间页面。
- 来自镜像数据块的页面,如果相应的主要数据块可用。
- 存储在光盘上的 blobspace 中的大对象。
- 临时存储空间。
从 Informix 11.70 开始,ON-Bar 会自动备份 onconfig、ixbar 和 oncfg 文件,将它们保留在 ON-Bar 归档自身内。但是,要利用这个新 ON-Bar 功能,存储管理器必须兼容 Informix 11.70。如果存储管理器不兼容 Informix 11.70,则可以运行带 -cf no 选项的 ON-Bar 命令来忽略对关键文件的备份。例如,可以使用 onbar -b -L 0 -cf no。
必须安装和配置存储管理器,然后才能使用 ON-Bar 执行备份和还原。存储管理器控制用于备份和还原的存储设备和介质,而 ON-Bar 则负责管理数据移动以及与 Informix 和存储管理器之间的通信。请参阅存储管理器文档,了解相关的配置信息。请注意,ON-Bar 必须使用第三方存储管理器制造商提供的 XBSA 库版本。
请记住,在使用 onconfig 文件中的 BAR_BSALIB_PATH 配置参数设置 XBSA 库的路径名时,需要指定绝对路径名。不能对 BAR_BSALIB_PATH 使用相对路径名。
理解 XBSA 库
ON-Bar 使用 X/Open Backup Services 应用编程接口 (XBSA) 与存储管理系统交换信息。可交换两种类型的信息:控制数据和备份数据。
控制数据 用于验证 ON-Bar 和 XBSA 是否兼容,从而确保对象按正确的顺序还原到了适当的 Informix 系统,并跟踪备份对象的历史记录。备份数据 或还原数据 是来自备份或还原的存储空间、blobspace 或日志文件的实际数据。可使用 XBSA 事务通过 ON-Bar 在 Informix 服务器与存储管理器之间传输数据库对象(存储空间或逻辑日志)。该事务是一种保持数备份和还原数据一致性的方式。它可保证备份或还原对象中的所有数据都已在 Informix 服务器和存储管理器之间传输,或者没有传输任何数据。每个会话可执行多个 XBSA 事务,每个服务器可执行多个并发会话。
了解 ON-Bar 组件
本节将介绍 ON-Bar 组件。
Sysutils 数据库
ON-Bar 使用 sysutils 数据库来管理备份和还原目录信息。sysutils 数据库是在数据库服务器初始化期间在根存储空间中自动创建的。ON-Bar 在每次执行备份时都会更新 sysutils 数据库,并在热还原期间读取所需的信息。表 1 给出了一些 sysutils 表和其中存储的信息。
表 1. sysutils 数据库的内容
表名称 | 说明 |
bar_action | ON-Bar 将每个存储空间和逻辑日志视为备份对象。bar_action 表保存备份和还原的历史信息。它存储尝试对一个对象执行的所有备份和还原操作,但在冷还原期间除外。 |
bar_instance | 每个成功备份都会更新此表。ON-Bar 在还原期间使用此信息。 |
bar_object | 包含每个数据库服务器中至少会对其执行一次备份尝试的所有存储空间和逻辑日志的列表。 |
bar_server | 跟踪与备份对象关联的 Informix 数据库服务器。 |
紧急引导文件包含 sysutils 数据库中针对每个备份对象的所有信息。在 Informix 服务器处于离线状态时,ON-Bar 会在冷还原期间使用此信息(因此无法访问 sysutils 数据库)。在每次成功执行物理或逻辑日志备份后,都会更新紧急引导文件。紧急引导文件位于 INFORMIXDIR 下的 etc 子目录中,它的文件名为 ixbar.servernum,其中 servernum 是 SERVERNUM 配置参数的值。该文件拥有自己的格式,更改它可能导致 ON-Bar 发生故障。清单 2 给出了 ixbar 文件的一个示例。
清单 2. 紧急引导文件的示例
ids11 rdbs R 0 1 0 766 0 2011-07-01 09:10:49 1 31 845343 1 0 – – 31 1449 4128 1 ids11 16 L 0 2 0 767 0 2011-07-01 09:10:51 1 0 0 2 0 – – 16 5711 0 0 ids11 17 L 0 3 0 768 0 2011-07-01 09:10:52 1 0 0 3 0 – – 17 4928 5711 0 |
表 2 描述了紧急引导文件中的每一个列。
表 2. 紧急引导文件格式
列 | 说明 |
Server name | Informix 数据库服务器的名称 |
Storage space name or log unique ID | 备份的存储空间的名称或逻辑日志的惟一 ID |
Object type | 备份对象的类型。B=包含 BLOB 的存储空间、CD=关键存储空间、ND=非关键存储空间、R=关键存储空间、L=逻辑日志 |
Whole archive | 一个布尔值,表示这是否是一个全系统备份(使用 -w 标志执行的备份) |
Action Id | 一个序列值,将 sysutils 数据库中的条目链接在一起 |
Level | 物理备份级别,比如 0、1 或 2 级备份 |
Copy ID high | 存储管理器复制 ID 的高位值 |
Copy ID low | 存储管理器复制 ID 的低位值 |
Start date | 备份对象的开始日期和时间 |
Bar version | ON-Bar 版本(目前为 1) |
First log | 还原一个存储空间需要的第一个日志 |
Insert time | 归档检查点时间 |
Required action ID | 如果这是非零值,此操作 ID 必须在当前操作 ID 之前重放(一个前提操作 ID)。 |
Verified | 一个 Boolean 值,表明对象已经过验证 |
Verify date | 对象验证日期 |
Checkpoint log | 日志包含归档检查点 |
Seal time | 关闭日志的时间 |
Previous seal time | 关闭前一个日志的时间 |
Backup order | 一个 Boolean 值,表明存储空间的大小顺序 |
Informix 提供了 onsmsync 实用程序来同步 sysutils 数据库、紧急引导文件和存储管理器目录的内容。onsmsync 可用于清除不再需要的备份信息。
使用 ON-Bar 配置参数
ON-Bar 使用了一些配置参数。表 3 列出了 ON-Bar 使用的配置参数。
表 3. ON-Bar 备份和还原配置参数
参数 | 说明 |
BAR_ACT_LOG | 使用一个 ON-Bar 活动日志文件的现有目录指定完整路径名。在 ON-Bar 备份和还原活动期间,会使用合适的消息和错误更新活动日志。 |
BAR_DEBUG | ON-Bar 提供了一种机制来调试备份和还原故障。此参数定义了调试级别,这决定了在 ON-Bar 操作期间生成的调试信息的细节。更高的值会生成更详细的信息。该参数值的范围是 0-9。默认值为 0,表示未启用调试。启用 BAR_DEBUG 对 ON-Bar 性能具有很大的影响。调试级别可在 ON-Bar 运行时动态更改。通过仅在需要时设置较高的调试级别,可节省大量时间和磁盘空间。 |
BAR_DEBUG_LOG | 使用一个 ON-Bar 调试日志文件名称的现有目录指定完整路径名。 |
BAR_MAX_BACKUP | 此配置参数定义并行程度,确定要并发运行的备份和还原进程数量,包括备份和还原完整系统的进程。设置此参数,可显著调整备份和还原性能。达到运行进程的 BAR_MAX_BACKUP 数量后,只有在运行的进程完成其操作后才会启动更多进程。BAR_MAX_BACKUP 设置确定了存储管理器看到的备份流数量,请咨询存储管理器管理员了解合适的值。可以将 BAR_MAX_BACKUP 设置为 -1,以便在备份和还原期间基于存储空间编号而不是大小来更改存储空间顺序。 |
BAR_RETRY | 指定 ON-Bar 应尝试一个备份或还原操作的次数。在只需要还原一个或少数表时,表级还原可大大减少时间。默认值为 1。 |
BAR_NB_XPORT_COUNT | 指定每个备份或还原进程用于与 Informix 服务器交换数据的共享内存数据传输缓冲区数量。此参数的值会影响 ON-Bar 性能。 |
BAR_XFER_BUF_SIZE | 以页面为单位指定传输缓冲区的大小。用于备份和还原的缓冲区大小必须相同。该值应该设置您的系统所允许的最大值(对于 2K 基础页面大小数据库服务器系统,此值为 31;对于 4K 基础页面大小数据库服务器系统,此值为 15)。 |
BAR_PROGRESS_FREQ | 指定进度消息在备份和还原操作的 bar 活动日志中出现的频率。默认值 0 表示 ON-Bar 不向 bar 活动日志写入任何进度消息。要监视进度,该值不得小于 5 分钟。 |
BAR_PERFORMANCE | 指定要在针对备份和还原操作的 bar 活动日志中报告的性能统计信息类型。有效值为 0、1、2 或 3。0=关闭性能监视(默认值);1=显示用于在服务器和存储管理器之间传输数据的时间;2=以亚秒级精确度显示时间戳;3=显示时间戳和传输统计信息。 |
BAR_HISTORY | 指定在使用 onsmsync 工具让旧备份过期时,sysutils 数据库是否维护备份历史。有效值为 0 或 1。0=从 sysutils 数据库删除过期备份对象的记录;1=将过期备份对象的记录保留在 sysutils 数据库中。 |
BAR_BSALIB_PATH | 指定不同存储管理器的共享库。存储管理器和 ON-Bar 依靠共享库来彼此交互。 |
BAR_SIZE_FACTOR | 增大存储空间大小的估算值,然后将该信息传递给存储管理器。一般而言,备份是在线完成的;因此可在备份期间更改页面数量。如果实际备份大小比所提供的估算值大得多,一些存储管理器会失败。以原始存储空间大小的百分比形式获取 BAR_SIZE_FACTOR 值,然后将它添加到估算值中,之后才可以将它传送给存储管理器。 |
BAR_CKPTSEC_TIMEOUT | 如果主要服务器上的检查点未在超时时间内完成,远程独立 (RS) 辅助服务器上的外部备份可能失败。可以通过将此配置参数设置为更高的值来增加超时期限。 |
对 ON-Bar 性能影响最大的 3 个配置参数是:
- BAR_MAX_BACKUP
- BAR_XFER_BUF_SIZE
- BAR_NB_XPORT_COUNT
使用 ON-Bar 备份 Informix 数据
可使用 ON-Bar 执行以下类型的备份:
- 标准备份
- 全系统备份
- 物理备份
- 逻辑日志备份
标准 ON-Bar 备份
在标准备份中,数据库服务器在备份每个存储空间时都会为其创建一个检查点。为了保持数据一致性,必须从标准备份还原逻辑日志。可以使用 BAR_MAX_BACKUP 配置参数设置要运行的并行 ON-Bar 进程的数量,或者可以通过将该参数设置为 1,强制某个标准备份以顺序备份的形式运行。ON-Bar 同时支持存储空间的全系统(0 级)和增量(1 和 2 级)标准备份。表 4 给出了标准 ON-Bar 备份的一些示例。
表 4. 标准 ON-Bar 备份
命令 | 说明 |
onbar -b -L 0 | 对所有在线、非临时的存储空间和使用的逻辑日志执行标准的 0 级备份 |
onbar -b -L 0 dbs1 dbs2 | 对特定的存储空间(比如两个名为 dbs1 和 dbs2 的存储空间)和逻辑日志执行标准的 0 级备份 |
onbar -b -L 1 | 执行标准的 1 级增量备份 |
全系统 ON-Bar 备份
全系统备份 (onbar -b -w) 基于单个检查点对所有存储空间和逻辑日志执行顺序备份或并行备份。无需逻辑日志便可还原全系统备份,因为所有存储空间中的数据在此备份中都是一致的。可以结合执行一次增量(1 或 2 级)全系统备份和一次 0 级全系统备份。表 5 提供了全系统 ON-Bar 备份的示例命令。
表 5. 全系统 ON-Bar 备份
命令 | 说明 |
onbar -b -w -L 0 | 对所有在线的、非临时的存储空间和使用的逻辑日志执行标准的 0 级备份 |
onbar -b -w -L 1 | 执行 1 级全系统备份 |
ON-Bar 物理备份
物理备份仅备份存储空间。可以使用 ON-Bar 对特定或所有存储空间执行物理备份。例如,onbar -b -p 对所有存储空间执行物理备份。
ON-Bar 逻辑日志备份
如果执行标准备份,则必须备份逻辑日志,因为必须同时还原存储空间和逻辑日志。表 6 给出了逻辑日志备份的类型。
表 6. ON-Bar 逻辑日志备份
命令 | 说明 |
onbar -b -l | 对写满的逻辑日志文件手动执行备份 |
onbar -b -l -c | 对当前逻辑日志文件以及其他写满的逻辑日志文件执行备份 |
onbar -b -l -C | 启动连续逻辑日志备份 |
在冷还原中,ON-Bar 会在还原根存储空间之前自动备份逻辑日志,除非仅指定了一次物理还原。为了避免数据丢失,在包含逻辑日志的设备仍然可用时,或者在您计划仅执行一次物理还原的时候,可以在开始冷还原之前手动救援逻辑日志。例如,可以使用 onbar -l -s 手动救援逻辑日志。
验证 ON-Bar 备份
可以使用 表 7 中的示例验证 ON-Bar 备份。逻辑日志未验证。
表 7. 验证 ON-Bar 备份
命令 | 说明 |
onbar -v | 验证对所有存储空间的一次备份。逻辑日志未验证。这适用于标准和全系统备份。 |
onbar -v -f dbsfile | 验证一个名为 dbsfile 的文件中列出的存储空间的备份。 |
onbar -v -t “<YYYY-MM-DD HH:MM:SS>” | 执行一次时间点验证。 |
伪 ON-Bar 备份
当您需要更改一个数据库上的日志模式来激活新创建的 blobspace 的时候,或者让各个表在高性能加载器 (HPL) 以显式模式加载数据后可供用户使用的时候,伪备份非常有用。不能从伪备份执行任何还原。可使用 onbar -b -F 命令执行伪备份。无论是否存在存储管理器应用程序,都可运行该命令。如果指定了任何存储空间,则会忽略它们。
使用 ON-Bar 还原
可以使用 ON-Bar 执行以下类型的还原:
- 冷还原
- 热还原
- 混合还原
- 逻辑日志还原
- 可重新开始的还原
ON-Bar 冷还原
如果由于一个磁盘故障而导致关键存储空间损坏,从而出现数据库服务器故障,则必须对所有关键存储空间执行冷还原。要执行冷还原,数据库服务器必须处于离线状态。冷还原首先还原所有关键的存储空间,然后还原非关键存储空间,最后还原逻辑日志。完成这些还原操作后,数据库服务器会进入休眠模式。可使用 onmode 命令让其处于联线状态。还需要对以下任务之一执行冷还原:
- 全系统还原
- 时间点还原
- 日志点还原
- 导入的还原
- 重命名数据块还原
全系统还原需要进行一个全系统备份,尽管它不需要还原逻辑日志。如果执行仅使用物理方式的全系统还原,在完成还原后,数据库服务器将进入快速恢复模式。可以使用 onmode 命令执行逻辑还原或让服务器处于联线状态。表 8 给出了 ON-Bar 全系统还原的示例。
表 8. 全系统还原
命令 | 说明 |
onbar -r -w | 执行具有自动日志救援功能的全系统还原 |
onbar -r | 执行全系统备份的标准还原 |
onbar -r -p -w | 执行仅物理方式的全系统还原(没有逻辑救援) |
onbar -r -t <time> -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)。
ON-Bar 热还原
如果存储空间关闭并且数据库服务器未处于离线状态,则可以在热还原中还原非关键存储空间。表 9 给出了执行热还原的示例。
表 9. 热还原
命令 | 说明 |
onbar -r | 对所有关闭的存储空间执行一次热还原 |
onbar -r | 对所有关闭的存储空间执行一次热还原 |
onbar -r -p -w | 执行一次仅物理方式的全系统还原(没有日志救援) |
onbar -r -t “<YYYY-MM-DD HH:MM:SS>” -w | 执行一次全系统时间点还原 |
热还原需要将逻辑日志前滚到当前的逻辑日志,所以无法使用它来还原意外丢弃的表或删除的数据。
ON-Bar 混合还原
混合还原是首先对所有关键存储空间执行冷还原,然后对剩余存储空间执行热还原的过程。因为不是所有存储空间都会在初始冷还原期间还原,所以与对所有存储空间执行冷还原相比,服务器可以更快地上线。
ON-Bar 逻辑日志还原
要执行逻辑日志还原,可使用 onbar -r -l 命令。在热还原期间会使用一个临时空间重新放置逻辑日志文件。请确保拥有足够的临时空间来执行逻辑还原。
ON-Bar 可重新开始的还原
如果在还原期间发生故障,可以从还原失败的位置重新开始还原。RESTARTABLE_RESTORE 参数的默认值为 ON。如果在物理还原期间发生故障,ON-Bar 在发生故障的级别上在存储空间上重新开始还原。如果在冷逻辑还原期间发生故障,ON-Bar 会从最后一个检查点重新开始执行逻辑还原。可重新开始的还原不适用于热还原的逻辑部分。要重新开始失败的还原,可发出 onbar -RESTART 命令。
查看 ON-Bar 活动日志
只要发生备份或还原活动或错误,ON-Bar 就会向活动日志写入一条简短描述。在 onconfig 文件中,可以通过设置参数 BAR_ACT_LOG 来执行 ON-Bar 活动日志文件的内容。
您可以使用 ON-Bar 命令查看最新的 ON-Bar 活动。只有拥有执行备份和还原操作的权限的用户才可以使用此 ON-Bar 选项。默认情况下,它显示 ON-Bar 活动日志中最后 20 行记录。可以通过该命令提供其他参数来更改该行数。它也以递归模式显示信息。表 10 提供了显示 ON-Bar 活动日志内容的 ON-Bar 命令的示例。
表 10. 活动日志命令
命令 | 说明 |
onbar -m | 显示 ON-Bar 活动日志中的最后 20 行 |
onbar -m 40 -r 3 | 每隔 3 秒显示 ON-Bar 活动日志中的最后 40 行 |
使用 ON-Bar 查看逻辑日志
ON-Bar 支持查看已备份的逻辑日志。这意味着您可以查看已备份且未存在于数据库服务器上的逻辑日志。这类似于使用 onlog 实用程序查看 ontape 实用程序备份的逻辑日志。必须存在可用来查看备份的逻辑日志的存储管理器。此命令的输出会显示到 stdout。
不能使用 ON-Bar 命令来查看尚未备份的逻辑日志。必须使用 onlog 实用程序查看数据库服务器磁盘上仍然可用的逻辑日志。例如,onbar -P -n 289 命令显示来自惟一编号为 289 的日志的逻辑日志记录的较长清单。
本教程的 archecker 一节中将介绍如何使用 ON-Bar 来验证备份。