| 复制
在时效性的应用系统中服务是不能停止的。如果数据库服务被数据库服务器系统故障或者媒体故障终止,可能给客户端带来损失,失去客户对系统的信任。解决这些问题的最先进的方案是数据库复制。
数据库复制的定义是复制和管理本地已更新的数据库到一个或者几个物理上互相分开的远程数据库。所以,即使用户只更新本地系统的数据库,他仍然可以同时管理几个数据库,因为和数据库复制系统相连的其他数据库同样要执行更新。数据库复制可以提供数据库容错服务。


Altibase采用基于数据库更新日志的点到点复制的方法。这种方法是发送从本地数据库的更新日志翻译的XLOG到远程数据库服务器。远程服务器接收XLOG,进行分析,像恢复方法那样将更新反映到自己的数据库中。在那时,因为Altibase保证数据库之间的局部性,所以复制事务绝对不会影响本地事务。这个方法有点复杂,但是可以改善复制的性能,提供active-active复制模式。
为了运行复制方法,Altibase内部包括一些复制线程,例如Replication
Manager,Replication Sender和Replication Receiver,如下图:

[Altibase复制的内部架构]


Altibase的复制有如下特性:
- 以表为单位
- 类似于SQL的用户接口
- 将复制的信息存储在数据库复制对象中
- 在服务器故障或者网络故障中自动检测和处理
- 当前的服务器发生故障时可以立即访问其他的复制服务器
- 复制时可以保持系统独立工作(不进行复制)时性能的90%以上
- 保证复制的服务器和数据库的稳定性
- 远程服务器的性能不会影响本地服务器的性能,保障复制的服务器之间的局部性
- 通过active-active模式的复制可以实现负载平衡
- 保证数据库恢复之后完整的复制


Altibase复制的用户接口类似于SQL,用户可以在SQL交互工具或者应用程序中很容易的使用。复制的用户接口如下:
create replication rep1
with remotehost, portno
from localtableA to remotetableA,
from localtableB to remotetableB, ˇ;
drop replication rep1;
alter replication rep1 start;
alter replication rep1 stop;
alter replication rep1 sync;
alter replication rep1 quickstart;


Altibase提供如下图所示的网络拓扑复制,提供N-way复制。一个复制最多可以有16个复制体(1:16)
 [Altibase复制的任务]


Altibase复制是在提供安全和快速的数据库复制的基础上开发的。
高可用性
即使计算系统或者数据库服务器突然当机,Altibase提供数据库复制以便可以访问其他可用的系统。我们设计支持将数据库复制到几个系统的横向可伸缩性。
数据库移植性
当执行active-active模式的复制时,在一个数据库中可能会发生本地事务和复制事务同时访问相同数据的情况。当这种数据冲突发生时,Altibase按照规则自动解决数据冲突并将冲突内容记录到特定的日志文件中,以便管理员能检查冲突内容,处理这些冲突。.
高性能
通过优化本地服务器访问和拷贝数据的工作,Altibase引擎最小化事务处理的负载。复制通过将数据库日志转换为复制日志,XLOG结构,将XLOG发送到远程服务器,在远程服务器中通过XLOG直接进行数据处理。这种方法可以最小化本地服务器的性能降低,增强复制的性能 |