简介
编者注:在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)恢复,该时间点应在发生逻辑错误的时间之前。