关于数据库复制的详细说明

最近,随着处理数据量的增加与各业务部门开始使用整合的IT系统,尽量减少系统故障已成为企业关注的重要课题。发生系统故障就会直接引发企业的经济损失及用户的信赖度下降,因此数据的稳定性和质量问题成为企业实现最终目标的关键因素之一。

至今为止,虽然IT部门一直致力于开发能够尽量减少突发性故障的技术,并不断提高产品的高可用性,但性能问题仍然对系统稳定运行有很大影响。目前,企业为了一边提高系统的性能,一边尽量减少故障时间与数据丢失,需要能够提供复制和负载分担服务的数据库管理系统供应商。

ALTIBASE HDB 通过内嵌于自身的复制(Replication)功能,实现了IT环境所需的高可用性和稳定性。基于TCP/IP网络的Altibase的复制技术,对复制节点没有限制,而且通过细分化,可选择性复制—-以表为单位进行复制,实现了超高速的复制操作处理。

Altibase复制技术的主要特征

  • Altibase产品通过内嵌的复制功能,提供高可用性、不间断服务、负载分担等主要功能。
  • Altibase产品为了监视网络故障,使用了另设的线程。
  • Altibase复制技术提供两种模式,用户可以在高性能的异步模式,和兼具数据持久性和完整性的全同步模式中,根据业务需求任选其一。
  • 基于TCP/IP的Altibase复制功能最多支持32路复制,而且能够进行远程复制。另外,若服务器使用多个IP,那么在单一复制服务器上可以设置多个复制线程。
  • Altibase产品的另一优点是以表(table)为单位的数据库复制。管理者不必对整个数据库进行复制,可以仅对目标表进行复制。
  • Altibase复制技术将事务日志转换为逻辑形式并传送到远端服务器,从而不仅提供超高速的性能而且尽量减少了硬件负荷。
  • Altibase复制技术能够实现在安装有不同CPU和操作系统的不同服务器之间,进行数据复制。
  • 即使在复制时,也能够维持独立系统处理时的性能。(主主复制90%、主从复制96%)
  • Altibase复制技术在主备服务器上均保存数据库的最新数据,当主服务器突然停运时,能够立即重新启动其它备用服务器,从而提供不间断服务。

Altibase复制技术

  • Altibase复制技术实现了由发送、接收、管理、心跳线构成的线程架构。管理者为了两个服务器之间的复制而监视要复制的对象,发送/接收线程则负责传送Xlog文件。此外,当发生故障时,通过心跳线支持即时服务切换。
  • 当发生事务操作时,Altibase复制技术中的复制发送线程将重做日志文件转换为Xlog文件,传送到备服务器。备服务器的复制接收线程根据收到的Xlog文件,将收到的内容在备服务器上做相应更新,从而使其持有与主服务器相同的数据。
  • 若复制开始,主服务器的复制管理器形成发送线程而与备服务器的复制管理器相连,而备服务器的复制管理器则形成接收线程。
  • 主服务器的发送线程向备服务器传送数据库中的变更内容,在备数据库中体现通过接收线程收到的内容。
  • Altibase复制技术通过尽量减少服务线程和复制线程之间的干扰和锁,实现了发送节点的高性能,也即,数据管理和复制管理通过完全独立的线程进行。

Altibase复制技术

Altibase复制技术提供两种模式,具备高性能的异步模式和兼具数据持久性与完整性的全同步模式。

异步模式

Print

  1. 如果在主服务器上发生对复制目标表执行DML的服务事务,就会在日志文件上记录该服务事务。
  2. 发送线程收集按服务事务记录的事务日志文件后,将其转换为Xlog文件,并将XSN记录在复制元信息表中,并利用发送线程发送Xlog。
  3. 在主服务器上,Altibase数据库正常提交服务事务,即该服务事务与复制相关的事务各自独立进行。
  4. 接收线程收到Xlog后将复制事务提交到备服务器实例。

全同步模式

06_02

  1. 在主服务器上发生对复制目标表执行DML的服务事务。
  2. Altibase产品将服务事务的变更内容在主库数据中体现,并在记录事务日志文件的同时,执行服务事务锁。
  3. 通过发送线程收集基于服务事务记录的事务日志文件后,将其转换为Xlog文件,并将XSN记录在复制元信息表中,然后通过发送线程传送Xlog。
  4. 通过接收线程收到Xlog后,记录主服务器的事务日志,并向备服务器实例提交接收到的复制事务。
  5. 通过接收线程向发送线程传送用于确认备服务器已收到复制事务的ACK(反馈信息)。
  6. 主服务器收到ACK后,立即提交刚才被锁住的服务事务。

Altibase间断服务

IT环境中针对突发性故障的应对策略与复制技术一样重要。影响复制的比较典型的原因如下:

  • 主服务器与备服务器间的通信中断
  • 服务线路中断
  • 主服务器或备服务器的异常关闭

下面对各种故障发生情形和修复步骤进行说明。

主服务器与备服务器间的通信中断

主服务器与备服务器间的通信中断的情形如下:

06_06

务器间通信故障:

  1. 服务器A和B的复制接收线程将未体现的各事务进行回滚操作,并关闭相关事务。
  2. 服务器A和B的复制发送线程记录重新开始序列号(即最先传送失败的Xlog的SN),以60秒为周期试着与对端服务器连接。

链路修复:

  1. 服务器A和B的复制发送线程呼醒对方的复制接收线程,从重新开始序列号(SN)开始发送XLog,以执行复制。
  2. 服务器A和B的复制接收线程与对方的复制发送线程相连成功,执行复制。

这种情况下,Altibase复制技术支持多个 IP的特征非常有利于故障修复。

服务线的中断

主服务器和客户端应用之间的服务线路发生故障的情形如下:

Print

主线路中断

  1. 利用备用线路(B.L)接收服务器 B的服务。

主线路修复

  1. 如果主线路(P.L)已修复,则利用服务器A再接收服务。
  2. 主线路中断期间,通过复制操作,将服务器B中进行的工作内容传送到服务器A。

主服务器或备服务器的异常关闭

主服务器/备服务器的异常关闭发生的情形如下:

Print

务器A的异常关闭

  1. 服务器B的复制接收线程关闭,复制发送线程周期性地(60秒)试图连接服务器 A。

务器A的重新启动(复制发送线程调用备服务器的接收线程)

  1. 服务器A的复制发送线程自动开始工作,并向服务器B执行复制。
  2. 服务器A的复制接收线程被服务器B的复制发送线程驱动,进而执行复制。
  3. 服务器B的复制发送线程驱动服务器A的复制接收线程。
  4. 服务器B的复制接收线程被服务器A的复制发送线程驱动,进而执行复制。

Altibase复制的故障修复步骤

Altibase产品的表空间是为储存表、索引及其它对象提供的逻辑储存空间。

06_02

Altibase复制的附加功能

  • 支持不同型号服务器间的复制: 通过Xlog支持不同型号服务器间的复制。
  • 最多支持32复制: 使用3个以上节点时,复制对象实例。

Print

  • 多个IP网络环境中的复制:为确保系统的高可用性并迅速解决故障,在生成复制对象时,可赋予其多个物理IP地址。

复制受限条件

  • 复制的表中必须要有主键。
  • 双方服务器中要复制的表,必须要有相同的列数、列类型、主键、非空约束。
  • 由于复制间隔有可能产生数据冲突,所以复制表不使用触发器和外键。
  • 复制分区表时,主服务器和备服务器的分区方式要一致。
  • 虽然对复制服务器没有限制,但主服务器和备服务器中的字符和国际字符集要一致。
  • Altibase复制技术虽然能够在分开设置的服务器之间进行复制,但是网络的带宽、延时有可能影响复制性能。