1、SYBASE复制服务器Replication Server的基本原理
从上述对方案组成的叙述中可以看出,其关键产品是Sybase的复制服务器Replication Server。为了利于后续部分对方案细节的描述,有必要在此对Sybase的复制服务器Replication Server描述如下。
Sybase的复制服务器Replication Server突破了分布式数据库的限制,为真正的系统分布提供了解决方案,是业界第一个用于建立经济、可靠、高性能的分布式系统的实用产品。
· Replication Server能在整个分布式系统中保持数据的精确性,是因为它通过其敏感的日志传输代理(Log Transfer Agent)监测主节点的数据修改,由复制服务器异步地把提交的事务发送到存放数据拷贝的远程节点,并维护最新的数据拷贝。
· 对于网络出现故障的情况,Replication Server为了保障源点、目标点以及复制的正常工作,采取了先进的、智能的存储转发机制来保证系统的可用性。Replication Server拥有自己的存储转发队列,在网络故障情况下,对主点的数据的变化暂时存储在队列里,一旦网络故障恢复正常,系统会自动地将数据的变化传送到目标点服务器,保证数据的一致性。
· Replication Server不仅能够保证在网络中断情况下能正常工作,并且能够保证在网络连通后,系统能自动地从上一次发送的断点处继续发送,节省用户的网络资源,提高传送时间。这种智能的工作机制是靠Replication Server提供的复制机制中的稳定队列(Stable Query)来实现的:Replication Server首先将利用LTM将主点数据的变化存储在主点的稳定队列里,网络正常通信的情况下,准实时地将其中记录的主点变化数据传送到复制点的稳定队列中。一旦网络出现故障,LTM仍然会正常工作,监听本地数据的变化,将变化量存入本地的稳定队列,并且自动记忆网络故障前的中断点,当网络重新恢复正常后,主场点的复制服务器会与复制点的复制服务器会话,并从断点处将未传送完的变化数据传送到复制点的稳定队列中去,从而节省了网络传送时间。这种智能的机制非常适合于有大文本字段(如:text, image)系统的复制。
· Sybase的Replication Server支持各种复制工作模式:一对多、多对一、多对多,他们对应着实际工作中的从中央到地方的下发、从地方到中央的汇总、以及地方、中央的双向数据传输。Warm Standby Application是其最简单的应用方式,由于其应用的典型性,Sybase的Replication Server相应简化了这种应用的配置、操纵。
· Sybase的Replication Server还支持异种数据库之间的复制。Sybase公司的中间件互连产品是业界中最强的,通过针对各种数据库的中间件选项和复制服务器,可以在不同的数据库之间进行数据复制,满足信息系统的各种需要。
· 由各复制节点指明其所需要的数据,说明的精度可达到行级、列级,并给出相应的复制定义,则在复制节点就可得到涉及这些 数据的所有更新。
· 不但支持基于事务的数据的复制,还支持存储过程/函数的复制,大大拓展了复制的能力和灵活性。这种传递机制特别适合于基于存储过程的业务系统的灾难备份,因为互备节点之间不必传递大量的数据,而是传递引起数据变化的存储过程名和参数。
2、Warm Standby Application中数据的传递方式
在明白了SYBASE复制服务器Replication Server的基本原理后,我们进一步以图示的方式说明在Warm Standby Application中数据的传递方式(注意图中步骤数字,不再分步说明)。在主、备节点发生切换后,其数据传递则反之。

图6 Warm Standby Application中数据的传递方式
3、客户端自动切换系统
为了使前台客户应用在后台服务器切换时顺利地实现重新连接甚至不改变连接,可以选择如下方法:
· 修改客户端使用的Interfaces文件。用切换后的数据库服务器的"网络地址/host-name + Port #"修正客户Interfaces文件。
· 可能时,可以改变客户应用连接的服务器名称。
· 根据SYBASE客户、服务器的识别机制,可以为同一逻辑名称的服务器指定不同的"网络地址/host-name + Port #"组合项,即映射到不同的物理服务器。
· 在客户应用程序中加入必要的程序段,控制客户应用的重新连接过程。
重新映射(Map)客户应用到数据库服务器的逻辑。比如,在客户应用与数据库服务器之间引入一个Open Server程序,一方面,它维持与前台客户应用的所有连接;另一方面,从该程序引出与后台实际数据库服务器的连接以一一对应于前台连接。后台数据库切换时,只通过程序改变它与后台的连接以及前后台连接的一一对应关系,而不改变前台连接。当然,有了这个中间程序后,还可通过程序帮助自动实现上述方案中后台前后的有关工作。此种功能的Open Server程序即为SYBASE公司的OpenSwitch产品。
客户端自动切换采用Sybase的OpenSwitch产品,它是一个OpenServer应用网关,负责客户端和服务器端的连接管理和控制。它的实现机制如图7,当客户端连接时,连接到OpenSwitch(incoming application connections),然后OpenSwitch再根据用户端的请求和数据库服务器的运行状况建立OpenSwitch的连接(outgoing connections)。
在系统的实际运行过程中,OpenSwitch把每一个客户端连接(incoming application connections)松散地捆绑到一对服务器端的连接上(outgoing connections)。在图7中即OpenSwitch到SQL SERVER A 和SQL SERVER B的连接。当正常运转时,OpenSwitch把客户端连接与OpenSwitch到SQL SERVER A的连接捆绑在一起,并对客户端的连接信息进行存储,如当前的数据库、事务状态等等。当服务器A发生故障时,OpenSwitch会自动把客户端连接与OpenSwitch到服务器B的连接捆绑到一起,并通过客户端的连接信息透明地实现客户端连接切换。

图7 OpenSwitchgong 工作原理
当主点服务器发生故障时,如果客户端正好在进行事务处理,并且事务没有结束,则OpenSwitch给客户端发送一个1205的错误信息,要求重新提交该事务,然后自动进行切换。如果客户端没有进行事务处理,则OpenSwitch进行透明的客户端连接切换。
系统的自动切换过程
在Sybase数据库的复制过程中,会存在很短的时间延迟,主要是:
· 主点的复制代理线程从日志读取日志的时间
· 日志在网络的传输时间
· 主点的操作在复制点提交时需要的时间
当主点数据库发生意外时,有可能在复制服务器中还存在没有提交的日志数据,因此必须先把这些日志数据在备份点提交,然后进行切换,允许客户端进行正常操作。OpenSwitch提供了一组API函数用于开发一个外部协调模块来解决该问题。具体如图8。

图8 自动切换过程
具体的切换过程如下:
1) 主点数据库服务器1发生故障
2) 外部协调模块接收到主点服务器发生故障的消息,所有客户端连接暂时悬挂起来。
3) 外部协调模块同复制服务器的复制代理线程进行通信,确认队列中所有的日志已经在备份点2进行了提交。
4) 外部协调模块通知OpenSwitch可以进行切换。
5) OpenSwitch切换所有客户端连接到备份点2。
三、SYBASE灾难备份方案的特点
通过采用Sybase的备份方案可以达到:
· 主点和备份点数据库系统可以位于地理位置相距很远的地方,并且系统的数据同时在主点和复制点都保存有一份,即使一份完全丢失,另一份数据也可以把系统恢复到故障前的工作状态。
· 主点的硬件系统和复制点的硬件系统不必完全一样,复制点的硬件可以比主点的硬件配置低,从而减少硬件投资费用,提高投资回报率。
· 因为Sybase复制系统复制的是数据库日志,因此对主点的数据库正常运行影响很小(5%以下)。
· 通过OpenSwitch可以实现客户端的透明切换,客户端无需重新启动。
· OpenSwitch支持连接缓冲、资源管理等功能,大大提高性能。
OpenSwitch的要求:
· 主点和复制点的数据库系统必须为Sybase数据库(版本最好一致)
· 主点和复制点的数据库名、设备名、逻辑段名必须一致
· 不支持SERVER-SIDE CURSOR
· 不支持动态SQL
· 不支持临时表
· 相对于普通的客户端/服务器结构,性能会受一定的影响。
当然,要构造一个完整的、实用的和可靠的灾备系统,需要从各个层面共同协调,统一构造,如:网络、硬件、电源、操作系统、数据库系统、应用系统和维护软件等。只有各个层面都考虑和配置了灾备方式和灾备的软硬件产品,才能称为一个容灾系统,才能建立一个完善的容灾中心。这样,才能够充分满足点新的业务需求。
|
|