2. 异步复制( Asynchronous Replication )
异步复制, 对执行时间的要求就相对要比较松一些。 异步复制采用异步分发数据库
技术,也称为存储——转发复制,所有复制节点的数据在一定时间内是不同步的。如果
复制环境中的其中的一个节点的复制数据发生了更新操作, 这种改变将在不同的事务中
被传播和应用到其它所有复制节点。 这些不同的事务间可以间隔几秒, 几分钟,几小时,
也可以是几天。 复制节点之间的数据临时是不同步的, 但传播最终将保证所有复制节点
间的数据一致。
在异步复制环境中,对任何一个复制节点上复制数据的更新将会在本地被捕捉到,
生成一个延迟事务放入延迟事务队列。 在预定的时间间隔或是根据需要, 延迟事务队列
中的延迟事务被传播到其它复制节点, 并在节点上执行。 如果事务在一个复制节点执行
不成功,只有该节点的事务被回滚, 复制数据不进行更新, 不会影响到其它的复制节点。
异步复制环境相对于同步复制环境而言, 要求比较少的网络和硬件资源, 并且提供
了更好的可用性和性能。 一个复制节点的失效不会影响到整个系统的正常运行, 应用可
以从其它的复制节点获取数据。 异步复制环境中, 由于事务的延迟提交会导致系统中复
制数据的暂时不一致, 甚至有时候会产生冲突, 如何处理冲突是设计异步复制方案时要
考虑的问题。
这两种复制类型的差别是 : 同步复制是指在事务提交之前,更新操作在所有副本完
成,它的优点是可以保障副本之间的一致性及较强的容错性,但它也带来一系列问题,
其中包括 : 死锁、通信量增加、 节点规模的限制及事务响应时间延长 ; 而异步复制是在事
务提交之后, 更新操作才被传播到其它节点, 它的优点是降低了通信量且缩短了响应时
间,因而采用这种方法可提高系统效率,但是它最大的缺点是 : 先提交,后更改,有可
能在不同节点的副本之间存在不一致性。
2.2.2 体系结构
数据库复制技术的体系结构体现了数据复制过程中数据源和数据目的之间的关系,有以
下三种基本的体系结构
[,2 ,3,4]
。
1. 主/ 从结构 (Master-slaver Model)
主/ 从结构是数据只能从主数据库中复制到复制数据库中,如图 2-1 。更新数据的
操作只能在主节点进行,从节点仅供用户读取数据。 但当主节点出现故障时,更新数据
的应用可以转到其中一个从节点上去。 这种复制方式实现起来比较简单, 易于维护数据
一致性。这是一种最简单的结构。