一种数据同步的方法和装置的制造方法

文档序号:9922084阅读:498来源:国知局
一种数据同步的方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据库技术领域,尤其涉及一种数据同步的方法和装置。
【背景技术】
[0002]传统的数据库管理系统把所有数据都放在磁盘上进行管理,由于I/0(Input/Output,输入/输出)处理等方面的原因,往往导致对磁盘数据的处理性能不高,即使引入了SSD(Solid State Drive,固态硬盘),其对性能的提升依然有限。
[0003]而内存数据库将数据几乎全部放入内存中,并且对数据库的操作算法和数据结构进行了各种针对性的优化设计,从而使内存数据库的数据处理速度比传统磁盘数据库快10倍以上,甚至可以达到1000倍。
[0004]但内存数据库由于将数据保存在内存中,一旦主机宕机,数据将会丢失,造成无法对数据进行持久化的安全存储。

【发明内容】

[0005]本发明的目的在于提供一种数据同步的方法和装置,旨在解决现有技术中对磁盘数据库的处理性能不高,以及内存数据库的数据无法持久化安全存储的问题。
[0006]本发明的第一方面,提供一种数据同步的方法,包括:
[0007]将磁盘数据库中的数据同步到内存数据库中,使得所述内存数据库和所述磁盘数据库的数据一致;
[0008]当所述内存数据库中的数据发生变化时,将导致所述数据发生变化的数据库事务记录到事务日志中;
[0009]根据所述事务日志,将所述内存数据库中发生变化的数据同步至所述磁盘数据库。
[0010]本发明的第二方面,提供一种数据同步的装置,包括:
[0011 ]导出模块,用于将磁盘数据库中的数据同步到内存数据库中,使得所述内存数据库和所述磁盘数据库的数据一致;
[0012]记录模块,用于当所述内存数据库中的数据发生变化时,将导致所述数据发生变化的数据库事务记录到事务日志中;
[0013]同步模块,用于根据所述事务日志,将所述内存数据库中发生变化的数据同步至所述磁盘数据库。
[0014]本发明与现有技术相比存在的有益效果是:通过当内存数据库中的数据发生变化时,将导致数据发生变化的数据库事务记录到事务日志中,并根据事务日志将内存数据库中发生变化的数据同步至磁盘数据库,实现内存数据库到磁盘数据库的实时同步,使得在内存数据库满足对数据的高处理性能的同时,磁盘数据库满足对数据进行持久化的安全存储,从而充分发挥了内存数据库的高速度和磁盘数据库的高可靠性,因而适合在需要同时满足数据处理高速性和数据高可靠性的场合使用。
【附图说明】
[0015]图1是本发明实施例一提供的数据同步的方法的流程图;
[0016]图2是本发明实施例二提供的数据同步的方法的流程图;
[0017]图3是本发明实施例三提供的数据同步的装置的结构示意图;
[0018]图4是本发明实施例四提供的数据同步的装置的结构示意图。
【具体实施方式】
[0019]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0020]以下结合具体附图对本发明的实现进行详细的描述。
[0021]实施例一:
[0022]图1是本发明实施例一提供的数据同步的方法的流程图,具体包括步骤SlOl至S103,详述如下:
[0023]S101、将磁盘数据库中的数据同步到内存数据库中,使得内存数据库和磁盘数据库的数据一致。
[0024]具体地,在系统启动的时候,将磁盘数据库中的数据同步到内存数据库中,使得内存数据库和磁盘数据库的数据一致。
[0025]通常情况下,为了提高性能,应用程序与内存数据库位于同一台服务器中,而为了数据的安全性,可将磁盘数据库和内存数据库分别配置于不同的服务器中。
[0026]S102、当内存数据库中的数据发生变化时,将导致数据发生变化的数据库事务记录到事务日志中。
[0027]数据库事务(Database Transact1n),是指作为单个逻辑工作单元执行的一系列操作。
[0028]具体地,在系统运行过程中,对内存数据库的操作可能会使得内存数据库中的数据发生变化,通过利用数据库事务执行相应的操作,使得内存数据库中的数据发生相应的变化,并将该数据库事务记录到事务日志中。数据的变化具体可包括:新增数据、删除数据以及修改数据。
[0029]S103、根据事务日志,将内存数据库中发生变化的数据同步至磁盘数据库。
[0030]具体地,对事务日志进行解析,根据事务日志中记录的数据库事务的内容,执行对磁盘数据库的操作,将内存数据库中发生变化的数据同步到磁盘数据库中,即对磁盘数据库中的相应数据执行相同的操作,使得磁盘数据库中的数据与内存数据库中的数据保持一致。
[0031 ] 优选地,可以通过调用0DBC(0pen Database Connectivity,开放数据库互联)驱动提供的接口来执行对磁盘数据库的操作。
[0032]本实施例中,通过当内存数据库中的数据发生变化时,将导致数据发生变化的数据库事务记录到事务日志中,并根据事务日志将内存数据库中发生变化的数据同步至磁盘数据库,实现内存数据库到磁盘数据库的实时同步,使得在内存数据库满足对数据的高处理性能的同时,磁盘数据库满足对数据进行持久化的安全存储,从而充分发挥了内存数据库的高速度和磁盘数据库的高可靠性,因而适合在需要同时满足数据处理高速性和数据高可靠性的场合使用。
[0033]实施例二:
[0034]图2是本发明实施例二提供的数据同步的方法的流程图,具体包括步骤S201至S204,详述如下:
[0035]S201、将磁盘数据库中的数据同步到内存数据库中,使得内存数据库和磁盘数据库的数据一致。
[0036]具体地,在系统启动的时候,将磁盘数据库中的数据同步到内存数据库中,使得内存数据库和磁盘数据库的数据一致。
[0037]通常情况下,为了提高性能,应用程序与内存数据库位于同一台服务器中,而为了数据的安全性,可将磁盘数据库和内存数据库分别配置于不同的服务器中。
[0038]S202、当内存数据库中的数据发生变化时,将导致数据发生变化的数据库事务记录到事务日志中。
[0039]数据库事务(Database Transact1n),是指作为单个逻辑工作单元执行的一系列操作。
[0040]具体地,在系统运行过程中,对内存数据库的操作可能会使得内存数据库中的数据发生变化,通过利用数据库事务执行相应的操作,使得内存数据库中的数据发生相应的变化,并将该数据库事务记录到事务日志中。数据的变化具体可包括:新增数据、删除数据以及修改数据。
[0041]S203、检测当前时间是否到达预置同步时间。
[0042]具体地,预置同步时间为预先设定的执行内存数据库和磁盘数据库的数据同步的时间。
[0043]如果每执行一个数据库事务,就提交一次对磁盘数据库的同步,那么由于提交过程比较耗时,就会导致同步的效率降低,因此可以将数据库事务累积到一定数量后再一次性提交,从而减少对磁盘数据库的提交次数,提高同步效率。但是在内存数据库的负载率较低的时候,可能会导致长时间内不能积累到足够数量的数据库事务来触发提交对磁盘数据库的同步,因此可以设置一个预置的同步时间,定时将内存数据库中发生变化的数据同步到磁盘数据库中。
[0044]S204、若当前时间未到达预置同步时间,则检测事务日志中未同步的数据库事务的数量是否大于或等于预置数量,若大于或等于,则根据未同步的数据库事务,将内存数据库中发生变化的数据同步至磁盘数据库。
[0045]具体地,如果当前时间没有到达预置同步时间,则说明还没有达到触发定时同步的条件,此时
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1