CN103488721B - 主备板的数据库双向同步方法和系统 - Google Patents
主备板的数据库双向同步方法和系统 Download PDFInfo
- Publication number
- CN103488721B CN103488721B CN201310416525.9A CN201310416525A CN103488721B CN 103488721 B CN103488721 B CN 103488721B CN 201310416525 A CN201310416525 A CN 201310416525A CN 103488721 B CN103488721 B CN 103488721B
- Authority
- CN
- China
- Prior art keywords
- database
- active
- data
- standby plate
- mainboard
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种主备板的数据库双向同步方法,包括如下步骤:根据预设的时间周期分别对主备板的数据库进行备份,得到对应的备份数据;检测主备板的运行状态;若主备板都重启过,则主备板的数据库分别通过其备份数据进行数据恢复。本发明还提供对应的系统,能在主备板重启或异常宕机时,保证主备板数据库保持同步状态。
Description
技术领域
本发明涉及数据库同步技术领域,特别是涉及一种主备板的数据库双向同步方法,以及一种主备板的数据库双向同步系统。
背景技术
在网关的HA(High Availability,高可靠性)切换过程中,主备板的数据库数据同步是必不可少的一步。Mysql数据库因其高性能、稳定可靠和免费开源,被广泛用于中小型项目的数据载体。Mysql自身带有数据库复制功能,即数据库同步功能,具体原理如图1。简单来说,Mysql数据库的同步是通过日志来进行的,备板获取主机的日志,然后在本端解析执行,来完成数据同步。
Mysql自带的同步功能在正常情况下工作良好,但是一旦涉及到板卡系统重启或者掉电,同步就会产生不可预知的异常,这部分异常产生的主要源于对数据库的操作日志没办法即时写入磁盘和网络传输过程中的丢失。另外在异常宕机时,甚至可能产生数据库崩溃的严重情况,而网关HA切换过程,就经常涉及到掉电重启等情况。
在互为主/备(master/slave)的两个数据库之间。slave上mysql的同步工作有两个线程I/O thread和SQL thread,I/O线程的作用是从master的3306端口(Mysql默认端口)把它的binlog取过来(master在被修改了任何内容后,就会把修改了什么写到自己的binlog等待slave更新),然后写到本地的relay-log上;而SQL线程则是去读本地的relay-log,再转换成本mysql所能理解的语句,于是同步就这样一步步完成。
正常情况下,配置过Mysql双向同步后,能够按照上面的描述工作,双主的两台机A,B能够同步所有对数据库的操作。这里有一点需要注意,对于数据库自增的主键,需要在配置里面添加配置避免主键冲突。
但是在系统宕机、重启、或者掉电时,应用程序对数据库的操作的日志很可能没那么即时的刷写到磁盘上去,导致这部分数据没法同步到对端数据库中;而且传输中的数据也可能丢失。
发明内容
基于此,本发明提供一种主备板的数据库双向同步方法和系统,能在主备板运行异常时,保证主备板数据库保持同步状态。
一种主备板的数据库双向同步方法,包括如下步骤:
根据预设的时间周期分别对主备板的数据库进行备份,得到对应的备份数据;
检测主备板是否重启过;
若主备板都重启过,则主备板的数据库分别通过其备份数据进行数据恢复。
一种主备板的数据库双向同步系统,包括:
备份模块,用于根据预设的时间周期分别对主备板的数据库进行备份,得到对应的备份数据;
检测模块,用于检测主备板是否重启过;
恢复模块,用于若主备板都重启过,则主备板的数据库分别通过其备份数据进行数据恢复。
上述主备板的数据库双向同步方法和系统,根据主备板的工作状态,可设定在网关较为空闲的时候分别对主备板的数据库进行备份,如果板卡同时重启并且重启后数据库服务都不正常,则通过备份的数据进行恢复,保证在主备板同时运行异常时仍能保持数据同步;本发明实现过程简单,能良好的保证数据库同步状态正确,解决了主备板运行异常时的数据同步难题。
附图说明
图1为传统技术数据库同步的示意图。
图2为本发明主备板的数据库双向同步方法在一实施例中的流程示意图。
图3为本发明主备板的数据库双向同步方法在一实施例中的逻辑框图。
图4为本发明主备板的数据库双向同步系统在一实施例中的结构示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细说明,但本发明的实施方式不限于此。
如图2所示,是本发明一种主备板的数据库双向同步方法,包括如下步骤:
S21、根据预设的时间周期分别对主备板的数据库进行备份,得到对应的备份数据;
在本步骤中,可根据主备板的工作状态,设定在网关较为空闲的时候分别对主备板的数据库进行备份;或者也可设定更为频繁的备份方式,如每小时进行一次数据库备份;如果板卡同时重启并且重启后数据库服务都不正常,则通过备份的数据进行恢复;主备板备份的数据分别存储在各自对应的数据库中。
S22、检测主备板的运行状态;
S23、若主备板都重启过,则主备板的数据库分别通过其备份数据进行数据恢复;
板卡系统若重启或者掉电,数据库双向同步就会产生不可预知的异常,这部分异常产生的原因主要源于对数据库的操作日志没办法即时写入磁盘和网络传输过程中的丢失。另外在异常宕机时,甚至可能产生数据库崩溃的严重情况,而网关HA切换过程,就经常涉及到掉电重启等情况;
在本实施例中,循环检测主备板的运行状态,当主板与备板都重启过时,由于两板同时重启或者被整机断电过,因此无法预知哪一个板卡的数据是正确的,因此两板同时宕机时,以备份的数据分别对各自的数据库进行数据恢复,保证主备板数据同步。
在一较佳实施例中,还可包括步骤:
若主板重启过,备板未重启,则以备板的数据库对主板的数据库进行恢复;
若主板未重启,备板重启过,并且备板的数据库与主板的数据库不同步,则以主板的数据库对备板的数据库进行数据恢复;
在本实施例中,主板重启过,则主板数据库的数据可能发生异常,需恢复主板数据库的数据;由于备板未重启过,其数据库运行正常,以备板数据库当前的数据对主板的数据库进行恢复;
备板重启,则检测双板数据库的同步状态,若备板数据库与主板数据库的数据不同步,则以主板的数据库当前的数据对备板的数据库进行数据恢复;若同步,则可不进行备板数据库恢复操作。
在一较佳实施例中,可在根据预设的时间周期对数据库进行备份时,将当前备份的数据覆盖上一次备份的数据,在减少占用资源的同时保证当前的备份数据为最新的数据。
在一较佳实施例中,在通过备份数据对数据库进行数据库恢复时,将备份数据逐条写入数据库,防止设备宕机时丢失过多数据,例如可通过shell脚本进行配置,配置sync_binlog限定每次同步进磁盘的语句条数。
在一较佳实施例中,还可包括在主备板初始化时分别对其数据库进行主键自增起始值和偏移量设置的步骤,在设备初始化时配置数据库双向同步,shell脚本下可设置auto_increment_offset偏移量和auto_increment_increment自增量防止自增主键在同步过程中产生冲突;
例如,自增主键设置为:
auto_increment_offset=1,auto_increment_increment=2;
数据同步设置为:
auto_increment_offset=2,auto_increment_increment=2;
则可防止自增主键在同步过程中产生冲突。
接下来通过一具体实施例详细阐述本发明,如图3所示,示出了其中一种实现本发明的逻辑框图。
步骤1:配置数据库双向同步。需要配置设置auto_increment_offset偏移量和auto_increment_increment自增量防止自增主键在同步过程中产生冲突,并配置sync_binlog限定每次同步进磁盘的语句条数,同时配置每天3点钟时对数据库进行备份。
步骤2:循环检测,判断A机是否重启,如果A机重启了,去到步骤3;否则去到步骤7。
步骤3:如果检测到A机重启过,则以B机的数据库数据为准。
步骤4:判断B机是否也是开机重启过,如果是,去到步骤5;否则去到步骤6。
步骤5:如果A,B两机同时重启或者被整机断电过,此时无法预知那边数据是正确的,本发明采用恢复成每天早上3点钟备份的那份数据库。当然,这里有不同的解决方法,为了更准确,也可以每小时做一次数据库备份,两机同时宕机时,以前一次备份的数据库为准进行恢复,去到步骤10。
步骤6:A宕机,B正常工作,此时以B机数据库数据为准进行恢复,去到步骤10。
步骤7:如果A机未重启,则数据库数据以A机的为准,去到步骤8。
步骤8:检测B机是否重启过,如果B机重启了,则去到步骤9;否则,去到步骤10。
步骤9:以A机数据库数据为准进行数据库恢复,去到步骤10。
步骤10:循环检测A,B两机同步状态,一般来说,异常只出现在宕机的时候,正常情况下A,B两机应该是同步状态的。
在异常掉电的情况下,Mysql有较小几率出现无法提供正常服务的情况。本发明对于这种情况的处理方式为:在开机的时候检测Mysql的服务状态,如果服务状态异常,则需要重新安装数据库,并以数据库服务正常的那边数据库为准进行恢复,如果两边数据库服务都不正常,则回退到3点钟的数据库数据,并进行同步配置。
如图4所示,是本发明一种主备板的数据库双向同步系统的结构示意图,包括:
备份模块41,用于根据预设的时间周期分别对主备板的数据库进行备份,得到对应的备份数据;
在本步骤中,可根据主备板的工作状态,设定在网关较为空闲的时候分别对主备板的数据库进行备份;或者也可设定更为频繁的备份方式,如每小时进行一次数据库备份;如果板卡同时重启并且重启后数据库服务都不正常,则通过备份的数据进行恢复;主备板备份的数据分别存储在各自对应的数据库中。
检测模块42,用于检测主备板的运行状态;
恢复模块43,用于若主备板都重启过,则主备板的数据库分别通过其备份数据进行数据恢复;
板卡系统若重启或者掉电,数据库双向同步就会产生不可预知的异常,这部分异常产生的主要原因源于对数据库的操作日志没办法即时写入磁盘和网络传输过程中的丢失。另外在异常宕机时,甚至可能产生数据库崩溃的严重情况,而网关HA切换过程,就经常涉及到掉电重启等情况;
在本实施例中,循环检测主备板的运行状态,当主板与备板都重启过时,由于两板同时重启或者被整机断电过,无法预知哪一个板卡的数据是正确的,因此两机同时宕机时,以备份的数据分别对数据库进行数据恢复,保证主备板数据同步。
在一较佳实施例中,还可包括:
主板恢复模块,用于若主板重启过,备板未重启,则以备板的数据库对主板的数据库进行恢复;
备板恢复模块,用于若主板未重启,备板重启过,并且备板的数据库与主板的数据库不同步,则以主板的数据库对备板的数据库进行数据恢复;
在本实施例中,主板重启过,则主板数据库的数据可能发生异常,需恢复主板数据库的数据;由于备板未重启过,其数据库运行正常,以备板当前数据库的数据对主板的数据库进行恢复;
备板重启,则检测双机数据库的同步状态,若备板数据库与主板数据库的数据不同步,则以主板的数据库对备板的数据库进行数据恢复;若同步,则不进行备板数据库恢复操作。
在一较佳实施例中,可在根据预设的时间周期对数据库进行备份时,将当前备份的数据覆盖上一次备份的数据,在减少占用资源的同时保证当前的备份数据为最新的数据。
在一较佳实施例中,可在通过备份数据对数据库进行数据库恢复时,将备份数据逐条写入数据库,防止设备宕机时丢失过多数据,例如可通过shell脚本进行配置,配置sync_binlog限定每次同步进磁盘的语句条数。
在一较佳实施例中,还可包括设置模块,用于根据预设值在主备板初始化时分别对数据库的主键自增起始值和偏移量进行设置,在设备初始化时配置数据库双向同步,shell脚本下可设置auto_increment_offset偏移量和auto_increment_increment自增量防止自增主键在同步过程中产生冲突。
本发明主备板的数据库双向同步方法和系统,根据主备板的工作状态,设定在网关较为空闲的时候分别对主备板的数据库进行备份,如果板卡同时重启并且重启后数据库服务都不正常,则通过备份的数据进行恢复,保证在主备板同时运行异常时仍能保持数据同步;若是其中一板重启,则根据两板重启后的数据库状态确定数据恢复操作;本发明实现过程简单,能良好的保证数据库同步状态正确,解决了主备板运行异常时的数据同步难题。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种主备板的数据库双向同步方法,其特征在于,包括如下步骤:
根据预设的时间周期分别对主备板的数据库进行备份,得到对应的备份数据;
检测主备板的运行状态;
若主备板都重启过,则主备板的数据库分别通过其备份数据进行数据恢复;
若主板重启过,备板未重启,则以备板的数据库对主板的数据库进行恢复;
若主板未重启,备板重启过,并且备板的数据库与主板的数据库不同步,则以主板的数据库对备板的数据库进行数据恢复。
2.根据权利要求1所述的主备板的数据库双向同步方法,其特征在于,在根据预设的时间周期对数据库进行备份时,将当前备份的数据覆盖上一次备份的数据。
3.根据权利要求1所述的主备板的数据库双向同步方法,其特征在于,在通过备份数据对数据库进行数据库恢复时,将备份数据逐条写入数据库。
4.根据权利要求1所述的主备板的数据库双向同步方法,其特征在于,还包括根据预设值在主备板初始化时分别对其数据库进行主键自增起始值和偏移量设置的步骤。
5.一种主备板的数据库双向同步系统,其特征在于,包括:
备份模块,用于根据预设的时间周期分别对主备板的数据库进行备份,得到对应的备份数据;
检测模块,用于检测主备板的运行状态;
恢复模块,用于若主备板都重启过,则主备板的数据库分别通过其备份数据进行数据恢复;
主板恢复模块,用于若主板重启过,备板未重启,则以备板的数据库对主板的数据库进行恢复;
备板恢复模块,用于若主板未重启,备板重启过,并且备板的数据库与主板的数据库不同步,则以主板的数据库对备板的数据库进行数据恢复。
6.根据权利要求5所述的主备板的数据库双向同步系统,其特征在于,在根据预设的时间周期对数据库进行备份时,将当前备份的数据覆盖上一次备份的数据。
7.根据权利要求5所述的主备板的数据库双向同步系统,其特征在于,在通过备份数据对数据库进行数据库恢复时,将备份数据逐条写入数据库。
8.根据权利要求5所述的主备板的数据库双向同步系统,其特征在于,还包括设置模块,用于根据预设值在主备板初始化时分别对数据库的主键自增起始值和偏移量进行设置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310416525.9A CN103488721B (zh) | 2013-09-12 | 2013-09-12 | 主备板的数据库双向同步方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310416525.9A CN103488721B (zh) | 2013-09-12 | 2013-09-12 | 主备板的数据库双向同步方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103488721A CN103488721A (zh) | 2014-01-01 |
CN103488721B true CN103488721B (zh) | 2017-01-18 |
Family
ID=49828947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310416525.9A Expired - Fee Related CN103488721B (zh) | 2013-09-12 | 2013-09-12 | 主备板的数据库双向同步方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103488721B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105187464B (zh) * | 2014-06-19 | 2019-11-05 | 南京中兴软件有限责任公司 | 一种分布式存储系统中的数据同步方法、装置及系统 |
CN105205182B (zh) * | 2015-10-28 | 2019-02-01 | 北京奇虎科技有限公司 | 多机房部署系统及跨机房的业务数据处理方法 |
CN105512284A (zh) * | 2015-12-07 | 2016-04-20 | 上海爱数信息技术股份有限公司 | 基于事务形态数据和binlog文件的MySQL数据保护方法 |
CN106055424A (zh) * | 2016-05-19 | 2016-10-26 | 青岛海信移动通信技术股份有限公司 | 一种信息数据库的异常处理方法和装置 |
CN106294795A (zh) * | 2016-08-15 | 2017-01-04 | 合肥华凌股份有限公司 | 一种数据库切换方法及系统 |
CN108804463B (zh) * | 2017-05-03 | 2021-07-09 | 杭州海康威视数字技术股份有限公司 | 一种MySQL数据库的数据同步方法、装置及电子设备 |
CN108628705B (zh) * | 2018-04-10 | 2021-01-15 | 京信通信系统(中国)有限公司 | 数据库恢复方法、装置、计算机设备和存储介质 |
CN109635038B (zh) * | 2018-11-20 | 2022-08-19 | 福建亿榕信息技术有限公司 | 一种结构化数据异地双读写方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1614566A (zh) * | 2004-11-29 | 2005-05-11 | 中兴通讯股份有限公司 | 一种用户数据库的备份恢复方法 |
CN102929983A (zh) * | 2012-10-18 | 2013-02-13 | 京信通信系统(中国)有限公司 | 嵌入式数据库同步到flash数据库的方法和装置 |
CN103226483A (zh) * | 2013-03-25 | 2013-07-31 | 成都瑞科电气有限公司 | 基于soa、云存储实现的双机热备份系统及其方法 |
-
2013
- 2013-09-12 CN CN201310416525.9A patent/CN103488721B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1614566A (zh) * | 2004-11-29 | 2005-05-11 | 中兴通讯股份有限公司 | 一种用户数据库的备份恢复方法 |
CN102929983A (zh) * | 2012-10-18 | 2013-02-13 | 京信通信系统(中国)有限公司 | 嵌入式数据库同步到flash数据库的方法和装置 |
CN103226483A (zh) * | 2013-03-25 | 2013-07-31 | 成都瑞科电气有限公司 | 基于soa、云存储实现的双机热备份系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103488721A (zh) | 2014-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103488721B (zh) | 主备板的数据库双向同步方法和系统 | |
US11102084B2 (en) | Fault rectification method, device, and system | |
CN102662751B (zh) | 一种提高基于热迁移虚拟机系统可用性的方法 | |
US10565071B2 (en) | Smart data replication recoverer | |
WO2017024688A1 (zh) | 一种可在系统升级过程中不中断业务的控制方法及系统 | |
CN112286905A (zh) | 数据迁移方法及装置、存储介质、电子设备 | |
CN103152419A (zh) | 一种云计算平台的高可用集群管理方法 | |
US20150254271A1 (en) | Distributed File System and Data Backup Method for Distributed File System | |
CN102394791A (zh) | 宕机恢复方法和系统 | |
CN109189860A (zh) | 一种基于Kubernetes系统的MySQL主备增量同步方法 | |
US11269737B2 (en) | Incrementally updating recovery map data for a memory system | |
CN107656705B (zh) | 一种计算机存储介质和一种数据迁移方法、装置及系统 | |
CN103905220B (zh) | 数据同步处理方法及系统 | |
CN112506702A (zh) | 数据中心容灾方法、装置、设备及存储介质 | |
CN102045187B (zh) | 一种利用检查点实现高可用性系统的方法和设备 | |
CN105306581A (zh) | 一种基于路由器和云盘数据同步的方法 | |
CN102014012A (zh) | 一种告警同步的方法及装置 | |
CN103514063B (zh) | 一种flash数据处理方法以及装置 | |
CN109462509B (zh) | 一种板卡的批量备份的方法和装置 | |
CN102510343A (zh) | 基于远程检测和电源管理的高可用集群系统假死解决方法 | |
CN114064217B (zh) | 一种基于OpenStack的节点虚拟机迁移方法及装置 | |
CN102521060A (zh) | 基于看门狗本地检测技术的高可用集群系统假死解决方法 | |
EP2887592A1 (en) | Enum-dns disaster recovery method and system in ims network | |
CN105653376A (zh) | Arm平台中bios与bmc同时启动时保证信息同步的优化算法 | |
CN104166599A (zh) | 一种arm设备重启恢复出厂配置的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 510663 No. 10 Shenzhou Road, Science City, Luogang District, Guangzhou City, Guangdong Province Patentee after: Jingxin Network System Co.,Ltd. Address before: 510663 No. 10 Shenzhou Road, Science City, Luogang District, Guangzhou City, Guangdong Province Patentee before: COMBA TELECOM SYSTEMS (CHINA) Ltd. |
|
CP01 | Change in the name or title of a patent holder | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170118 |
|
CF01 | Termination of patent right due to non-payment of annual fee |