一种在多节点上传递数据方法及系统的制作方法

文档序号:6585571阅读:89来源:国知局
专利名称:一种在多节点上传递数据方法及系统的制作方法
技术领域
本发明涉及数据库领域,特别是涉及一种在多节点上传递数据方法及系统。
背景技术
预写式日志(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格式。
现有方法0racle TimesTen数据复制解决方案。 专用于Oracle TimesTen内存数据库的解决方案,包括下面几种形式 方式1 :1 Active Master+1 Standby Master+n Read Only Subscriber : 在这禾中方式下,Active Master Database是可读写的,而Standby
MasterDatabase是只读的;Standby Master Database接收至lj Active Master Database
上数据的变化后,在其自身进行相应的修改,之后再将变化通知到后续的Readonly
Subscribers。 在这禾中方式下,Standby Master Database始终领先于后续的Read OnlySubscribers,当Active Master Database出现故障时,Standby MasterDatabase會g
够很快的进行接管。 方式2 :1 Active Master+n Standby Master+n*m Read Only Subscriber:
方式2实质上是方式1的扩展,Propagators接收Master的数据变化后,更新自 身并将变化传递给后续的Subscribers
方式2带来了几个明显的劣势 1) 、 Master和Propagators关系不清,当Master故障失败时,必须通过一定的策 略从Propagators中找出一个数据与Master最接近的节点,被选举为候选Master ;其它的 Propagators首先必须和候选Master进行数据同步,完成数据同步之后,候选的Master成 为真正的Master,其Subscribers由Propagators之一接管。这个过程相当的复杂、耗时, 风险极大。 2)、不同Propagators下的Subscribers数据差异有可能很大,在灾难恢复时需要 进行同步。 考虑在实际应用中方式2所带来的复杂度,本方法忽略了方式2。

发明内容
本发明的目的是提供一种多节点上传递数据方法及系统,用于保证多节点上传递 数据的可行性。
本发明提供一种在多节点上传递数据的方法,包括以下步骤 在生产网络上配置一台主机节点和至少一台备机节点; 接收备机节点发送的备份所述主机节点的内存数据库操作事务日志请求; 将所述主机节点的内存数据库操作事务日志传递到发送请求的所述备机节点。 优选地,所述方法还包括 主机节点选取一个备机节点,通过将所述备机节点保存的内存数据库操作事务日 志传送到所述主机节点,恢复所述主机节点的数据。 优选地,在接收备机节点发送的备份所述主机节点的内存数据库操作事务日志请 求的步骤,具体为 按照预定时间间隔,接收备机节点发送的备份所述主机节点的内存数据库操作事 务日志请求。 优选地,所述预定时间间隔由定时器设定。 优选地,所述内存数据库操作事务日志包含日志序列号。
优选地,所述备份所述主机节点的内存数据库操作事务日志请求,包含对应的所述备机节点存储的当前LSN。 优选地,所述将所述主机节点的内存数据库操作事务日志传递到发送请求的所述备机节点的步骤,具体为 将所述主机节点包含当前LSN的事务日志,传递到发送请求的所述备机节点。
优选地,所述方法还包括 删除所述备机节点存储的LSN小于所述主机节点发送的内存数据库操作事务日志当前LSN的内存数据库操作事务日志。
优选地,所述方法还包括 主机节点选取一个包含最大LSN的备机节点,通过将所述备机节点保存的内存数据库操作事务日志传送到所述主机节点,恢复所述主机节点的数据。 本发明提供一种在多节点上传递数据的系统,所述系统包括一台主机节点和至少一台备机节点; 所述备机节点,用于发送的备份所述主机节点的内存数据库操作事务日志请求;
所述主机节点,用于接收备机节点发送的备份所述主机节点的内存数据库操作事务日志请求;并将所述主机节点的内存数据库操作事务日志传递到发送请求的所述备机节点。 与现有技术相比,本发明具有以下优点 由于本发明实施例所述在多节点上传递数据方法,包括在生产网络上配置一台主机节点和至少一台备机节点;主机节点是根据备机节点发送的请求,将所述主机节点的内存数据库操作事务日志传递到发送请求的所述备机节点。因此,备机节点可以根据自身需要发送备份所述主机节点的内存数据库操作事务日志的请求。通过将内存数据库操作事务日志保存在至少一台备机节点上,保证了内存数据库操作事务日志的数据安全;同时,备机节点数据能够进行查询操作,实现了负载均衡。 由于本发明优选实施例所述在多节点上传递数据方法,主机节点选取一个备机节点,通过将所述备机节点保存的内存数据库操作事务日志传送到所述主机节点,恢复所述主机节点的数据。当主机节点故障失败时,可以选取一个备机节点,通过将所述备机节点保存的内存数据库操作事务日志传送到所述主机节点。


图1为本发明第一实施例所述在多节点上传递数据方法流程 图2为本发明第二实施例所述在多节点上传递数据方法流程 图3为本发明第一实施例所述在多节点 传递数据系统结构 图4为本发明第二实施例所述在多节点上传递数据系统结构图。
具体实施例方式
本发明的目的是提供一种在多节点上传递数据方法,用于保证多节点上传递数据的可行性。 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。 参见图l,该图为本发明第一实施例所述在多节点上传递数据方法流程图。
本发明第一实施例所述在多节点上传递数据方法,包括以下步骤
S100、在生产网络上配置一台主机节点和至少一台备机节点。
主机节点具体可以为主数据库端,备机节点可以是客户端。 在生产网络上配置一个主动主数据库端和一个备机主数据库端。主动主数据库端将主动主数据库端数据,即主动主数据库端内存数据库操作事务日志,采用传统的数据库复制实现方式,即通过TCP通信传递给备机主数据库端。
备机节点具体可以包括多个只读的客户端。 S200、接收备机节点发送的备份所述主机节点的内存数据库操作事务日志请求。
备机节点向主机节点,具体向备机主数据库端发送备份请求,具体请求备份主动主数据库端的内存数据库操作事务日志。 备机节点可以每间隔具体时间间隔向主机节点发送备份请求。 备机节点向主机节点发送备份请求,具体可以由定时器触发。定时器可以设定具
体的时间间隔。 S300、将所述主机节点的内存数据库操作事务日志传递到发送请求的所述备机节点。 主机节点内存数据库操作事务日志,即主机主数据库端内存数据库操作事务日志包含日志序列号(Log Sequence Number, LSN)。 备机节点备份所述主机节点的内存数据库操作事务日志,包含所述内存数据库操作事务日志当前的LSN。 所述主机节点将包含当前LSN的主机节点的内存数据库操作事务日志,传递到发送请求的所述备机节点。 所述备机节点保存包含当前LSN的主机节点的内存数据库操作事务日志,并可以删除所述备机节点存储的LSN小于所述主机节点发送的内存数据库操作事务日志当前LSN的内存数据库操作事务日志。 由于本发明第一实施例所述在多节点上传递数据方法,包括在生产网络上配置一台主机节点和至少一台备机节点;主机节点是根据备机节点发送的请求,将所述主机节点的内存数据库操作事务日志传递到发送请求的所述备机节点。因此,备机节点可以根据自身需要发送备份所述主机节点的内存数据库操作事务日志的请求。通过将内存数据库操作事务日志保存在至少一台备机节点上,保证了内存数据库操作事务日志的数据安全;同时,备机节点数据能够进行查询操作,实现了负载均衡。 由于本发明优选实施例,在生产网络上配置一个主动主数据库端和一个备机主数据库端。主动主数据库端可以将主动主数据库端数据,即主动主数据库端内存数据库操作事务日志,采用传统的数据库复制实现方式传递给备机主数据库端。备机节点即只读的客户端可以向备机主数据库端发送备份所述内存数据库操作事务日志的请求,可以避免数据传递操作对主动主数据库端内存数据库性能的影响。 参见图2,该图为本发明第二实施例所述在多节点上传递数据方法流程图。 本发明所述在多节点上传递数据方法第二实施例,相对第一实施例的区别在于主机节点可以选取一个备机节点,通过将所述备机节点保存的内存数据库操作事务日志传送到所述主机节点,恢复所述主机节点的数据。
本发明第二实施例所述在多节点上传递数据方法,包括以下步骤
S100、在生产网络上配置一台主机节点和至少一台备机节点。 在生产网络上可以配置一个主动主数据库端和一个备机主数据库端。主动主数据库端将主动主数据库端数据即主动主数据库端内存数据库操作事务日志,采用传统的数据库复制实现方式,即通过TCP通信传递给备机主数据库端。备机节点具体可以包括多个只读的客户端。 S200、接收备机节点发送的备份所述主机节点的内存数据库操作事务日志请求。
备机节点向主机节点,具体向备机主数据库端发送备份请求,具体请求备份主动主数据库端的内存数据库操作事务日志。 备机节点可以每间隔具体时间间隔向主机节点发送备份请求。 备机节点向主机节点发送备份请求,具体可以由定时器触发。定时器可以设定具体的时间间隔。 S300、将所述主机节点的内存数据库操作事务日志传递到发送请求的所述备机节点。 主机节点内存数据库操作事务日志,即主动主数据库端内存数据库操作事务日志包含LSN。 备机节点备份所述主机节点的内存数据库操作事务日志,包含所述内存数据库操作事务日志当前的LSN。 所述主机节点将包含当前LSN的主机节点的内存数据库操作事务日志,传递到发送请求的所述备机节点。 所述备机节点保存包含当前LSN的主机节点的内存数据库操作事务日志,并可以删除所述备机节点存储的LSN小于所述主机节点发送的内存数据库操作事务日志当前LSN的内存数据库操作事务日志。 S400、主机节点选取一个备机节点,通过将所述备机节点保存的内存数据库操作事务日志传送到所述主机节点,恢复所述主机节点的数据。 当主机节点意外崩溃后,可以从备机节点中选取一个,通过将所述备机节点的数据文件拷贝到主机节点,实现恢复主机节点数据的目的。 主机节点可以选取一个包含最大LSN的备机节点,通过将所述备机节点保存的内存数据库操作事务日志传送到所述主机节点,恢复所述主机节点的数据。
由于本发明优选实施例所述在多节点上传递数据方法,主机节点选取一个备机节点,通过将所述备机节点保存的内存数据库操作事务日志传送到所述主机节点,恢复所述主机节点的数据。当主机节点故障失败时,可以选取一个备机节点,通过将所述备机节点保存的内存数据库操作事务日志传送到所述主机节点。 本发明的目的是提供一种在多节点上传递数据系统,用于保证多节点上传递数据的可行性。 参见图3,该图为本发明第一实施例所述在多节点上传递数据系统结构图。
本发明第一实施例所述在多节点上传递数据的系统,包括一台主机节点1和至少一台备机节点2。 所述备机节点2,用于发送的备份所述主机节点1的内存数据库操作事务日志请求。 所述主机节点l,用于接收备机节点2发送的备份所述主机节点1的内存数据库操作事务日志请求;并将所述主机节点1的内存数据库操作事务日志传递到发送请求的所述备机节点2。 由于本发明第一实施例所述在多节点上传递数据系统,包括在生产网络上配置一台主机节点1和至少一台备机节点2 ;主机节点1是根据备机节点2发送的请求,将所述主机节点1的内存数据库操作事务日志传递到发送请求的所述备机节点2。因此,备机节点2可以根据自身需要发送备份所述主机节点1的内存数据库操作事务日志的请求。通过将内存数据库操作事务日志保存在至少一台备机节点2上,保证了内存数据库操作事务日志的数据安全;同时,备机节点2数据能够进行查询操作,实现了负载均衡。
参见图4,该图为本发明第二实施例所述在多节点上传递数据系统结构图。
本发明第二实施例所述在多节点上传递数据系统,包括一个主动主数据库端11和一个备机主数据库端12,以及至少一台备机节点2。 主动主数据库端11将主动主数据库端数据即主动主数据库端内存数据库操作事务日志,采用传统的数据库复制实现方式,即通过TCP通信传递给备机主数据库端12。
主机节点1内存数据库操作事务日志,即主动主数据库端11内存数据库操作事务日志包含LSN。 备机节点2备份所述主机节点1的内存数据库操作事务日志,包含所述内存数据库操作事务日志当前的LSN。 所述主机节点1将包含当前LSN的主机节点2的内存数据库操作事务日志,传递到发送请求的所述备机节点2。 所述备机节点2保存包含当前LSN的主机节点1的内存数据库操作事务日志,并可以删除所述备机节点2存储的LSN小于所述主机节点1发送的内存数据库操作事务日志当前LSN的内存数据库操作事务日志。
备机节点2具体可以包括多个只读的客户端。 当主机节点1意外崩溃后,可以从备机节点2中选取一个,通过将所述备机节点2的数据文件拷贝到主机节点l,实现恢复主机节点1数据的目的。 主机节点1可以选取一个包含最大LSN的备机节点2,通过将所述备机节点2保存
的内存数据库操作事务日志传送到所述主机节点l,恢复所述主机节点1的数据。 由于本发明优选实施例所述在多节点上传递数据系统,主机节点1选取一个备机
节点2,通过将所述备机节点2保存的内存数据库操作事务日志传送到所述主机节点l,恢
复所述主机节点1的数据。当主机节点1故障失败时,可以选取一个备机节点2,通过将所
述备机节点2保存的内存数据库操作事务日志传送到所述主机节点1。 以上对本发明所提供的在多节点上传递数据方法及系统,进行了详细介绍,本文
中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮
助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思
想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制'
权利要求
一种在多节点上传递数据的方法,其特征在于,所述方法包括以下步骤在生产网络上配置一台主机节点和至少一台备机节点;接收备机节点发送的备份所述主机节点的内存数据库操作事务日志请求;将所述主机节点的内存数据库操作事务日志传递到发送请求的所述备机节点。
2. 根据权利要求1所述的方法,其特征在于,所述方法还包括主机节点选取一个备机节点,通过将所述备机节点保存的内存数据库操作事务日志传 送到所述主机节点,恢复所述主机节点的数据。
3. 根据权利要求1所述的方法,其特征在于,在接收备机节点发送的备份所述主机节 点的内存数据库操作事务日志请求的步骤,具体为按照预定时间间隔,接收备机节点发送的备份所述主机节点的内存数据库操作事务日 志请求。
4. 根据权利要求3所述的方法,其特征在于,所述预定时间间隔由定时器设定。
5. 根据权利要求1所述的方法,其特征在于,所述内存数据库操作事务日志包含日志 序列号。
6. 根据权利要求5所述的方法,其特征在于,所述备份所述主机节点的内存数据库操 作事务日志请求,包含对应的所述备机节点存储的当前LSN。
7. 根据权利要求6所述的方法,其特征在于,所述将所述主机节点的内存数据库操作 事务日志传递到发送请求的所述备机节点的步骤,具体为将所述主机节点包含当前LSN的事务日志,传递到发送请求的所述备机节点。
8. 根据权利要求7所述的方法,其特征在于,所述方法还包括删除所述备机节点存储的LSN小于所述主机节点发送的内存数据库操作事务日志当 前LSN的内存数据库操作事务日志。
9. 根据权利要求8所述的方法,其特征在于,所述方法还包括主机节点选取一个包含最大LSN的备机节点,通过将所述备机节点保存的内存数据库 操作事务日志传送到所述主机节点,恢复所述主机节点的数据。
10. —种在多节点上传递数据的系统,其特征在于,所述系统包括一台主机节点和至少 一台备机节点;所述备机节点,用于发送的备份所述主机节点的内存数据库操作事务日志请求; 所述主机节点,用于接收备机节点发送的备份所述主机节点的内存数据库操作事务日 志请求;并将所述主机节点的内存数据库操作事务日志传递到发送请求的所述备机节点。
全文摘要
本发明涉及一种在多节点上传递数据的方法,所述方法包括以下步骤在生产网络上配置一台主机节点和至少一台备机节点;接收备机节点发送的备份所述主机节点的内存数据库操作事务日志请求;将所述主机节点的内存数据库操作事务日志传递到发送请求的所述备机节点。本发明提供一种多节点上传递数据的方法及系统,用于保证多节点上传递数据的可行性。
文档编号G06F17/30GK101714169SQ200910246098
公开日2010年5月26日 申请日期2009年12月1日 优先权日2009年12月1日
发明者王征, 袁晓鹏 申请人:广州从兴电子开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1