CN114924908A - 数据的备份方法和装置、存储介质及电子装置 - Google Patents
数据的备份方法和装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN114924908A CN114924908A CN202210266081.4A CN202210266081A CN114924908A CN 114924908 A CN114924908 A CN 114924908A CN 202210266081 A CN202210266081 A CN 202210266081A CN 114924908 A CN114924908 A CN 114924908A
- Authority
- CN
- China
- Prior art keywords
- backed
- data
- backup
- target
- storage
- 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.)
- Pending
Links
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/1458—Management of the backup or restore process
- G06F11/1461—Backup scheduling policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据的备份方法和装置、存储介质及电子装置,其中,涉及智能家居技术领域,上述数据的备份方法包括:将待备份数据划分为多个待备份子数据,其中,待备份数据是待备份数据库中待备份到备份数据库中的数据;分别通过多个线程将多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储中,得到每个待备份子数据对应的目标临时存储,其中,多个线程与多个待备份子数据一一对应;将目标临时存储备份到备份数据库的初始备份存储中,得到存储有待备份数据的目标备份存储。采用上述技术方案,解决了相关技术中,数据库中数据的备份效率较低等问题。
Description
技术领域
本申请涉及智能家居技术领域,具体而言,涉及一种数据的备份方法和装置、存储介质及电子装置。
背景技术
在对数据库的服务进行运维的过程中,常需要将数据库中的数据进行备份,现有的备份方式往往采用同步执行的技术一次性执行数据库中需要备份的全部数据。常见的备份过程是通过在生产数据库中生成数据,而后在备份数据库中将全部的数据进行一次性的导入,然而生产数据库与备份数据库通常不在同一个服务器上,如果需要备份大量的数据量,那么执行数据备份的操作时间会很长,也就是说,需要很长的时间才能完成备份数据,会对数据库的使用造成影响。
针对相关技术中,数据库中数据的备份效率较低等问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据的备份方法和装置、存储介质及电子装置,以至少解决相关技术中,数据库中数据的备份效率较低等问题。
根据本申请实施例的一个实施例,提供了一种数据的备份方法,包括:将待备份数据划分为多个待备份子数据,其中,所述待备份数据是待备份数据库中待备份到备份数据库中的数据;
分别通过多个线程将所述多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储中,得到所述每个待备份子数据对应的目标临时存储,其中,所述多个线程与所述多个待备份子数据一一对应;
将所述目标临时存储备份到所述备份数据库的初始备份存储中,得到存储有所述待备份数据的目标备份存储。
可选的,所述将所述目标临时存储备份到所述备份数据库的初始备份存储中,得到存储有所述待备份数据的目标备份存储,包括:
获取所述目标临时存储在所述初始备份存储中对应的存储位置;
将所述目标临时存储备份到所述存储位置中,得到所述目标备份存储。
可选的,所述将所述目标临时存储备份到所述存储位置中,得到所述目标备份存储,包括:
获取初始插入语句,其中,所述初始插入语句用于将待备份位置上的数据插入到备份位置;
将所述目标临时存储作为所述待备份位置,所述存储位置作为备份位置添加到所述初始插入语句中,得到目标插入语句;
执行所述目标插入语句,得到所述目标备份存储。
可选的,所述获取所述目标临时存储在所述初始备份存储中对应的存储位置,包括:
获取所述目标临时存储对应的所述每个待备份子数据在所述待备份数据库中的排列顺序;
按照所述排列顺序将所述初始备份存储划分为多个初始备份子存储作为所述存储位置,其中,多个所述目标临时存储与所述多个初始备份子存储一一对应;
记录具有对应关系的所述目标临时存储和所述存储位置。
可选的,所述分别通过多个线程将所述多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储中,得到所述每个待备份子数据对应的目标临时存储,包括:
为每个所述待备份子数据创建对应的线程,并为每个所述待备份子数据创建对应的所述初始临时存储,得到所述多个线程和多个所述初始临时存储;
通过每个所述线程,将每个所述待备份子数据中包括的插入脚本执行到对应的所述初始临时存储中,得到多个所述目标临时存储。
可选的,所述为每个所述待备份子数据创建对应的所述初始临时存储,包括:
获取初始创建语句,其中,所述初始创建语句用于创建与初始表的表结构相同的目标表;
将所述每个所述待备份子数据作为所述初始表,所述初始临时存储作为目标表添加到所述初始创建语句中,得到目标创建语句;
执行所述目标创建语句,得到所述初始临时存储。
可选的,所述将待备份数据划分为多个待备份子数据,包括:
根据所述待备份数据的第一数据量和网络的传输性能,确定所述待备份数据划分的目标数量,其中,所述目标数量为大于或者等于2的整数;
根据所述第一数据量和所述目标数量确定所述每个待备份子数据的第二数据量;
将所述待备份数据按照所述第二数据量划分为所述目标数量的待备份子数据,得到所述多个待备份子数据。
根据本申请实施例的另一个实施例,还提供了一种数据的备份装置,包括:划分模块,用于将待备份数据划分为多个待备份子数据,其中,所述待备份数据是待备份数据库中待备份到备份数据库中的数据;
执行模块,用于分别通过多个线程将所述多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储中,得到所述每个待备份子数据对应的目标临时存储,其中,所述多个线程与所述多个待备份子数据一一对应;
备份模块,用于将所述目标临时存储备份到所述备份数据库的初始备份存储中,得到存储有所述待备份数据的目标备份存储。
根据本申请实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述数据的备份方法。
根据本申请实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的数据的备份方法。
在本申请实施例中,将待备份数据划分为多个待备份子数据,其中,待备份数据是待备份数据库中待备份到备份数据库中的数据;分别通过多个线程将多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储中,得到每个待备份子数据对应的目标临时存储,其中,多个线程与多个待备份子数据一一对应;将目标临时存储备份到备份数据库的初始备份存储中,得到存储有待备份数据的目标备份存储,即将待备份数据库中待备份到备份数据库中的数据划分成多个待备份子数据,分别通过与多个待备份子数据一一对应的多个线程将多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储,得到每个待备份子数据对应的目标临时存储;将目标临时存储备份到备份数据库的初始备份存储中,得到存储有待备份数据的目标备份存储,实现了通过多线程将多个待备份子数据间接备份到备份数据库中的初始备份存储中,得到目标备份存储,结合数据划分,多线程并行处理和临时存储等方式,提高了数据备份的处理速度,缩短了将待备份数据备份到备份数据库中的时间,从而提高了数据库中数据的备份效率。采用上述技术方案,解决了相关技术中,数据库中数据的备份效率较低等问题,实现了提高数据库中数据的备份效率的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的一种数据的备份方法的硬件环境示意图;
图2是根据本申请实施例的数据的备份方法的流程图;
图3是根据本申请实施例的数据的备份方法的划分待备份子数据的示意图;
图4是根据本申请实施例的分别通过多个线程将待备份子数据执行到对应的初始临时存储的示意图;
图5是根据本申请实施例的数据的备份方法的示意图;
图6是根据本申请实施例的数据的备份方法的步骤流程图;
图7是根据本申请实施例的一种数据的备份装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的一个方面,提供了一种数据的备份方法。该数据的备份方法广泛应用于智慧家庭(Smart Home)、智能家居、智能家用设备生态、智慧住宅(Intelligence House)生态等全屋智能数字化控制应用场景。可选地,在本实施例中,上述数据的备份方法可以应用于如图1所示的由终端设备102和服务器104所构成的硬件环境中。如图1所示,服务器104通过网络与终端设备102进行连接,可用于为终端或终端上安装的客户端提供服务(如应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器104提供数据存储服务,可在服务器上或独立于服务器配置云计算和/或边缘计算服务,用于为服务器104提供数据运算服务。
上述网络可以包括但不限于以下至少之一:有线网络,无线网络。上述有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络可以包括但不限于以下至少之一:WIFI(Wireless Fidelity,无线保真),蓝牙。终端设备102可以并不限定于为PC、手机、平板电脑、智能空调、智能烟机、智能冰箱、智能烤箱、智能炉灶、智能洗衣机、智能热水器、智能洗涤设备、智能洗碗机、智能投影设备、智能电视、智能晾衣架、智能窗帘、智能影音、智能插座、智能音响、智能音箱、智能新风设备、智能厨卫设备、智能卫浴设备、智能扫地机器人、智能擦窗机器人、智能拖地机器人、智能空气净化设备、智能蒸箱、智能微波炉、智能厨宝、智能净化器、智能饮水机、智能门锁等。在本实施例中提供了一种数据的备份方法,应用于上述计算机终端,图2是根据本申请实施例的数据的备份方法的流程图,该流程包括如下步骤:
步骤S202,将待备份数据划分为多个待备份子数据,其中,所述待备份数据是待备份数据库中待备份到备份数据库中的数据;
步骤S204,分别通过多个线程将所述多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储中,得到所述每个待备份子数据对应的目标临时存储,其中,所述多个线程与所述多个待备份子数据一一对应;
步骤S206,将所述目标临时存储备份到所述备份数据库的初始备份存储中,得到存储有所述待备份数据的目标备份存储。
通过上述步骤,将待备份数据库中待备份到备份数据库中的数据划分成多个待备份子数据,分别通过与多个待备份子数据一一对应的多个线程将多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储,得到每个待备份子数据对应的目标临时存储;将目标临时存储备份到备份数据库的初始备份存储中,得到存储有待备份数据的目标备份存储,实现了通过多线程将多个待备份子数据间接备份到备份数据库中的初始备份存储中,得到目标备份存储,结合数据划分,多线程并行处理和临时存储等方式,提高了数据备份的处理速度,缩短了将待备份数据备份到备份数据库中的时间,从而提高了数据库中数据的备份效率。采用上述技术方案,解决了相关技术中,数据库中数据的备份效率较低等问题,实现了提高数据库中数据的备份效率的技术效果。
在上述步骤S202提供的技术方案中,可以但不限于将待备份数据库中待备份到备份数据库中的数据划分为多个待备份子数据,降低单文件执行的网络I/O(Input/Output,输入/输出)浪费,缩短了待备份数据完成备份的时间,可以有效提高备份数据的效率。
可选地,在本实施例中,待备份数据库与备份数据库可以但不限于是同一个数据库,或者,待备份数据库与备份数据库可以但不限于是不同的数据库,实现了数据库之间的数据备份,保障了数据库运行和维护的数据安全。
可选地,在本实施例中,待备份数据库可以但不限于包括MySQL数据库、Oracle数据库等等需要备份数据的数据库,提高了关系型数据库关系系统进行数据备份的效率。
可选地,在本实施例中,待备份子数据可以但不限于以表结构或者txt(text,文本文件)等形式存储在待备份数据库中。
在一个示例性实施例中,可以但不限于通过以下方式将待备份数据划分为多个待备份子数据:根据所述待备份数据的第一数据量和网络的传输性能,确定所述待备份数据划分的目标数量,其中,所述目标数量为大于或者等于2的整数;根据所述第一数据量和所述目标数量确定所述每个待备份子数据的第二数据量;将所述待备份数据按照所述第二数据量划分为所述目标数量的待备份子数据,得到所述多个待备份子数据。
可选地,在本实施例中,待备份数据的第一数据量可以但不限于包括待备份数据包括的特定格式数据的数量,比如语句的行数,或者表格的数量等等,网络的传输性能可以但不限于包括网络的带宽、速率或者吞吐量等等,综合考虑待备份数据的第一数据量和备份数据的网络的传输性能,可以更加合理的确定将待备份数据划分成多少个待备份子数据,同时可以更加充分的利用网络的性能,提高数据备份的效率。
可选地,在本实施例中,可以但不限于根据待备份数据的第一数据量和网络的传输性能,将待备份数据划分为大于或者等于2个的待备份子数据,图3是根据本申请实施例的数据的备份方法的划分待备份子数据的示意图,如图3所示,待备份数据可以但不限于包括10000条插入脚本(即上述的第一数据量),可以但不限于将待备份数据划分为5个(即上述的目标数量)待备份子数据,可以但不限于将待备份数据所包括的10000插入脚本和待备份子数据的数量5个的商值作为每个待备份子数据的第二数据量,即每个待备份子数据包括2000条插入脚本,将待备份数据划分为5个分别包括2000条插入脚本的待备份子数据(demo1.sql,demo2.sql,……,demo5.sql)。或者也可以按照预设的算法函数或者模型将10000条插入脚本分配到5个待备份子数据中。通过将待备份数据划分成多个待备份子数据,可以有效缩短数据备份时间,有效提高数据备份的效率。
在上述步骤S204提供的技术方案中,可以但不限于分别通过与多个待备份子数据一一对应的多个线程,将多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储中,得到每个待备份子数据对应的目标临时存储,实现了分别通过多个线程将待备份子数据异步地执行到对应的初始临时存储中,提高了将待备份子数据执行到对应的初始临时存储的效率。
可选地,在本实施例中,初始临时存储可以但不限于为在备份数据库中创建的存储,初始临时存储可以但不限于采用任何与待备份数据的数据结构相匹配的存储结构,比如:创建的初始临时存储可以但不限于为在备份数据库中以表结构创建的存储,通过多个线程将待备份子数据执行到在备份数据库中对应的初始临时存储中,提高了数据备份的效率。
可选地,在本实施例中,可以但不限于为每个待备份子数据均创建对应的初始临时存储,从而在对每个待备份子数据进行执行后得到相应的目标临时存储,通过多线程异步地将每个待备份子数据执行到对应的初始临时存储中,提高了执行待备份数据的效率。
在一个示例性实施例中,可以但不限于通过以下方式得到每个待备份子数据对应的目标临时存储:为每个所述待备份子数据创建对应的线程,并为每个所述待备份子数据创建对应的所述初始临时存储,得到所述多个线程和多个所述初始临时存储;通过每个所述线程,将每个所述待备份子数据中包括的插入脚本执行到对应的所述初始临时存储中,得到多个所述目标临时存储。
可选地,在本实施例中,待备份子数据中数据的格式可以但不限于包括插入脚本等等格式,可以但不限于通过多个线程,异步地的将每个待备份子数据中包括的插入脚本执行到对应的初始临时存储中,得到每个待备份子数据对应的目标临时存储,提高了得到待备份数据对应的目标临时存储的效率。
可选地,在本实施例中,可以但不限于在完成创建每个待备份子数据对应的初始临时存储的情况下,分别通过多个线程,将每个待备份子数据中包括的插入脚本执行到对应的初始临时存储中,得到每个待备份子数据对应的目标临时存储;或者,至少在创建出其中一个待备份子数据对应的初始临时存储的情况下,通过与该待备份子数据对应的线程,将该待备份子数据包括的插入脚本执行到对应的初始临时存储中,得到该待备份子数据对应的目标临时存储;可以有效的缩短将待备份子数据执行到对应的初始临时存储的时间,提高数据备份的效率。
图4是根据本申请实施例的分别通过多个线程将待备份子数据执行到对应的初始临时存储的示意图,如图4所示,待备份数据可以但不限于包括10000条(即上述的第一数据量)插入脚本,可以但不限于将10000条插入脚本划分为5个分别包括2000条插入脚本的待备份子数据(demo1.sql,demo2.sql,……,demo5.sql),可以但不限于分别通过线程1将demo1.sql执行到临时表demo1中,通过线程2将demo2.sql执行到临时表demo2中,通过线程3将demo3.sql执行到临时表demo3中,通过线程4将demo4.sql执行到临时表demo4中,通过线程5将demo5.sql执行到临时表demo5中,实现了分别通过多个线程异步地将每个待备份子数据并行执行到对应的初始临时储存中,提高了数据备份的效率。
在一个示例性实施例中,可以但不限于通过以下方式为每个所述待备份子数据创建对应的所述初始临时存储:获取初始创建语句,其中,所述初始创建语句用于创建与初始表的表结构相同的目标表;将所述每个所述待备份子数据作为所述初始表,所述初始临时存储作为目标表添加到所述初始创建语句中,得到目标创建语句;执行所述目标创建语句,得到所述初始临时存储。
可选地,在本实施例中,初始创建语句可以但不限于用于创建与初始表的表结构相同的目标表,可以但不限于将每个待备份子数据作为初始表,初始临时存储作为目标表添加到初始创建语句中,得到目标创建语句;可以但不限于通过并行执行目标创建语句,为每个待备份子数据创建对应的初始临时存储,可以有效缩短创建待备份子数据对应的初始临时存储的时间,提高了数据备份的效率。
可选地,在本实施例中,初始创建语句可以但不限于包括“create table*like*”命令,可以但不限于将每个待备份子数据作为初始表,临时表作为目标表添加到初始创建语句中,得到目标创建语句,通过并行执行目标创建语句,可以并行地为每个待备份子数据创建对应的临时表,缩短了创建待备份子数据对应的临时表的时间,提高了数据备份的效率。
在上述步骤S206提供的技术方案中,可以但不限于将每个待备份子数据对应的目标临时存储异步备份到备份数据库的初始备份存储中,得到存储有待备份数据的目标备份存储,有效缩短完成数据备份的时间。
可选地,在本实施例中,如果待备份数据的数据量较大,通过异步备份待备份子数据的方式来完成备份待备份数据,可以有效缩短完成数据备份所需的时间,提升数据备份的效率。
比如:待备份数据包括10000条数据,采用传统单文件执行方式执行时间为1091409ms。如果将待备份数据划分为5个待备份子数据,每个待备份子数据包括2000条数据,分别通过五个线程并行执行,整体耗时为600000ms左右,数据备份效率提升45%。如果将待备份数据划分为10个待备份子数据,每个待备份子数据包括1000条数据,分别通过十个线程执行,整体耗时为330000ms左右,数据备份速度提升69.7%。由此可见,采用多线程异步备份待备份子数据的方式,可以有效地的提高数据库备份效率。
可选地,在本实施例中,可以但不限于将每个待备份子数据对应的目标临时存储均备份到备份数据库的初始备份存储中,也就是说,每个待备份子数据对应的目标临时存储均备份到备份数据库中的同一个初始备份存储中,通过将划分成的多个待备份子数据的均备份到备份数据库的初始备份存储中,保证了待备份数据的完整性,以及备份之后的数据与备份之前的数据的一致性。
在一个示例性实施例中,可以但不限于通过以下方式得到存储有所述待备份数据的目标备份存储:获取所述目标临时存储在所述初始备份存储中对应的存储位置;将所述目标临时存储备份到所述存储位置中,得到所述目标备份存储。
可选地,在本实施例中,每个待备份子数据对应的目标临时存储在备份数据库的初始备份存储中都有对应的存储位置,可以但不限于将每个待备份子数据对应的目标临时存储备份到备份数据库的初始备份存储中对应的存储位置上,保证了待备份数据在进行备份之后的准确性和完整性,避免进行数据备份之后出现数据混乱。
可选地,在本实施例中,可以但不限于在多个待备份子数据中的其中一个待备份子数据执行到对应的初始临时存储的情况下,立即将该待备份子数据对应的目标临时存储备份到初始备份存储中对应的存储位置上;或者,在多个待备份子数据中的大于或者等于2个的待备份子数据同时执行到对应的目标临时存储的情况下,将该待备份子数据对应的目标临时存储并行备份到初始备份存储中对应的存储位置上,可以缩短数据备份的时间,有效的提高备份的效率。
在一个示例性实施例中,可以但不限于通过以下方式得到目标备份存储:获取初始插入语句,其中,所述初始插入语句用于将待备份位置上的数据插入到备份位置;将所述目标临时存储作为所述待备份位置,所述存储位置作为备份位置添加到所述初始插入语句中,得到目标插入语句;执行所述目标插入语句,得到所述目标备份存储。
可选地,在本实施例中,可以但不限于通过执行目标插入语句,将每个待备份子数据对应的目标临时存储插入到备份数据库的初始备份存储中对应的存储位置,得到目标备份存储。
比如:可以但不限于通过执行“insert into(存储位置)select*from(目标临时存储)”命令的方式,从而将目标临时存储插入到备份数据库的初始备份存储中对应的存储位置,得到目标备份存储。
可选地,在本实施例中,可以但不限于在多个待备份子数据中的一个待备份子数据执行到对应的目标临时存储的情况下,或者,在多个待备份子数据中的大于或者等于2个的待备份子数据同时执行到对应的目标临时存储的情况下,立即执行“insert intotableA select*from tableB*”命令,将该待备份子数据对应的目标临时存储(即上述命令中的tableB)插入到备份数据库的初始备份存储中对应的存储位置(即上述命令中的tableA),得到存储有待备份数据的备份表,实现了如果有待备份子数据执行到对应的目标临时存储,就立即将该目标临时存储备份到备份数据库的初始备份存储中对应的存储位置上,异步多线程的处理方式,缩短了备份数据的时间,并且由于备份表是在完成数据插入以后再执行的此命令,避免了执行此命令导致的锁表操作对现有业务产生的影响,保证了待备份数据库的业务正常运行。
图5是根据本申请实施例的数据的备份方法的示意图,如图5所示,待备份数据可以但不限于包括10000条插入脚本(即上述的第一数据量),可以但不限于将待备份数据划分为5个分别包括2000条插入脚本的待备份子数据(demo1.sql,demo2.sql,……,demo5.sql),可以但不限于分别通过线程1将demo1.sql执行到临时表demo1中,通过线程2将demo2.sql执行到临时表demo2中,通过线程3将demo3.sql执行到临时表demo3中,通过线程4将demo4.sql执行到临时表demo4中,通过线程5将demo5.sql执行到临时表demo5中。
如果demo1.sql完成执行到临时表demo1中,或者其它的线程执行完毕,可以但不限于立即执行“insert into tableA select*from tableB*”命令,其中,备份表作为上述命令中的tableA,临时表demo1作为上述命令中的tableB,将临时表demo1迁移到备份表中相应的位置,在完成demo1.sql的备份之后,删除临时表demo1。
如果demo1.sql,demo2.sql,……,demo5.sql中同时有至少2个线程执行完成,比如可以但不限于为demo2.sql和demo3.sql同时分别执行完成到对应的临时表demo2和临时表demo3中,可以但不限于分别同时执行“insert into tableA select*from tableB*”命令,其中,备份表作为上述命令中的tableA,分别将临时表demo2和临时表demo3作为上述命令中的tableB,分别将临时表demo2和临时表demo3迁移到备份表中相应的位置,在完成demo2.sql和demo3.sql的备份之后,删除临时表demo2和临时表demo3。
在一个示例性实施例中,可以但不限于通过以下方式获取所述目标临时存储在所述初始备份存储中对应的存储位置:获取所述目标临时存储对应的所述每个待备份子数据在所述待备份数据库中的排列顺序;按照所述排列顺序将所述初始备份存储划分为多个初始备份子存储作为所述存储位置,其中,多个所述目标临时存储与所述多个初始备份子存储一一对应;记录具有对应关系的所述目标临时存储和所述存储位置。
可选地,在本实施例中,可以但不限于按照每个待备份子数据在待备份数据库中的排列顺序,将初始备份存储划分为与多个目标临时存储一一对应的多个初始备份子存储,实现了将每个待备份子数据对应的目标临时存储备份到初始备份存储中对应的初始备份子存储时,保障了待备份数据的完整性和准确性,避免数据备份之后出现乱序。
为了更好的理解上述数据的备份方法的过程,以下再结合可选实施例对上述数据的备份的实现方法流程进行说明,但不用于限定本申请实施例的技术方案。
在本实施例中提供了一种数据的备份方法,图6是根据本申请实施例的数据的备份方法的步骤流程图,如图6所示,可以但不限于包括如下步骤:
步骤S601:导出待备份数据,可以但不限于通“mysqldump”命令导出待备份数据库中需要备份的数据(即上述的待备份数据),脚本内容将以insert(插入)的形式存在;
步骤S602:将待备份数据划分为若干个待备份子数据,获取到待备份数据以后,根据待备份数据包括的插入脚本数量(即上述的第一数据量)和网络的传输性能,将待备份数据划分成若干个小文件(即上述的待备份子数据),比如:可以但不限于将待备份数据拆分为五个小文件,或者根据网络的传输性能需求和备份效率需求,将待备份数据划分一定数量的小文件;
步骤S603:在备份数据库中创建每个待备份子数据对应的临时表(即上述的初始临时存储),可以但不限于通过“create table*like*”命令在备份数据库中创建每个待备份子数据对应的临时表;
步骤S604:分别通过多线程将待备份子数据执行到对应的临时表中,得到存储有待备份子数据的临时表(即上述的目标临时存储),可以但不限于将拆分后的小文件采用多线程分别执行到备份数据库中该小文件对应的临时表中;
步骤S605:每当一个线程执行完毕,就将临时表中的数据迁移到备份表中,立刻执行“insert into tableA select*from tableB*”命令,其中,将备份表作为上述命令中的tableA,将临时表作为上述命令中的tableB,将临时表中的数据迁移到备份表中对应的位置上。由于备份表是在完成数据插入以后再执行的此命令,而此命令导致的锁表操作不会对现有业务产生任何影响,避免生产事故的产生。
步骤S606:删除已经迁移到备份表的待备份子数据对应的临时表。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
图7是根据本申请实施例的一种数据的备份装置的结构框图,如图7所示,包括:
划分模块72,用于将待备份数据划分为多个待备份子数据,其中,所述待备份数据是待备份数据库中待备份到备份数据库中的数据;
执行模块74,用于分别通过多个线程将所述多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储中,得到所述每个待备份子数据对应的目标临时存储,其中,所述多个线程与所述多个待备份子数据一一对应;
备份模块76,用于将所述目标临时存储备份到所述备份数据库的初始备份存储中,得到存储有所述待备份数据的目标备份存储。
通过上述实施例,将待备份数据库中待备份到备份数据库中的数据划分成多个待备份子数据,分别通过与多个待备份子数据一一对应的多个线程将多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储,得到每个待备份子数据对应的目标临时存储;将目标临时存储备份到备份数据库的初始备份存储中,得到存储有待备份数据的目标备份存储,实现了通过多线程将多个待备份子数据间接备份到备份数据库中的初始备份存储中,得到目标备份存储,结合数据划分,多线程并行处理和临时存储等方式,提高了数据备份的处理速度,缩短了将待备份数据备份到备份数据库中的时间,从而提高了数据库中数据的备份效率。采用上述技术方案,解决了相关技术中,数据库中数据的备份效率较低等问题,实现了提高数据库中数据的备份效率的技术效果。
在一个示例性实施例中,所述备份模块,包括:
获取单元,用于获取所述目标临时存储在所述初始备份存储中对应的存储位置;
备份单元,用于将所述目标临时存储备份到所述存储位置中,得到所述目标备份存储。
在一个示例性实施例中,所述备份单元,用于:
获取初始插入语句,其中,所述初始插入语句用于将待备份位置上的数据插入到备份位置;
将所述目标临时存储作为所述待备份位置,所述存储位置作为备份位置添加到所述初始插入语句中,得到目标插入语句;
执行所述目标插入语句,得到所述目标备份存储。
在一个示例性实施例中,所述获取单元,用于:
获取所述目标临时存储对应的所述每个待备份子数据在所述待备份数据库中的排列顺序;
按照所述排列顺序将所述初始备份存储划分为多个初始备份子存储作为所述存储位置,其中,多个所述目标临时存储与所述多个初始备份子存储一一对应;
记录具有对应关系的所述目标临时存储和所述存储位置。
在一个示例性实施例中,所述执行模块,包括:
创建单元,用于为每个所述待备份子数据创建对应的线程,并为每个所述待备份子数据创建对应的所述初始临时存储,得到所述多个线程和多个所述初始临时存储;
执行单元,用于通过每个所述线程,将每个所述待备份子数据中包括的插入脚本执行到对应的所述初始临时存储中,得到多个所述目标临时存储。
在一个示例性实施例中,所述创建单元,用于:
获取初始创建语句,其中,所述初始创建语句用于创建与初始表的表结构相同的目标表;
将所述每个所述待备份子数据作为所述初始表,所述初始临时存储作为目标表添加到所述初始创建语句中,得到目标创建语句;
执行所述目标创建语句,得到所述初始临时存储。
在一个示例性实施例中,所述划分模块,包括:
第一确定单元,用于根据所述待备份数据的第一数据量和网络的传输性能,确定所述待备份数据划分的目标数量,其中,所述目标数量为大于或者等于2的整数;
第二确定单元,用于根据所述第一数据量和所述目标数量确定所述每个待备份子数据的第二数据量;
划分单元,用于将所述待备份数据按照所述第二数据量划分为所述目标数量的待备份子数据,得到所述多个待备份子数据。
本申请的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,将待备份数据划分为多个待备份子数据,其中,所述待备份数据是待备份数据库中待备份到备份数据库中的数据;
S2,分别通过多个线程将所述多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储中,得到所述每个待备份子数据对应的目标临时存储,其中,所述多个线程与所述多个待备份子数据一一对应;
S3,将所述目标临时存储备份到所述备份数据库的初始备份存储中,得到存储有所述待备份数据的目标备份存储。
本申请的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,将待备份数据划分为多个待备份子数据,其中,所述待备份数据是待备份数据库中待备份到备份数据库中的数据;
S2,分别通过多个线程将所述多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储中,得到所述每个待备份子数据对应的目标临时存储,其中,所述多个线程与所述多个待备份子数据一一对应;
S3,将所述目标临时存储备份到所述备份数据库的初始备份存储中,得到存储有所述待备份数据的目标备份存储。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-OnlyMemory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种数据的备份方法,其特征在于,包括:
将待备份数据划分为多个待备份子数据,其中,所述待备份数据是待备份数据库中待备份到备份数据库中的数据;
分别通过多个线程将所述多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储中,得到所述每个待备份子数据对应的目标临时存储,其中,所述多个线程与所述多个待备份子数据一一对应;
将所述目标临时存储备份到所述备份数据库的初始备份存储中,得到存储有所述待备份数据的目标备份存储。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标临时存储备份到所述备份数据库的初始备份存储中,得到存储有所述待备份数据的目标备份存储,包括:
获取所述目标临时存储在所述初始备份存储中对应的存储位置;
将所述目标临时存储备份到所述存储位置中,得到所述目标备份存储。
3.根据权利要求2所述的方法,其特征在于,所述将所述目标临时存储备份到所述存储位置中,得到所述目标备份存储,包括:
获取初始插入语句,其中,所述初始插入语句用于将待备份位置上的数据插入到备份位置;
将所述目标临时存储作为所述待备份位置,所述存储位置作为备份位置添加到所述初始插入语句中,得到目标插入语句;
执行所述目标插入语句,得到所述目标备份存储。
4.根据权利要求2所述的方法,其特征在于,所述获取所述目标临时存储在所述初始备份存储中对应的存储位置,包括:
获取所述目标临时存储对应的所述每个待备份子数据在所述待备份数据库中的排列顺序;
按照所述排列顺序将所述初始备份存储划分为多个初始备份子存储作为所述存储位置,其中,多个所述目标临时存储与所述多个初始备份子存储一一对应;
记录具有对应关系的所述目标临时存储和所述存储位置。
5.根据权利要求1所述的方法,其特征在于,所述分别通过多个线程将所述多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储中,得到所述每个待备份子数据对应的目标临时存储,包括:
为每个所述待备份子数据创建对应的线程,并为每个所述待备份子数据创建对应的所述初始临时存储,得到所述多个线程和多个所述初始临时存储;
通过每个所述线程,将每个所述待备份子数据中包括的插入脚本执行到对应的所述初始临时存储中,得到多个所述目标临时存储。
6.根据权利要求5所述的方法,其特征在于,所述为每个所述待备份子数据创建对应的所述初始临时存储,包括:
获取初始创建语句,其中,所述初始创建语句用于创建与初始表的表结构相同的目标表;
将所述每个所述待备份子数据作为所述初始表,所述初始临时存储作为目标表添加到所述初始创建语句中,得到目标创建语句;
执行所述目标创建语句,得到所述初始临时存储。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述将待备份数据划分为多个待备份子数据,包括:
根据所述待备份数据的第一数据量和网络的传输性能,确定所述待备份数据划分的目标数量,其中,所述目标数量为大于或者等于2的整数;
根据所述第一数据量和所述目标数量确定所述每个待备份子数据的第二数据量;
将所述待备份数据按照所述第二数据量划分为所述目标数量的待备份子数据,得到所述多个待备份子数据。
8.一种数据的备份装置,其特征在于,包括:
划分模块,用于将待备份数据划分为多个待备份子数据,其中,所述待备份数据是待备份数据库中待备份到备份数据库中的数据;
执行模块,用于分别通过多个线程将所述多个待备份子数据中的每个待备份子数据执行到对应的初始临时存储中,得到所述每个待备份子数据对应的目标临时存储,其中,所述多个线程与所述多个待备份子数据一一对应;
备份模块,用于将所述目标临时存储备份到所述备份数据库的初始备份存储中,得到存储有所述待备份数据的目标备份存储。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210266081.4A CN114924908A (zh) | 2022-03-17 | 2022-03-17 | 数据的备份方法和装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210266081.4A CN114924908A (zh) | 2022-03-17 | 2022-03-17 | 数据的备份方法和装置、存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114924908A true CN114924908A (zh) | 2022-08-19 |
Family
ID=82804733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210266081.4A Pending CN114924908A (zh) | 2022-03-17 | 2022-03-17 | 数据的备份方法和装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114924908A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881051A (zh) * | 2023-09-06 | 2023-10-13 | 天津神舟通用数据技术有限公司 | 一种数据备份与恢复方法、装置、电子设备和存储介质 |
-
2022
- 2022-03-17 CN CN202210266081.4A patent/CN114924908A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881051A (zh) * | 2023-09-06 | 2023-10-13 | 天津神舟通用数据技术有限公司 | 一种数据备份与恢复方法、装置、电子设备和存储介质 |
CN116881051B (zh) * | 2023-09-06 | 2023-12-08 | 天津神舟通用数据技术有限公司 | 一种数据备份与恢复方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10585691B2 (en) | Distribution system, computer, and arrangement method for virtual machine | |
CN110209728B (zh) | 一种分布式异构数据库同步方法、电子设备及存储介质 | |
CN109376196B (zh) | 一种redo日志批量同步方法及装置 | |
CN104252481A (zh) | 主从数据库一致性的动态校验方法和装置 | |
CN107977396B (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
CN112487083B (zh) | 一种数据校验方法和设备 | |
CN109063005B (zh) | 一种数据迁移方法及系统、存储介质、电子设备 | |
CN111966631A (zh) | 一种可快速分发的镜像文件生成方法、系统、设备和介质 | |
CN114924908A (zh) | 数据的备份方法和装置、存储介质及电子装置 | |
CN111966656A (zh) | 存储文件高负载场景模拟方法、系统、终端及存储介质 | |
CN114697150A (zh) | 命令的下发方法和装置、存储介质及电子装置 | |
CN111435329A (zh) | 一种自动化测试方法和装置 | |
CN112486664A (zh) | 一种节点扩容方法、系统、终端及存储介质 | |
CN109376148B (zh) | 缓慢变化维表的数据处理方法、装置、电子设备 | |
CN116107975A (zh) | 设备的控制方法和装置、存储介质及电子装置 | |
CN114840557A (zh) | 数据的查询方法和装置、存储介质及电子装置 | |
CN115934523A (zh) | 目标测试数据的生成方法、装置、存储介质及电子装置 | |
CN116027937A (zh) | 待编辑组件的渲染方法和装置、存储介质及电子装置 | |
CN114861678A (zh) | 时间信息的确定方法和装置、存储介质及电子装置 | |
CN115291793A (zh) | 属性数据的转换方法和装置、存储介质及电子装置 | |
CN111782634B (zh) | 数据分布式存储方法、装置、电子设备及存储介质 | |
CN111782641B (zh) | 数据错误修复方法及系统 | |
CN113254271A (zh) | 一种数据序列恢复方法、装置、设备及存储介质 | |
CN117390040B (zh) | 基于实时宽表的业务请求处理方法、设备及存储介质 | |
CN117521619B (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 |