[发明专利]一种内存数据库到文件数据库的数据同步方法及系统无效
申请号: | 200910246099.2 | 申请日: | 2009-12-01 |
公开(公告)号: | CN101876996A | 公开(公告)日: | 2010-11-03 |
发明(设计)人: | 王征;袁晓鹏 | 申请(专利权)人: | 广州从兴电子开发有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 李秋香;逯长明 |
地址: | 510300 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 数据库 文件 数据 同步 方法 系统 | ||
技术领域
本发明涉及数据库领域,特别是涉及一种内存数据库到文件数据库的数据同步方法及系统。
背景技术
预写式日志(Write-Ahead Logging,WAL)是一种实现事务日志的标准方法,WAL的中心思想是对数据文件的修改(表和索引的载体)必须是只能发生在这些修改已经记录了日志之后,即在日志记录冲刷到永久存储器之后。如果遵循这个过程,那么就不需要在每次事务提交的时候都把数据页冲刷到磁盘,因为在出现崩溃的情况下,可以用日志来恢复数据库:任何尚未附加到数据页的记录都将先从日志记录中重做(这叫向前滚动恢复,也叫做REDO日志),然后那些未提交的事务做的修改将被从数据页中删除(这叫向后滚动恢复,也叫做UNDO日志)。
使用WAL的第一个明显的好处就是显著地减少了磁盘写的次数,因为在日志提交时只有日志文件需要flush到磁盘上;在多用户环境里,许多事务的提交可以用日志文件的一次同步函数(fsync())完成。而且,日志文件是顺序写入磁盘的,而数据文件往往在文件中间进行修改,因此同步日志的开销要远比同步数据页的开销要小。
使用WAL的另外一个好处是数据页的完整性。无论是商业数据库、还是常用的开源数据库如MySQL、PostgreSQL等等,在使用WAL原理前,不能保证在崩溃的情况下数据页的完整性。
在使用WAL之前,在写的过程中的任何崩溃都可能导致:
索引记录指向一个不存在表的行。或者,索引记录在分裂操作中丢失。或者,完全崩溃的表和索引页的内容,由于数据页只写一部分的情况。
索引记录指向一个不存在表的行;或者,索引记录在分裂操作中丢失可能已经通过额外的fsync()调用修补好,但是如果没有WAL,那么没有有效处理第三种情况即完全崩溃的表和索引页的内容,由于数据页只写一部分这种情况的方法。如果在崩溃后的恢复中需要确保数据页的完整性,WAL在日志里保存整个数据页的内容。
WAL还提供数据库在线备份和恢复(backup and restore,BAR)的新方法,需要经常性把数据文件保存到另外一个磁盘、磁带或者另外一台主机并且还要备份WAL日志文件。数据库文件拷贝和日志归档文件就可以用于像灾难恢复那样恢复数据。每次做完新数据库文件以后,这个老的日志文件就可以删除。这样就可能需要记录数据文件和索引创建和删除的日志;同时还需要开发一种方法来拷贝数据文件(这是由于操作系统拷贝命令是不合适的)。
困难是要求在相当可观的时间段内保存WAL日志(也就是说,如果需要事务的UNDO,那么和可能的最长事务的时间一样长)。目前数据库使用的WAL格式的体积相当大,因为包括多个磁盘页的镜像。
由于这些日志只需要保留一到两个检查点的时间间隔;但是为了实现日志保存,可能需要某种压缩的WAL格式。
内存数据库在使用的过程中,往往需要定期将内存数据库中表的数据导入到基于磁盘的文件数据库中,如Oracle、DB2等。由于内存数据库和文件数据库的应用领域不同,常用的做法是采用全量表和增量数据的方式。采用这种方式,在操作内存数据库的同时,要向一个增量数据表里插入相应的数据,由一个服务进程定期从增量数据表读取后插入到文件数据库中。
内存数据库为了将数据同步到文件数据库中,必须对需要同步的表建立一个增量数据表。对内存数据库的每一个操作,只要涉及到修改这种表的数据,则必须同时在增量数据表里面增加一条记录,来记录修改的内容。因此,对内存数据库的一个操作,现在演化成为了多个操作,且必须在一个事务中完成。这就大大影响了内存数据库的性能。
发明内容
本发明的目的是提供一种内存数据库到文件数据库的数据同步方法及系统,在不影响内存数据库的性能的前提下,实现数据同步。
本发明提供一种内存数据库到文件数据库的数据同步方法,所述方法包括以下步骤:
A、内存数据库将事务日志记录写入日志缓存区;
B、定义内存数据库和文件数据库数据表的对应关系;
C、根据事务日志刷新进程,异步地将所述日志缓存区中的所述事务日志中信息,按照所述内存数据库和文件数据库数据表的对应关系,同步到文件数据库中。
优选地,所述事务日志为WAL事务日志文件,用于记录内存数据库的事务处理信息。
优选地,所述步骤C所述事务日志为无格式事务日志文件。
优选地,所述文件数据库为Oracle、或DB2、或Informix。
本发明还提供一种内存数据库到文件数据库的数据同步系统,所述系统包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州从兴电子开发有限公司,未经广州从兴电子开发有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910246099.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种实现数据编辑的方法和系统
- 下一篇:一种图像数据仓库管理方法
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置