Oracle数据库是应用最多的数据库,为中国众多行业提供了服务。深圳潮数软件科技有限公司(以下简称“潮数科技”)推出专业针对Oracle数据库的复制系统,其基于Oracle 在线日志和事务进行复制(同步)操作,对原数据库“零影响”,并提供了诸如双活、断点续传、高可靠性、支持加密传输等特色功能。
基于日志、事务捕获、无需代理和校验 对原数据库几乎“零影响”
数据库复制(replication)与同步(syhchronize)是有区别的,同步要比复制技术上难得多。因为,同步≠复制,同步的目的是只留下最新的文件,而复制文件只是希望把文件制作一份拷贝。因此,同步是一个双向的过程,而复制只是简单的单向过程。同步后,要保证源端和目标端的数据库是“完全一致的”,也只有这样,才能够实现双活和读写分离。
传统的数据库备份、复制、同步软件往往通过触发器(trigger)来实现数据库内容的复制,这不仅延迟较高(往往达到秒级或以上),而且对于原有的数据库和系统是有极大影响的,会“拖累”原数据库及其系统。
而潮数数据库复制系统通过实时解析数据库在线Log日志(先分析Redo log,后分析Archive log)的获取数据变化信息,然后将这些变化信息发送到目标数据库去应用,以达到保持源端和目标端数据库的数据实时保持一致的状态。
潮数数据库复制系统无需等待Oracle Redo Log文件归档之后再进行处理,而是在线读取其数据块内容,抓取日志跟Oracle数据库写日志是并行操作而又不互相影响,而且不使用Oracle的任何资源。
即潮数数据库复制系统通过日志、事务(SCN变化)来捕获,只有毫秒级的延迟,不依赖于触发器,多任务并发分析日志,把无用的日志过滤掉,只使用最有用的日志进行分析,排成队列(按照事务顺序生成Jsonfile队列文件,队列文件约1/4日志大小)进行处理。不占用Oracle的资源,对于原有的数据库几乎是“零影响”。
潮数数据库复制系统不会传输Oracle redo log的全部内容到目标端,除指定复制对象(数据表)相关的DML/DDL操作之外,其他的信息不作处理,也就是说潮数数据库复制系统以事务为单位来跟踪,分析在线日志,只处理已经确认(COMMIT)的交易,对于“回滚”(ROLLBACK)操作,潮数数据库复制系统不处理,所以只需要抓取约1/3日志变化量。
同时,潮数数据库复制系统所有操作是基于数据库的,而不是基于磁盘和文件的,配置更灵活,对于系统几乎是没有影响的。
而且,潮数数据库复制系统是基于Oracle的机制来实现同步的,数据无需校验,减轻了资源占用的同时,保证了数据一致性。而传统的CDP是需要一致性代理,还需要外围进行校验,对于系统资源的占用较大。
潮数数据库复制系统进行增量同步时,CPU资源占用一般<5%,内存资源占用则<5%,是极小的资源占用,对系统的影响是非常小的。
由于潮数数据库复制系统对日志的整合和传输以“事务”为单位,无需处理复杂的“回滚”(ROLLBACK)机制。所以使用该技术,在拥有高性能的同时还能够更好地保证数据复制(同步)的一致性和完整性。
双活数据库 负载均衡的同时实现读写分离
潮数数据库复制系统在进行数据库同步操作时,同时支持开归档或不开归档备份,较RMAN更为先进;而且,其源端和目标端的数据库都是可用的,是打开的,是“活的”,数据可读、增、删、改,可用于数据集成、数据挖掘、数据分析。
小知识 Oracle数据库的归档模式与非归档模式的区别
在归档模式下,当LGWR后台进程的写操作从一个重做日志组切换到另一个重做日志组之后,归档写后台进程(ARCH/ARCRn)就会将原来的重做日志文件中的信息赋值到归档日志文件中,可以把归档日志文件看成是重做日志文件的克隆。 Oracle服务器保证,在归档写后台进程没有将重做日志文件中的信息赋值到归档日志文件之前,和检查点操作没有完成之前,LGWR不能再写这组重做日志文件;同时Oracle还要将一条记录有这个归档日志文件序列号的记录写入控制文件。有了归档日志文件,Oracle服务器就能保证所谓的全恢复,即所有提交的数据都能恢复,因为那些在重做日志文件中被覆盖掉的信息已经存在于归档日志文件中了。
在非归档模式下,没有产生归档文件,数据库无法保证在系统崩溃之后所有的提交数据都能恢复,因为当重做日志切换了一圈,后提交的数据已经被覆盖。在非归档模式下,数据库只能保证恢复到上一次备份的时间点,从上一次备份到系统崩溃这段时间内的所有提交的数据会丢失。相对于归档模式,数据库性能会稍有提高。
这样,能够实现读写分离,也能够实现更好地负载均衡,尤其是对于源端的压力明显减轻,可保证源端更稳定地运行。
与CDP、P2V完全不一样,此时往往目标端数据库是关闭状态,是“死的”,根本不可能实现读写分离和负载均衡,浪费了资源。
双活方案还有一个好处,当一个站点发生故障时,另外一个站点可实时接管所有业务,能够实现应用级双活无缝切换,保证业务连续性,防止业务宕机。因此,“双活”解决方案也成为了当下数据中心建设的热点话题。
断点续传 确认后删除 解决“大数据问题”
潮数数据库复制系统提供了断点续传功能,能够提供可靠的传输保障。在网络中断、系统宕机、数据库关闭等故障情况下,仍然能够保证数据的续传。
潮数数据库复制系统提供了点对点传输,在源端和目标端都设置有磁盘缓存,文件按照顺序传输。等目标端确认写入磁盘后才会删除源端数据。
就算需要同步或复制、备份的数据量很大,断点续传、点对点传输、删除确认等特色也能够保证“大数据”得到很好的处理。
加密传输 保证数据安全
潮数数据库复制系统支持传输过程中加密数据,保证在传输过程中不被黑客或第三方截获,保证数据安全。
支持更多操作系统和数据库 支持异构环境
潮数数据库复制系统支持更多操作系统和数据库,其中日志抓取支持: Oracle 9i、10g、11g、12c、Informix、DB2;数据装载支持: Oracle 9i、10g、11g、12c、MySql、分布式Mysql、Sql Server、HP Vertica、 Teradata;操作系统支持:Windows XP、2000、2003、Linux各版本、 Sun Solaris、 HP NonStop、HP-UX、HP TRU64、 HP OpenVMS、 IBM AIX、IBM z、IBM ISeries、zLinux等。
潮数数据库复制系统能够支持Oracle RAC,可以支持24 x 7 有效的数据库应用系统,在低成本服务器上构建高可用性数据库系统,并且自由部署应用。在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。
潮数数据库复制系统对于异构环境支持较好,尤其是对于异构操作系统支持更好。
潮数数据库复制系统同时支持国产数据库和任何支持JDBC接口的数据库,高灵活、可扩展性,开放式的API,更容易接受扩展性。
潮数数据库复制系统拥有先进的加载机制,采用并发、多线程的装载技术,同时支持分布式数据库加载;同时通过接口的模式支持别的数据库的加载。
支持异构环境下旧系统不断机迁移和增量同步
潮数数据库复制系统能够提供异构数据库环境下历史数据的初始化全同步和实时变化数据的增量同步功能。
首先实现历史数据初始化全同步历史数据同步功能:历史数据和增量数据同时读取;历史数据装载完成后,增量数据开始装载;之后即开始增量数据同步。
历史数据的迁移过程中系统不必中断,有效地保证业务连续。
潮数数据库复制系统可广泛地被应用在本地容灾、异地容灾、异构数据库数据分发、数据清洗、在线迁移、读写分离、合规遵从等场景。