CN112286729B - 一种指定时间恢复的方法 - Google Patents
一种指定时间恢复的方法 Download PDFInfo
- Publication number
- CN112286729B CN112286729B CN202011206954.XA CN202011206954A CN112286729B CN 112286729 B CN112286729 B CN 112286729B CN 202011206954 A CN202011206954 A CN 202011206954A CN 112286729 B CN112286729 B CN 112286729B
- Authority
- CN
- China
- Prior art keywords
- node
- file
- database
- log
- master
- 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 23
- 238000011084 recovery Methods 0.000 claims abstract description 21
- 238000012544 monitoring process Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims abstract description 7
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 4
- 230000008676 import Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据库技术领域,具体提供了一种指定时间恢复的方法,具有以下步骤:S1、将断面文件上传到集中文件存储服务器;S2、检测本机数据库节点是否为主运行状态;S3、实时监测集群运行的MySQL数据库每个数据库节点的运行状态;S4、用户指定将MySQL数据库实例恢复到较早的某一时刻;S5、从集中文件存储服务器上获取增量二进制日志文件列表;S6、从已导入全量数据断面的数据库实例中查询获得最大数据写入序号;S7、若发生过多次切换,则需重复执行步骤七;S8、结束日志文件解析过程。与现有技术相比,本发明具有更可靠,更方便完成数据恢复工作的优点。
Description
技术领域
本发明涉及数据库技术领域,具体提供一种指定时间恢复的方法。
背景技术
在当前互联网环境下,高可用软件架构是很多软件的基本要求,无论是应用服务还是数据库服务都需要做到高可用。尤其是数据库服务对数据的安全性,准确性要求较高,由于环境中不确定因素可能会引起数据异常,目前通用技术是以集群方式部署数据库实例,通常采用主从方式多数据库节点运行,并使用读写分离等访问方式提高数据库集群的并发效率,在多个主从数据库节点间通常借助分布式同步技术实现数据的实时同步,提供不同级别的CAP原则承诺。而数据在各个数据库节点上的一致性要求通常是必选的一条原则。
在上述技术背景下,各个MySQL数据库节点在运行过程中具备主运行与从运行两种状态,一般分布式技术均采用主运行状态数据节点允许写入的实现方法。在MySQL数据库中,提供二进制日志顺序记录数据库的所有数据修改操作,该日志也用于主从数据节点间的实时数据同步,该二进制日志在MySQL数据库中仅由主运行状态节点记录。
在用户使用数据库的实践中,经常会发生用户因为误操作向数据库中写入了一段时间错误数据或破坏了数据库的已有数据或结构,导致数据丢失或数据库不可用。或者用户明确期望将数据库恢复到一个历史状态,在这种情况下,需要借助数据恢复技术对数据库中的数据进行准确的恢复,使数据库数据恢复到一个较早时间点上的正常运行状态。
在已有的公知技术中缺乏对集群方式运行的MySQL数据库准确方便恢复到历史时间点的方法。
发明内容
本发明是针对上述现有技术的不足,提供一种实用性强的指定时间恢复的方法。
本发明解决其技术问题所采用的技术方案是:
一种指定时间恢复的方法,其特征在于,具有以下步骤:
S1、将断面文件上传到集中文件存储服务器;
S2、检测本机数据库节点是否为主运行状态;
S3、实时监测集群运行的MySQL数据库每个数据库节点的运行状态;
S4、用户指定将MySQL数据库实例恢复到较早的某一时刻;
S5、从集中文件存储服务器上获取增量二进制日志文件列表;
S6、从已导入全量数据断面的数据库实例中查询获得最大数据写入序号;
S7、若发生过多次切换,则需重复执行步骤七;
S8、结束日志文件解析过程。
进一步的,在S1中,以集群方式运行的MySQL数据库实例,每隔一定时间,将断面文件上传到集中文件存储服务器,并标记文件时间戳。
作为优选,在S1中,以天为单位定期备份数据库实例全量断面文件。
进一步的,在S2中,MySQL数据库实例的每个数据库节点所在机器上,开启定时任务每隔5分钟检测本机数据库节点是否为主运行状态;
若为主运行状态,则将本机数据库节点生成的二进制日志文件上传到集中文件存储服务器;
在集中存储服务器上,每个数据库节点对应一个单独的目录用于存储二进制日志,并记录每个二进制日志包含数据的起始时间与终止时间,数据库节点所在机器记录已经上传到集中存储服务器上的日志文件列表。
进一步的,在S3中,使用MySQL数据库实例运行状态监测工具,实时监测集群运行的MySQL数据库每个数据库节点的运行状态,若发现数据库实例中不存在主运行状态节点,则执行主从切换操作,将某个从节点切换为主运行状态,并查询记录该从节点最后接收到的由主节点同步过来的二进制日志序号,以及发送同步日志的节点ID,将该主从切换记录文件上传到集中文件存储服务器。
进一步的,在S4中,当用户指定将MySQL数据库实例恢复到较早的某一时刻,
先选择要恢复到的目标数据库实例,且该数据库实例在恢复时不提供对外访问服务,根据恢复时间点从集中文件存储服务器上获取最接近该时间点的较早的全量数据断面文件,并使用MySQL数据库导入工具将该断面文件导入到数据库实例的主运行状态数据库节点中。
进一步的,在S5中,根据全量数据断面文件时间与用户指定恢复时间间隔,从集中文件存储服务器上获取增量二进制日志文件列表,且二进制日志文件最终截止时间应大于用户指定恢复时间;
根据二进制日志列表判断是否存在大于一个数据库节点的日志文件,若仅存在一个数据库节点的日志文件,则说明没有发生主从切换;否则判断为发生主从切换,需从集中存储服务器上获取主从切换记录文件。
进一步的,在S6中,从已导入全量数据断面的数据库实例中查询获得最大数据写入序号,按照时间顺序解析获取到的二进制日志文件内容,找到最大数据写入序号所在日志文件,从该序号后的日志记录开始读取,并将读取到的数据写入到待恢复的数据库实例主运行节点中。
进一步的,在S7中,若发生过主从切换,则读取主从切换记录文件中记录的当前正在解析的二进制日志数据库节点的最后一条日志序号,当到达该序号后,则停止读取该日志文件,并将日志文件读取目录切换到另一个已成为主运行状态节点的日志目录下,并继续读取该节点下日志文件,通过该处理防止日志记录的重复;
若发生过多次切换,则需重复执行步骤七。
进一步的,在S8中,当日志记录读取到用户指定时间点最后一秒,则结束日志文件解析过程。使用MySQL数据库的主从复制工具,将主运行节点的完整数据复制到各个从运行节点,完成数据恢复过程。
本发明的一种指定时间恢复的方法和现有技术相比,具有以下突出的有益效果:
(1)本发明通过步骤S2中集中上传二进制日志记录的起始、终止时间,以及二进制日志按数据库节点分目录存储,可以快捷的判断日志是否在恢复区间,并在发生主从切换时方便的找到不同数据库节点的日志文件。
(2)通过步骤S3中记录的主从节点的切换信息,可以在恢复过程中连续提取不同数据库节点的日志记录,保证二进制日志记录数据的完整性,防止恢复数据丢失。
(3)通过步骤S3中记录的主从节点的切换信息,可以防止重复读取不同数据库节点上的日志记录,确保二进制日志中的记录不会重复执行。
综上,本发明与已有的技术相比,具有更可靠,更方便完成数据恢复工作的优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1是一种指定时间恢复的方法的二进制上传流程图。
具体实施方式
为了使本技术领域的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。
下面给出一个最佳实施例:
如图1所示,本实施例中的一种指定时间恢复的方法,具有以下步骤:
S1、将断面文件上传到集中文件存储服务器;
以集群方式运行的MySQL数据库实例,每隔一定时间,一般以天为单位定期备份数据库实例全量断面文件。将断面文件上传到集中文件存储服务器,并标记文件时间戳。
S2、检测本机数据库节点是否为主运行状态;
MySQL数据库实例的每个数据库节点所在机器上,开启定时任务每隔5分钟检测本机数据库节点是否为主运行状态。若为主运行状态,则将本机数据库节点生成的二进制日志文件上传到集中文件存储服务器。在集中存储服务器上,每个数据库节点对应一个单独的目录用于存储二进制日志,并记录每个二进制日志包含数据的起始时间与终止时间。数据库节点所在机器记录已经上传到集中存储服务器上的日志文件列表,防止重复上传与漏传。
S3、实时监测集群运行的MySQL数据库每个数据库节点的运行状态;
使用MySQL数据库实例运行状态监测工具,实时监测集群运行的MySQL数据库每个数据库节点的运行状态,若发现数据库实例中不存在主运行状态节点,则执行主从切换操作,将某个从节点切换为主运行状态,并查询记录该从节点最后接收到的由主节点同步过来的二进制日志序号,以及发送同步日志的节点ID。将该主从切换记录文件上传到集中文件存储服务器。
S4、用户指定将MySQL数据库实例恢复到较早的某一时刻;
当用户指定将MySQL数据库实例恢复到较早的某一时刻。首先选择要恢复到的目标数据库实例,且该数据库实例在恢复时不提供对外访问服务。根据恢复时间点从集中文件存储服务器上获取最接近该时间点的较早的全量数据断面文件,并使用MySQL数据库导入工具将该断面文件导入到数据库实例的主运行状态数据库节点中。
S5、从集中文件存储服务器上获取增量二进制日志文件列表;
根据全量数据断面文件时间与用户指定恢复时间间隔,从集中文件存储服务器上获取增量二进制日志文件列表,且二进制日志文件最终截止时间应大于用户指定恢复时间,防止遗漏数据。根据二进制日志列表判断是否存在大于一个数据库节点的日志文件,若仅存在一个数据库节点的日志文件,则说明没有发生主从切换。否则判断为发生主从切换,需从集中存储服务器上获取主从切换记录文件。
S6、从已导入全量数据断面的数据库实例中查询获得最大数据写入序号;
从已导入全量数据断面的数据库实例中查询获得最大数据写入序号。按照时间顺序解析获取到的二进制日志文件内容,找到最大数据写入序号所在日志文件,从该序号后的日志记录开始读取,并将读取到的数据写入到待恢复的数据库实例主运行节点中。
S7、若发生过多次切换,则需重复执行步骤七;
若发生过主从切换,则读取主从切换记录文件中记录的当前正在解析的二进制日志数据库节点的最后一条日志序号,当到达该序号后,则停止读取该日志文件,并将日志文件读取目录切换到另一个已成为主运行状态节点的日志目录下,并继续读取该节点下日志文件,通过该处理防止日志记录的重复。若发生过多次切换,则需重复执行步骤七。
S8、结束日志文件解析过程:
当日志记录读取到用户指定时间点最后一秒,则结束日志文件解析过程。使用MySQL数据库的主从复制工具,将主运行节点的完整数据复制到各个从运行节点,完成数据恢复过程。
上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的一种指定时间恢复的方法权利要求书的且任何所述技术领域普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (1)
1.一种指定时间恢复的方法,其特征在于,具有以下步骤:
S1、以集群方式运行的MySQL数据库实例,以天为单位,将断面文件上传到集中文件存储服务器,并标记文件时间戳;
以天为单位定期备份数据库实例全量断面文件;
S2、MySQL数据库实例的每个数据库节点所在机器上,开启定时任务每隔5分钟检测本机数据库节点是否为主运行状态;
若为主运行状态,则将本机数据库节点生成的二进制日志文件上传到集中文件存储服务器;
在集中存储服务器上,每个数据库节点对应一个单独的目录用于存储二进制日志,并记录每个二进制日志包含数据的起始时间与终止时间,数据库节点所在机器记录已经上传到集中存储服务器上的日志文件列表;
S3、使用MySQL数据库实例运行状态监测工具,实时监测集群运行的MySQL数据库每个数据库节点的运行状态,若发现数据库实例中不存在主运行状态节点,则执行主从切换操作,将某个从节点切换为主运行状态,并查询记录该从节点最后接收到的由主节点同步过来的二进制日志序号,以及发送同步日志的节点ID,将该主从切换记录文件上传到集中文件存储服务器;
S4、当用户指定将MySQL数据库实例恢复到较早的某一时刻,先选择要恢复到的目标数据库实例,且该数据库实例在恢复时不提供对外访问服务,根据恢复时间点从集中文件存储服务器上获取最接近该时间点的较早的全量数据断面文件,并使用MySQL数据库导入工具将该断面文件导入到目标数据库实例的主运行状态数据库节点中;
S5、根据全量数据断面文件时间与用户指定恢复时间间隔,从集中文件存储服务器上获取增量二进制日志文件列表,且二进制日志文件最终截止时间应大于用户指定恢复时间;
根据二进制日志列表判断是否存在大于一个数据库节点的日志文件,若仅存在一个数据库节点的日志文件,则说明没有发生主从切换;否则判断为发生主从切换,需从集中存储服务器上获取主从切换记录文件;
S6、从已导入全量数据断面的数据库实例中查询获得最大数据写入序号,按照时间顺序解析获取到的二进制日志文件内容,找到最大数据写入序号所在日志文件,从该序号后的日志记录开始读取,并将读取到的数据写入到待恢复的数据库实例主运行节点中;
S7、若发生过主从切换,则读取主从切换记录文件中记录的当前正在解析的二进制日志数据库节点的最后一条日志序号,当到达该序号后,则停止读取该日志文件,并将日志文件读取目录切换到另一个已成为主运行状态节点的日志目录下,并继续读取该节点下日志文件,通过该处理防止日志记录的重复;
若发生过多次切换,则需重复执行步骤S7;
S8、当日志记录读取到用户指定时间点最后一秒,则结束日志文件解析过程,使用MySQL数据库的主从复制工具,将主运行节点的完整数据复制到各个从运行节点,完成数据恢复过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011206954.XA CN112286729B (zh) | 2020-11-03 | 2020-11-03 | 一种指定时间恢复的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011206954.XA CN112286729B (zh) | 2020-11-03 | 2020-11-03 | 一种指定时间恢复的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286729A CN112286729A (zh) | 2021-01-29 |
CN112286729B true CN112286729B (zh) | 2023-02-21 |
Family
ID=74353097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011206954.XA Active CN112286729B (zh) | 2020-11-03 | 2020-11-03 | 一种指定时间恢复的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286729B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113868022A (zh) * | 2021-09-18 | 2021-12-31 | 聚好看科技股份有限公司 | 一种数据库的主从切换方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951474A (zh) * | 2014-03-31 | 2015-09-30 | 阿里巴巴集团控股有限公司 | 一种用于获取MySQL binlog增量日志的方法和装置 |
CN105677516A (zh) * | 2016-01-07 | 2016-06-15 | 成都市思叠科技有限公司 | 一种计算靠近存储云平台中高效可靠的备份恢复方法 |
CN109189860A (zh) * | 2018-10-19 | 2019-01-11 | 山东浪潮云信息技术有限公司 | 一种基于Kubernetes系统的MySQL主备增量同步方法 |
CN110825763A (zh) * | 2020-01-08 | 2020-02-21 | 上海爱可生信息技术股份有限公司 | 基于共享存储的MySQL数据库高可用系统及其高可用方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI626547B (zh) * | 2014-03-03 | 2018-06-11 | 國立清華大學 | 於分散式資料庫中將系統狀態一致地還原至欲還原時間點之方法及系統 |
-
2020
- 2020-11-03 CN CN202011206954.XA patent/CN112286729B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951474A (zh) * | 2014-03-31 | 2015-09-30 | 阿里巴巴集团控股有限公司 | 一种用于获取MySQL binlog增量日志的方法和装置 |
CN105677516A (zh) * | 2016-01-07 | 2016-06-15 | 成都市思叠科技有限公司 | 一种计算靠近存储云平台中高效可靠的备份恢复方法 |
CN109189860A (zh) * | 2018-10-19 | 2019-01-11 | 山东浪潮云信息技术有限公司 | 一种基于Kubernetes系统的MySQL主备增量同步方法 |
CN110825763A (zh) * | 2020-01-08 | 2020-02-21 | 上海爱可生信息技术股份有限公司 | 基于共享存储的MySQL数据库高可用系统及其高可用方法 |
Non-Patent Citations (1)
Title |
---|
"详解如何通过Mysql的二进制日志恢复数据库数据";Gavin丶Hsueh;《脚本之家》;20170418;第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112286729A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105718570B (zh) | 用于数据库的数据迁移方法和装置 | |
CN108804523B (zh) | 数据同步方法、系统及计算机可读存储介质 | |
US6983295B1 (en) | System and method for database recovery using a mirrored snapshot of an online database | |
CN110704242B (zh) | 一种连续数据保护系统及方法 | |
CN107145403A (zh) | 面向Web开发环境的关系型数据库数据回溯方法 | |
CN113111129A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN111427898A (zh) | 一种基于解析Oracle日志的持续数据保护系统及方法 | |
CN112905390A (zh) | 日志数据备份方法、装置、设备及存储介质 | |
CN113312153B (zh) | 一种集群部署方法、装置、电子设备及存储介质 | |
CN112286729B (zh) | 一种指定时间恢复的方法 | |
WO2017014814A1 (en) | Replicating memory volumes | |
US20090157767A1 (en) | Circular log amnesia detection | |
CN110011853B (zh) | 一种面向多平台和集群的交叉故障排查方法及装置 | |
JP3647512B2 (ja) | 広域ワークフローシステムの保守方式 | |
CN106487852B (zh) | 实现客户端文件同步的方法、装置、终端设备及系统 | |
CN106682141B (zh) | 一种基于业务操作日志的数据同步方法 | |
CN110825758B (zh) | 一种交易处理的方法及装置 | |
WO2017067397A1 (zh) | 一种数据恢复方法和装置 | |
CN114238018B (zh) | 日志采集文件完整性检测方法、系统、装置及存储介质 | |
CN116521083A (zh) | 一种分布式存储集群数据的存储方法、装置及介质 | |
CN114968637B (zh) | 一种自动驾驶异常分析系统 | |
CN115454717A (zh) | 数据库实时备份方法、装置、计算机设备和存储介质 | |
CN113326325A (zh) | 一种数据库主从服务断开的检测方法及装置 | |
CN109313637A (zh) | 用于监视服务器系统的改变的方法和系统 | |
CN112612852A (zh) | 数据同步方法及装置、电子设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |