所有数据库更改(插入、更新或删除)都记录在 DB2 事务日志中。事务日志主要用于崩溃恢复和在故障之后恢复系统。正如我们已经讨论的,它们在复制中发挥作用。此外,它们还可用于另一个高可用性解决方案 日志传送(log shipping)。该 HA 方案类似于数据复制选项。它要求辅助系统准备好在主系统发生故障时进行接管。管理员通过恢复主系统数据库的备份来创建这个辅助系统。通过恢复主系统的数据库备份,备份系统将处于前滚暂挂状态。事务日志从主系统转移到辅助系统,并用于使数据库前滚以完成事务。如果发生故障,管理员应停止前滚过程,并且使数据库联机。
可以用几种方式完成转移日志文件的过程。主要方法是使用 DB2 的 用户出口(user exit)工具。用户出口是当事务日志已满并准备归档时调用的可执行应用程序。数据库引擎将日志文件传递给用户出口,用户出口逻辑将执行所有必需的工作。用户出口可以制作日志的副本、将它发送到磁带设备、调用另一个程序或执行它被编码来处理的任何例程。一个可能的选项是将日志文件复制到辅助系统可以读取日志并应用日志中包含的事务的位置。
与复制选项相同,日志传送是一个异步过程。只要主系统上有活动日志文件并且还有未应用且未完成的日志文件,辅助系统就处于不同步状态。
DB2 确实有执行双日志记录的能力。这允许数据库在不同卷上创建复制日志文件,从而增加冗余。此外,该方法不会在数据库服务器上产生额外的开销。与使用复制不同,该方法不会创建两个活动的系统,因为备份系统在被管理员停止前滚暂挂状态之前一直处于不可用状态。
图 4说明了日志传送过程。
| 优点: | 缺点: |
| 集成能力,不需要额外的软件 | 过程是异步的,可能会因故障而丢失数据 |
| 在两个地方复制数据,冗余更大 | 不会自动进行故障转移,需要手工处理 |
| 距离限制较少 | 辅助系统是被动的,只提供备份能力 |
| 活动系统上没有额外工作负载 |
现代的存储子系统提供了许多高级特性。DB2 已经能够利用这些高级特性来创建高可用性和灾难恢复系统。虽然这些技术可能会不同,但高级存储选项的基本要素就是能够快速创建磁盘卷的相同副本。然后可以将这些卷安装到辅助系统上。辅助系统可以充当备份系统或执行其它一些类型的工作负载。允许实现这一功能的 DB2 特性叫作 暂挂 I/O(suspended I/O)。
暂挂 I/O 这项技术允许数据库引擎使数据库处于一致状态,同时又保持联机。暂挂 I/O 状态暂挂写 I/O 操作,以防止对数据表空间和日志的写操作。在数据库离开暂挂 I/O 状态之前,该数据库仍可用于所有应用程序,处理只读语句和延迟写语句(插入、更新和删除)。通过 SET WRITE SUSPEND 命令将数据库置为暂挂状态。暂挂数据库之后,就可以制作数据库的物理文件的副本。将需要数据库目录、日志文件和数据库容器的副本。存储硬件和软件通过分割镜像卷或其它高级复制技术,可以非常快地创建大量数据的副本。然后,所复制的卷可以用于创建备份系统。制作了副本之后,可以使用 SET WRITE RESUME 命令来继续处理主系统上的所有事务。
所复制的卷可以与 DB2INIDB 实用程序一起用来创建辅助系统。该实用程序有三个实现:SNAPSHOT、STANDBY 和 MIRROR:
如我在日志传送部分所提到的,DB2 能够生成双日志。通过将日志放在不同的卷上,该能力可以与高级存储选项一起使用来确保日志的完整性。DB2 用户出口程序可以用于存储和检索日志文件,并管理已归档日志文件的位置。可以对用户出口进行编码,以将日志放到辅助系统或另一个可用位置上。
图 5显示了高级存储选项。
| 优点: | 缺点: |
| 集成能力,不需要额外的软件 | 过程是异步的,可能会因故障而丢失数据(这可以用双日志记录来弥补) |
| 在两个地方复制数据,冗余更大 | 不会自动进行故障转移,需要手工处理 |
| 能够迅速地复制大量数据 | 辅助系统处于前滚暂挂状态,不可用 |
| 捕获所有数据库更改 | 需要高级硬件 |
灾难恢复
建立灾难恢复计划对于现代企业至关重要。企业数据库中的信息对于进行业务活动是极其重要的。保护该数据以及在灾难之后确保其“生命”是很重要的活动。当构建 DR 计划时,有三个关键问题:
要防止的故障级别通常是近似性问题。原始数据与其备份之间在物理上有多紧密?备份数据可以在不同的驱动器上、在独立的机器上、在独立的楼层上或在不同的建筑物里。不可能预测所有可能的灾难。火灾、水灾或甚至用户的恶作剧都可能是企业必须面对的问题。解决方案的设计应该包括公司希望防止最坏情况的方案。
所有企业都不希望在故障之后丢失任何数据。虽然不丢失数据是可能的,但由于可能需要的复杂性和费用(尤其是如果所防止的故障级别非常高),这通常是不实际的。可接受的数据丢失量取决于数据对公司有多重要以及有什么资源可用于确保其生命。
恢复所需的时间量类似于高可用性的目标。它与高可用性解决方案之间的差异在于所防止的故障类型以及通常认为合理的时间长度。HA 故障转移通常以秒和分钟来衡量,而灾难恢复则可能以小时和天来进行衡量。不过并非总是这样,但这个差异区分了对这些解决方案的相对期望。
备份和恢复
数据库备份创建了数据库的时间点映象,它是灾难恢复解决方案的基本组件。DB2 提供了几种备份,包括脱机备份、联机备份和增量备份。从备份恢复所需的时间取决于数据库的大小和可用于执行恢复的硬件资源。
由于数据库备份只捕获时间点的数据,因此无法通过一个简单恢复来恢复备份之后发生的任何数据更改。要恢复备份之后完成的事务,就需要应用日志文件。可以从备份和日志文件(通过在日志文件中进行“前滚”来应用)来恢复数据库。这允许恢复到某个时间点或恢复到日志文件结束。
因此,如果 DR 解决方案必须恢复自上次备份以来的事务,那么保留日志文件是非常关键的。有两个提高日志保留的 DB2 特性:双日志记录和用户出口工具,已在关于数据库复制 HA 选项的部分中进行了讨论。
灾难恢复方案
灾难恢复方案可以分成三类:
虽然不是每个解决方案都清晰地被划入这三类中的某一类,但它们确实为您理解灾难恢复选项提供了合理的框架。
简单备份
只创建数据库备份确实创建了一个 DR 解决方案。它也许是非常有限的,这取决于您的环境。通过从“活动”的系统上移走所创建的备份,可以提高保护的级别。增加数据库备份的频率也降低了数据丢失的风险。
备份软件对于创建和维护 DB2 备份可能非常有帮助。例如,IBM 的 Tivoli Storage Manager 和 Veritas 的 Net Backup® 都提供了允许在其软件控制的设备上直接备份和维护 DB2 数据库的解决方案。这些设备可以是磁带库或另一种存储设备。
简单备份适合于只读数据库或由能轻松重新创建的批处理作业填充的数据库,或者在备份之间不必维护数据库更改的情况下。
| 优点: | 缺点: | |
| 保护级别: | 数据库备份可以转移到外部位置,以提高保护级别 | |
| 数据丢失的风险: | 备份之间的数据更改可能会丢失(运行增量备份来降低风险的影响) | |
| 恢复所需的时间: | 数据库恢复需要很长时间 |
备份和日志保留
保留数据库日志文件与数据库备份一起创建了更完善的 DR 解决方案。日志文件允许恢复备份之间发生的数据更改。
该解决方案的真正复杂性在于保护日志文件以确保它们在恢复期间的可用性。如果选择实现双日志记录,DB2 可以将日志文件放在不同的位置,如果确保这些位置在不同的存储器阵列上,那么保护级别就会得到提高。
但是,日志文件仍面临存储子系统故障。如在高可用性的日志传送选项中所提到的,用户出口程序可以提供重定位日志文件的替代方法。用户出口可以将已关闭的日志文件移到当前系统可用存储阵列之外的位置,从而提高保护级别。这里的告诫是它只移动已关闭的日志文件。即使已实现了双日志记录,包含活动事务的日志文件仍面临因阵列丢失或存储设备故障而产生的丢失。
该解决方案适合于大多数面向商业事务的环境。它均衡了最小化数据丢失风险的需要和维护 DR 解决方案所需的成本。
| 优点: | 缺点: | |
| 保护级别: | 数据库备份可以转移到外部位置,以提高保护级别 | |
| 数据丢失的风险: | 如果使用适当的步骤来维护日志文件,会大大降低数据丢失的风险 | |
| 恢复所需的时间: | 数据库恢复需要时间,应用日志文件将增加恢复时间 |
高级存储备份
我们在高可用性下的高级存储选项部分中讨论过这个主题,相同的原则在这里也适用。正如在那部分中所见的,STANDBY 方法允许当数据库副本处于暂挂状态时在辅助系统上执行数据库备份。
创建数据库副本已经创建了 DR 解决方案的一部分。备份副本提高了保护级别。如果用双日志记录和用户出口程序正确实现了这个高级存储备份,那么它就为核心企业数据库生成了最好的 DR 解决方案。
该解决方案最适合处于企业活动核心的数据库系统。示例可能包含了供应链管理和在线代理系统。
| 优点: | 缺点: | |
| 保护级别: | 保护级别本来就很高,而且可以通过耦合存储子系统来提高保护级别。 | |
| 数据丢失的风险: | 如果采用双日志记录和用户出口程序,会大大降低数据丢失的风险 | |
| 恢复所需的时间: | 恢复所需的时间非常短。 |
结束语
DB2 为构建高可用性和灾难恢复解决方案提供了出色的技术。您应该根据您的业务需求、可用选项和解决方案需求来做出选择。本文中讨论的这些要点为进一步研究和评估提供了一个很好的框架。
| 共2页: 上一页 [1] 2 | ||
|
|
|||
| · OSPF路由协议专栏 · 思科路由器产品 · 华为路由器产品 · 路由器模拟器 · AIX操作系统管理应用(.. · 思科路由器配置 · 路由器组网解决方案 · 路由器密码恢复 |
· 无线路由器故障处理 · 路由故障处理手册 · 路由器访问控制列表(AC.. · 路由器的安全配置与安.. · 无线路由器配置 · 路由器技巧 · 华为路由器配置 · 路由器配置基础 |
||
|
|||
| · Java基础教程 · VPN技术 · SQL Server 2005全解 · ARP攻击防范与解决方案 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · 三层交换技术专题 |
· SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 · C#技术开发指南 · Windows操作系统安装 |
||
|
|||
| · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 · Windows操作系统安装 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| · 职场冲浪(之八):让感.. ·职场冲浪(之七):潜心.. |
·人生如鞋 ·职场冲浪(之六):从离梦最.. |
| ·将职业教育职业化 - 各IT.. ·思科交换机上实现MAC地址.. |
·关于51CTO合作出书中的职.. ·OSPF动态路由协议入门简介 |
| · NGN:下一代网络 · 网络访问中断大排查 · FTTx光纤接入 |
· 平凡黑客讲述精彩人生(.. · 平凡黑客讲述精彩人生(.. · 平凡黑客讲述精彩人生(.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · Ubuntu 中文开源频道 · Solaris基础知识入门 · 微软正式发布英文版Wind.. |
· 服务器基础知识入门 · Rambus第二?看全缓冲内.. · 服务器节能对比测试:AM.. |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. · 双机热备技术 |