CN107391306A - 一种异构数据库备份文件恢复方法 - Google Patents
一种异构数据库备份文件恢复方法 Download PDFInfo
- Publication number
- CN107391306A CN107391306A CN201710622124.7A CN201710622124A CN107391306A CN 107391306 A CN107391306 A CN 107391306A CN 201710622124 A CN201710622124 A CN 201710622124A CN 107391306 A CN107391306 A CN 107391306A
- Authority
- CN
- China
- Prior art keywords
- data
- backup
- database
- field
- file
- 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
Links
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/1469—Backup restoration techniques
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
本发明公开了一种异构数据库备份文件恢复方法,包括:对异构源数据库中数据归一转化;采用K‑medoids聚类的DELTA压缩算法,对数据块进行聚类预处理,将相似度较高的数据块分为一类;利用DELTA压缩算法对同一类数据块进行压缩;基于“SQL重现法”对数据还原,根据配置文件读取还原端数据库版本,根据转化规则将元数据模型转化为对应版本数据库支持的SQL语句,进行数据一致性检测后导入数据库,实现异构数据库的稳定备份与恢复功能。本发明通过映射规则的扩充可支持多种源数据库,实现异构数据库的备份,并支持高效率的文件压缩,降低备份成本。
Description
技术领域
本发明涉及一种异构数据库备份文件恢复方法,属于技术领域。
背景技术
近年来,随着信息技术的发展,信息管理***得到大大普及。它们以快速、高效、便捷的特点变成了信息发布、信息交易的平台,并进一步推动整个社会的数字化和信息化进程,各式各样的信息化***构建了当今的“信息化世界”。
各行各业的发展离不开“数据”:产品数据、客户数据、财务数据等等,企业的生存发展越来越依赖IT***。由于电脑病毒、网络入侵、物理损伤、人工操作失误等原因对信息数据造成大规模破坏,不但使信息***无法提供正常服务,对于一些关系经济利益的行业如银行、电力以及通信等领域还会造成巨大的经济损失。通过数据备份手段对数据进行保护,确保在故障发生后能够迅速的恢复本地数据。
数据库备份研究属于需求驱动型领域,在这方面各大公司较早开始相关研究,有些备份技术已经在各类应用环境下使用相当长时间。国外对备份软件的研究开始于20世纪80年代中期,到目前为止成熟的商用备份产品包括:EMC公司的Tivoli、BakBone公司的NetVault、CA公司的BrightStor等。
中山大学软件研究所与广州威腾网络科技有限公司联合开发NetBunker2用于Linux备份服务器的网络备份恢复。中山同向公司的HeartOne Backup Enterprise提供分布式备份,实现智能备份恢复,简化服务器和网络存储环境。
在开源领域,备份软件蓬勃发展,出现一大批优秀的开源备份软件,其中比较有名的包括Amanda、Bacula、BackupPC、Restore、Burt等。开源软件虽然技术公开但功能仅能支持一些备份中最基本工作,不适用商业场景。因此还有必要对一些商用功能进行理论研究。
随着企业的逐步发展,企业数据具有数量大、来源广、种类多、结构复杂等特点。企业积累了大量的业务数据,这些数据对企业的正常运营具有十分重要的意义,由于各个阶段使用的数据库***不同,如何对异构数据进行备份成为数据备份领域一个关键问题。尽管一些大型数据库如Oracle以及SQL Server本身已经提供了数据库备份还原工具,但这些工具仅支持单一数据库备份,无法解决数据库备份过程的异构问题。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种异构数据库备份文件恢复方法,解决现有技术中异构数据无法有效备份恢复的技术问题。
为解决上述技术问题,本发明所采用的技术方案是:一种异构数据库备份文件恢复方法,包括以下步骤:
(1)对异构源数据库中数据归一转化;
(2)对数据块进行聚类预处理,利用DELTA压缩算法对同一类数据块进行压缩,生成对应的二进制存储文件,并将压缩后的备份文件备份到备份介质中;
(3)采用“SQL重现法”对备份文件中元数据进行还原,根据配置文件读取还原端数据库版本;
(4)根据转化规则将元数据模型转化为对应版本数据库支持的SQL语句,进行数据一致性检测后导入数据库,实现异构数据库备份文件恢复。
步骤(1)的具体方法如下:
101、加载驱动程序:将驱动程序导入开发环境,通过Class.forName()函数对驱动程序进行加载;
102、创建连接:加载完驱动程序后,通过DriverManage的getConnect()函数创建数据库连接对象,连接对象包含:协议名、IP地址、端口号、数据库名称;
103、创建Statement对象:通过Connection的create Statement()函数创建Statement对象;
104、执行SQL语句:当SQL语句产生单个结果集时,使用executeQuery();当无返回结果时,使用executeUpdate();当返回多个结果集时,使用execute();
105、获取结果:当执行statement的execute()和executeQuery()时返回的结果是ResultSet对象,并通过指向该对象的指针使用next()函数获取返回结果中的数据;
106、根据数据库类型加载转化规则,通过excData()函数将异构数据转化为统一标准的元数据,元数据中各元素包含关键的字段标识符,用于数据恢复时检查数据的一致性,备份过程中如果对元数据进行更改则设置标识符为1;
107、通过wrtData()函数将所得数据按照XML格式写入文件,生成对应的备份文件;
108、关闭连接:若不再使用数据库时,用close()方法关闭数据库连接。
所述元数据为数据模型的最小单元,元数据结构表达式如式(1)所示:
M=CS+SS (1)
其中:CS为内容结构,定义元数据的构成元素以及元素内容进行,SS为句法结构,定义元数据格式结构以及具体描述方法;
内容结构表达式如式(2)所示:
CS=(T,Z,S,F) (2)
T表示源表,为多源数据库的表结构,存储待备份数据的表结构信息,包含:源表序号、源表名、标识符、字段数目、字段名以及字段类型信息;
Z表示字段,为多源数据库的数据值,存储表中字段的具体数值,包括:字段序号、字段名、字段类型、字段值、表名以及标识符;
S表示预定集,为备份的基本单位,包括预定集编号、源服务器、目标服务器、开始时间、结束时间、备份序号、源表序号以及字段序号;用于定义备份对象,将备份过程细分为各个单元,当一个备份任务发生中断时,从中断位置继续备份任务;
F表示约束,约束元素描述表中字段约束信息,用于记录表中特殊列信息,包括表名、约束序号、主键列名、外键列名、索引列名以及标识符。
所述特殊列信息单独记录从而对表结构进行完整性描述。
步骤(2)的具体方法如下:
201、对待压缩文件进行切分,采用1M文件大小作为划分单位,对划分的文件块两两之间进行DELTA压缩,DELTA压缩后的文件大小存储在临时矩阵arr_delta[N][N],将其作为数据块之间的相似度;
202、以相似度矩阵中所保存的相似度信息作为聚类依据,通过K-medoids聚类算法对数据块进行聚类;
203、采用内容无关方法从文件中选取特征集,根据可分配内存的大小,确定产生中间指纹数量与文件大小;
204、设定一个滑动窗口的大小,不断向前移动滑动窗口,计算移动窗口下的数据指纹,采用Hash函数映射成超级特征或超级指纹集;
205、若超级指纹相匹配,则在特征数据库中搜索一个与它相似度最高的参考文件,找到该参考文件后,根据压缩函数D进行压缩;
206、通过压缩函数D对有序符号串进行编码,利用ADD编码命令,其命令格式为(ADD,L,S),表示在V中的指定位置添加长度为L的字符串S;COPY编码命令,其命令格式为(COPY,L,O),表示从R中复制长度为L,偏移量为O的字符串到V中的指定位置;
207、将压缩后的数据块重新合并为备份文件。
利用DELTA压缩算法对同一类数据块进行压缩的具体方法为:
对备份文件进行分块,数据块集合记为S={S1,S2,S3…Sn},对集合S中的数据对象进行聚类,将数据块分为K类C'={C1',C2',C3'…Ck'},两个相似数据块之间的相似度表示为二者的DELTA距离,即:
dist(Si,Sj)=delta(Si,Sj) (3)
在S中任意选择K个数据块作为簇的中心点,分别用{m1,m2,m3…mk}表示,代表剩余数据块的点分配给距它最近的簇中,获得聚类簇C={C1,C2,C3…Ck};
对每一个簇Ci,i∈{1,2,3…k},遍历簇中的第j个非中心点对象Sj,用公式(4)计算簇中每个数据块Sj与其余数据块Sk的总代价,
选择簇内最小的总代价点作为新簇的中心点,迭代以上步骤,直到各个簇的中心点不再变化,最终获得的K个簇C'={C1',C2',C3'…Ck'}。
步骤(3)的具体方法如下:
301、读取恢复端数据库类型及版本号,根据数据库版本加载相应映射规则;
302、根据恢复任务信息读取相应任务的预定集序号,根据预定集序号查找待恢复源表序号、约束序号以及字段序号;
303、根据源表序号以及约束序号查找元数据中对应源表元素与约束元素,检查对应标识符内容:如果标识符为1,则执行步骤304,否则执行步骤305;
304、获取源表与依赖具体信息,包括:表名、表中字段名、字段类型、主键、外键以及索引,获取完成后生成对应SQL语句并存储到.sql文件中,文件生成结束后将标识符设置为0;
305、据字段序号获取对应字段元素,并检查对应标识符内容,如果标识符为1则执行步骤306,否则执行步骤307;
306、获取字段具体信息,包括:字段名、字段类型、字段值、字段对应源表名,根据获取信息生成对应INSERT语句实现数据添加,并将这些内容存储到.sql文件中,文件生成结束后将标识符设置为0;
307、调用控制命令,通过执行.sql文件将数据恢复到数据库。
采用“SQL重现法”对备份文件中元数据进行还原时首先检查元数据文件中标识符的值:
若标识符为1,则表示该数据未被恢复过,再逆向使用语法映射规则将备份文件中内容转化为SQL语句;
若标识符为0,则表示该内容在之前的恢复任务中已经被恢复到数据库中,无需再进行转化恢复。
与现有技术相比,本发明所达到的有益效果是:
本发明设计一种通用的元数据模型,并定义当前主流数据库Oracle、Mysql以及PostgreSql中数据与此模型之间的映射规则,将数据归一化为元数据后存储到XML文件中;
提出一种改进的DELTA压缩算法,对备份文件进行重复数据删除,降低备份成本;
能够克服企业内部异构数据库带来的“信息孤岛”问题,提供面向企业需求的一致性备份框架,同时还能够提升备份介质利用率,降低备份成本;
对于恢复任务根据数据库配置将元数据恢复成指定版本数据库支持的SQL语句,通过执行SQL语句方式将数据导入数据库实现恢复,在恢复时根据源数据模型中修改标记对数据进行选择性恢复,保证数据一致性。
附图说明
图1是备份***层次结构示意图;
图2是本发明的流程图;
图3是异构数据抽取流程图;
图4是基于K-medoids聚类数据压缩流程图;
图5是数据恢复流程图。
具体实施方式
本发明提供一种异构数据库备份文件恢复方法,包括:设计一种元数据模型,对异构源数据库中数据归一转化,通过XML文件存储元数据模型;提出基于K-medoids聚类的DELTA压缩算法,先对数据块进行聚类预处理,将相似度较高的数据块分为一类。利用DELTA压缩算法对同一类数据块进行压缩;基于“SQL重现法”对数据还原,根据配置文件读取还原端数据库版本,根据转化规则将元数据模型转化为对应版本数据库支持的SQL语句,进行数据一致性检测后导入数据库,实现异构数据库的稳定备份与恢复功能。
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
备份***包括三个功能:数据抽取、数据处理以及数据恢复。数据抽取通过元数据模型实现对不同数据库数据类型进行统一描述,根据备份任务对源数据进行抽取并存储到备份文件中。数据处理利用压缩算法对备份文件中重复内容进行压缩,生成对应的二进制存储文件,并将压缩后备份文件备份到备份介质中。数据恢复基于SQL重现法将备份文件中元数据进行转换,生成能够被各版本数据库所执行的.sql文件,最终将数据导入数据库***实现数据恢复。
如图1所示,是备份***层次结构示意图,分为三层结构,分别为公共连接层、业务层以及应用层。
(1)公共连接层
公共连接层位于***最底层,负责数据库连接功能的实现,向业务层提供数据库连接和查询服务,对于安全级别较高数据库进行备份时还提供加密解密,保证与异构数据源之间建立的可靠连接。主要通过JDBC技术实现与不同数据库建立连接。
(2)业务层
业务层实现***核心功能,数据库备份恢复的各个组成环节的实现都在这一层。数据转换实现元数据与数据库数据相互映射,通过映射规则屏蔽异构数据库数据格式、约束规则以及SQL语法的差异,这是异构数据库备份一个难点。
数据压缩功能使用基于K-medoids聚类的DELTA压缩算法,在最基本的DELTA压缩算法基础上效率提升一倍,可将备份文件压缩为原来的四分之一左右,可在实现增加备份速度的同时减少备份成本。
一致性检测功能是为数据可靠性进行保护,保证恢复任务执行后数据库中内容与备份时内容相同。
它们之间在功能流程上存在相互依赖关系。备份任务阶段首先进行数据转化,再将转化后文件进行数据压缩存储到备份介质中。恢复阶段通过数据压缩的恢复技术将压缩文件还原为数据文件,通过检查数据中标识符确定恢复数据内容,再通过转化规则转化为SQL语句导入数据库。
(3)应用层
应用层利用业务层和公共连接层提供的服务解决实际问题,主要包括用户定制的备份恢复任务或者备份恢复计划。该层基于QT进行界面设计,保证整体***的移植性以及***的扩展性。
如图2~5所示,是本发明提供的异构数据库备份文件恢复方法,具体包括以下步骤:
(1)对异构源数据库中数据归一转化,具体方法如下:
101、加载驱动程序:将驱动程序导入开发环境,通过Class.forName()函数对驱动程序进行加载;
102、创建连接:加载完驱动程序后,通过DriverManage的getConnect()函数创建数据库连接对象,例如Connect connect=DriverManager.getConnection(“url”,“UserName”,“PassWord”)。虽然不同数据库的url具有不同格式,但其中应包含协议名、IP地址、端口号、数据库名称等信息。UserName和PassWord为连接到数据库管理***的用户名和密码;
103、创建Statement对象:通过Connection的create Statement()函数创建Statement对象;Statement类主要用来执行SQL语句以获取执行后生成的结果;
104、执行SQL语句:Statement执行SQL语句的方法主要有executeQuery()、executeUpdate()、以及execute()三种。当SQL语句产生单个结果集时使用executeQuery(),当无返回结果时使用executeUpdate(),当返回多个结果集时使用execute();
105、获取结果:当执行statement的execute()和executeQuery()时返回的结果是ResultSet对象,并通过指向该对象的指针使用next()函数获取返回结果中的数据;
106、根据数据库类型加载转化规则,通过excData()函数将异构数据转化为统一标准的元数据,元数据中各元素包含关键的字段标识符,用于数据恢复时检查数据的一致性,备份过程中如果对元数据进行更改则设置标识符为1;
107、通过wrtData()函数将所得数据按照XML格式写入文件,生成对应的备份文件;
108、关闭连接:为了不造成资源浪费,当不再使用数据库时,用close()方法关闭数据库连接。
各异构数据库数据格式与元数据格式存在一定差异,目前主流数据库数据格式在功能语法强大的同时数据类型主键丰富,如Oracle的基本字符类型就包括CHAR、VARCHAR2、NCHAR以及NVARCHAR2等。同时对于不同数据库***,存在无法支持不同数据类型的情况,因此设定映射规则进行转化。数据映射规则也称为元数据字典,是对异构数据进行归一化的基础。映射规则的设计基于异构源数据库中的数据类型,参照数据类型所要表达的含义可将其分为字符型、实数型、整数型以及字节型。具体映射关系如表1所示。
表1数据类型映射规则
元数据为数据模型的最小单元,元数据结构表达式如式(1)所示:
M=CS+SS (1)
其中:CS(Content Structure)为内容结构,定义元数据的构成元素以及元素内容进行,SS(Syntax Structure)为句法结构,定义元数据格式结构以及具体描述方法;
内容结构表达式如式(2)所示:
CS=(T,Z,S,F) (2)
源表(T):该元素表示多源数据库的表结构,存储待备份数据的表结构信息,包含源表序号、源表名、标识符、字段数目、字段名以及字段类型信息。
字段(Z):该元素表示多源数据库的数据值,存储表中字段的具体数值。包括字段序号、字段名、字段类型、字段值、表名以及标识符。
预定集(S):定义备份对象将备份过程细分为各个单元,当一个备份任务发生中断时可以从中断位置继续备份任务。这样的机制既节约了时间提高备份效率,也有助于保证备份结果一致性,防止已经备份过的数据被重复备份导致数据冗余。预定集被定义为备份的基本单位,包含要备份的对象。预定集成员包括预定集编号、源服务器、目标服务器、开始时间、结束时间、备份序号、源表序号以及字段序号。
约束(F):约束元素描述表中字段约束信息,用于记录表中特殊列信息。包括表名、约束序号、主键列名、外键列名、索引列名以及标识符。特殊列信息由于其特殊功能必须进行单独记录从而对表结构进行完整性描述。
T表示源表,为多源数据库的表结构,存储待备份数据的表结构信息,包含:源表序号、源表名、标识符、字段数目、字段名以及字段类型信息;
Z表示字段,为多源数据库的数据值,存储表中字段的具体数值,包括:字段序号、字段名、字段类型、字段值、表名以及标识符;
S表示预定集,为备份的基本单位,包括预定集编号、源服务器、目标服务器、开始时间、结束时间、备份序号、源表序号以及字段序号;用于定义备份对象,将备份过程细分为各个单元,当一个备份任务发生中断时,从中断位置继续备份任务;
F表示约束,约束元素描述表中字段约束信息,用于记录表中特殊列信息,包括表名、约束序号、主键列名、外键列名、索引列名以及标识符。
(2)对数据块进行聚类预处理,利用DELTA压缩算法对同一类数据块进行压缩,生成对应的二进制存储文件,并将压缩后的备份文件备份到备份介质中,具体方法如下:
201、对待压缩文件进行切分,采用1M文件大小作为划分单位,对划分的文件块两两之间进行DELTA压缩,DELTA压缩后的文件大小存储在临时矩阵arr_delta[N][N],将其作为数据块之间的相似度;
202、以相似度矩阵中所保存的相似度信息作为聚类依据,通过K-medoids聚类算法对数据块进行聚类,聚类结果保证同一类中数据块之间相似度较高;
203、采用内容无关方法从文件中选取特征集,根据可分配内存的大小,确定产生中间指纹数量与文件大小;
204、设定一个滑动窗口的大小,不断向前移动滑动窗口,计算移动窗口下的数据指纹。为了提高检索速度,降低查找时间,采用Hash函数映射成超级特征或超级指纹集;
205、若超级指纹相匹配,则两个文件的相似度较大。在特征数据库中搜索一个与它高度相似的参考文件,找到该参考文件后,根据压缩函数D进行压缩;
206、通过压缩函数D对有序符号串进行编码,利用ADD编码命令,其命令格式为(ADD,L,S),表示在V中的指定位置添加长度为L的字符串S;COPY编码命令,其命令格式为(COPY,L,O),表示从R中复制长度为L,偏移量为O的字符串到V中的指定位置;
207、将压缩后的数据块重新合并为备份文件。
利用DELTA压缩算法对同一类数据块进行压缩的具体方法为:
对备份文件进行分块,数据块集合记为S={S1,S2,S3…Sn},对集合S中的数据对象进行聚类,将数据块分为K类C'={C1',C2',C3'…Ck'},两个相似数据块之间的相似度表示为二者的DELTA距离,即:
dist(Si,Sj)=delta(Si,Sj) (3)
在S中任意选择K个数据块作为簇的中心点,分别用{m1,m2,m3…mk}表示,代表剩余数据块的点分配给距它最近的簇中,获得聚类簇C={C1,C2,C3…Ck};
对每一个簇Ci,i∈{1,2,3…k},遍历簇中的第j个非中心点对象Sj,用公式(4)计算簇中每个数据块Sj与其余数据块Sk的总代价,
选择簇内最小的总代价点作为新簇的中心点,迭代以上步骤,直到各个簇的中心点不再变化,最终获得的K个簇C'={C1',C2',C3'…Ck'}。
(3)采用“SQL重现法”对备份文件中元数据进行还原,根据配置文件读取还原端数据库版本;逆向使用转化规则将元数据信息还原为数据库能够识别的SQL语句并生成相应的.sql文件。具体方法如下:
301、读取恢复端数据库类型及版本号,根据数据库版本加载相应映射规则;
302、根据恢复任务信息读取相应任务的预定集序号,根据预定集序号查找待恢复源表序号、约束序号以及字段序号;
303、根据源表序号以及约束序号查找元数据中对应源表元素与约束元素,检查对应标识符内容:如果标识符为1,则执行步骤304,否则执行步骤305;
304、获取源表与依赖具体信息,包括:表名、表中字段名、字段类型、主键、外键以及索引,获取完成后生成对应SQL语句并存储到.sql文件中,文件生成结束后将标识符设置为0;
305、据字段序号获取对应字段元素,并检查对应标识符内容,如果标识符为1则执行步骤306,否则执行步骤307;
306、获取字段具体信息,包括:字段名、字段类型、字段值、字段对应源表名,根据获取信息生成对应INSERT语句实现数据添加,并将这些内容存储到.sql文件中,文件生成结束后将标识符设置为0;
307、调用控制命令,通过执行.sql文件将数据恢复到数据库。
(4)根据转化规则将元数据模型转化为对应版本数据库支持的SQL语句,进行数据一致性检测后导入数据库,实现异构数据库备份文件恢复。
采用“SQL重现法”对备份文件中元数据进行还原时首先检查元数据文件中标识符的值:
若标识符为1,则表示该数据未被恢复过,再逆向使用语法映射规则将备份文件中内容转化为SQL语句;
若标识符为0,则表示该内容在之前的恢复任务中已经被恢复到数据库中,无需再进行转化恢复。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (8)
1.一种异构数据库备份文件恢复方法,其特征在于,包括以下步骤:
(1)对异构源数据库中数据归一转化;
(2)对数据块进行聚类预处理,利用DELTA压缩算法对同一类数据块进行压缩,生成对应的二进制存储文件,并将压缩后的备份文件备份到备份介质中;
(3)采用“SQL重现法”对备份文件中元数据进行还原,根据配置文件读取还原端数据库版本;
(4)根据转化规则将元数据模型转化为对应版本数据库支持的SQL语句,进行数据一致性检测后导入数据库,实现异构数据库备份文件恢复。
2.根据权利要求1所述的异构数据库备份文件恢复方法,其特征在于,步骤(1)的具体方法如下:
101、加载驱动程序:将驱动程序导入开发环境,通过Class.forName()函数对驱动程序进行加载;
102、创建连接:加载完驱动程序后,通过DriverManage的getConnect()函数创建数据库连接对象,连接对象包含:协议名、IP地址、端口号、数据库名称;
103、创建Statement对象:通过Connection的create Statement()函数创建Statement对象;
104、执行SQL语句:当SQL语句产生单个结果集时,使用executeQuery();当无返回结果时,使用executeUpdate();当返回多个结果集时,使用execute();
105、获取结果:当执行statement的execute()和executeQuery()时返回的结果是ResultSet对象,并通过指向该对象的指针使用next()函数获取返回结果中的数据;
106、根据数据库类型加载转化规则,通过excData()函数将异构数据转化为统一标准的元数据,元数据中各元素包含关键的字段标识符,用于数据恢复时检查数据的一致性,备份过程中如果对元数据进行更改则设置标识符为1;
107、通过wrtData()函数将所得数据按照XML格式写入文件,生成对应的备份文件;
108、关闭连接:若不再使用数据库时,用close()方法关闭数据库连接。
3.根据权利要求1所述的异构数据库备份文件恢复方法,其特征在于,所述元数据为数据模型的最小单元,元数据结构表达式如式(1)所示:
M=CS+SS (1)
其中:CS为内容结构,定义元数据的构成元素以及元素内容进行,SS为句法结构,定义元数据格式结构以及具体描述方法;
内容结构表达式如式(2)所示:
CS=(T,Z,S,F) (2)
T表示源表,为多源数据库的表结构,存储待备份数据的表结构信息,包含:源表序号、源表名、标识符、字段数目、字段名以及字段类型信息;
Z表示字段,为多源数据库的数据值,存储表中字段的具体数值,包括:字段序号、字段名、字段类型、字段值、表名以及标识符;
S表示预定集,为备份的基本单位,包括预定集编号、源服务器、目标服务器、开始时间、结束时间、备份序号、源表序号以及字段序号;用于定义备份对象,将备份过程细分为各个单元,当一个备份任务发生中断时,从中断位置继续备份任务;
F表示约束,约束元素描述表中字段约束信息,用于记录表中特殊列信息,包括表名、约束序号、主键列名、外键列名、索引列名以及标识符。
4.根据权利要求3所述的异构数据库备份文件恢复方法,其特征在于,所述特殊列信息单独记录从而对表结构进行完整性描述。
5.根据权利要求1所述的异构数据库备份文件恢复方法,其特征在于,步骤(2)的具体方法如下:
201、对待压缩文件进行切分,采用1M文件大小作为划分单位,对划分的文件块两两之间进行DELTA压缩,DELTA压缩后的文件大小存储在临时矩阵arr_delta[N][N],将其作为数据块之间的相似度;
202、以相似度矩阵中所保存的相似度信息作为聚类依据,通过K-medoids聚类算法对数据块进行聚类;
203、采用内容无关方法从文件中选取特征集,根据可分配内存的大小,确定产生中间指纹数量与文件大小;
204、设定一个滑动窗口的大小,不断向前移动滑动窗口,计算移动窗口下的数据指纹,采用Hash函数映射成超级特征或超级指纹集;
205、若超级指纹相匹配,则在特征数据库中搜索一个与它相似度最高的参考文件,找到该参考文件后,根据压缩函数D进行压缩;
206、通过压缩函数D对有序符号串进行编码,利用ADD编码命令,其命令格式为(ADD,L,S),表示在V中的指定位置添加长度为L的字符串S;COPY编码命令,其命令格式为(COPY,L,O),表示从R中复制长度为L,偏移量为O的字符串到V中的指定位置;
207、将压缩后的数据块重新合并为备份文件。
6.根据权利要求5所述的异构数据库备份文件恢复方法,其特征在于,利用DELTA压缩算法对同一类数据块进行压缩的具体方法为:
对备份文件进行分块,数据块集合记为S={S1,S2,S3…Sn},对集合S中的数据对象进行聚类,将数据块分为K类C'={C1',C2',C3'…Ck'},两个相似数据块之间的相似度表示为二者的DELTA距离,即:
dist(Si,Sj)=delta(Si,Sj) (3)
在S中任意选择K个数据块作为簇的中心点,分别用{m1,m2,m3…mk}表示,代表剩余数据块的点分配给距它最近的簇中,获得聚类簇C={C1,C2,C3…Ck};
对每一个簇Ci,i∈{1,2,3…k},遍历簇中的第j个非中心点对象Sj,用公式(4)计算簇中每个数据块Sj与其余数据块Sk的总代价,
<mrow>
<mi>cos</mi>
<mi> </mi>
<mi>t</mi>
<mo>=</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<msub>
<mi>l</mi>
<mi>i</mi>
</msub>
</munderover>
<mi>d</mi>
<mi>i</mi>
<mi>s</mi>
<mi>t</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>s</mi>
<mi>j</mi>
</msub>
<mo>,</mo>
<msub>
<mi>s</mi>
<mi>k</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>=</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<msub>
<mi>l</mi>
<mi>i</mi>
</msub>
</munderover>
<mi>d</mi>
<mi>e</mi>
<mi>l</mi>
<mi>t</mi>
<mi>a</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>s</mi>
<mi>j</mi>
</msub>
<mo>,</mo>
<msub>
<mi>s</mi>
<mi>k</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</mrow>
选择簇内最小的总代价点作为新簇的中心点,迭代以上步骤,直到各个簇的中心点不再变化,最终获得的K个簇C'={C1',C2',C3'…Ck'}。
7.根据权利要求1所述的异构数据库备份文件恢复方法,其特征在于,步骤(3)的具体方法如下:
301、读取恢复端数据库类型及版本号,根据数据库版本加载相应映射规则;
302、根据恢复任务信息读取相应任务的预定集序号,根据预定集序号查找待恢复源表序号、约束序号以及字段序号;
303、根据源表序号以及约束序号查找元数据中对应源表元素与约束元素,检查对应标识符内容:如果标识符为1,则执行步骤304,否则执行步骤305;
304、获取源表与依赖具体信息,包括:表名、表中字段名、字段类型、主键、外键以及索引,获取完成后生成对应SQL语句并存储到.sql文件中,文件生成结束后将标识符设置为0;
305、据字段序号获取对应字段元素,并检查对应标识符内容,如果标识符为1则执行步骤306,否则执行步骤307;
306、获取字段具体信息,包括:字段名、字段类型、字段值、字段对应源表名,根据获取信息生成对应INSERT语句实现数据添加,并将这些内容存储到.sql文件中,文件生成结束后将标识符设置为0;
307、调用控制命令,通过执行.sql文件将数据恢复到数据库。
8.根据权利要求1所属的异构数据库本地备份及恢复方法,其特征在于,采用“SQL重现法”对备份文件中元数据进行还原时首先检查元数据文件中标识符的值:
若标识符为1,则表示该数据未被恢复过,再逆向使用语法映射规则将备份文件中内容转化为SQL语句;
若标识符为0,则表示该内容在之前的恢复任务中已经被恢复到数据库中,无需再进行转化恢复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710622124.7A CN107391306B (zh) | 2017-07-27 | 2017-07-27 | 一种异构数据库备份文件恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710622124.7A CN107391306B (zh) | 2017-07-27 | 2017-07-27 | 一种异构数据库备份文件恢复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107391306A true CN107391306A (zh) | 2017-11-24 |
CN107391306B CN107391306B (zh) | 2019-12-10 |
Family
ID=60341216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710622124.7A Active CN107391306B (zh) | 2017-07-27 | 2017-07-27 | 一种异构数据库备份文件恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391306B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165260A (zh) * | 2018-09-25 | 2019-01-08 | 安徽信息工程学院 | 基于oracle数据库链的数据转储方法 |
CN109271463A (zh) * | 2018-11-30 | 2019-01-25 | 四川巧夺天工信息安全智能设备有限公司 | 一种恢复MySQL数据库的innodb压缩数据的方法 |
CN109298976A (zh) * | 2018-10-17 | 2019-02-01 | 成都索贝数码科技股份有限公司 | 一种异构数据库集群备份***及方法 |
CN109614434A (zh) * | 2018-12-14 | 2019-04-12 | 万翼科技有限公司 | 数据导入方法、装置及计算机可读存储介质 |
CN110515764A (zh) * | 2019-07-30 | 2019-11-29 | 国云科技股份有限公司 | 一种云数据库备份和跨云恢复的***及方法 |
CN110928899A (zh) * | 2019-11-29 | 2020-03-27 | 中孚安全技术有限公司 | 一种通用数据库备份方法及*** |
CN111427938A (zh) * | 2020-03-18 | 2020-07-17 | 中国建设银行股份有限公司 | 数据转存的方法和装置 |
CN112347189A (zh) * | 2020-11-05 | 2021-02-09 | 江苏电力信息技术有限公司 | 基于云计算的财务数据一致性失效的发现与恢复方法 |
CN112685223A (zh) * | 2019-10-17 | 2021-04-20 | 伊姆西Ip控股有限责任公司 | 基于文件类型的文件备份 |
CN112882866A (zh) * | 2021-02-24 | 2021-06-01 | 上海泰宇信息技术股份有限公司 | 一种适用于海量文件的备份方法 |
CN113806138A (zh) * | 2021-02-05 | 2021-12-17 | 京东科技控股股份有限公司 | 数据库的备份恢复检测方法、装置及电子设备、存储介质 |
CN114443739A (zh) * | 2022-04-08 | 2022-05-06 | 北京华顺信安科技有限公司 | 一种产品版本号提取方法及装置 |
WO2022206334A1 (zh) * | 2021-03-30 | 2022-10-06 | 华为技术有限公司 | 一种数据压缩方法及装置 |
CN115757461A (zh) * | 2022-11-09 | 2023-03-07 | 北京新数科技有限公司 | 一种银行数据库应用***结果聚类方法 |
CN115994056A (zh) * | 2023-03-24 | 2023-04-21 | 无锡芯享信息科技有限公司 | 一种关系型数据库归档与恢复方法及*** |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1445672A (zh) * | 2002-03-14 | 2003-10-01 | 上海网上乐园信息技术有限公司 | 一种同网异构数据备份***及其实现方法 |
CN102426609A (zh) * | 2011-12-28 | 2012-04-25 | 厦门市美亚柏科信息股份有限公司 | 一种基于MapReduce编程架构的索引生成方法和装置 |
CN103198159A (zh) * | 2013-04-27 | 2013-07-10 | 国家计算机网络与信息安全管理中心 | 一种基于事务重做的异构集群多副本一致性维护方法 |
US8612396B1 (en) * | 2009-03-31 | 2013-12-17 | Amazon Technologies, Inc. | Cloning and recovery of data volumes |
CN103838755A (zh) * | 2012-11-23 | 2014-06-04 | 景幂机械(上海)有限公司 | 数据库的远程异构容灾*** |
CN105160012A (zh) * | 2015-09-23 | 2015-12-16 | 烽火通信科技股份有限公司 | 一种异构数据库的管理方法及*** |
US9304756B1 (en) * | 2005-01-21 | 2016-04-05 | Callwave Communications, Llc | Methods and systems for transferring data over a network |
CN105574187A (zh) * | 2015-12-23 | 2016-05-11 | 武汉达梦数据库有限公司 | 一种异构数据库复制事务一致性保障方法及*** |
CN105868343A (zh) * | 2016-03-28 | 2016-08-17 | 上海携程商务有限公司 | 数据库迁移方法及*** |
-
2017
- 2017-07-27 CN CN201710622124.7A patent/CN107391306B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1445672A (zh) * | 2002-03-14 | 2003-10-01 | 上海网上乐园信息技术有限公司 | 一种同网异构数据备份***及其实现方法 |
US9304756B1 (en) * | 2005-01-21 | 2016-04-05 | Callwave Communications, Llc | Methods and systems for transferring data over a network |
US8612396B1 (en) * | 2009-03-31 | 2013-12-17 | Amazon Technologies, Inc. | Cloning and recovery of data volumes |
CN102426609A (zh) * | 2011-12-28 | 2012-04-25 | 厦门市美亚柏科信息股份有限公司 | 一种基于MapReduce编程架构的索引生成方法和装置 |
CN103838755A (zh) * | 2012-11-23 | 2014-06-04 | 景幂机械(上海)有限公司 | 数据库的远程异构容灾*** |
CN103198159A (zh) * | 2013-04-27 | 2013-07-10 | 国家计算机网络与信息安全管理中心 | 一种基于事务重做的异构集群多副本一致性维护方法 |
CN105160012A (zh) * | 2015-09-23 | 2015-12-16 | 烽火通信科技股份有限公司 | 一种异构数据库的管理方法及*** |
CN105574187A (zh) * | 2015-12-23 | 2016-05-11 | 武汉达梦数据库有限公司 | 一种异构数据库复制事务一致性保障方法及*** |
CN105868343A (zh) * | 2016-03-28 | 2016-08-17 | 上海携程商务有限公司 | 数据库迁移方法及*** |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165260A (zh) * | 2018-09-25 | 2019-01-08 | 安徽信息工程学院 | 基于oracle数据库链的数据转储方法 |
CN109298976A (zh) * | 2018-10-17 | 2019-02-01 | 成都索贝数码科技股份有限公司 | 一种异构数据库集群备份***及方法 |
CN109271463A (zh) * | 2018-11-30 | 2019-01-25 | 四川巧夺天工信息安全智能设备有限公司 | 一种恢复MySQL数据库的innodb压缩数据的方法 |
CN109271463B (zh) * | 2018-11-30 | 2022-06-07 | 四川巧夺天工信息安全智能设备有限公司 | 一种恢复MySQL数据库的innodb压缩数据的方法 |
CN109614434A (zh) * | 2018-12-14 | 2019-04-12 | 万翼科技有限公司 | 数据导入方法、装置及计算机可读存储介质 |
CN110515764A (zh) * | 2019-07-30 | 2019-11-29 | 国云科技股份有限公司 | 一种云数据库备份和跨云恢复的***及方法 |
CN110515764B (zh) * | 2019-07-30 | 2022-12-06 | 国云科技股份有限公司 | 一种云数据库备份和跨云恢复的***及方法 |
CN112685223A (zh) * | 2019-10-17 | 2021-04-20 | 伊姆西Ip控股有限责任公司 | 基于文件类型的文件备份 |
CN110928899A (zh) * | 2019-11-29 | 2020-03-27 | 中孚安全技术有限公司 | 一种通用数据库备份方法及*** |
CN110928899B (zh) * | 2019-11-29 | 2023-06-20 | 中孚安全技术有限公司 | 一种通用数据库备份方法及*** |
CN111427938A (zh) * | 2020-03-18 | 2020-07-17 | 中国建设银行股份有限公司 | 数据转存的方法和装置 |
CN111427938B (zh) * | 2020-03-18 | 2023-08-29 | 中国建设银行股份有限公司 | 数据转存的方法和装置 |
CN112347189A (zh) * | 2020-11-05 | 2021-02-09 | 江苏电力信息技术有限公司 | 基于云计算的财务数据一致性失效的发现与恢复方法 |
CN113806138A (zh) * | 2021-02-05 | 2021-12-17 | 京东科技控股股份有限公司 | 数据库的备份恢复检测方法、装置及电子设备、存储介质 |
CN112882866A (zh) * | 2021-02-24 | 2021-06-01 | 上海泰宇信息技术股份有限公司 | 一种适用于海量文件的备份方法 |
CN112882866B (zh) * | 2021-02-24 | 2023-12-15 | 上海泰宇信息技术股份有限公司 | 一种适用于海量文件的备份方法 |
WO2022206334A1 (zh) * | 2021-03-30 | 2022-10-06 | 华为技术有限公司 | 一种数据压缩方法及装置 |
CN114443739A (zh) * | 2022-04-08 | 2022-05-06 | 北京华顺信安科技有限公司 | 一种产品版本号提取方法及装置 |
CN115757461A (zh) * | 2022-11-09 | 2023-03-07 | 北京新数科技有限公司 | 一种银行数据库应用***结果聚类方法 |
CN115994056A (zh) * | 2023-03-24 | 2023-04-21 | 无锡芯享信息科技有限公司 | 一种关系型数据库归档与恢复方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN107391306B (zh) | 2019-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391306A (zh) | 一种异构数据库备份文件恢复方法 | |
AU2018290745B2 (en) | Systems and methods of database tenant migration | |
CN101814045B (zh) | 一种用于备份服务的数据组织方法 | |
CN104850598B (zh) | 一种实时数据库备份恢复方法 | |
US8631052B1 (en) | Efficient content meta-data collection and trace generation from deduplicated storage | |
US8578109B2 (en) | Systems and methods for retaining and using data block signatures in data protection operations | |
CN103714123B (zh) | 企业云存储分块对象重复数据删除和重组版本控制方法 | |
CN102436408B (zh) | 基于Map/Dedup的数据存储云化和云备份方法 | |
CN106663047A (zh) | 用于优化的签名比较和数据复制的***和方法 | |
CN104932956A (zh) | 一种面向大数据的云容灾备份方法 | |
US8667032B1 (en) | Efficient content meta-data collection and trace generation from deduplicated storage | |
CN104516967A (zh) | 一种电力***海量数据管理***及其使用方法 | |
CN107844388A (zh) | 从备份***流式恢复数据库 | |
CN102222085A (zh) | 一种基于相似性与局部性结合的重复数据删除方法 | |
US9002800B1 (en) | Archive and backup virtualization | |
CN103425762A (zh) | 基于Hadoop平台的电信运营商海量数据处理方法 | |
CN101963982A (zh) | 基于位置敏感哈希的删冗存储***元数据管理方法 | |
Narang | Database management systems | |
CN102890678A (zh) | 一种基于格雷编码的分布式数据布局方法及查询方法 | |
CN104239443A (zh) | 一种序列化数据操作日志的存储方法 | |
CN103916459A (zh) | 一种大数据归档存储*** | |
CN102999637B (zh) | 根据文件特征码为文件自动添加文件标签的方法及*** | |
CN102722450B (zh) | 一种基于位置敏感哈希的删冗块设备存储方法 | |
US9678971B2 (en) | Packing deduplicated data in a self-contained deduplicated repository | |
CN109947743A (zh) | 一种优化的NoSQL大数据存储方法及*** |
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 |