sybase复制服务器(sybase replication server)用来满足日益发展的企业客户/服务器计算机环境的需要。自从复制服务器被广泛应用以来,已成为企业范围内客户/服务器应用模式的基础。
一个实用的复制系统必须考虑到以下的业务要求。
数据的高可靠性: 复制系统将使应用系统更加可靠,减少了计算机系统失败给业务处理造成的影响。
信息传递的一致性: 分布系统各节点内保护数据的一致性。
高的系统性能: 复制系统必须在不增加数据源节点的负担、有效使用网络的前提下,允许每个节点优化本地数据的存取方式。
方便数据集中管理: 系统管理员能够方便容易地管理分布与各节点的数据。
异构数据源访问: 复制系统有能力在不同厂商提供的数据源之间移动传递数据,如sybase、oracle、ms sql等系统间数据的复制和同步。
本地自治: 每个节点能够决定自己将接受的是哪些数据,以及访问和更新本节点数据。
复制服务器的工作方式
在这节中我们将描述sybase复制服务器产品的各个部份及它们的功能。复制数据操作可以分为四个部分:
对一个或多个数据源改变数据事务的监测;
在网络上传送事务;
将事务分发给各个目标数据源;
复制系统管理。
在sybase复制服务器环境中,对源数据库中数据的修改由一个称为日志传输管理(log transfer manager 简称ltm)的进程来实现。最典型的结构中ltm与源数据库放在同一个硬件平台上。
ltm将log传送给复制服务器进程,复制服务器进程可以在另一机器上。在一个复制系统中,若干复制服务器的配置,可以分布在不同的局域网上,根据复制系统的配置,改变数据的log从一个复制服务器传送到其它复制服务器,最后由这些复制服务器将数据改变传给目标数据库。完整的数据复制操作进程可以由一个基于gui环境的复制服务器管理界面来管理和监控。因为在复制系统中使用了稳定队列(stable queue),数据从源数据库到目标数据库的途径中,能够避免系统中任一部分失败发生的数据丢失现象。稳定队列是一个安全机制,容错环境失败。
日志传输管理
sybase复制服务器产品有一部分为log transfer manager(ltm).ltm是一个低调度进程,最典型的配置方法是将ltm运行在与源数据库相同的平台上。如果复制系统中将有多于一个节点的源数据被修改,则需要每个节点有一个ltm。
ltm的任务是监视并捕获与它相联数据库的事务,而且将这些事务传送给复制服务器,以便复制服务器将事务再传给其它的复制节点。
ltm有一个联接到sql server,读取主sql server的事务日志,监测它是否改变了主节点数据。事务日志是用来观察主节点数据变化的最好的信息来源,因为它包含已经提交给server的事务,可用来恢复事务。在图六中,当某应用程序修改了主节点数据时,这个事务被记在事务日志中,以保证数据一致性,当提交时数据改变写入磁盘。复制进程不干涉数据库功能,只是ltm在监测sql server中的事务,当发现某个事务应该被复制时,将它传送给sybase复制服务器。
ltm进程,是一个由sybase open server/open client编写的应用程序,并有一个联接到sybase复制服务器。这个进程可以驻留在单独的机器上。正是由于sybase复制服务器进程可以运行在与主数据源不同的机器上,才使用户将复制系统对主数据库施加的负担降低到最小限度。
ltm进程可以将独立于主数据源命令的事务翻译给复制服务器。例如,一个事务中完成的是“update”,ltm将把事务传送给复制服务器并且给予解释,翻译成主节点完成的update命令。这个源数据库事务到复制服务器翻译或映射所认识的命令的机制是sybase复制服务器技术的一个重要策略。从ltm到复制服务器的界面对用户来说是可见的。也就是说,如果你能获得数据源的事务,就可以将它映射到sybase复制系统环境并且复制它。与其它竞争厂家产品不同,sybase复制技术允许建立应用程序来复制异构数据源。