ITPUB论坛 » 内存数据库 » ALTIBASE内存数据库复制技术


2008-4-22 23:20 tom_111
ALTIBASE内存数据库复制技术

应用于重要领域的数据库服务器,在任何情况下都不允许服务中断的事情发生。如果由于数据库服务器系统故障或数据库存储 ( 磁盘 ) 损坏导致数据库服务中断,不仅会产生 相应的经济损失,而且还会对公司信誉造成严重不良的影响。
解决这一问题的最为先进的方案就是数据库 Replication 。

[b]何谓数据库 Replication ? [/b]

所谓数据库复制是指将分布在不同地理位置上的多个数据库服务器中的本地数据库中发生的数据变更内容复制到远程数据库中,并对此进行管理的数据库同步功能

[b]使用者只要对[/b]

Altibase 使用基于数据库日志的 Point-to-Point Replication 方式。 Altibase 会将本地数据库服务器中的变更日志置换成 我们称之为 XLOG 的执行计划 (execution plan) 并传送 到远程数据库服务器 。而远程数据库服务器则利用收到的 XLOG,将数据库操作同步道本地数据库服务器。 同时 Altibase 会自动控制复制服务器之间的局部性,避免引起复制事务影响到异地事务,虽然实现方法较为复杂,但是不仅提升了 replication 性能,还便于实现 Active-Active ( 主动 - 主动 ) 的 Altibase 复制模式。为了实现这样的复制功能, Altibase 在内部创建并管理 Replication Manager, Replication Sender, Replication Receiver 等复制线程。

[b]Replication 特征[/b]

以 table 为单位的复制
提供基于 SQL 语句的用户操作接口
引进复制 object ,将复制信息保存在数据库中进行管理
自动检测服务器故障及网络连接中断并适当应对
服务器故障时可立即访问复制异地服务器,从而提供高可用性
可自动解决复制数据的冲突问题 (conflict resolution)
即使在复制中也保持 90% 以上的独立系统性能
即使开启数据库复制,也能保证 Altibase 服务器及数据库的稳定性
远程服务器 (remote server) 的操作对本地服务器 (local server) 没有额外影响,可以保证服务器之间的局部性
通过 Active-Active 运作方式提供负载均衡 (load balancing) 功能
对方服务器 down 期间 DB 发生的变更,也可以保证系统恢复正常后的数据万全复制
[b]复制管理接口[/b]

Altibase 的复制管理接口提供与 SQL 类似的管理语句,因此在交互式 SQL 工具或应用程序中也可以使用该接口对 Altibase 复制功能进行管理。

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;
[b]复制拓扑[/b]

Altibase 提供 N-W AY 复制,因此可以根据网络条件任意设计复制的线路。

[b]复制[/b]

Altibase 是基于如下 mission 开发的。 您不想体验一下安全快速的数据库复制吗?

    [b]- 高可用性[/b]

通过提供数据复制,当正在服务的系统或软件出现故障时立即将访问转移到可用远程数据库系统,并且考虑到系统的水平可扩展性,可向多个数据库同时进行数据复制。

     [b]- 数据库一致性[/b]

在 Active-Active 模式下复制数据时,又可能会发生在同一数据库服务器中复制事务和本地事务同时访问同一数据的情况,此时会发生数据冲突 (conflict) 。针对这种情况 Altibase 提供自动处理 l 数据冲突的规则,自动完成数据冲突时的数据处理。 Altibase Replication 会自动将冲突内容记录到特定记录文件中,管理者可以通过阅读该记录文件,针对个别情况采取适当的措施。

    [b]- 高性能[/b]

Altibsae 通过最小化数据库复制时产生的 overhead ,可以保证与独立系统 (standalone) 处理事务时几乎相同的高性能。 Altibase 通过避免复制功能对本地数据库直接访问以及最大限度的精简复制操作,从而使 Altibase 复制功能对正常的事务处理所产生的影响降至最低。 Altibase 数据库将变更日志转换成 XLOG 并发送给远程的数据库服务器,而远程数据库服务器则将该 XLOG 以类似 Redo 日志的方式将事物操作反应到本地数据库。这样一种复制实现方式多少有些复杂,但是可以将对 local server 数据库产生的性能影响将至最低,同时可极大提升复制功能本身的性能。

    [b]- 负载均衡及可伸缩性[/b]

在 Altibase 的多服务器运行模式中,通过将事务分为两个以上的 group,使各个事务分别在不同的服务器上执行,并将各服务器中的数据变更操作反映到其他服务器上,从而达到分散服务器上的负载的目的。

2008-5-15 14:33 fsha
[ERR-310B9 : replication is disabled]错误的问题出在哪里呢?

2008-5-15 15:38 tom_111
导致此错误的原因比较多,你需要确认一下信息:
1、做为复制的两台机器是否可以ping通(如果是在一台机器上进行复制,那么此机器必须保证有两块网卡,当然如果有两个IP理论上也可以);
2、altibase内存数据库安装路径中有个目录/conf,此目录下有个altibase.properties文件。你需要确认此文件的参数REPLICATION_PORT_NO的值是否进行了设置。
3、如果两台主机中数据库的复制端口都进行了设置,需要确认复制双方altibase的监听是否起来。执行如下命令即可:
$ netstat -na |grep 23001
如果以上确认都没有问题再考虑别的配置问题。

2008-5-17 20:29 liyongdong
很好 。

2008-7-30 23:10 DBALover
学习了!

2008-8-5 21:56 zhangzongjun
不错,学习了~

页: [1]


Powered by ITPUB论坛