CN108089948B - 一种数据库备份方法及装置 - Google Patents
一种数据库备份方法及装置 Download PDFInfo
- Publication number
- CN108089948B CN108089948B CN201711382061.9A CN201711382061A CN108089948B CN 108089948 B CN108089948 B CN 108089948B CN 201711382061 A CN201711382061 A CN 201711382061A CN 108089948 B CN108089948 B CN 108089948B
- Authority
- CN
- China
- Prior art keywords
- container
- backed
- snapshot
- directory
- propagation
- 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
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
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
本发明公开了一种数据库备份方法及装置,该方法包括:建立宿主机和待进行备份的容器之间的标准挂载传播目录;当所述待进行备份的容器发起备份时,解析预设的备份配置文件,并根据所述标准挂载传播目录调用所述宿主机的管理脚本;通过所述管理脚本建立所述待进行备份的容器的快照,并挂载所述快照至所述标准挂载传播目录;根据所述标准挂载传播目录中的快照对所述待进行备份的容器对应的数据库进行备份,得到备份数据文件。通过本发明实现了在容器内部进行了快照备份,解决了容器采用逻辑备份时的效率较低的问题。
Description
技术领域
本发明涉及备份技术领域,特别是涉及一种Linux容器下的数据库备份方法及装置。
背景技术
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可,MariaDB的目的是完全兼容MySQL,同样也支持插件式引擎。由于TokuDB是一个高性能、支持事务处理的MySQL和MariaDB的存储引擎,有着出色的数据压缩功能,因此被广泛应用。LXC(Linux Container)容器是一个独立的Linux程序,拥有自己的IP地址,运行独立的业务,每个容器都会有独立的任务调度,挂接单独的存储服务器,备份数据写入到对应的存储位置。
目前使用了TokuDB引擎的MariaDB数据库没有提供专业的热备份工具,常规情况都是采用逻辑备份或者是操作系统层面的备份,但是由于在LXC中无法创建快照,就导致在LXC中运行的数据库无法采用快照备份,只能使用常规的逻辑备份,这种备份数据在大数据量备份时效率太低。
发明内容
针对于上述问题,本发明提供一种数据库备份方法及装置,通过实现了在容器内部进行了快照备份,解决了容器采用逻辑备份时的效率较低的问题。
为了实现上述目的,本发明提供了如下技术方案:
一种数据库备份方法,包括:
建立宿主机和待进行备份的容器之间的标准挂载传播目录;
当所述待进行备份的容器发起备份时,解析预设的备份配置文件,并根据所述标准挂载传播目录调用所述宿主机的管理脚本;
通过所述管理脚本建立所述待进行备份的容器的快照,并挂载所述快照至所述标准挂载传播目录;
根据所述标准挂载传播目录中的快照对所述待进行备份的容器对应的数据库进行备份,得到备份数据文件。
优选地,还包括:
当所述待进行备份的容器连接与其对应的数据库时,建立所述数据库的全局锁。
优选地,还包括:
当获取到所述备份数据文件之后,调用所述宿主机的管理脚本删除所述待进行备份的容器的快照。
优选地,还包括:
对所述待进行备份的容器的快照进行加密处理生成快照密钥,通过所述快照密钥对所述待进行备份的容器的快照进行访问。
优选地,所述建立宿主机和待进行备份的容器之间的标准挂载传播目录,包括:
建立所述宿主机的标准目录;
生成容器配置文件,并将所述待进行备份的容器目录配置到所述配置文件中;
根据所述配置文件,在所述标准目录下创建所述待进行备份的容器的子目录,生成所述标准挂载传播目录。
一种数据库备份装置,包括:
建立模块,用于建立宿主机和待进行备份的容器之间的标准挂载传播目录;
解析模块,用于当所述待进行备份的容器发起备份时,解析预设的备份配置文件,并根据所述标准挂载传播目录调用所述宿主机的管理脚本;
挂载模块,用于通过所述管理脚本建立所述待进行备份的容器的快照,并挂载所述快照至所述标准挂载传播目录;
备份模块,用于根据所述标准挂载传播目录中的快照对所述待进行备份的容器对应的数据库进行备份,得到备份数据文件。
优选地,还包括:
全局锁创建模块,用于当所述待进行备份的容器连接与其对应的数据库时,建立所述数据库的全局锁。
优选地,还包括:
删除模块,用于当获取到所述备份数据文件之后,调用所述宿主机的管理脚本删除所述待进行备份的容器的快照。
优选地,还包括:
加密模块,用于对所述待进行备份的容器的快照进行加密处理生成快照密钥,通过所述快照密钥对所述待进行备份的容器的快照进行访问。
优选地,所述建立模块包括:
建立单元,用于建立所述宿主机的标准目录;
配置单元,用于生成容器配置文件,并将所述待进行备份的容器目录配置到所述配置文件中;
生成单元,用于根据所述配置文件,在所述标准目录下创建所述待进行备份的容器的子目录,生成所述标准挂载传播目录。
相较于现有技术,本发明通过建立宿主机和待进行备份的容器之间的标准挂载传播目录,当待进行备份的容器发起备份时,根据标准挂载传播目录调用宿主机的管理脚本建立容器快照,并挂载所述快照至所述标准挂载传播目录,对待备份容器对应的数据库进行备份。由于通过标准的挂载传播目录可以调用宿主机的管理脚本来创建容器快照,实现了在容器内部进行了快照备份,由于容器的快照备份能够对备份内容能够以照片的形式快速备份,解决了现有技术中采用逻辑备份时的效率较低的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例一提供的一种数据库备份方法的流程示意图;
图2为本发明实施例二提供的一种数据库备份装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
为了便于对本发明提供的技术方案的描述,现将本发明中用到一些术语进行解释说明。
MariaDB:MySQL的一个分支版本,主要由开源社区在维护,采用GPL授权许可,MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
TokuDB:是一个应用在MySQL和MariaDB中的存储引擎,它使用索引加快查询速度,具有高扩展性。
物理备份:利用某种技术实现拷贝数据库的数据文件,保证数据的完整性与一致性
LVM:是Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。
LXC:是Linux containers的简称,操作系统级别的虚拟化技术,它可以在操作系统层次上为进程提供的虚拟的执行环境。一个虚拟的执行环境被称为一个容器(container)。
宿主机:就是主机,这个概念是相对于子机而言的,比如安装有虚拟机的话,那么相对于虚拟机而言,正在使用的计算机就是宿主机,虚拟机是安装在主机上的,必须在主机上才能运行,主机就是一个“宿主”
实施例一
参见图1为本发明实施例一提供的一种数据库备份方法的流程示意图,该方法可以包括以下步骤:
S11、建立宿主机和待进行备份的容器之间的标准挂载传播目录;
在本发明的技术方案的基础上,步骤S11具体包括:
建立所述宿主机的标准目录;
生成容器配置文件,并将所述待进行备份的容器目录配置到所述配置文件中;
根据所述配置文件,在所述标准目录下创建所述待进行备份的容器的子目录,生成所述标准挂载传播目录。
需要说明的是,挂载传播(mountpropagation)定义了挂载对象之间的关系,系统用这些关系决定任何挂载对象中的挂载事件如何传播到其他挂载对象。
本发明的技术方案中所提到的容器均是指linux容器(Linux Container,LXC),首先要规范挂载传播目录结构,也就是初始化宿主机及建立容器时候需要进行相应操作,建立标准化目录结构,以及部署信任配置及相应代码,生成标准挂载传播目录。
具体的,宿主机装机完成后调用自动化脚本按预先规定命名方法创建目录,该目录会作为标准挂载传播目录。
举例说明,宿主机在装机完成后调用自动化脚本建立标准目录,例如lxc_snap;
创建新容器时候,也会安装约定的命名规则先创建LVM卷,例如/dev/vgdata/lxcs1111;
配置新容器配置参数,将未来要做快照备份目录设置到配置文件中,新容器启动会自动挂载该目录;
在宿主机建立的传播目录下创建对应新容器目录,例如/lxc_snap/lxcs1111。
S12、当所述待进行备份的容器发起备份时,解析预设的备份配置文件,并根据所述标准挂载传播目录调用所述宿主机的管理脚本;
具体的,备份配置文件是在数据库初始化过程中部署到容器上的,是一个约定好的目录和文件名,例如:如:/home/mysql/back/backup.cfg,当待进行备份的容器发起备份时候就是解析个备份配置文件获得当前的备份策略,然后根据当前的备份策略通过标准挂载传播目录调用宿主机的管理脚本。
S13、通过所述管理脚本建立所述待进行备份的容器的快照,并挂载所述快照至所述标准挂载传播目录;
该管理脚本用于LVM卷管理的脚本,主要功能是提供给备份脚本调用,开始备份时用来创建LVM快照,备份结束时删除LVM快照。
因此,在此技术方案的基础上,还包括:当获取到所述备份数据文件之后,调用所述宿主机的管理脚本删除所述待进行备份的容器的快照。
S14、根据所述标准挂载传播目录中的快照对所述待进行备份的容器对应的数据库进行备份,得到备份数据文件。
当创建快照成功后,会拷贝数据到对应的存储服务器设备上,也就是得到了备份数据文件。
需要说明的是,快照的本质是类似于数据库的照片,这个快照可以理解为一个新的数据库,快照数据库里的数据是不变的,可以通过快照的方式实现文件或者数据的备份。
LVM(Logic Volume Manager,逻辑卷管理)是Linux环境下对磁盘分区进行管理的一种机制,把硬盘空间从物理硬盘的管理方式中跳出来,进行方便统一的管理分配,逻辑卷是由逻辑磁盘形成的虚拟盘。而在对虚拟机的数据进行备份时,需要先创建一个备份快照文档,这个备份快照文档中可以备份逻辑卷管理精简卷的数据,但是由于快照文档是一个非常复杂的文件格式系统,通常无法对其直接进行读写操作,此时需透过应用编程接口使用相应工具将快照文档挂载在宿主机的挂载传播目录,然后通过调用宿主机的相关脚本来操作备份快照文档,实现数据的备份。
通过本发明实施例一公开的技术方案,通过建立宿主机和待进行备份的容器之间的标准挂载传播目录,当待进行备份的容器发起备份时,根据标准挂载传播目录调用宿主机的管理脚本建立容器快照,并挂载所述快照至所述标准挂载传播目录,对待备份容器对应的数据库进行备份。由于通过标准的挂载传播目录可以调用宿主机的管理脚本来创建容器快照,实现了在容器内部进行了快照备份,由于容器的快照备份能够对备份内容能够以照片的形式快速备份,解决了现有技术中采用逻辑备份时的效率较低的问题。
实施例二
与本发明实施例一公开的数据库备份方法相对应,本发明的实施例二还提供了一种数据库备份装置,参见图2,该装置可以包括:
建立模块1,用于建立宿主机和待进行备份的容器之间的标准挂载传播目录;
解析模块2,用于当所述待进行备份的容器发起备份时,解析预设的备份配置文件,并根据所述标准挂载传播目录调用所述宿主机的管理脚本;
挂载模块3,用于通过所述管理脚本建立所述待进行备份的容器的快照,并挂载所述快照至所述标准挂载传播目录;
备份模块4,用于根据所述标准挂载传播目录中的快照对所述待进行备份的容器对应的数据库进行备份,得到备份数据文件。
对应的,还包括:
全局锁创建模块,用于当所述待进行备份的容器连接与其对应的数据库时,建立所述数据库的全局锁。
删除模块,用于当获取到所述备份数据文件之后,调用所述宿主机的管理脚本删除所述待进行备份的容器的快照。
加密模块,用于对所述待进行备份的容器的快照进行加密处理生成快照密钥,通过所述快照密钥对所述待进行备份的容器的快照进行访问。
具体的,所述建立模块包括:
建立单元,用于建立所述宿主机的标准目录;
配置单元,用于生成容器配置文件,并将所述待进行备份的容器目录配置到所述配置文件中;
生成单元,用于根据所述配置文件,在所述标准目录下创建所述待进行备份的容器的子目录,生成所述标准挂载传播目录。
在本发明的实施例二中,通过建立宿主机和待进行备份的容器之间的标准挂载传播目录,当待进行备份的容器发起备份时,根据标准挂载传播目录调用宿主机的管理脚本建立容器快照,并挂载所述快照至所述标准挂载传播目录,对待备份容器对应的数据库进行备份。由于通过标准的挂载传播目录可以调用宿主机的管理脚本来创建容器快照,实现了在容器内部进行了快照备份,由于容器的快照备份能够对备份内容能够以照片的形式快速备份,解决了现有技术中采用逻辑备份时的效率较低的问题。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据库备份方法,其特征在于,包括:
建立宿主机和待进行备份的容器之间的标准挂载传播目录,所述容器指Linux容器,所述标准挂载传播目录为宿主机装机完成后调用自动化脚本按预先规定命名方法创建的目录;
当所述待进行备份的容器发起备份时,解析预设的备份配置文件,并根据所述标准挂载传播目录调用所述宿主机的管理脚本;
通过所述管理脚本建立所述待进行备份的容器的快照,并挂载所述快照至所述标准挂载传播目录;
根据所述标准挂载传播目录中的快照对所述待进行备份的容器对应的数据库进行备份,得到备份数据文件。
2.根据权利要求1所述的方法,其特征在于,还包括:
当所述待进行备份的容器连接与其对应的数据库时,建立所述数据库的全局锁。
3.根据权利要求1所述的方法,其特征在于,还包括:
当获取到所述备份数据文件之后,调用所述宿主机的管理脚本删除所述待进行备份的容器的快照。
4.根据权利要求1所述的方法,其特征在于,还包括:
对所述待进行备份的容器的快照进行加密处理生成快照密钥,通过所述快照密钥对所述待进行备份的容器的快照进行访问。
5.根据权利要求1所述的方法,其特征在于,所述建立宿主机和待进行备份的容器之间的标准挂载传播目录,包括:
建立所述宿主机的标准目录;
生成容器配置文件,并将所述待进行备份的容器目录配置到所述配置文件中;
根据所述配置文件,在所述标准目录下创建所述待进行备份的容器的子目录,生成所述标准挂载传播目录。
6.一种数据库备份装置,其特征在于,包括:
建立模块,用于建立宿主机和待进行备份的容器之间的标准挂载传播目录,所述容器指Linux容器,所述标准挂载传播目录为宿主机装机完成后调用自动化脚本按预先规定命名方法创建的目录;
解析模块,用于当所述待进行备份的容器发起备份时,解析预设的备份配置文件,并根据所述标准挂载传播目录调用所述宿主机的管理脚本;
挂载模块,用于通过所述管理脚本建立所述待进行备份的容器的快照,并挂载所述快照至所述标准挂载传播目录;
备份模块,用于根据所述标准挂载传播目录中的快照对所述待进行备份的容器对应的数据库进行备份,得到备份数据文件。
7.根据权利要求6所述的装置,其特征在于,还包括:
全局锁创建模块,用于当所述待进行备份的容器连接与其对应的数据库时,建立所述数据库的全局锁。
8.根据权利要求6所述的装置,其特征在于,还包括:
删除模块,用于当获取到所述备份数据文件之后,调用所述宿主机的管理脚本删除所述待进行备份的容器的快照。
9.根据权利要求6所述的装置,其特征在于,还包括:
加密模块,用于对所述待进行备份的容器的快照进行加密处理生成快照密钥,通过所述快照密钥对所述待进行备份的容器的快照进行访问。
10.根据权利要求6所述的装置,其特征在于,所述建立模块包括:
建立单元,用于建立所述宿主机的标准目录;
配置单元,用于生成容器配置文件,并将所述待进行备份的容器目录配置到所述配置文件中;
生成单元,用于根据所述配置文件,在所述标准目录下创建所述待进行备份的容器的子目录,生成所述标准挂载传播目录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711382061.9A CN108089948B (zh) | 2017-12-20 | 2017-12-20 | 一种数据库备份方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711382061.9A CN108089948B (zh) | 2017-12-20 | 2017-12-20 | 一种数据库备份方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108089948A CN108089948A (zh) | 2018-05-29 |
CN108089948B true CN108089948B (zh) | 2021-02-02 |
Family
ID=62177429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711382061.9A Active CN108089948B (zh) | 2017-12-20 | 2017-12-20 | 一种数据库备份方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108089948B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408289A (zh) * | 2018-10-16 | 2019-03-01 | 国网山东省电力公司信息通信公司 | 一种云容灾数据处理方法 |
CN110543627B (zh) * | 2019-09-10 | 2023-08-11 | 北京搜狐新媒体信息技术有限公司 | 一种报表配置信息的存储方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156369A (zh) * | 2013-05-14 | 2014-11-19 | 上海盛大网络发展有限公司 | 一种数据库镜像制作方法和一种数据库 |
CN105323282A (zh) * | 2014-07-28 | 2016-02-10 | 神州数码信息系统有限公司 | 一种面向多租户的企业应用部署与管理系统 |
CN105511943A (zh) * | 2015-12-03 | 2016-04-20 | 华为技术有限公司 | 一种Docker容器运行方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9239763B2 (en) * | 2012-09-28 | 2016-01-19 | Oracle International Corporation | Container database |
-
2017
- 2017-12-20 CN CN201711382061.9A patent/CN108089948B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156369A (zh) * | 2013-05-14 | 2014-11-19 | 上海盛大网络发展有限公司 | 一种数据库镜像制作方法和一种数据库 |
CN105323282A (zh) * | 2014-07-28 | 2016-02-10 | 神州数码信息系统有限公司 | 一种面向多租户的企业应用部署与管理系统 |
CN105511943A (zh) * | 2015-12-03 | 2016-04-20 | 华为技术有限公司 | 一种Docker容器运行方法和装置 |
Non-Patent Citations (2)
Title |
---|
"Using Lightweight Transactions and Snapshots for Fault-Tolerant Services Based on Shared Storage Bricks";Michail D. Flouris 等;《2006 IEEE International Conference on Cluster Computing》;20070220;第1-10页 * |
"基于SAN的数据备份系统的研究";沈豪;《中国优秀硕士学位论文全文数据库 信息科技辑》;20060715(第07期);第I138-23页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108089948A (zh) | 2018-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10791025B2 (en) | Migration of an existing computing system to new hardware | |
US9460147B1 (en) | Partition-based index management in hadoop-like data stores | |
US9477683B2 (en) | Techniques for enabling coarse-grained volume snapshots for virtual machine backup and restore | |
CN107992355B (zh) | 一种部署应用软件的方法、装置及虚拟机 | |
US9389791B2 (en) | Enhanced software application platform | |
US20160308722A1 (en) | Migration of existing computing systems to cloud computing sites or virtual machines | |
US20150381723A1 (en) | Information management of virtual machines having mapped storage devices | |
US20150363181A1 (en) | Software deployment in a distributed virtual machine environment | |
US9965361B2 (en) | Avoiding inode number conflict during metadata restoration | |
US10061665B2 (en) | Preserving management services with self-contained metadata through the disaster recovery life cycle | |
CN103714287A (zh) | 一种获取临时Root权限的方法及装置 | |
CN105320578A (zh) | 一种备份和恢复app的方法及装置 | |
CN111684437B (zh) | 按时间顺序排序的错位更新键-值存储系统 | |
CN108089948B (zh) | 一种数据库备份方法及装置 | |
US20200192744A1 (en) | Fast recovery from failures in a chronologically ordered log-structured key-value storage system | |
US9805038B2 (en) | Efficient conflict resolution among stateless processes | |
US20170364347A1 (en) | Selectively migrating applications during an operating system upgrade | |
US10552404B2 (en) | Retrospective snapshots in log-structured storage systems | |
US11677640B2 (en) | Cloud launch wizard | |
US11461181B2 (en) | Methods and systems for protecting multitenant databases in networked storage systems | |
US10884621B2 (en) | Block volume mount synchronization to prevent data corruption | |
US20170364353A1 (en) | Segregating a monolithic computing system into multiple attachable application containers based on application boundaries | |
US20220214946A1 (en) | Provider-agnostic management of backup data stored on a cloud-based object storage | |
CN117454429A (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 |