1、目录1.1 灾难备份技术介绍 .11.1.1 Oracle DataGuard .11.1.2 IBM DB2 HADR.81.1.3 SharePlex .121.1.4 IBM Remote Mirroring.161.1.5 飞康 IPStor.211.1 灾难备份技术介绍1.1.1 Oracle DataGuardOralce9i Data Guard 是美国甲骨文公司为 Oracle 数据库提供的高可用软件,Oralce9i Data Guard 不仅具有双机实时热备份和灾难恢复功能,还可以实现本地或异地的一对一,一对多等多种备份形式。有了 Oralce9i Data Guard,可
2、以减免夜间数据备份、软硬件升级、数据库重组等计划性事件以及诸如服务器故障、火灾、洪水、电源故障等非计划性事件造成的停机时间,为您的商务运行环境提供高可用性。1.1.1.1技术原理Oracle9i Data Guard 由一个生产数据库和若干备用数据库组成,并形成一个独立的、易于管理的数据保护方案。如上图所示,当主结点中关键业务系统运行中产生数据更新时,会对生产数据库中的数据记录作出更改,同时会在联机日志文件中记录此次更改。利用Oracle9i Data Guard 的数据复制功能,可将对生产数据库的数据更新以同步或异选择确认到磁盘的日志写入步的方式传输到备用节点的日志文件中,再利用备用节点的日
3、志文件将此数据更新应用到备用节点的数据库文件中,从而完成对生产数据的实时传输和备份。 Oracle9i Data Guard 的数据复制模式根据数据传输和更新的不同实现方式,Oracle9i Data Guard 提供了以下三种数据模式: 最大保护模式(Maximum Protection) 最大保护模式为主数据库提供了最高水平的数据保护,确保了一个全面的零数据丢失灾难恢复解决方案。当在最大保护模式下运行时,当主节点因交易产生数据更新时,会由日志写入进程先将数据更新的日志记录从主数据库同步地传输到备用数据库,直到确认交易数据在至少一个备用服务器上的磁盘上可用时,才在主数据库上完成此交易数据的更
4、新,从而确保了主数据库的数据与备用数据库的数据始终保持一致。由于日志传输的同步特性,这种最大保护模式会影响主数据库的交易响应时间。有时可以通过配置一个低延迟网络(近距离),并为它分配足够应付高峰事务负载的带宽(高带宽)来将这种影响减到最小。 这种方式对生产系统的性能影响较大。当因网络中断或者其他故障导致Oracle9i Data Guard 的主备数据库联系中断时,会导致主数据库关闭,并造成业务中断。 最高可用性模式 (Maximum Availability)最高可用性模式拥有仅次于最高水平的主数据库数据可用性,并提供零数据丢失和防止单组件故障。如同最大保护模式一样,当主节点因交易产生数据更
5、新时,会由日志写入进程先将数据更新的日志记录从主数据库同步地传输到备用数据库,直到确认交易数据在备用服务器上的磁盘上可用时,才在主数据库上完成此交易数据的更新,从而确保了主数据库的数据与备用数据库的数据始终保持一致。与最大保护模式不同的是,当因网络中断或者其他故障导致 Oracle9i Data Guard 的主备数据库联系中断时,主数据库会转到最大性能模式,从而保证了生产系统的正常运行。这种情况下,备用数据库中的备份数据将会有一定的滞后,但当备用数据库再次变为可用时,备用数据库将自动同步,而不会丢失数据。 最大性能模式 (Maximum Performance)最大性能模式与最高可用性模式相
6、比,提供稍微少一些的主数据库数据保护,但提供了更高的性能。在这种模式下,当主节点因交易产生数据更新时,会由日志写入进程将数据更新的日志记录从主数据库异步地传输到备用数据库,或者可以利用主节点数据库的归档进程配置为在这种模式下传输日志数据,随后在主数据库上完成此交易数据的更新。这样,在任何情况下,Oracle9i Data Guard 均先完成主数据库上的写操作,主数据库的交易数据更新不需等待备用数据库确认接收即可完成。如果因网络中断或者其他故障导致 Oracle9i Data Guard 备用目标数据库不可用,交易数据的更新会在主数据库上继续完成,对生产系统性能的影响很小或没有。根据写日志进程
7、的不同,又可以把最大性能模式分为下面两种模式: 快捷模式当主数据库更新时,Oracle9i Data Guard 用写联机日志的进程通过异步方式传送联机日志。由于需要内存来缓存和占用写联机日志的进程时间,会对生产系统性能产生一定影响,备用数据库数据滞后的情况与网络通信带宽关系较大。 延迟模式当主数据库更新时,Oracle9i Data Guard 用写归档日志的进程通过异步方式传送归档日志。由于是从归档日志中读取数据,对生产系统性能影响很小,备用数据库数据滞后比较快捷模式大,会丢失生产系统未归档的联机日志,具体数据滞后情况也与网络通信带宽也有关。 Oracle9i Data Guard 的备用
8、数据库类型Oracle9i Data Guard 的备用数据库最初是从主数据库的一个备份副本创建的。一旦创建了备用数据库,Oracle9i Data Guard 自动将主数据库日志数据传输给备用系统,然后将日志数据应用到备用数据库中,从而使备用数据库保持为与主数据库在事务上一致的副本。 Oracle9i Data Guard 提供了两种方法将这些日志数据应用到备用数据库中,并使之与主数据库在事务上保持一致。这些方法产生了两种类型的备用数据库: 物理备用数据库 (通过日志应用备用数据库) 逻辑备用数据库 (通过提取日志的 SQL 语句应用备用数据库)就从主数据库进行的数据传输而言,这两种类型的备
9、用数据库之间没有差别。一旦日志数据到达备用服务器,这两种类型的备用数据库在将日志数据应用到备用数据库的方式上就存在差异了。 Data Guard 中包含两种不同的复制提交技术,一种称为 Data Guard Redo Apply,另一种是 Data Guard SQL Apply;前一种方式被称为 Oracle Dataguard Physical Standby,直接通过 Redo Log 的恢复,完成复制内容的提交,实现数据复制,目标服务器在复制时不可查询;第二种方式被称为 Oracle Dataguard Logical Standby,通过在目标系统中生成 SQL 语句进行数据提交,复
10、制过程中目标数据库可用于查询和生成报表。Data Guard Redo Apply 的复制技术Redo Apply 和 SQL Apply 在源数据库服务器端采用了相同的技术,都是将整个 Redo Log 的内容,直接传输给目标服务器的 RFS(Remote File Server)进程,并由其写入目标服务器的 Archived Redo Log 日志。目标服务器对 Archived Redo Log 进行恢复处理,实现从源数据库到目标数据库的复制。Oracle Data Guard SQL Apply 在原理上是通过分析数据库日志,捕捉源数据库中的变化,复制到目标数据库后,以生成 SQL 语
11、句的形式提交复制内容,完成复制过程。Data Guard 在目标服务器端分析数据库日志文件并还原成SQL 语句,追加到目标数据库。这种方式看起来对源服务器影响较小,但是因为需要传输整个归档的日志文件,会产生较大的网络流量,对带宽的要求较高;另外,该方式无法实现双向复制,数据集中。 Data Guard SQL Apply 中基于日志的复制技术 物理备用数据库通过使用 Oracle Data Guard 应用从主数据库接收到的日志,物理备用数据库与主数据库保持同步。它在物理上与主数据库逐块相同,因而数据库模式(包括索引)是相同的。 逻辑备用数据库尽管数据的物理组织和结构可能不同,但逻辑备用数据库
12、包含与主数据库相同的逻辑信息。SQL 应用技术将从主数据库接收到的日志数据转换成 SQL 语句,然后在备用数据库上执行 SQL 语句,以使逻辑备用数据库与主数据库保持同步。从而,在将 SQL 应用到逻辑备用数据库上的同时,可以访问逻辑备用数据库来进行查询和报表操作。 由于使用 SQL 语句更新逻辑备用数据库,因此它保持以读写模式打开,而从主数据库中更新的表可以同时用于诸如报表、合计、查询等其它任务 。还可通过在维护的表上创建额外的索引和物化视图来优化这些任务。 Oracle9i Data Guard 的拓扑结构类型Oracle9i Data Guard 能够支持从简单的一对一、一对多等多种类型
13、的拓扑结构。 一对二模式:从主数据库分别对两个备份数据库进行数据备份。从生产主机到两个备份机需同时建立备份通信链路。优势: 延迟小,生产机数据直接复制到异地灾备机; 维护方便,一对二模式,同时备份两份数据,互相没有影响; 模式简单(两个一对一模式) ,减少了故障发生;劣势: 占用 CPU 及内存资源比较多 级联模式:从主数据库向备用数据库进行备份,再由备用数据库向级联数据库进行备份。优势: 节省生产机 CPU 资源; 节省生产机通讯资源; 节省生产机内存;劣势: 级联备用数据库容易受备用数据库的影响;以上两种拓扑结构的备份模式从原理上都可以实现从一台生产机数据库向两台备份机数据库备份的功能。两
14、种方式各有特点,也各有利弊。 调整选项及实现为了实现基于 RAC 的 dataguard,只需要按照一定的步骤修改源数据库的参数文件及备用数据库的参数文件就可以了,具体如何实现,可以参见随后的实施方案。客户可用来细致调整 Oracle9i Data Guard 实施的其它选项包括:处于主工作区上的数据可变的存档过程,这些过程使通过局域网连接的备用工作区能够并行化主工作区的日志文件发送。这可以使用LOG_ARCHIVE_MAX_PROCESSES 参数进行设置。如果要通过广域网存档到一个远程工作区,那么这个参数应该设置为 1。客户可以变化 Oracle Net 会话数据单元(SDU )的大小,其
15、范围从 512 字节到 32K 字节,这取决于哪一种设置适合于网络设施。使重做数据有一个基于局域网(至少为 100BASE-T)连接的强制目的地址,以提供到备用数据库的高带宽和低延迟。一个备份的网络连接,它在备用数据库及其主数据库间采取了一个不同的路由以处理对主路径的网络占用。这样的连接并非租用 DSL 连接,如到Ethernet 局域网的备份连接。可以考虑把联机重做日志文件远程地镜像到一个目的地址,该地址对备用数据库而言是可见的,这样如果在主数据通过主网络路径不可到达时,该地址可以作为一个替代的日志文件资源。1.1.1.2特点与限制OracleDataGuard 数据复制解决方案有以下特点和
16、限制条件:技术特点:1. 对带宽的要求不高;2. 安装配置操作简单,可通过数据库参数配置实现,以满足用户不同的需求;3. 可以维护关键数据的实时拷贝,从而防止了所有数据丢失因素;4. 可保证数据一致性;1.1.2 IBM DB2 HADR 1.1.2.1技术原理High Availability Data Replication (HADR)是数据库级别的高可用性数据复制机制,被应用于 DB2 数据库系统中。一个 HADR 环境需要两台数据库服务器:主数据库服务器(primary)和备用数据库服务器(standby)。当主数据库中发生事务操作时,会同时将日志文件通过 TCP/IP 协议传送到备
17、用数据库服务器,然后备用数据库对接受到的日志文件进行重放(Replay),从而保持与主数据库的一致性。当主数据库发生故障时,备用数据库服务器可以接管主数据库服务器的事务处理。此时,备用数据库服务器作为新的主数据库服务器进行数据库的读写操作,而客户端应用程序的数据库连接可以通过自动客户端重新路由(Automatic Client Reroute)机制转移到新的主服务器。当原来的主数据库服务器被修复后,又可以作为新的备用数据库服务器加入 HADR。通过这种机制,DB2 实现了数据库的灾难恢复和高可用性,最大限度的避免了数据丢失。下图为 HADR 的工作原理图:图 5-3-3-1-1 HADR的工作原理图当备用数据库的 HADR 启动时,它首先进入本地同步更新状态。并根据本地日志路径配置参数及日志归档方法的设置检索本地系统中的日志文件并重放。当本地日志文件重放完毕,备用数据库进入远程同步暂挂状态。当与主数据库建立连接之后,备用数据库进入远程同步更新状态。即主数据库将自己的日志文件通过 TCPIP 协议发送给备用数据库,备用数据库接收到日志文件并重放,直到所有日志文件都重放完毕,备用数据库和主数据库进入对等状态。见下图: