CN105095245B - 基于关联型数据库的归档日志同步方法及系统 - Google Patents
基于关联型数据库的归档日志同步方法及系统 Download PDFInfo
- Publication number
- CN105095245B CN105095245B CN201410184551.8A CN201410184551A CN105095245B CN 105095245 B CN105095245 B CN 105095245B CN 201410184551 A CN201410184551 A CN 201410184551A CN 105095245 B CN105095245 B CN 105095245B
- Authority
- CN
- China
- Prior art keywords
- library
- standby
- archive log
- log
- archive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 33
- 230000007246 mechanism Effects 0.000 claims abstract description 25
- 230000002159 abnormal effect Effects 0.000 claims description 18
- 230000005856 abnormality Effects 0.000 claims description 13
- 230000005389 magnetism Effects 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 6
- 239000003999 initiator Substances 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 239000013589 supplement Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明适用于数据安全技术领域,提供了一种基于关联型数据库的归档日志同步方法,包括有:第一日志写步骤,主库在正常服务时,所述主库将第一归档日志写入备库;第二日志写步骤,所述主库同时将第二归档日志写入备库机器的第一本地磁盘;第一事务递交步骤,当所述第一归档日志和所述第二归档日志写完后,所述主库递交事务。本发明还提供一种基于关联型数据库的归档日志同步系统。借此,本发明通过采用归档日志双写机制来保证数据安全性,同时可提升系统可用性。
Description
技术领域
本发明涉及数据安全技术领域,尤其涉及一种基于关联型数据库的归档日志同步方法及系统。
背景技术
MySQL是一种关联型数据库管理系统,关联型数据库将数据保存在不同的表中,而不是将所有数据放在一大仓库内,可增加速度并提高灵活性。MySQL主备通常采用的是异步备份机制,即主库的事务完成后就返回给用户。备库获取主库的归档日志(Binlog)执行,来实现主备一致。但异步备份机制在主库提交事务后,如果发生主库的机器操作系统崩溃后无法正常重启,或磁盘坏道,而在崩溃之前最后的几个事务的归档日志来不及发送给备库,则会导致这几个事务永久丢失。
对上述技术问题,现有的解决方案是半同步机制(Semi-Sync),即等待归档日志传给备库并收到备库的确认信息后才返回给用户。半同步机制有几个权衡的变种,其总体的解决思路均为:如果主库、备库收到归档日志,并返回确认后再提交事务,那么在主库返回用户“事务已提交”时,能保证归档日志已经发送给备库,之后即使主库崩溃无法恢复,备库仍能利用已经传到本地的归档日志恢复出事务。此后只需作一备库已经收到这个事务的主备切换,新主库便能继续提供服务,对用户来说数据没有丢失。
但所述半同步机制存在的问题是,如果网络出现抖动等网络异常情况,则会由于主库迟迟收不到备库的确认信息导致事务无法提交。从整个系统角度来看会降低系统可用性:原来只需保证主库正常即可,现在网络问题可能影响事务提交。一般的解决方法是,设定一时间阈值(例如1秒),如果超过所述时间阈值,则认为网络状况已经很差,退化成原生的异步备份机制,这降低了整个主备架构对外的可用性。
综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种基于关联型数据库的归档日志同步方法及系统,通过采用归档日志双写机制来保证数据安全性,同时可提升系统可用性。
为了实现上述目的,本发明提供一种基于关联型数据库的归档日志同步方法,包括有:
第一日志写步骤,主库在正常服务时,所述主库将第一归档日志写入备库,所述第一归档日志由所述主库的本地归档日志提供;
第二日志写步骤,所述主库同时将第二归档日志写入备库机器的第一本地磁盘,所述第二归档日志由所述主库的本地归档日志提供;
第一事务递交步骤,当所述第一归档日志和所述第二归档日志写完后,所述主库递交事务。
根据本发明所述的归档日志同步方法,所述主库与所述备库之间以异步备份机制互为主备关系;
所述第一日志写步骤包括:
所述主库将所述第一归档日志异步写入所述备库;
所述第二日志写步骤包括:
所述主库同时将所述第二归档日志同步写入所述备库机器的所述第一本地磁盘。
根据本发明所述的归档日志同步方法,还包括主备切换步骤,所述主备切换步骤进一步包括:
获取子步骤,所述备库分别获取所述第一归档日志和所述第二归档日志;
判断子步骤,判断所述第一归档日志和所述第二归档日志是否相同;
第一切换子步骤,若所述两份归档日志相同,所述备库执行所述第一归档日志并直接作为新主库提供服务,所述主库作为新备库;
第二切换子步骤,若所述两份归档日志不同,所述备库执行所述两份归档日志中内容最全的一个归档日志并作为新主库提供服务,所述主库作为新备库。
根据本发明所述的归档日志同步方法,所述获取子步骤包括:
所述备库从本地获取所述第一归档日志,所述第一归档日志的最后位置为位置P;
所述备库登录所述备库机器的所述第一本地磁盘获取所述第二归档日志,所述第二归档日志的最后位置为位置Q;
所述判断子步骤包括:
判断所述位置P和所述位置Q是否相同;
所述第一切换子步骤包括:
若所述位置P和所述位置Q相同,所述备库执行所述第一归档日志并直接作为新主库提供服务,所述主库作为新备库;
所述第二切换子步骤包括:
若所述位置P和所述位置Q不同,且所述位置Q大于所述位置P,则所述备库从所述位置P开始,将所述位置P之后的所述第二归档日志解析并在本地执行以实现位置补偿,所述备库执行完成后作为新主库提供服务,所述主库作为新备库。
根据本发明所述的归档日志同步方法,所述第二日志写步骤还包括:
检测网络是否处于正常状态;
若网络处于正常状态,则所述主库同时将所述第二归档日志写入所述备库机器的所述第一本地磁盘;
若网络处于异常状态,则所述主库放弃写入所述第二归档日志到所述第一本地磁盘;
若网络从异常状态恢复到正常状态,所述主库将新的第二归档日志追加写入所述第一本地磁盘;
所述第一事务递交步骤包括:
若网络正常,且当所述第一归档日志和所述第二归档日志写完后,所述主库递交事务;
若网络异常,且当所述第一归档日志写完后,所述主库递交事务。
根据本发明所述的归档日志同步方法,所述主备切换步骤进一步包括:
第三切换子步骤,若所述第二归档日志被放弃写入,则所述备库执行所述第一归档日志并直接作为新主库提供服务,所述主库作为新备库。
根据本发明所述的归档日志同步方法,所述主备切换步骤之后还包括:
第三日志写步骤,所述新主库在正常服务时,所述新主库将第三归档日志异步写入所述新备库,所述第三归档日志由所述新主库的本地归档日志提供;
第四日志写步骤,所述新主库同时将第四归档日志同步写入新备库机器的第二本地磁盘,所述第四归档日志由所述新主库的本地归档日志提供;
第二事务递交步骤,当所述第三归档日志和所述第四归档日志写完后,所述新主库递交事务。
根据本发明所述的归档日志同步方法,还包括:
启动步骤,所述主库启动后,所述主库以发起者身份登录所述备库机器的所述第一本地磁盘;
所述第二日志写步骤包括:
所述主库以发起者身份通过ISCSI协议将所述第二归档日志写入所述备库机器的所述第一本地磁盘;
所述备库获取所述第二归档日志的步骤包括:
所述备库以发起者身份登录所述备库机器的所述第一本地磁盘,并从所述第一本地磁盘中获取所述第二归档日志。
根据本发明所述的归档日志同步方法,所述主备切换步骤的所述获取子步骤之前还包括:
切换启动子步骤,当接收到用户的主动切换指令或者检测到所述主库崩溃时,启动主备切换。
根据本发明所述的归档日志同步方法,所述关联型数据库为MySQL,并在所述MySQL的源码中增加double_file_dst_dir参数,所述double_file_dst_dir参数映射所述备库机器的所述第一本地磁盘的磁盘路径,所述第一本地磁盘可供所述主库和所述备库访问和读写;
所述第二日志写步骤包括:
所述主库同时将所述第二归档日志写入所述double_file_dst_dir参数中。
本发明还提供一种基于关联型数据库的归档日志同步系统,所述归档日志同步系统包括主库和备库,所述主库设于主库机器中,所述备库设于备库机器中,所述备库机器设有第一本地磁盘,所述主库还包括有:
第一日志写模块,用于所述主库在正常服务时,将第一归档日志写入所述备库,所述第一归档日志由所述主库的本地归档日志提供;
第二日志写模块,用于同时将第二归档日志写入所述备库机器的所述第一本地磁盘,所述第二归档日志由所述主库的本地归档日志提供;
第一事务递交模块,当所述第一归档日志和所述第二归档日志写完后,递交事务。
根据本发明所述的归档日志同步系统,所述主库与所述备库之间以异步备份机制互为主备关系;
所述第一日志写模块用于将所述第一归档日志异步写入所述备库;
所述第二日志写模块用于同时将所述第二归档日志同步写入所述备库机器的所述第一本地磁盘。
根据本发明所述的归档日志同步系统,所述归档日志同步系统还包括主备切换模块,所述主备切换模块可设于所述主库和/或所述备库中,进一步包括:
获取子模块,用于控制所述备库分别获取第一归档日志和第二归档日志;
判断子模块,用于判断所述第一归档日志和所述第二归档日志是否相同;
第一切换子模块,用于若所述两份归档日志相同,控制所述备库执行所述第一归档日志并直接作为新主库提供服务,所述主库作为新备库;
第二切换子模块,用于若所述两份归档日志不同,控制所述备库执行所述两份归档日志中内容最全的一个归档日志并作为新主库提供服务,所述主库作为新备库。
根据本发明所述的归档日志同步系统,所述获取子模块用于控制所述备库从本地获取所述第一归档日志,所述第一归档日志的最后位置为位置P;以及控制所述备库登录所述备库机器的所述第一本地磁盘获取所述第二归档日志,所述第二归档日志的最后位置为位置Q;
所述判断子模块用于判断所述位置P和所述位置Q是否相同;
所述第一切换子模块用于若所述位置P和所述位置Q相同时,控制所述备库执行所述第一归档日志并直接作为新主库提供服务,所述主库作为新备库;
所述第二切换子模块用于若所述位置P和所述位置Q不同时,且所述位置Q大于所述位置P,则控制所述备库从所述位置P开始,将所述位置P之后的所述第二归档日志解析并在本地执行以实现位置补偿,所述备库执行完成后作为新主库提供服务,所述主库作为新备库。
根据本发明所述的归档日志同步系统,所述第二日志写模块还包括:
检测子模块,用于检测网络是否处于正常状态;
第一写入子模块,用于若网络处于正常状态,则控制所述主库同时将所述第二归档日志写入所述备库机器的所述第一本地磁盘;
放弃子模块,用于若网络处于异常状态,则控制所述主库放弃写入所述第二归档日志到所述第一本地磁盘;
第二写入子模块,用于若网络从异常状态恢复到正常状态,控制所述主库将新的第二归档日志追加写入所述第一本地磁盘;
所述第一事务递交模块包括:
第一递交子模块,用于若网络正常,且当所述第一归档日志和所述第二归档日志写完后,控制所述主库递交事务;
第二递交子模块,用于若网络异常,且当所述第一归档日志写完后,控制所述主库递交事务。
根据本发明所述的归档日志同步系统,所述主备切换模块进一步包括:
第三切换子模块,用于若所述第二归档日志被放弃写入,则控制所述备库执行所述第一归档日志并直接作为新主库提供服务,所述主库作为新备库。
根据本发明所述的归档日志同步系统,所述备库还包括:
第三日志写模块,用于在所述主备切换模块完成主备切换后,所述新主库在正常服务时,控制所述新主库将第三归档日志异步写入所述新备库,所述第三归档日志由所述新主库的本地归档日志提供;
第四日志写模块,用于控制所述新主库同时将第四归档日志同步写入新备库机器的第二本地磁盘,所述第四归档日志由所述新主库的本地归档日志提供;
第二事务递交模块,用于当所述第三归档日志和所述第四归档日志写完后,控制所述新主库递交事务。
根据本发明所述的归档日志同步系统,所述主库还包括:
启动模块,用于在所述主库启动后,控制所述主库以发起者身份登录所述备库机器的所述第一本地磁盘;
所述第二日志写模块用于控制所述主库以发起者身份通过ISCSI协议将所述第二归档日志写入所述备库机器的所述第一本地磁盘;
所述获取子模块用于控制所述备库以发起者身份登录所述备库机器的所述第一本地磁盘,并从所述第一本地磁盘中获取所述第二归档日志。
根据本发明所述的归档日志同步系统,所述主备切换模块进一步包括:
切换启动子模块,用于当接收到用户的主动切换指令或者检测到所述主库崩溃时,启动主备切换。
根据本发明所述的归档日志同步系统,所述关联型数据库为MySQL,并在所述MySQL的源码中增加double_file_dst_dir参数,所述double_file_dst_dir参数映射所述备库机器的所述第一本地磁盘的磁盘路径,所述第一本地磁盘可供所述主库和所述备库访问和读写;
所述第二日志写模块用于控制所述主库同时将所述第二归档日志写入所述double_file_dst_dir参数中。
本发明提供基于关联型数据库的归档日志同步方案,在主库正常服务时,不仅将第一归档日志写入备库,而且同时将相同的一份第二归档日志写入备库机器的第一本地磁盘,当所述两份归档日志写完后,主库才会递交事务。在进行主备切换时,所述备库分别获取所述两份归档日志,选择执行所述两份归档日志中内容最全的一个归档日志并作为新主库提供服务,所述主库作为新备库。由于备库和第一本地磁盘在同一备库机器中,这样在主库发生故障时,备库需要的数据和归档日志都在本地,可确保能够获取得到。由于主库在正常服务时的逻辑是,必须两份归档日志都写完成后才允许提交事务,因此在主库发生崩溃的瞬间,即使第一归档日志因为异步备份机制而没有来得及传给备库,备库也能确保可得到这些事务的第二归档日志。借此,本发明通过采用归档日志双写机制来保证数据安全性,同时可提升系统可用性。
附图说明
图1是本发明基于关联型数据库的归档日志同步系统的结构示意图;
图2是本发明优选基于关联型数据库的归档日志同步系统的结构示意图;
图3是本发明优选归档日志同步系统的主库的结构示意图;
图4是本发明基于关联型数据库的归档日志同步方法的流程图;
图5是本发明第一实施例中归档日志同步方法的流程图;
图6是本发明第二实施例中归档日志同步方法的流程图;
图7是本发明第三实施例中主备切换前归档日志双写的原理示意图;
图8是本发明第三实施例中主备切换中进行补偿的原理示意图;
图9是本发明第三实施例中主备切换后归档日志双写的原理示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图1是本发明基于关联型数据库的归档日志同步系统的结构示意图,所述归档日志同步系统100包括主库11和备库21,优选的是,主库11与备库21是以异步备份机制互为主备关系的两个关联型数据库,优选为MySQL。所述主库11设于主库机器10中,所述备库21设于备库机器20中,所述主库机器10和备库机器20可以是相互通信连接的服务器、个人电脑等通信终端,备库机器20设有第一本地磁盘22,优选的是,主库机器10设有第二本地磁盘12,第一本地磁盘22和第二本地磁盘12分别可供主库11和备库21访问和读写。
所述主库11还包括有:
第一日志写模块111,用于主库11在正常服务时,将第一归档日志写入备库21,第一归档日志由主库11的本地归档日志提供。优选的是,主库11与备库21是以异步备份机制互为主备关系,第一日志写模块111用于将第一归档日志异步写入备库21。
第二日志写模块112,用于同时将第二归档日志写入备库机器20的第一本地磁盘22,第二归档日志由主库11的本地归档日志提供。优选的是,第二日志写模块112用于同时将第二归档日志同步写入备库机器20的第一本地磁盘22。
第一事务递交模块113,当第一归档日志和第二归档日志写完后,递交事务。
优选的是,本发明关联型数据库优选为MySQL,本文可将主库11命名为MySQL-M,第二本地磁盘12命名为targetM,备库21命名为MySQL-S,第一本地磁盘22命名为targetS。本发明需要在MySQL的源码中增加double_file_dst_dir参数,该double_file_dst_dir参数映射备库机器20的第一本地磁盘22的磁盘路径,第一本地磁盘22可供主库11和备库21访问和读写。第二日志写模块112用于控制主库11将第二归档日志写入double_file_dst_dir参数中。
图2是本发明优选基于关联型数据库的归档日志同步系统的结构示意图,所述归档日志同步系统100包括主库11和备库21,优选的是,主库11与备库21是以异步备份机制互为主备关系的两个关联型数据库,优选为MySQL。所述主库11设于主库机器10中,所述备库21设于备库机器20中,所述主库机器10和备库机器20可以是相互通信连接的服务器、个人电脑等通信终端,备库机器20设有第一本地磁盘22,优选的是,主库机器10设有第二本地磁盘12,第一本地磁盘22和第二本地磁盘12分别可供主库11和备库21访问和读写。
所述主库11还包括有:
第一日志写模块111,用于主库11在正常服务时,将第一归档日志异步写入备库21,第一归档日志由主库11的本地归档日志提供。
第二日志写模块112,用于同时将第二归档日志同步写入备库机器20的第一本地磁盘22,第二归档日志由主库11的本地归档日志提供。
第一事务递交模块113,当第一归档日志和第二归档日志写完后,递交事务。
所述归档日志同步系统100还包括主备切换模块30,主备切换模块30可设于主库11和/或备库21中,当然主备切换模块30也可以主库11和/或备库21脱离单独设置于主库机器10、备库机器20和/或第三方机器中,如图3所示,主备切换模块30进一步包括:
获取子模块31,用于控制备库21分别获取第一归档日志和第二归档日志。优选的是,获取子模块31用于控制备库21从本地获取第一归档日志,第一归档日志的最后位置为位置P。同时,获取子模块31用于控制备库21登录备库机器20的第一本地磁盘22获取第二归档日志,第二归档日志的最后位置为位置Q。
判断子模块32,用于判断第一归档日志和第二归档日志是否相同。若要两份归档日志确保相同,则必须两份归档日志的文件名、位置、长度、内容等均相同。优选的是,判断子模块32用于判断所述位置P和位置Q是否相同。这里,位置P和位置Q相同则两个归档日志相同,位置P和位置Q不同则两个归档日志不同。
第一切换子模块33,用于若两份归档日志相同,控制备库21执行第一归档日志并直接作为新主库21提供服务,主库11作为新备库11。优选的是,第一切换子模块33用于若位置P和位置Q相同时,控制备库21执行第一归档日志并直接作为新主库21提供服务,主库11作为新备库11。
第二切换子模块34,用于若两份归档日志不同,控制备库21执行两份归档日志中内容最全的一个归档日志并作为新主库21提供服务,主库11作为新备库11。优选的是,在主备切换的时候,第二归档日志一定是比第一归档日志全的。所以第二切换子模块34可以直接写第二归档日志作为新主库21提供服务。优选的是,第二切换子模块34用于若位置P和位置Q不同时,且位置Q大于位置P,则控制备库21从位置P开始,将位置P之后的第二归档日志解析并在本地执行以实现位置补偿,备库21执行完成后作为新主库21提供服务,主库11作为新备库11。优选的是,MySQL安装环境自带一个mysqlbinl工具,通过mysqlbinlogbinlog_filename–start-position=P–sttop-position=Q能够解析出P到Q之间的操作。将生成的结果拿到备库21执行,以实现位置补偿。
如图3所示,主备切换模块30优选进一步包括:
切换启动子模块35,用于当接收到用户的主动切换指令或者检测到主库11发生崩溃时,启动主备切换。
如图3所示,所述第二日志写模块112优选还包括:
检测子模块1121,用于检测网络是否处于正常状态,若网络发生抖动等异常状态则不正常。
第一写入子模块1122,用于若网络处于正常状态,则控制主库11同时将第二归档日志写入备库机器20的第一本地磁盘22。
放弃子模块1123,用于若网络处于异常状态,则控制主库11放弃写入第二归档日志到第一本地磁盘22。在归档日志双写逻辑中,若出现网络异常导致主库11无法写入第二归档日志到第一本地磁盘22,则可直接提交事务,放弃本次写入的第二归档日志。本发明并不依赖于该丢失的第二归档日志,也不需补充回来,因为原生主备的逻辑能够获取第一归档日志,拿到丢失的归档日志内容。
第二写入子模块1124,用于若网络从异常状态恢复到正常状态,控制主库11将新的第二归档日志追加写入第一本地磁盘22。
所述第一事务递交模块113进一步包括:
第一递交子模块1131,用于若网络正常,且当第一归档日志和第二归档日志写完后,控制主库11递交事务。
第二递交子模块1132,用于若网络异常,且当第一归档日志写完后,控制主库11递交事务。
所述主备切换模块30进一步包括:
第三切换子模块36,用于若第二归档日志被放弃写入,则控制备库21执行第一归档日志并直接作为新主库21提供服务,主库11作为新备库11。
由于主备切换完成后,所述备库21就变成新主库21,起也需要完成归档日志双写逻辑,因此所述备库21还包括:
第三日志写模块211,用于在主备切换模块30完成主备切换后,新主库21在正常服务时,控制新主库21将第三归档日志异步写入新备库11,第三归档日志由新主库21的本地归档日志提供。
第四日志写模块212,用于控制新主库21同时将第四归档日志同步写入新备库机器10的第二本地磁盘12,第四归档日志由新主库21的本地归档日志提供。
第二事务递交模块213,用于当第三归档日志和第四归档日志写完后,控制新主库21递交事务。
所述主库11还包括:
启动模块114,用于在主库11启动后,控制主库11以发起者(Initiator)身份登录备库机器20的第一本地磁盘22。
第二日志写模块112,用于主库11在正常服务时,控制主库11以发起者身份通过ISCSI(Internet Small Computer System Interface,互联网小型计算机系统接口)协议将第二归档日志写入备库机器20的第一本地磁盘22。
主备切换模块30的获取子模块31,用于控制备库21以发起者身份登录备库机器20的第一本地磁盘22,并从第一本地磁盘22中获取第二归档日志。
优选的是,本发明所指的关联型数据库为MySQL,并需要在MySQL的源码中增加double_file_dst_dir参数,该double_file_dst_dir参数映射备库机器20的第一本地磁盘22的磁盘路径,第一本地磁盘22可供主库11和备库21访问和读写。第二日志写模块112用于控制主库11将第二归档日志写入double_file_dst_dir参数中。
更好的是,当完成主备切换动作后,即备库21作为新主库21,主库11作为新备库11,则该double_file_dst_dir参数映射新备库机器10的第二本地磁盘12的磁盘路径,第二本地磁盘12可供新主库21和新备库11访问和读写。第四日志写模块212用于控制新主库21将第四归档日志同步写入double_file_dst_dir参数中。
本发明至少包括如下三个应用背景:
应用背景一:ISCSI能够通过网络协议将一机器的磁盘共享给另外一磁盘。例如机器B将某个文件共享给机器A,机器A将所述文件以磁盘的方式访问。即可在其上作创建文件、写文件、删除文件等操作。此时将机器B称为target,机器A称为Initiator。ISCSI有一个局限是对于一Target,同一时刻只能有一Initiator登录并写数据。该局限并不影响其在本发明中的使用。
应用背景二:MySQL在只有一主一备时,一般设为M~M结构,即互为主备。于是在主库11发生故障时,直接可将服务指向备库21。等主库11恢复后,通过已经配置好的主备关系,原主库11能够继续从新主库21获取归档日志达到双方同步。
应用背景三:数据安全性方案确保主库机器10和备库机器20这两个机器不再同一机房,可假定主备机器同时崩溃且无法恢复的概率小到可忽略。
本发明的关键点是归档日志双写以及切换方案。归档日志双写机制的基本思路是主库11和备库21之间以原生的异步备份机制维持主备关系。主库11在写原来第一归档日志的同时,在指定位置再写一份相同的第二归档日志。第二归档日志并非写在本地,而是以Initiator身份通过ISCSI写到target中,而该target所在的磁盘,则由备库21提供。
图4是本发明基于关联型数据库的归档日志同步方法的流程图,其可通过如图1或图2所示的归档日志同步系统100是实现,所述方法包括有:
步骤S401,第一日志写步骤,主库11在正常服务时,主库11将第一归档日志写入备库21,第一归档日志由主库11的本地归档日志提供。
优选的是,主库11与备库21之间以异步备份机制互为主备关系,主库11将第一归档日志异步写入备库21。
步骤S402,第二日志写步骤,主库11同时将第二归档日志写入备库机器20的第一本地磁盘22,第二归档日志由主库11的本地归档日志提供。
优选的是,主库11同时将第二归档日志同步写入备库机器20的第一本地磁盘22。
步骤S403,第一事务递交步骤,当第一归档日志和第二归档日志写完后,主库11递交事务。
本发明解决由于主库11崩溃导致事务丢失,使用归档日志双写机制,来保证数据安全性,并提升系统可用性。
图5是本发明第一实施例中归档日志同步方法的流程图,其可通过如图2所示的归档日志同步系统100是实现,所述方法包括有:
步骤S501,主库11在正常服务时,主库11将第一归档日志写入备库21。第一归档日志由主库11的本地归档日志提供。
优选的是,主库11与备库21之间以异步备份机制互为主备关系。主库11将第一归档日志异步写入备库21。
步骤S502,主库11同时将第二归档日志写入备库机器20的第一本地磁盘22,第二归档日志由主库11的本地归档日志提供。
优选的是,主库11同时将第二归档日志同步写入备库机器20的第一本地磁盘22。
步骤S503,当第一归档日志和第二归档日志写完后,主库11递交事务。
步骤S504,当接收到用户的主动切换指令或者检测到主库11崩溃时,启动主备切换。
步骤S505,备库21分别获取第一归档日志和第二归档日志。
优选的是,备库21从本地获取第一归档日志,第一归档日志的最后位置为位置P。同时,备库21登录备库机器20的第一本地磁盘22获取第二归档日志,第二归档日志的最后位置为位置Q。
步骤S506,判断第一归档日志和第二归档日志是否相同,若是则执行步骤S507,否则执行步骤S508。
若要两份归档日志确保相同,则必须两份归档日志的文件名、位置、长度、内容等均相同。优选的是,判断位置P和位置Q是否相同,位置P和位置Q相同则两个归档日志相同,位置P和位置Q不同则两个归档日志不同。
步骤S507,若两份归档日志相同,备库21执行第一归档日志并直接作为新主库21提供服务,主库11作为新备库11。
优选的是,若位置P和位置Q相同,备库21执行第一归档日志并直接作为新主库21提供服务,主库11作为新备库11。
步骤S508,若两份归档日志不同,备库21执行两份归档日志中内容最全的一个归档日志并作为新主库21提供服务,主库11作为新备库11。
优选的是,在主备切换的时候,第二归档日志一定是比第一归档日志全的。所以可以直接写第二归档日志作为新主库21提供服务。优选的是,若位置P和位置Q不同,且位置Q大于位置P,则备库21从位置P开始,将位置P之后的第二归档日志解析并在本地执行以实现位置补偿,备库21执行完成后作为新主库21提供服务,主库11作为新备库11。优选的是,MySQL安装环境自带一个mysqlbinl工具,通过mysqlbinlog binlog_filename–start-position=P–sttop-position=Q能够解析出P到Q之间的操作。将生成的结果拿到备库21执行,以实现位置补偿。
步骤S509,新主库21在正常服务时,新主库21将第三归档日志异步写入新备库11,第三归档日志由新主库21的本地归档日志提供。
步骤S510,新主库21同时将第四归档日志同步写入新备库11机器20的第二本地磁盘12,第四归档日志由新主库21的本地归档日志提供。
步骤S511,当第三归档日志和第四归档日志写完后,新主库21递交事务。
由于主备切换完成后,所述备库21就变成新主库21,其需要实现上述步骤S509~步骤S511所描述的归档日志双写逻辑。
图6是本发明第二实施例中归档日志同步方法的流程图,其可通过如图2所示的归档日志同步系统100是实现,所述方法包括有:
步骤S601,主库11启动后,主库11以发起者身份登录备库机器20的第一本地磁盘22。
步骤S602,主库11在正常服务时,主库11将第一归档日志异步写入备库21,第一归档日志由主库11的本地归档日志提供。
步骤S603,检测网络是否处于正常状态,若是则执行步骤S604,否则执行步骤S609。
步骤S604,若网络处于正常状态,主库11以发起者身份通过ISCSI协议将第二归档日志同步写入备库机器20的第一本地磁盘22,第二归档日志由主库11的本地归档日志提供。
步骤S605,若网络正常,且当第一归档日志和第二归档日志写完后,主库11递交事务。
步骤S606,当接收到用户的主动切换指令或者检测到主库11崩溃时,启动主备切换。
步骤S607,备库21分别获取第一归档日志和第二归档日志。
优选的是,备库21从本地获取第一归档日志;同时,备库21以发起者身份登录备库机器20的第一本地磁盘22,并从第一本地磁盘22中获取第二归档日志。
步骤S608,备库21选择执行内容最全的第一归档日志或第二归档日志,并直接作为新主库21提供服务,主库11作为新备库11。
优选的是,若第一归档日志或第二归档日志,则备库21执行第一归档日志,并直接作为新主库21提供服务。
步骤S609,若网络处于异常状态,则主库11放弃写入第二归档日志到第一本地磁盘22。
在归档日志双写逻辑中,若出现网络异常导致主库11无法写入第二归档日志到第一本地磁盘22,则可直接提交事务,放弃本次写入的第二归档日志。本发明并不依赖于该丢失的第二归档日志,也不需补充回来,因为原生主备的逻辑能够获取第一归档日志,拿到丢失的归档日志内容。本步骤之后,若网络从异常状态恢复到正常状态,主库11将新的第二归档日志追加写入第一本地磁盘22。
步骤S610,若网络异常,且当第一归档日志写完后,主库11递交事务。
步骤S611,当接收到用户的主动切换指令或者检测到主库11崩溃时,启动主备切换。
步骤S612,备库21从本地获取第一归档日志。
步骤S613,若第二归档日志被放弃写入,则备库21执行第一归档日志并直接作为新主库21提供服务,主库11作为新备库11。
图7至图9是本发明第三实施例中归档日志同步方法的原理示意图,本实施例将主库11命名为MySQL-M,第二本地磁盘12命名为targetM,备库21命名为MySQL-S,第一本地磁盘22命名为targetS。其中图7是本发明第三实施例中主备切换前归档日志双写的原理示意图,初始状态下,主库11双写归档日志,同步写入targetS,异步传输给备库21。图8是本发明第三实施例中主备切换中进行补偿的原理示意图,切换过程中,备库21从targetS中读可能未传输的第二归档日志,进行位置补偿。图9是本发明第三实施例中主备切换后归档日志双写的原理示意图,切换完成后,原备库21成为新主库21,异步归档日志传输给新备库11,同步写targetM。具体技术方案描述如下:
1、主备库机器均作为target,假设主库11的第二本地磁盘12为targetM,备库21的第一本地磁盘22为targetS。targetS是备库机器20中暴露给主库11的是一个磁盘。targetM是主库机器10中暴露给备库21的一个磁盘。
2、主库11的mysqld进程启动后,以Initiator身份登录targetS。
3、主库11在正常服务时,除了写入第一归档日志到备库21外,同时将第二归档日志通过ISCSI协议写入到targetS,须在两份归档日志都写完后才提交事务。所述归档日志中包含在一个MySQL上的所有变更,例如创建、删除表,增删改数据等。
4、在正常服务时,主库11写两份归档日志,若碰到网络抖动等网络异常情况,会影响主库11写第二归档日志到targetS。此时主库11直接放弃写targetS。在网络恢复后主库11会继续将新归档日志多写一份到targetS。主库11采用追加写的方式写入第二归档日志到targetS,其与主库11写第一归档日志的方式相同。
5、在发生主备切换时,备库21需先将主库11通过原异步备份机制传过来的第一归档日志执行完成,假设执行到位置P。之后备库21的mysqld以Initiator身份登录targetS,获得在主库11在P之后写入的第二归档日志。
这里存在有两种可能:
a)主库11已经将所有写入本地的归档日志都发给备库21,此时targetS中的第二归档日志的最后位置也是P,备库21无需做额外操作,可直接作为新主库11提供服务,这种情况多见于正常切换。
b)主库11的最后几个事务未来及传给备库21,此时targetS中的第二归档日志的位置为Q(Q>P),备库21从P开始,将位置P之后的归档日志解析并在本地执行,完成后提供服务,这种情况多见于异常切换,如操作系统崩溃。MySQL的归档日志用于记录MySQL上的变更操作。
代码改动:上述过程描述了使用ISCSI配置在本发明中的应用。由于要支持双写归档日志,需对MySQL源码做一定的改造,同时增加double_file_dst_dir参数,该参数开启后,作为主库11的MySQL在写归档日志时,除在原备库21的位置写第一归档日志外,还需在double_file_dst_dir中写入相同的第二归档日志。double_file_dst_dir被配置为主库11以Initiator身份登录targetS后,映射的磁盘路径。在双写逻辑中,若出现网络异常导致主库11无法写入targetS,则主库11直接提交事务,放弃本次写入的第二归档日志。本发明并不依赖于该丢失的第二归档日志,也不需补充回来,因为原生主备的逻辑能够拿到这份丢失的归档日志。在代码逻辑中,当网络恢复后,下次写入的归档日志,如果都是直接append写入,则会导致两份归档日志的位置不对,因此在写入第二份的时候,不能直接使用append写入,而是需以第一份归档日志的offset(补偿)为准,先append一段空的位置。确保的原则是:要求若两份归档日志都写入成功,则必须是文件名、位置、长度、内容均相同。
由于targetS与备库21在同一机器,这样在主库11发生故障时,备库21需要的数据和归档日志都在本地,可确保能够获取得到。由于主库11在正常服务时的逻辑是,必须两份归档日志都写完成后才允许提交事务,因此在主库11发生崩溃的瞬间,即使第一归档日志因为是异步备份机制而没有来得及传给备库21,备库21也能确保可得到这些事务的归档日志。
本发明目的是提高整个系统的可用性。主库11若由于网络异常导致第二归档日志无法写入到targetS,则直接放弃。因此,在网络正常时,该反馈的时间很快,在网络异常时,放弃写第二归档日志。这就保证主库11的事务提交,不受网络异常的影响。而由于有两份归档日志,在出现网络异常时,可依赖主库11通过原生主备方式传到备库21的第一归档日志来保证主备的一致性。由于网络异常和主库崩溃是两个独立事件,其同时出现的概率低至可忽略。
本发明中的主备切换有两种可能:一种是在主动切换,或主库11崩溃能够自动回复,即主库11在短期内能够恢复服务。此时切换已经发生,原来的备库21成为新主库21。由于原来的主备是对等配置,上述逻辑能够继续服务。另外一种是主库11崩溃后无法恢复,此时由于之前的方案,能够保证新主库21能够正常的提供服务,此需通过换盘或换机器,并恢复上述原主库11(即新备库)。
综上所述,本发明提供基于关联型数据库的归档日志同步方案,在主库正常服务时,不仅将第一归档日志写入备库,而且同时将相同的一份第二归档日志写入备库机器的第一本地磁盘,当所述两份归档日志写完后,主库才会递交事务。在进行主备切换时,所述备库分别获取所述两份归档日志,选择执行所述两份归档日志中内容最全的一个归档日志并作为新主库提供服务,所述主库作为新备库。由于备库和第一本地磁盘在同一备库机器中,这样在主库发生故障时,备库需要的数据和归档日志都在本地,可确保能够获取得到。由于主库在正常服务时的逻辑是,必须两份归档日志都写完成后才允许提交事务,因此在主库发生崩溃的瞬间,即使第一归档日志因为异步备份机制而没有来得及传给备库,备库也能确保可得到这些事务的第二归档日志。借此,本发明通过采用归档日志双写机制来保证数据安全性,同时可提升系统可用性。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (18)
1.一种基于关联型数据库的归档日志同步方法,其特征在于,包括有:
第一日志写步骤,主库在正常服务时,所述主库将第一归档日志写入备库,所述第一归档日志由所述主库的本地归档日志提供;
第二日志写步骤,所述主库同时将第二归档日志写入备库机器的第一本地磁盘,所述第二归档日志由所述主库的本地归档日志提供,其中,所述第一本地磁盘和备库在同一备库机器中;
第一事务递交步骤,当所述第一归档日志和所述第二归档日志写完后,所述主库递交事务;
其中,所述主库与所述备库之间以异步备份机制互为主备关系;
所述第一日志写步骤包括:
所述主库将所述第一归档日志异步写入所述备库;
所述第二日志写步骤包括:
所述主库同时将所述第二归档日志同步写入所述备库机器的所述第一本地磁盘。
2.根据权利要求1所述的归档日志同步方法,其特征在于,还包括主备切换步骤,所述主备切换步骤进一步包括:
获取子步骤,所述备库分别获取所述第一归档日志和所述第二归档日志;
判断子步骤,判断所述第一归档日志和所述第二归档日志是否相同;
第一切换子步骤,若所述两份归档日志相同,所述备库执行所述第一归档日志并直接作为新主库提供服务,所述主库作为新备库;
第二切换子步骤,若所述两份归档日志不同,所述备库执行所述两份归档日志中内容最全的一个归档日志并作为新主库提供服务,所述主库作为新备库。
3.根据权利要求2所述的归档日志同步方法,其特征在于,所述获取子步骤包括:
所述备库从本地获取所述第一归档日志,所述第一归档日志的最后位置为位置P;
所述备库登录所述备库机器的所述第一本地磁盘获取所述第二归档日志,所述第二归档日志的最后位置为位置Q;
所述判断子步骤包括:
判断所述位置P和所述位置Q是否相同;
所述第一切换子步骤包括:
若所述位置P和所述位置Q相同,所述备库执行所述第一归档日志并直接作为新主库提供服务,所述主库作为新备库;
所述第二切换子步骤包括:若所述位置P和所述位置Q不同,且所述位置Q大于所述位置P,则所述备库从所述位置P开始,将所述位置P之后的所述第二归档日志解析并在本地执行以实现位置补偿,所述备库执行完成后作为新主库提供服务,所述主库作为新备库。
4.根据权利要求2所述的归档日志同步方法,其特征在于,所述第二日志写步骤还包括:
检测网络是否处于正常状态;
若网络处于正常状态,则所述主库同时将所述第二归档日志写入所述备库机器的所述第一本地磁盘;
若网络处于异常状态,则所述主库放弃写入所述第二归档日志到所述第一本地磁盘;
若网络从异常状态恢复到正常状态,所述主库将新的第二归档日志追加写入所述第一本地磁盘;
所述第一事务递交步骤包括:
若网络正常,且当所述第一归档日志和所述第二归档日志写完后,所述主库递交事务;
若网络异常,且当所述第一归档日志写完后,所述主库递交事务。
5.根据权利要求4所述的归档日志同步方法,其特征在于,所述主备切换步骤进一步包括:
第三切换子步骤,若所述第二归档日志被放弃写入,则所述备库执行所述第一归档日志并直接作为新主库提供服务,所述主库作为新备库。
6.根据权利要求2所述的归档日志同步方法,其特征在于,所述主备切换步骤之后还包括:
第三日志写步骤,所述新主库在正常服务时,所述新主库将第三归档日志异步写入所述新备库,所述第三归档日志由所述新主库的本地归档日志提供;
第四日志写步骤,所述新主库同时将第四归档日志同步写入新备库机器的第二本地磁盘,所述第四归档日志由所述新主库的本地归档日志提供;
第二事务递交步骤,当所述第三归档日志和所述第四归档日志写完后,所述新主库递交事务。
7.根据权利要求2所述的归档日志同步方法,其特征在于,还包括:
启动步骤,所述主库启动后,所述主库以发起者身份登录所述备库机器的所述第一本地磁盘;
所述第二日志写步骤包括:
所述主库以发起者身份通过ISCSI协议将所述第二归档日志写入所述备库机器的所述第一本地磁盘;
所述备库获取所述第二归档日志的步骤包括:
所述备库以发起者身份登录所述备库机器的所述第一本地磁盘,并从所述第一本地磁盘中获取所述第二归档日志。
8.根据权利要求2所述的归档日志同步方法,其特征在于,所述主备切换步骤的所述获取子步骤之前还包括:
切换启动子步骤,当接收到用户的主动切换指令或者检测到所述主库崩溃时,启动主备切换。
9.根据权利要求1~8任一项所述的归档日志同步方法,其特征在于,
所述关联型数据库为MySQL,并在所述MySQL的源码中增加double_file_dst_dir参数,所述double_file_dst_dir参数映射所述备库机器的所述第一本地磁盘的磁盘路径,所述第一本地磁盘可供所述主库和所述备库访问和读写;
所述第二日志写步骤包括:所述主库同时将所述第二归档日志写入所述double_file_dst_dir参数中。
10.一种基于关联型数据库的归档日志同步系统,所述归档日志同步系统包括主库和备库,所述主库设于主库机器中,所述备库设于备库机器中,所述备库机器设有第一本地磁盘,其特征在于,所述主库还包括有:
第一日志写模块,用于所述主库在正常服务时,将第一归档日志写入所述备库,所述第一归档日志由所述主库的本地归档日志提供;
第二日志写模块,用于同时将第二归档日志写入所述备库机器的所述第一本地磁盘,所述第二归档日志由所述主库的本地归档日志提供,其中,所述第一本地磁盘和备库在同一备库机器中;
第一事务递交模块,当所述第一归档日志和所述第二归档日志写完后,递交事务;
其中,所述主库与所述备库之间以异步备份机制互为主备关系;
所述第一日志写模块用于将所述第一归档日志异步写入所述备库;
所述第二日志写模块用于同时将所述第二归档日志同步写入所述备库机器的所述第一本地磁盘。
11.根据权利要求10所述的归档日志同步系统,其特征在于,所述归档日志同步系统还包括主备切换模块,所述主备切换模块可设于所述主库和/或所述备库中,进一步包括:
获取子模块,用于控制所述备库分别获取所述第一归档日志和所述第二归档日志;
判断子模块,用于判断所述第一归档日志和所述第二归档日志是否相同;
第一切换子模块,用于若所述两份归档日志相同,控制所述备库执行所述第一归档日志并直接作为新主库提供服务,所述主库作为新备库;
第二切换子模块,用于若所述两份归档日志不同,控制所述备库执行所述两份归档日志中内容最全的一个归档日志并作为新主库提供服务,所述主库作为新备库。
12.根据权利要求11所述的归档日志同步系统,其特征在于,
所述获取子模块用于控制所述备库从本地获取所述第一归档日志,所述第一归档日志的最后位置为位置P;以及控制所述备库登录所述备库机器的所述第一本地磁盘获取所述第二归档日志,所述第二归档日志的最后位置为位置Q;
所述判断子模块用于判断所述位置P和所述位置Q是否相同;
所述第一切换子模块用于若所述位置P和所述位置Q相同时,控制所述备库执行所述第一归档日志并直接作为新主库提供服务,所述主库作为新备库;
所述第二切换子模块用于若所述位置P和所述位置Q不同时,且所述位置Q大于所述位置P,则控制所述备库从所述位置P开始,将所述位置P之后的所述第二归档日志解析并在本地执行以实现位置补偿,所述备库执行完成后作为新主库提供服务,所述主库作为新备库。
13.根据权利要求11所述的归档日志同步系统,其特征在于,
所述第二日志写模块还包括:
检测子模块,用于检测网络是否处于正常状态;
第一写入子模块,用于若网络处于正常状态,则控制所述主库同时将所述第二归档日志写入所述备库机器的所述第一本地磁盘;
放弃子模块,用于若网络处于异常状态,则控制所述主库放弃写入所述第二归档日志到所述第一本地磁盘;
第二写入子模块,用于若网络从异常状态恢复到正常状态,控制所述主库将新的第二归档日志追加写入所述第一本地磁盘;
所述第一事务递交模块包括:
第一递交子模块,用于若网络正常,且当所述第一归档日志和所述第二归档日志写完后,控制所述主库递交事务;
第二递交子模块,用于若网络异常,且当所述第一归档日志写完后,控制所述主库递交事务。
14.根据权利要求13所述的归档日志同步系统,其特征在于,所述主备切换模块进一步包括:
第三切换子模块,用于若所述第二归档日志被放弃写入,则控制所述备库执行所述第一归档日志并直接作为新主库提供服务,所述主库作为新备库。
15.根据权利要求11所述的归档日志同步系统,其特征在于,所述备库还包括:
第三日志写模块,用于在所述主备切换模块完成主备切换后,所述新主库在正常服务时,控制所述新主库将第三归档日志异步写入所述新备库,所述第三归档日志由所述新主库的本地归档日志提供;
第四日志写模块,用于控制所述新主库同时将第四归档日志同步写入新备库机器的第二本地磁盘,所述第四归档日志由所述新主库的本地归档日志提供;
第二事务递交模块,用于当所述第三归档日志和所述第四归档日志写完后,控制所述新主库递交事务。
16.根据权利要求11所述的归档日志同步系统,其特征在于,所述主库还包括:
启动模块,用于在所述主库启动后,控制所述主库以发起者身份登录所述备库机器的所述第一本地磁盘;
所述第二日志写模块用于控制所述主库以发起者身份通过ISCSI协议将所述第二归档日志写入所述备库机器的所述第一本地磁盘;
所述获取子模块用于控制所述备库以发起者身份登录所述备库机器的所述第一本地磁盘,并从所述第一本地磁盘中获取所述第二归档日志。
17.根据权利要求11所述的归档日志同步系统,其特征在于,所述主备切换模块进一步包括:
切换启动子模块,用于当接收到用户的主动切换指令或者检测到所述主库崩溃时,启动主备切换。
18.根据权利要求10~17任一项所述的归档日志同步系统,其特征在于,
所述关联型数据库为MySQL,并在所述MySQL的源码中增加double_file_dst_dir参数,所述double_file_dst_dir参数映射所述备库机器的所述第一本地磁盘的磁盘路径,所述第一本地磁盘可供所述主库和所述备库访问和读写;
所述第二日志写模块用于控制所述主库同时将所述第二归档日志写入所述double_file_dst_dir参数中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410184551.8A CN105095245B (zh) | 2014-05-04 | 2014-05-04 | 基于关联型数据库的归档日志同步方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410184551.8A CN105095245B (zh) | 2014-05-04 | 2014-05-04 | 基于关联型数据库的归档日志同步方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105095245A CN105095245A (zh) | 2015-11-25 |
CN105095245B true CN105095245B (zh) | 2019-10-18 |
Family
ID=54575703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410184551.8A Active CN105095245B (zh) | 2014-05-04 | 2014-05-04 | 基于关联型数据库的归档日志同步方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105095245B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815094B (zh) * | 2015-12-02 | 2020-12-11 | 阿里巴巴集团控股有限公司 | 一种用于实现主备同步模式下事务提交的方法与设备 |
CN105975579B (zh) * | 2016-05-05 | 2019-09-17 | 北京思特奇信息技术股份有限公司 | 一种内存数据库的主备复制方法及内存数据库系统 |
CN107330065A (zh) * | 2017-06-29 | 2017-11-07 | 华泰证券股份有限公司 | 一种基于ISER协议的MySQL数据库复制方法 |
CN107506263A (zh) * | 2017-08-24 | 2017-12-22 | 深圳互联先锋科技有限公司 | 一种故障测试方法和装置 |
CN107766518A (zh) * | 2017-10-24 | 2018-03-06 | 郑州云海信息技术有限公司 | 将k‑db集群模式下各实例归档文件集中存放的方法 |
CN111258814B (zh) * | 2020-01-13 | 2022-08-05 | 苏州浪潮智能科技有限公司 | 一种数据库备份容错方法、系统、终端及存储介质 |
CN111404737B (zh) * | 2020-03-10 | 2021-07-27 | 腾讯科技(深圳)有限公司 | 一种容灾处理方法以及相关装置 |
CN111639132B (zh) * | 2020-05-29 | 2023-06-06 | 中国联合网络通信集团有限公司 | 日志同步方法及设备 |
CN111831661A (zh) * | 2020-07-20 | 2020-10-27 | 江苏云柜网络技术有限公司 | 一种基于快递业务逻辑的数据库归档方法 |
CN113868022A (zh) * | 2021-09-18 | 2021-12-31 | 聚好看科技股份有限公司 | 一种数据库的主从切换方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003005247A2 (en) * | 2001-07-06 | 2003-01-16 | Computer Associates Think, Inc. | Systems and methods of information backup |
CN103106200A (zh) * | 2011-11-09 | 2013-05-15 | 上海盛霄云计算技术有限公司 | 非关系型数据库同步系统及双写同步方法 |
CN103226502A (zh) * | 2013-05-21 | 2013-07-31 | 中国工商银行股份有限公司 | 一种数据灾备控制系统及数据恢复方法 |
-
2014
- 2014-05-04 CN CN201410184551.8A patent/CN105095245B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003005247A2 (en) * | 2001-07-06 | 2003-01-16 | Computer Associates Think, Inc. | Systems and methods of information backup |
CN103106200A (zh) * | 2011-11-09 | 2013-05-15 | 上海盛霄云计算技术有限公司 | 非关系型数据库同步系统及双写同步方法 |
CN103226502A (zh) * | 2013-05-21 | 2013-07-31 | 中国工商银行股份有限公司 | 一种数据灾备控制系统及数据恢复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105095245A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105095245B (zh) | 基于关联型数据库的归档日志同步方法及系统 | |
US11163653B2 (en) | Storage cluster failure detection | |
US10936447B2 (en) | Resynchronizing to a first storage system after a failover to a second storage system mirroring the first storage system | |
EP3474516B1 (en) | Data processing method and device | |
US10169167B2 (en) | Reduced recovery time in disaster recovery/replication setup with multitier backend storage | |
KR101231563B1 (ko) | 실시간 데이터 복제 | |
EP3435604A1 (en) | Service processing method, device, and system | |
US20190018738A1 (en) | Method for performing replication control in a storage system with aid of characteristic information of snapshot, and associated apparatus | |
US9251230B2 (en) | Exchanging locations of an out of synchronization indicator and a change recording indicator via pointers | |
US9921764B2 (en) | Using inactive copy relationships to resynchronize data between storages | |
JP2019135637A (ja) | 情報処理方法、情報処理装置、サーバ及びコンピュータ読み取り可能な記録媒体 | |
CN108628717A (zh) | 一种数据库系统及监控方法 | |
CN105159795A (zh) | 数据同步方法、装置和系统 | |
KR101983208B1 (ko) | 데이터 관리 방법, 노드, 그리고 데이터베이스 클러스터를 위한 시스템 | |
US11249854B2 (en) | Method and device for failover in HBase system, and non-transitory computer-readable storage medium | |
KR102248386B1 (ko) | 데이터베이스 데이터 수정 요청 처리 방법 및 장치 | |
CN106605217B (zh) | 用于将应用从一个站点移动到另一站点的方法和系统 | |
US9514013B2 (en) | Maintaining inactive copy relationships for secondary storages of active copy relationships having a common primary storage for use in case of a failure of the common primary storage | |
KR20140025501A (ko) | 임시 중단 중에 이차 위치로 요청을 재전송하는 기법 | |
CN111488247B (zh) | 一种管控节点多次容错的高可用方法及设备 | |
US20140040574A1 (en) | Resiliency with a destination volume in a replication environment | |
CN104850471A (zh) | 一种基于安腾平台下实现db2数据库两地三中心的方法 | |
JP4765977B2 (ja) | レプリケーションシステムおよびデータ同期確認方法 | |
CN111666035B (zh) | 一种分布式存储系统的管理方法及装置 | |
US20240211163A1 (en) | Replicating storage data and metadata in separate storage layers of a distributed storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211103 Address after: Room 516, floor 5, building 3, No. 969, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba Dharma Institute (Hangzhou) Technology Co.,Ltd. Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands Patentee before: ALIBABA GROUP HOLDING Ltd. |