banner
数据同步

企业的大量宝贵数据都存储在数据库中。但是大量的企业应用系统中在线的数据库通常就只有一份,如果这一个运行中的数据库出问题了,结果可能就是灾难性的。

为了保证数据库的可靠运行,目前通常采取的方法备份。备份是保留了额外的数据,但是问题是数据不是最新的,通常是会丢失至少一天的数据,而且,当在线数据库出现问题后,恢复备份数据库少则需要几个小时,多则需要几天。

为了解决数据库单点故障问题,数据实时同步通常采取以下三种解决方案:

存储层同步 数据文件放置在存储阵列上,利用存储内置的同步功能,将数据文件所在的DISK同步到另外一个存储柜上。

操作系统层同步 将生产服务器的数据文件或者整个目录,同步到另外一台或者多台备用服务器上。

数据库层同步 将生产数据库的日志(通常是DDL和DML操作指令)同步到另外一台或者多台数据库服务器上。

存储层的数据同步解决方案,同步的是整个DISK或者LUN,由于各厂家的技术并不相互兼容,实施不够灵活,而且成本高昂,很少采用。下面主要讨论“操作系统层”和“数据库层”的解决方案。

操作系统层同步

不管什么数据库,运行在操作系统上的数据库,都是以文件形式存在的,包括数据文件、日志文件、参数文件、控制文件等等。数据库表记录的改变,最终反应的是相对的文件的数据块的改变,只要把这些改变的数据块同步到另外一台服务器上,就达到了数据实时同步的目的。

实现数据实时同步复制,需要第三方的软件来实现,譬如RoseReplicator。当生产服务器出现故障不能使用时,备用服务器立刻接管IP,启用数据库,使应用不中断。

数据库层同步

数据库层同步,就是数据库日志(即DML、DDL这些SQL语句)同步到另外一台数据库服务器上,然后应用这些日志/SQL语句,从而达到表记录相同。当生产库不可用时,可将访问连接指向到备用服务器。正常情况下,报表查询可以连接到备用服务器,减轻生产服务器负载,达到读写分离/容灾的目的。

数据库层的数据同步,通常是采取同步SQL语句等日志到其它服务器上并应用,譬如oracle goldengate,dataguard,sybase replicator,moebius等等。其中goldengate功能最为强大,可以实现异构数据库同步,可作为数据ETL工具。

ORACLE ACTITVE DATAGUARD 容灾、同步、读写分离

ORACLE GoldenGate(OGG)容灾、同步

如您对此感兴趣,可联系我们索取相应的方案。