配置和实现Informix ON-Bar的备份解决方案
下面给大家介绍下关于数据库的方法解决:
编者注:在DBA 的工作中,备份逐渐成为不常考虑的苦差事。但是,任何一个好的DBA 都可以告诉您,当发生系统故障时,应该恢复数据,这时备份就会突然变成对您以及您的管理链来说唯一最重要的东西。由于备份的完整性至关重要,因此您需要一个可以确保完整性的备份工具。答案是什么?Informix ON-Bar。
随着系统变得越来越大,让备份在限定时间内运行变得越来越困难。您需要一个可以随同其它系统组件一起伸缩的备份解决方案。答案是什么?ON-Bar。
确保恢复的运行时间不会超过手工输入数据所花费的时间是备份的另一个重要方面。如何才能实现这个目标?(是的,您猜对了。)ON-Bar。Informix ON-Bar 备份工具初看起来可能非常吓人(尤其是如果您以前一段时间内一直使用ontape 或onarcHive 进行备份)。
本文将从外行的角度讨论如何配置和实现ON-Bar 解决方案。在本文中,您将学到: ON-Bar 是什么,以及它有什么能力
ON-Bar 简述
ON-Bar 是一个完全可伸缩的备份产品,用于Informix 数据库。它让您可以并行地运行备份和恢复,根据您选择要运行的线程数量,这可以让您大大提高它们的速度。ON-Bar 适用于任何规模的Informix 系统。
如果您想要减少系统备份和恢复时间,那么ON-Bar 能满足您的要求。当机器上正在运行其它处理时,ON-Bar 也可以运行,因为当备份运行时,它不要求数据库的任何部分脱机。但是,当ON-Bar 正在运行时,它确实要消耗大量系统资源,因此建议在运行备份时,尽量减少其它正在运行的处理的数量。
ON-Bar 组件 — 存储管理器
为了让ON-Bar 工作,必须安装并配置存储管理器。存储管理器是为您处理磁带系统的软件。它的一些功能就是将数据写到实际的磁带、跟踪什么数据在哪盘磁带上、将数据分配给各个类别、处理保留时间等。这些通常是比较昂贵的工具,而且需要一些专门知识来进行配置。
存储管理器的示例是Legato 公司的NetWorker 和VERITAS 公司的NetBackup。Informix 也附带一个存储管理器,它的引擎叫作Informix Storage Manager(ISM),它基本上是Legato 公司的NetWorker 的缩小版。对于可以用最小数量的线程备份的拥有四个或更少磁带机的小系统,它可以正常运行。(本文并不讨论设置该产品,本文假设您已经配置了存储管理器。)
ON-Bar 从数据库读取数据,然后直接与存储管理器通信,将数据存储到磁带。存储管理器会跟踪数据的去向,以及该数据要保留多久。
备份策略
在我们直接跳到如何配置ON-Bar 并让它运行之前,我想要简单地讨论一下如何实现适当的备份解决方案。特别地,我将讨论备份级别和它们对保存/恢复次数的影响。如果您一直使用ontape,您可能已经对此有深入了解,但还有一些ON-Bar 特有的考虑事项值得注意。
ON-Bar 提供三种不同级别的备份:
级别0,它备份系统上的所有数据;
级别1,它备份自从上次级别0 备份之后所有已更改的数据;以及
级别2,它备份自从上次级别1 或级别0 备份之后所有已更改的数据。
这些不同的级别可以结合起来使用,以缩短备份操作的运行。在理想情况下,我们只要每晚运行一次级别0,这样就行了。但是,通常需要考虑备份运行时间和磁带数量的实际约束。与级别0 相比,级别1 或级别2 备份运行要快得多;但是,如果您需要恢复,那么它需要更长时间。这是因为您必须首先恢复级别0 数据,然后恢复级别1,最后是级别2。在实现解决方案之前,必须仔细考虑如何权衡备份时间和恢复时间的得失。图1 中显示了典型的备份解决方案。
如果您有足够的时间和足够的备用磁带,我建议您每天都做级别0 备份。这会大大增加您的恢复时间(尤其是对于大的系统),将用去更多磁带,而且将需要更长时间运行备份。ON-Bar 的可伸缩能力非常好,您通常可以通过添加磁带机来以跟上数据的增长速度,足以缩短备份运行时间— 我看到过用ON-Bar 在三小时之内完成1 TB 系统的备份。
ON-Bar 在运行时对查询时间有重大影响(有些查询要花10 倍于原来的时间来运行),因此建议您在没有别人使用机器的时候运行备份。如果不能这样做,那么就在机器上的系统负载最小时运行备份。
要考虑的另一个重要事项是ON-Bar 只提供物理备份;即,它可以应付数据库空间(dbspace)脱机、磁盘故障和引擎故障。如果某人删除表、运行错误的更新,或者删除他们不应删除的许多行,ON-Bar 不会提供保护。我把这些类型的错误叫作逻辑(或用户)错误。
使用ON-Bar 很难恢复逻辑错误。这是因为您不能从ON-Bar 备份中恢复单个表— 如果您想要进行表级备份,必须有计划的将那些表转储到磁盘。如果需要使用ON-Bar 恢复一个表,就需要对整个系统执行时间点(point in time)恢复,该时间点应在发生逻辑错误的时间之前。
需要备份什么?
除了您的数据(运行备份的主要目的)之外,每次运行ON-Bar 备份时,还应该备份其它文件。
$INFORMIXDIR 中有一些 ON-Bar 需要的文件,以便完成恢复。这些文件叫作“紧急引导文件”。它们的用途是在冷恢复(从完全丢失中恢复)事件中代替sysutils 数据库。建议您在ON-Bar 完成每次备份之后,备份这些文件。
大多数存储管理器都有一个Informix 特有的部件,可以为您处理这个问题(您会知道您是否有这个部件,因为您需要为它支付额外费用)。运行ON-Bar 时需要这个Informix 部件。确保正在备份这些文件,这一点很重要,因为这通常是一个可以被关闭的选项。
如果正在使用不会为您备份这些文件的ISM 或存储管理器,我建议每次备份之后,备份整个$INFORMIXDIR。这会确保您不会遗漏某个文件,以致将来发现不能恢复数据。如果不能完成备份整个$INFORMIXDIR,请参阅图2 获取紧急引导文件的列表和我建议您备份的其它一些文件。
sysutils 数据库
sysutils 数据库是ON-Bar 存储所有数据的地方。这个数据库会记住存储管理器标识(存储管理器需要这些标识来检索信息),以及关于备份了什么以及何时备份的信息。使用ON-Bar 时,它是一个至关重要的数据库(就象sysmaster 与数据库之间的关系)。
您将会留意到,当运行备份时,sysutils 的大小会增加。您要定期清除该数据库中的一些数据,可以使用onsmsync 实用程序来执行该操作。如果正在运行一个老版本的Informix,您也许会发现并不存在这个实用程序(这会把我们引入经常升级服务器的话题,但我会把这个问题留到另一个讨论中)。
配置 ON-Bar
#p#分页标题#e#
配置ON-Bar 包括设置ON-Bar 以与存储管理器交互、设置ON-Bar 文件本身,以及设置所有onconfig 参数让ON-Bar 运行。请参阅图3,获取ON-Bar 配置文件列表。
设置ON-Bar 时,要查看的第一个文件是$INFORMIXDIR/etc 中的sm_versions 文件。该文件将存储管理器定义到ON-Bar。该文件中的缺省行将是ISM(存储管理器的Informix 部分),它将明确告诉您要将什么放到这个文件中。
$INFORMIXDIR/bin 中的实际ON-Bar 命令是一个脚本(对于V8.2、V7.3 以及更高版本)。这是设置某些环境变量的好地方,而这些变量是让ON-Bar 运行所需的任何特定于存储管理器的环境变量。如果正在运行Informix Extended Parallel Server?(XPS),另一个设置环境变量的地方就是$INFORMIXDIR/etc/start_worker.sh 文件。当日志满了,或者ON-Bar 需要启动另一个工作线程(worker thread)时,会调用这个文件。
onconfig 文件中的一些参数控制ON-Bar 的操作(请参阅图4)。以下将讨论应当更改其缺省值的参数。
BAR_ACT_LOG 是ON-Bar 日志文件的完全路径名称。这个文件通常叫作bar_act.log。示例是BAR_ACT_LOG /Informix/logs/bar_act.log
。我通常将这个值设置为0,因为ON-Bar 进程的失败通常表示有其它东西出错了,重试不起作用。示例是BAR_RETRY 我让它保留为0,除非需要进一步调试。缺省情况下,ON-Bar 会将大量数据写到日志文件中。
BAR_WORKER_MAX 直接控制ON-Bar 中并行操作的数量。这包括当运行备份或恢复时,要启动多少进程— 如果太多,机器就会停机,如果太少,备份所花的时间将超过它们本该花费的时间。
LOG_BACKUP_MODE 应该设置成NONE、CONT 或MANUAL。NONE 表示永远不备份日志文件,这等价于将日志设备设置成/dev/null。如果这样做,就不能执行逻辑恢复。该方式通常只适用于实例安装— 一旦在系统上有了真正的数据,就必须保存日志。
MANUAL 要求您必须手工运行日志备份(ON-Bar -l),如果您忘了备份,那么就会碰到用完日志的危险。如果您将日志和数据放到不同的两个池中,并且只有一个磁带机,那么这也许是您唯一的选择。
CONT 会在逻辑日志变满之后立即备份它们。ON-Bar 会启动start_worker.sh 脚本来备份日志文件。对于真正的24×7(一天24 小时,一周7 天) 操作,这是正确的选择。如果将数据和日志池设置为同一个,就不必将磁带机专用于日志。如果不这样做,就必须拥有一个专用日志设备,并且里面总是有一盘磁带,才能让这种方式生效。
BAR_SM 是存储管理器标识。这是协同服务器编号,该编号与这些ON-Bar 参数相关联。
BAR_SM_NAME 是存储管理器名称。通常,这是存储管理器所驻留的主机的名称,用于该协同服务器的备份。
BAR_WORKER_COSVR 是协同服务器存储管理器所在的协同服务器。
BAR_DBS_COSVR 表示要将数据库空间备份到的协同服务器。这应该与和它相关联的BAR_SM 相同;否则数据必须跨过交换器到达其正确的协同服务器。
BAR_LOG_COSVR 是要将逻辑日志备份到的协同服务器。这应该与和它相关联的BAR_SM 相同;否则数据必须跨过交换器到达其正确的协同服务器。