[发明专利]一种内存数据库节点复制方法有效
申请号: | 201210017821.7 | 申请日: | 2012-01-20 |
公开(公告)号: | CN102609479A | 公开(公告)日: | 2012-07-25 |
发明(设计)人: | 王金山 | 申请(专利权)人: | 北京神州数码思特奇信息技术股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 数据库 节点 复制 方法 | ||
技术领域
本发明涉及一种内存数据库领域,更具体的说,涉及一种内存数据库复制方法,用于解决多个内存数据库之间数据一致性的问题。
背景技术
随着电信业不断的发展,业务扩展越来越广,各种新业务层出不穷,数据量也越来越大,对数据访问的不间断要求也越来越高。大量的用户资料数据、用户消费数据都需要存放在内存数据库中,但是由于内存的非持久性,一旦内存数据库进程或者所在主机发生异常停止,内存中的数据就将全部丢失,直接导致应用程序无法继续进行访问。如何确保一个内存数据库节点损坏,另一个节点能够快速接管,成为内存数据库安全的关键技术。
目前,内存数据库之间的数据保持一致的方式一般有两种:一是完全同步方式,二是SQL语句重做方式。
对于完全同步方式,当应用程序修改主节点数据时,同时通过网络去修改其他节点的内存数据库数据,当两者都操作成功后,再返回操作成功的标志。此种方式虽然能够保证两个节点之间的数据能够完全一致,但由于需要同时操作两个节点,使得访问效率大打折扣,无法发挥内存数据库访问速度快的优势。另外,随着需要同步的节点的增加,访问速度也会急剧下降。
对于SQL语句重做的方式,应用程序修改主节点数据时,同时将SQL操作写入日志文件。通过单独的复制程序,实时读取日志文件,将SQL语句通过网络发送到其他节点并执行,此种方式虽然不会影响应用访问内存数据库主节点的速度,但复制进程需要重新解析SQL语句, 并重新在内存中查找需要操作的记录,在数据量巨大的电信业务系统中,难以在短时间内将变化的数据复制到其他节点的内存中。
因此,需要提出一种既能节省资源,又能快速高效的实现内存数据库复制的方法。
发明内容
为了实现多个内存数据库之间数据的实时同步,本发明提出一种内存数据库节点复制方法。
该方法包括如下步骤:
步骤1:主节点等待其他节点的连接请求;
步骤2:备节点申请连接主节点,并发送需要复制的表的表名;
步骤3:主节点扫描本节点的REDO日志文件,根据接收的表名挑选出需要发送的数据生成包括待复制表的增量数据包,通过Socket批量发送给备节点;
步骤4:备节点接收到需要的数据后,在本节点的内存数据库中逐条写入,成功后,将成功标志发送给主节点;
步骤5:主节点收到成功标志后,记录本次扫描REDO日志文件的截止位置,以便于下次扫描时,从此位置接续。
本发明的有益效果是: 备节点在向主节点申请数据时,需要向主节点发送需要复制的表的表名,这样可以根据实际需要选择需要复制的表,不需要复制的表则不用发送,从而节省相关资源。另外,由于各节点之间直接通过REDO日志进行数据复制,REDO日志中含有每条记录的内存坐标,备节点可以直接根据内存坐标值在内存中定位对应的记录,快速完成修改操作。
进一步,REDO日志中每条记录中存放的是当前每个字段的值,即使之前主节点和备节点之间的记录由于某种原因已经不一致了,经过REDO日志的复制之后,备节点会立即将对应记录的值改成和主节点一致的数据,从而确保备节点的数据时刻和主节点保持一致。
附图说明
图1为本发明的内存数据库节点复制方式的流程图。
图2为本发明的备节点的接收线程流程图。
图3为本发明作为数据源的主节点的发送线程流程图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明的内存数据库节点复制方法,如图1所示,包括如下步骤:
步骤1:主节点等待其他节点的连接请求,例如打开socket接口,启动监听服务;
步骤2:备节点申请连接主节点,并发送需要复制的表的表名;
步骤3:主节点扫描本节点的REDO日志文件,根据接收的表名挑选出需要发送的数据,生成待复制表的增量数据包,通过Socket批量发送给备节点;
步骤4:备节点从端口读取接收到的数据后,在本节点的内存数据库中按顺序写入,成功后,将成功标志发送给主节点;
步骤5:主节点收到成功标志后,记录本次扫描REDO日志文件的截止位置,以便于下次扫描时,从此位置接续。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京神州数码思特奇信息技术股份有限公司,未经北京神州数码思特奇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210017821.7/2.html,转载请声明来源钻瓜专利网。