CN108241700A - 一种基于数据重整的快速恢复MySQL逻辑备份的方法 - Google Patents

一种基于数据重整的快速恢复MySQL逻辑备份的方法 Download PDF

Info

Publication number
CN108241700A
CN108241700A CN201611222013.9A CN201611222013A CN108241700A CN 108241700 A CN108241700 A CN 108241700A CN 201611222013 A CN201611222013 A CN 201611222013A CN 108241700 A CN108241700 A CN 108241700A
Authority
CN
China
Prior art keywords
data
record
reference value
consumption
value
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.)
Granted
Application number
CN201611222013.9A
Other languages
English (en)
Other versions
CN108241700B (zh
Inventor
徐欣
张有成
许萍萍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aerospace One System Jiangsu Information Technology Co ltd
Original Assignee
Nanjing Basic Information Technology Ltd By Share Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Basic Information Technology Ltd By Share Ltd filed Critical Nanjing Basic Information Technology Ltd By Share Ltd
Priority to CN201611222013.9A priority Critical patent/CN108241700B/zh
Publication of CN108241700A publication Critical patent/CN108241700A/zh
Application granted granted Critical
Publication of CN108241700B publication Critical patent/CN108241700B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

本发明公开一种基于数据重整的快速恢复MySQL逻辑备份的方法,包括:通过对MySQL原始备份数据进行分析,获取数据库的数据规模和数据分布组成,执行消耗基准值测试,获取“执行消耗基准值”,进一步的,进行批量插入记录基准值测试,获取“记录数基准值”。进一步的,根据这两个关键数据,通过效率增益值分析,计算出最佳切分值。根据最佳切分值对原始数据库备份集进行重整,输出新的数据库备份集,提高恢复效率,减少恢复时间。

Description

一种基于数据重整的快速恢复MySQL逻辑备份的方法
技术领域
本发明涉及数据保护以及灾难恢复技术领域,尤其涉及一种基于数据重整的快速恢复MySQL逻辑备份的方法。
背景技术
在数据灾备的技术里,通常MySQL数据库备份/恢复分为物理备份/恢复和逻辑备份/恢复。物理备份恢复速度快,占用空间大。但是物理备份往往与数据库版本、系统平台关联,难以跨平台、系统和版本。
MySQL数据库逻辑备份恢复简单,占用空间少。备份数据与系统、数据库版本、存储无关,可以跨各种平台。但是逻辑备份恢复占用系统资源长,需要更多的CPU周期。尤其是逻辑恢复,需要进行加载解释MySQL语句、转化格式、重建引擎等一系列工作,还原恢复的速度很慢。
MySQL数据库官方提供的备份工具mysqldump可用于MySQL数据库的逻辑备份和恢复。备份导出的文件是一个SQL脚本,对于数据本身并无分析。
MySQL逻辑备份的本质是一组SQL语句的集合,是对数据库操作的逻辑再现。其中耗费绝大部分资源的是使用insert into语句插入大量数据的操作。
当前提高逻辑恢复效率,主要技术是通过修改数据库的配置参数和使用第三方的备份恢复工具。修改数据库配置参数,优化的效果不显著且无法量化。
第三方备份恢复工具优化性能主要来源于多线程同时进行备份和恢复。这种方案优化的效果和数据库中数据的组织结构密切相关,当数据集中在一张或少数几张表中时,优化效果并不明显。
直接使用MySQL逻辑备份的数据进行恢复时,恢复时间较长,且恢复所耗时长与备份集数据量之间不是线性关联。当数据量超过一额定值时,恢复耗时迅速攀升。
发明内容
为解决上述问题,本发明提供了一种基于数据重整的快速恢复MySQL逻辑备份的方法,包括以下步骤:
步骤一,首先分析待重整的备份集文件和获取MySQL数据库信息,得到数据总量规模、记录的条数、记录的数据分布、记录的数据大小等相关参数。
步骤二,进一步的,执行消耗基准值测试,获取“执行消耗基准值”。
所述消耗基准值测试,在SQL脚本中插入数据过程中,只插入一条记录,由于此时插入的数据量极少,基本可以排除数据在执行SQL脚本中的影响,此时只插入一条记录所用的时间即为执行消耗基准值。
步骤三,进一步的,进行批量插入记录基准值测试,获取“记录数基准值”。
所述批量插入记录基准值测试,通过自动调整批量插入的记录的数目,计算每次的执行消耗,保持执行消耗基准值不变,最多一次插入数据记录数即为记录数基准值;
步骤四,进一步的,根据上述两个值,通过效率增益值分析,计算出最佳切分值。
所述效率增益值分析,通过逐级递增批量插入的数据量,调整批量插入数据的记录条数和SQL插入语句的数量,不断进行数据插入测试。效率增益值与每条SQL语句内批量插入的记录条数成正比,与每条SQL批量插入语句的执行耗时成反比。当耗时减少带来的增益同执行SQL语句产生的消耗达到平衡时,即达到粒度划分的最优值即所述最佳切分值。
步骤五,进一步的,根据上述已经得到的最佳切分值对原始数据库备份集进行重整,输出新的数据库备份集,提高恢复效率,减少恢复时间。
本发明所公开的方法,同现有技术相比,本发明有如下有益效果:
(1)本发明不依赖于现有的任何官方或第三方工具。
(2)本发明适用范围广,与系统平台、数据库版本以及当前数据组织和存储分布无关,数据库不同的组织结构不会影响重整后恢复的优化效果。
(3)本发明可以与其它优化方法配合,叠加优化的效果。
(4)本发明通过重整前的测试数据,可以合理的估算重整后的数据恢复时间,整个恢复工作可控性大大增强。
附图说明
图1为MySQL备份优化重装程序流程图
图2为假定环境下效率增益值分析图
具体实施方式
MySQL逻辑恢复其本质是执行SQL逻辑备份导出的SQL脚本文件,导入所有备份的数据。导入数据的核心就是向数据表中插入数据,所以优化逻辑恢复,实质就是提升SQL脚本中插入语句insert into的执行效率。在数据插入过程中,消耗时间的流程包括连接、发送数据、分析查询、插入记录、关闭。
通常MySQL官方提供的工具中对逻辑备份进行了简单的优化处理,一次插入多条数据,也就是批量插入。但是这种简单的处理没有考虑实际的环境,因此优化的效果并不明显。
本发明通过对备份数据重新划分组合,直接对逻辑备份的导出文件进行处理,不产生额外的文件。在不改变原有备份恢复流程的基础上,最大限度的提高了数据恢复的速度,除了需要对导出的sql文件进行一次分析和读写,不增加任何多余的步骤和消耗。无论数据原本的组织结构如何,都会产生显著的提升,且可以有效的评估量化恢复进度,使得数据库恢复工作可控。
下面结合附图对本发明的技术方案进行详细说明。
图1为MySQL备份优化重装程序流程图。
步骤一,首先分析待重整的备份集文件和获取MySQL数据库信息,得到数据总量规模、记录的条数、记录的数据分布、记录的数据大小等相关参数。
步骤二,进一步的,执行消耗基准值测试,获取“执行消耗基准值”。
所述消耗基准值测试,在SQL脚本中插入数据过程中,只插入一条记录,由于此时插入的数据量极少,基本可以排除数据在执行SQL脚本中的影响,此时只插入一条记录所用的时间即为执行消耗基准值。
由于插入一条记录时间较短,不容易获取,所以将只插入一条记录的过程,重复N次,记录需要时间为M,则执行消耗基准值为M/N。
步骤三,进一步的,进行批量插入记录基准值测试,获取“记录数基准值”。
所述批量插入记录基准值测试,通过逐级递增批量插入的记录的数目,计算每次的执行消耗,最多一次可以插入多少条数据记录可以保持执行消耗基准值不变,此记录数即为记录数基准值。
根据所述,如果执行消耗基准值为M/N,通过批量插入记录,保持执行消耗基准值为M/N不变,最多一次可以插入多少条记录数即为记录数基准值,此值表示一次插入所述条数,对数据在执行SQL脚本中无影响。
所述执行消耗基准值不变指范围在±10%。
步骤四,进一步的,根据上述两个值,通过效率增益值分析,计算出最佳切分值。
所述效率增益值分析,通过逐级递增批量插入的数据量,调整批量插入数据的记录条数和SQL插入语句的数量,不断进行数据插入测试。效率增益值与每条SQL语句内批量插入的记录条数成正比,与每条SQL批量插入语句的执行耗时成反比。当耗时减少带来的增益同执行SQL语句产生的消耗达到平衡时,即达到粒度划分的最优值即所述最佳切分值。
如图2所述,通过效率增益值分析,假定在数据总量在10000条的环境下,恢复耗费时间与批量插入数据呈现如图所述关系。
通过逐级递增批量插入的数据量,调整批量插入数据的记录条数和SQL插入语句的数量,不断进行数据插入测试。当耗时减少带来的增益同执行SQL语句产生的消耗达到平衡时,即达到粒度划分的最优值即所述最佳切分值。
假设,现有一个备份集,需要插入10000条记录,经过测试,执行消耗基准值为M/N=0.5秒,记录数基准值为100条,即表示在0.5秒内插入100条记录数据对执行SQL脚本中无影响,假设10000条记录都以此标准进行大量数据批量插入,需要执行100次数据插入,每次0.5秒,总共需要50秒。进一步的,经过效率增益值分析,一次插入1000条,需插入10次,每次1.5秒,总共耗时15秒;一次插入2000条,需插入5次,每次2.5秒,总共耗时12.5秒;一次插入5000,需插入2次,每次10秒,总共耗时20秒;一次插入10000条,需插入1次,每次耗时40秒,总共耗时40秒。在此环境中,一次插入2000条记录的效率最高,耗时最少。2000即为此环境中的最佳切分值。
步骤五,进一步的,根据上述已经得到的最佳切分值对原始数据库备份集进行重整,输出新的数据库备份集,提高恢复效率,减少恢复时间。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (1)

1.一种基于数据重整的快速恢复MySQL逻辑备份的方法,其特征在于,包括以下步骤:
步骤一,首先分析待重整的备份集文件和获取MySQL数据库信息,得到数据总量规模、记录的条数、记录的数据分布、记录的数据大小等相关参数;
步骤二,执行消耗基准值测试,获取“执行消耗基准值”;
所述消耗基准值测试,在SQL脚本中插入数据过程中,只插入一条记录,由于此时插入的数据量极少,基本可以排除数据在执行SQL脚本中的影响,此时只插入一条记录所用的时间即为执行消耗基准值;
步骤三,进行批量插入记录基准值测试,获取“记录数基准值”;
所述批量插入记录基准值测试,通过自动调整批量插入的记录的数目,计算每次的执行消耗,保持执行消耗基准值不变,最多一次插入数据记录数即为记录数基准值;
步骤四,进一步的,根据上述两个值,通过效率增益值分析,计算最佳切分值;
所述效率增益值分析,通过逐级递增批量插入的数据量,调整批量插入数据的记录条数和SQL插入语句的数量,不断进行数据插入测试;
所示效率增益值与每条SQL语句内批量插入的记录条数成正比,与每条SQL批量插入语句的执行耗时成反比;
当耗时减少带来的增益同执行SQL语句产生的消耗达到平衡时,即达到粒度划分的最优值即所述最佳切分值;
步骤五,进一步的,根据上述得到的最佳切分值对原始数据库备份集进行重整,输出新的数据库备份集,提高恢复效率,减少恢复时间。
CN201611222013.9A 2016-12-23 2016-12-23 一种基于数据重整的快速恢复MySQL逻辑备份的方法 Active CN108241700B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611222013.9A CN108241700B (zh) 2016-12-23 2016-12-23 一种基于数据重整的快速恢复MySQL逻辑备份的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611222013.9A CN108241700B (zh) 2016-12-23 2016-12-23 一种基于数据重整的快速恢复MySQL逻辑备份的方法

Publications (2)

Publication Number Publication Date
CN108241700A true CN108241700A (zh) 2018-07-03
CN108241700B CN108241700B (zh) 2020-04-24

Family

ID=62702389

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611222013.9A Active CN108241700B (zh) 2016-12-23 2016-12-23 一种基于数据重整的快速恢复MySQL逻辑备份的方法

Country Status (1)

Country Link
CN (1) CN108241700B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144783A (zh) * 2018-08-22 2019-01-04 南京壹进制信息技术股份有限公司 一种分布式海量非结构化数据备份方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101989305A (zh) * 2010-11-09 2011-03-23 福州星网视易信息系统有限公司 数据增量备份方法和系统
CN103186624A (zh) * 2011-12-31 2013-07-03 北京亿阳信通科技有限公司 一种数据同步方法和数据同步装置
US20160335162A1 (en) * 2013-09-18 2016-11-17 International Business Machines Corporation Optimizing the number and type of database backups to achieve a given recovery time objective (rto)
CN106155838A (zh) * 2015-04-24 2016-11-23 中国移动通信集团河南有限公司 一种数据库备份数据恢复方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101989305A (zh) * 2010-11-09 2011-03-23 福州星网视易信息系统有限公司 数据增量备份方法和系统
CN103186624A (zh) * 2011-12-31 2013-07-03 北京亿阳信通科技有限公司 一种数据同步方法和数据同步装置
US20160335162A1 (en) * 2013-09-18 2016-11-17 International Business Machines Corporation Optimizing the number and type of database backups to achieve a given recovery time objective (rto)
CN106155838A (zh) * 2015-04-24 2016-11-23 中国移动通信集团河南有限公司 一种数据库备份数据恢复方法及装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSND: "Mybatis批量插入引发的血案", 《HTTPS://BLOG.CSDN.NET/SYY_C_J/ARTICLE/DETAILS/52151402》 *
博客园: "MYSQL开发性能研究——批量插入的优化措施", 《HTTPS://WWW.CNBLOGS.COM/AICRO/P/3851434.HTML》 *
博客园: "大数据量下MYSQL插入方法的性能比较", 《HTTPS://WWW.CNBLOGS.COM/ALIGHT/P/4484812.HTML》 *
脚本之家: "MySQL实现批量插入以优化性能的教程", 《HTTPS://WWW.JB51.NET/ARTICLE/63895.HTM》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144783A (zh) * 2018-08-22 2019-01-04 南京壹进制信息技术股份有限公司 一种分布式海量非结构化数据备份方法及系统
CN109144783B (zh) * 2018-08-22 2020-08-18 南京壹进制信息科技有限公司 一种分布式海量非结构化数据备份方法及系统

Also Published As

Publication number Publication date
CN108241700B (zh) 2020-04-24

Similar Documents

Publication Publication Date Title
Wang et al. Performance prediction for apache spark platform
Poess et al. TPC-DI: the first industry benchmark for data integration
CN104850411B (zh) 存储系统基准评测程序生成方法及装置
US6708185B2 (en) SQL execution analysis
CN108388515A (zh) 测试数据生成方法、装置、设备以及计算机可读存储介质
US10101796B2 (en) Processor power estimation
CN109165153A (zh) 一种高仿真证券业交易类系统的性能测试方法
JP2016100006A (ja) パフォーマンス試験のためのベンチマーク・アプリケーションを生成する方法および装置
US9092577B2 (en) Method for generating test data for evaluating program execution performance
CN107168868B (zh) 一种基于采样和集成学习的软件更改缺陷预测方法
Schlagkamp et al. Understanding user behavior: from HPC to HTC
O'neal et al. GPU performance estimation using software rasterization and machine learning
US20140143525A1 (en) Systems and methods for data generation
Ehatäht NANOAOD: a new compact event data format in CMS
CN108241700A (zh) 一种基于数据重整的快速恢复MySQL逻辑备份的方法
CN106776779A (zh) 基于Mac平台的JSON数据生成实体文件的方法
Islam et al. Measuring energy footprint of software features
CN111341391B (zh) 一种用于异构集群环境中的自由能微扰计算调度方法
CN114880224A (zh) 软件性能测试的方法、装置、存储介质以及电子设备
Tiwari et al. Identification of critical parameters for MapReduce energy efficiency using statistical Design of Experiments
CN109669827B (zh) 一种BIOS模块TurboMode功能的自动化测试方法
Iman et al. Comparison of several rank tests for the two-way layout
Koller Replication code for simulation studies
Liu et al. An automatic testing platform for object-oriented software based on code coverage
CN115543719B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 210014 three floor, building five, five, Bai Xia hi tech park, No. 5, Yong Zhi Road, Qinhuai District, Nanjing, Jiangsu.

Applicant after: NANJING UNARY INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 210014 three floor, building five, five, Bai Xia hi tech park, No. 5, Yong Zhi Road, Qinhuai District, Nanjing, Jiangsu.

Applicant before: NANJING UNARY INFORMATION TECHNOLOGY Inc.,Ltd.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Building 1, 6th Floor, Changfeng Building, No.14 Xinghuo Road, Research and Innovation Park, Jiangbei New District, Nanjing City, Jiangsu Province, 210000

Patentee after: Aerospace One System (Jiangsu) Information Technology Co.,Ltd.

Address before: 210014 three floor, building five, five, Bai Xia hi tech park, No. 5, Yong Zhi Road, Qinhuai District, Nanjing, Jiangsu.

Patentee before: NANJING UNARY INFORMATION TECHNOLOGY Co.,Ltd.