一种数据库备份元数据的迁移方法及装置与流程

专利2022-06-30  55


本发明涉及数据库技术领域。本发明进一步涉及一种数据库备份元数据的迁移方法及装置。



背景技术:

为了保证数据库的数据安全,大多数数据库都会对其中的数据进行备份,其中以oracle(甲骨文,美国软件公司)数据库等为代表的部分数据库会使用例如rman(recoverymanager,恢复管理器)工具对数据库进行物理备份。

在需要数据库恢复时,再使用例如rman工具使用物理备份对数据库进行恢复。使用rman对数据库备份时,会产生一些数据库备份元数据,这些元数据包含了备份的文件、文件名称、文件scn号、生成的备份集名称等信息。在目标数据库进行数据库恢复时需要借助这些信息才能完成数据库的恢复,如果没有这些数据库备份,rman工具在恢复时将不知道如何恢复数据库。

上述这些数据库备份元数据保存在元数据库的控制文件(控制文件是数据库使用的一种二进制文件,存储了数据库的数据文件名称路径、rman数据库备份元数据、部分参数等)中。数据库备份元数据在控制文件中保留的时长可以进行设置,一般会设置为保留7天,也就是控制文件中可以看到7天前的备份元数据。当执行一次备份的时候,新的数据库备份元数据就会写入到控制文件。如果恢复动作发生时,最近一次备份的元数据尚未写入目标数据库的控制文件,那么该控制文件可能是不包含最近一次备份的新的元数据的。在这种情况下,在目标数据库进行恢复就会出现恢复不完整的等问题。

因此,为了解决现有技术中的上述问题,需要提出一种使数据库备份元数据在源数据库和目标数据库的控制文件之间传递的方法,实现数据库备份元数据的迁移,进一步提高数据库的安全性和稳定性。



技术实现要素:

一方面,本发明基于上述目的提出了一种数据库备份元数据的迁移方法,其中该方法包括以下步骤:

对源数据库进行备份,并基于备份所产生的备份信息生成元数据并存入第一控制文件;

响应于接收到元数据导出指令,根据元数据导出指令从第一控制文件中读取元数据以生成元数据文件,并根据元数据导出指令将元数据文件存入源数据库;

将元数据文件从源数据库传输至目标数据库;

响应于接收到元数据导入指令,根据元数据导入指令从目标数据库中获取相应的元数据文件,并根据元数据导入指令将获取的元数据文件中的相应元数据写入目标数据库的第二控制文件。

根据本发明的数据库备份元数据的迁移方法的实施例,其中对源数据库进行备份,并基于备份所产生的备份信息生成元数据并存入第一控制文件进一步包括:

响应于对源数据库进行全备份,基于全备份所产生的备份信息生成元数据并存入第一控制文件;

响应于对源数据库进行增量备份,基于增量备份所产生的备份信息生成元数据并增量地存入第一控制文件。

根据本发明的数据库备份元数据的迁移方法的实施例,其中响应于接收到元数据导出指令,根据元数据导出指令从第一控制文件中读取元数据以生成元数据文件,并根据元数据导出指令将元数据文件存入源数据库进一步包括:

解析元数据导出指令以获取导出参数,导出参数至少包括导出类型、导出路径;

根据导出类型从第一控制文件中读取相应的元数据并生成元数据文件;

将元数据文件按照导出路径存入源数据库。

根据本发明的数据库备份元数据的迁移方法的实施例,其中响应于接收到元数据导出指令,根据元数据导出指令从第一控制文件中读取元数据以生成元数据文件,并根据元数据导出指令将元数据文件存入源数据库进一步包括:

响应于导出类型为全导出,从第一控制文件中读取全部元数据并生成元数据文件。

根据本发明的数据库备份元数据的迁移方法的实施例,其中响应于接收到元数据导出指令,根据元数据导出指令从第一控制文件中读取元数据以生成元数据文件,并根据元数据导出指令将元数据文件存入源数据库进一步包括:

响应于导出类型为部分导出,解析元数据导出指令以进一步获取导出条件;

从第一控制文件中读取符合导出条件的元数据并生成元数据文件。

根据本发明的数据库备份元数据的迁移方法的实施例,其中响应于接收到元数据导入指令,根据元数据导入指令从目标数据库中获取相应的元数据文件,并根据元数据导入指令将获取的元数据文件中的相应元数据写入目标数据库的第二控制文件进一步包括:

解析元数据导入指令以获取导入参数,导入参数至少包括导入路径;

按照导入路径从目标数据库中获取元数据文件;

将获取的元数据文件中的元数据根据获取的元数据文件的导出类型相应地写入目标数据库的第二控制文件。

根据本发明的数据库备份元数据的迁移方法的实施例,其中将获取的元数据文件中的元数据根据获取的元数据文件的导出类型相应地写入目标数据库的第二控制文件进一步包括:

响应于获取的元数据文件的导出类型为全导出,,检查目标数据库的第二控制文件中是否已有元数据;

响应于目标数据库的第二控制文件中没有元数据,将获取的元数据文件中的相应元数据直接写入目标数据库的第二控制文件。

根据本发明的数据库备份元数据的迁移方法的实施例,其中将获取的元数据文件中的元数据根据获取的元数据文件的导出类型相应地写入目标数据库的第二控制文件进一步包括:

响应于目标数据库的第二控制文件中已有元数据,提取获取的元数据文件中与目标数据库的第二控制文件中已有元数据不同的元数据部分;

将不同的元数据部分以增量的方式写入目标数据库的第二控制文件。

根据本发明的数据库备份元数据的迁移方法的实施例,其中将获取的元数据文件中的元数据根据获取的元数据文件的导出类型相应地写入目标数据库的第二控制文件进一步包括:

响应于获取的元数据文件的导出类型为部分导出,提取获取的元数据文件中与目标数据库的第二控制文件中已有元数据不同的元数据部分;

将不同的元数据部分以增量的方式写入目标数据库的第二控制文件。

另一方面,本发明还提出了一种分布式数据存储的装置,其中该装置包括:

备份模块,该备份模块配置为对源数据库进行备份,并基于备份所产生的备份信息生成元数据并存入第一控制文件;

元数据导出模块,该元数据导出模块配置为响应于接收到元数据导出指令,根据元数据导出指令从第一控制文件中读取元数据以生成元数据文件,并根据元数据导出指令将元数据文件存入源数据库;

接口模块,该接口模块配置为将元数据文件从源数据库传输至目标数据库;

元数据导入模块,该元数据导入模块配置为响应于接收到元数据导入指令,根据元数据导入指令从目标数据库中获取相应的元数据文件,并根据元数据导入指令将获取的元数据文件中的相应元数据写入目标数据库的第二控制文件。

采用上述技术方案,本发明至少具有如下有益效果:通过使数据库备份元数据在源数据库和目标数据库的控制文件之间传递的方式实现了数据库备份元数据的迁移,为此设计了元数据导出指令和元数据导入指令,并且基于元数据导出指令有针对性地从控制文件中导出数据库备份元数据、基于元数据导入指令有针对性地将元数据导入控制文件,实现了在不同数据库之间为控制文件传递数据库备份元数据,保证了在目标数据库的恢复源数据库的数据时能够以最新的数据库备份元数据为依据,进一步提高数据库的安全性和稳定性。

本发明提供了实施例的各方面,不应当用于限制本发明的保护范围。根据在此描述的技术可设想到其它实施方式,这对于本领域普通技术人员来说在研究以下附图和具体实施方式后将是显而易见的,并且这些实施方式意图被包含在本申请的范围内。

下面参考附图更详细地解释和描述了本发明的实施例,但它们不应理解为对于本发明的限制。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对现有技术和实施例描述中所需要使用的附图作简单地介绍,附图中的部件不一定按比例绘制,并且可以省略相关的元件,或者在一些情况下比例可能已经被放大,以便强调和清楚地示出本文描述的新颖特征。另外,如本领域中已知的,结构顺序可以被不同地布置。

图1示出了根据本发明的数据库备份元数据的迁移方法的实施例的示意性框图;

图2示出了根据本发明的数据库备份元数据的迁移装置的实施例的示意图;

图3示出了根据本发明的元数据文件的存储格式的实施例的示意图;

图4示出了根据本发明的针对元数据文件的导入过程的实施例的示意图。

具体实施方式

虽然本发明可以以各种形式实施,但是在附图中示出并且在下文中将描述一些示例性和非限制性实施例,但应该理解的是,本公开将被认为是本发明的示例并不意图将本发明限制于所说明的具体实施例。

在下文就本发明的实施例的说明中需要注意的是,其中提到的步骤的编号在没有特殊说明的情况下,仅用于便捷明确地指示该步骤,并不限定所述步骤的顺序。

为了解决现有技术中的上述问题,本发明提出了一种通过使数据库备份元数据在源数据库和目标数据库的控制文件之间传递的方式实现数据库备份元数据的迁移的方法。图1示出了根据本发明的数据库备份元数据的迁移方法的实施例的示意性框图。在如图1所示的实施例中,该方法至少包括以下步骤:

s1:对源数据库进行备份,并基于备份所产生的备份信息生成元数据并存入第一控制文件;

s2:响应于接收到元数据导出指令,根据元数据导出指令从第一控制文件中读取元数据以生成元数据文件,并根据元数据导出指令将元数据文件存入源数据库;

s3:将元数据文件从源数据库传输至目标数据库;

s4:响应于接收到元数据导入指令,根据元数据导入指令从目标数据库中获取相应的元数据文件,并根据元数据导入指令将获取的元数据文件中的相应元数据写入目标数据库的第二控制文件。

具体地说,首先步骤s1对源数据库进行备份,并基于备份所产生的备份信息生成元数据并存入第一控制文件。数据库在备份时一般可以设置成定时都对数据库进行全备或增量备份,例如每日进行备份,并且也可以对归档日志文件进行备份,每次执行备份后所产生的备份信息会生成相应的元数据并存储到控制文件中。借助前述提及的rman工具等可以使用listbackup命令查看控制文件中的备份信息元数据,这些备份信息通常至少包含如下内容:备份的文件、文件名称、文件scn号(序列号)、生成的备份集名称等,通过这些备份信息能够读取到具体的备份数据,然后使用这些备份数据对数据库进行恢复。

由于这些元数据仅保存在控制文件中,因此,需要将这些元数据提取出来。所以,本发明的实施例设计了元数据导出指令和元数据导入指令。其中,元数据导出指令用于有针对性地从第一控制文件(即源数据库的控制文件)中导出数据库备份元数据,元数据导入指令用于有针对性地将元数据导入第二控制文件(即目标数据库的控制文件)。

优选但不限于,元数据导出指令设计为(exprbm:exprmanbackupmetadata),该指令可以将备份信息相应地生成的元数据全部导出,或只导出指定的备份集,或导出指定某时间段内的元数据,最终生成一个rcm(recoverycontrollermetadata)文件。该指令拥有如下参数:

path:指定生成rcm文件的路径和名称;

full:将元数据全部导出,取值y/n(是/否);

pieces:指定需要导出的元数据的备份片,多个备份片以逗号隔开;

timebetweenxandy:为时间区间,指定导出某时间段内的备份片。

优选但不限于,元数据导入指令设计为(imprbm:imprmanbackupmetadata),该指令可以读取rcm文件中全部备份信息元数据,或只读取指定备份集,或只读取指定某时间段内的元数据。该指令可以通过rcm文件将元数据全部导入,或只导入指定的备份集,或导入指定某时间段内的元数据。该指令拥有如下参数:

path:指定rcm文件的路径和名称;

full:将备份信息全部导入;

pieces:指定需要导入的备份片;

time:为时间区间,指定导入某时间段内的备份片。

在源数据库中,当接收到元数据导出指令(exprbm)时,步骤s2根据元数据导出指令从第一控制文件(即源数据库的控制文件)中读取元数据以生成元数据文件,并根据元数据导出指令将元数据文件存入源数据库。也就是说,通过元数据导出指令指定了需要导出的元数据以及保存导出的元数据文件的路径。该导出并保存在源数据库中的元数据文件,随后在步骤s3中从源数据库传输至目标数据库,优选地对元数据文件在源数据库和目标数据库之间做物理迁移,包括在线通过总线、网络等传输或线下通过可移动存储设备转移等方式。转移之后,在目标数据库中,当接收到源数据导入指令(imprbm)时,步骤s4根据元数据导入指令从目标数据库中获取相应的元数据文件,并根据元数据导入指令将获取的元数据文件中的相应元数据写入目标数据库的第二控制文件。也就是说,通过源数据导入指令指定了获取元数据文件的路径和需要导入的元数据。根据源数据导入指令将相应的元数据写入第二控制文件(即目标数据库的控制文件)。由此完成了数据库备份元数据在源数据库和目标数据库的控制文件之间传递,实现了数据库备份元数据的物理迁移。在执行数据库恢复动作时,目标数据库的控制文件就可以基于迁移过来的元数据完成相应的数据恢复任务,进一步提高数据库的安全性和稳定性。

另外,为了方便存储和读取数据库备份元数据,本发明设计了一种元数据文件(rcm文件)的存储格式,优选但不限于如图3所示。在元数据文件(rcm文件)开头是源数据库的基本参数,通过该部分可以获取源库基本信息。接下来是备份索引信息存储区,该区域存储着每个备份片编号和名称,以及每个备份片详细信息存储的开始和结束位置,读取该区域信息就可以获取备份基本信息。最后是备份详细信息存储区,该区域存储着每个备份片记录的所有信息。

针对上述元数据文件,一方面,导出数据库备份元数据大体过程如下:

1、通过数据库提供的函数接口读取保存在控制文件中的数据库备份信息以及数据库的基本信息(即元数据);

2、生成元数据文件;

3、在元数据文件的“源库基本信息存储区”,写入数据库基本信息;

4、在元数据文件的“备份索引信息存储区”,将读取到的备份信息中所有备份片编号、备份片名称等信息写入该存储区;

5、在元数据文件的“备份详细信息存储区”,将读取到的备份信息中所有备份片包含的备份文件详细信息写入该存储区。

另一方面,元数据文件中存储的源库备份信息移植到目标数据库后,需要将该元数据文件导入到目标数据库中,优选但不限于如图4所示的过程大体如下:

1、读取元数据文件的“源库基本信息存储区”内容,判断目标数据库名称和源数据库是否一致;

2、读取元数据文件的“备份索引信息存储区”内容和目标数据库控制文件中备份信息,判断目标数据库和元数据文件的备份片编号是否有相同,如果有相同的备份片编号,说明目标数据库中不需要该备份片,目标库只需导入备份片编号不同的备份信息;

3、读取元数据文件的“备份详细信息存储区”中内容,将其中目标数据库中不存在的备份信息通过目标库函数接口写入到目标数据库控制文件。

在本发明的数据库备份元数据的迁移方法的一些实施例中,步骤s1对源数据库进行备份,并基于备份所产生的备份信息生成元数据并存入第一控制文件进一步包括:

s1a:响应于对源数据库进行全备份,基于全备份所产生的备份信息生成元数据并存入第一控制文件;

s1b:响应于对源数据库进行增量备份,基于增量备份所产生的备份信息生成元数据并增量地存入第一控制文件。

在数据库进行数据备份时,在本发明的实施例中可以支持两种方式的备份。其一,当对源数据库进行全备份时,步骤s1a基于全备份所产生的备份信息生成元数据并存入第一控制文件(即源数据库的控制文件)。其二,当对源数据库进行增量备份时,步骤s1b基于增量备份所产生的备份信息生成元数据并增量地存入第一控制文件(即源数据库的控制文件)。上述操作避免了每次备份都进行全备份对资源造成的不必要浪费,同时在增量存入时减少了对第一控制文件的操作,提高控制文件的稳定性。

在本发明的数据库备份元数据的迁移方法的一些实施例中,步骤s2响应于接收到元数据导出指令,根据元数据导出指令从第一控制文件中读取元数据以生成元数据文件,并根据元数据导出指令将元数据文件存入源数据库进一步包括:

s21:解析元数据导出指令以获取导出参数,导出参数至少包括导出类型、导出路径;

s22:根据导出类型从第一控制文件中读取相应的元数据并生成元数据文件;

s23:将元数据文件按照导出路径存入源数据库。

源数据库在接收到元数据导出指令后,首先s21解析元数据导出指令以获取导出参数,导出参数至少包括导出类型、导出路径。在一些实施例中导出参数还进一步包括时间区间、导出元数据的备份片等。随后s22根据s21中解析得到的导出类型从第一控制文件(即源数据库的控制文件)中读取相应的元数据并生成元数据文件。最后,s23将s22中生成的元数据文件按照s21中解析得到的导出路径存入源数据库本地的可读存储介质中,以便后续传输。具体导出过程如前述,不再赘述。

在本发明的数据库备份元数据的迁移方法的一些实施例中,步骤s2响应于接收到元数据导出指令,根据元数据导出指令从第一控制文件中读取元数据以生成元数据文件,并根据元数据导出指令将元数据文件存入源数据库进一步包括:响应于导出类型为全导出,从第一控制文件中读取全部元数据并生成元数据文件。也就是说,当元数据导出指令中指定导出类型为全导出时,例如exprbm中的full参数取值为y,则从第一控制文件(即源数据库的控制文件)中读取全部的元数据并生成元数据文件。

在本发明的数据库备份元数据的迁移方法的一些实施例中,步骤s2响应于接收到元数据导出指令,根据元数据导出指令从第一控制文件中读取元数据以生成元数据文件,并根据元数据导出指令将元数据文件存入源数据库进一步包括:响应于导出类型为部分导出,解析元数据导出指令以进一步获取导出条件;从第一控制文件中读取符合导出条件的元数据并生成元数据文件。当元数据导出指令中指定导出类型为部分导出时,例如exprbm中的full参数取值为n,则需要进一步从元数据导出指令中解析得到导出条件,例如时间区间等。然后再从第一控制文件(即源数据库的控制文件)中读取符合导出条件的元数据并生成元数据文件,例如读取指定时间区间内产生和/或写入第一控制文件的元数据。

在本发明的数据库备份元数据的迁移方法的一些实施例中,步骤s4响应于接收到元数据导入指令,根据元数据导入指令从目标数据库中获取相应的元数据文件,并根据元数据导入指令将获取的元数据文件中的相应元数据写入目标数据库的第二控制文件进一步包括:

s41:解析元数据导入指令以获取导入参数,导入参数至少包括导入路径;

s42:按照导入路径从目标数据库中获取元数据文件;

s43:将获取的元数据文件中的元数据根据获取的元数据文件的导出类型相应地写入目标数据库的第二控制文件。

目标数据库在接收到元数据导入指令后,首先s41解析元数据导入指令以获取导入参数,导入参数至少包括导入路径。在一些实施例中,导入参数还进一步包括时间区间、导入元数据的备份片等。默认的导入类型是全部导入。随后,s42按照s41解析得到的导入路径从目标数据库中获取元数据文件。最后,s43将该元数据文件中的元数据根据s42中获得的元数据文件的导出类型相应地写入目标数据库的第二控制文件,具体导入过程如前述,不再赘述。

在本发明的数据库备份元数据的迁移方法的一些实施例中,步骤s43将获取的元数据文件中的元数据根据获取的元数据文件的导出类型相应地写入目标数据库的第二控制文件进一步包括:响应于获取的元数据文件的导出类型为全导出,检查目标数据库的第二控制文件中是否已有元数据;响应于目标数据库的第二控制文件中没有元数据,将获取的元数据文件中的相应元数据直接写入目标数据库的第二控制文件。也就是说,当获取的元数据文件的导出类型为全导出时,首先检查目标数据库的第二控制文件中是否已有元数据,即目标数据库是否已经进行过元数据导入,目标数据库已经具有一定的恢复能力。如果目标数据库的第二控制文件中没有元数据,认为此时目标数据库尚不具备任何源数据库的数据恢复能力,目标数据库尚未掌握任何用于数据恢复的元数据,因此将获取的元数据文件中的相应元数据直接写入目标数据库的第二控制文件,以赋予目标数据库对源数据库的数据进行恢复能力。

在本发明的数据库备份元数据的迁移方法的一些实施例中,步骤s43将获取的元数据文件中的元数据根据获取的元数据文件的导出类型相应地写入目标数据库的第二控制文件进一步包括:响应于目标数据库的第二控制文件中已有元数据,提取获取的元数据文件中与目标数据库的第二控制文件中已有元数据不同的元数据部分;将不同的元数据部分以增量的方式写入目标数据库的第二控制文件。如果目标数据库的第二控制文件中已经存在元数据,认为此时目标数据库至少具备部分地源数据库的数据恢复能力,目标数据库已经至少掌握部分用于数据恢复的元数据,但不确定此次导入的元数据文件中的元数据对目标数据库而言有多少是未知的,因此需要提取获取的元数据文件中与目标数据库的第二控制文件中已有元数据不同的元数据部分。该元数据部分即是当前目标数据库中欠缺的部分,因而将该元数据部分以增量的方式写入目标数据库的第二控制文件。上述操作避免了每次迁移都进行全写入对资源造成的不必要浪费,同时以增量的方式写入可以减少对第二控制文件的操作,提高控制文件的稳定性。

在本发明的数据库备份元数据的迁移方法的一些实施例中,步骤s43将获取的元数据文件中的元数据根据获取的元数据文件的导出类型相应地写入目标数据库的第二控制文件进一步包括:响应于获取的元数据文件的导出类型为部分导出,提取获取的元数据文件中与目标数据库的第二控制文件中已有元数据不同的元数据部分;将不同的元数据部分以增量的方式写入目标数据库的第二控制文件。也就是说,当获取的元数据文件的导出类型为部分导出时,人为认定此时一方面目标数据库至少具备部分地源数据库的数据恢复能力,目标数据库已经至少掌握部分用于数据恢复的元数据,只需对部分元数据进行迁移;另一方面目标数据库只需掌握该部分元数据,目标数据库对源数据库的数据恢复只需根据该部分元数据进行即可。在这种情况下,因为尚不能确定此次导入的元数据文件中的元数据对目标数据库而言有多少是未知的,因此需要提取获取的元数据文件中与目标数据库的第二控制文件中已有元数据不同的元数据部分。该元数据部分即是当前目标数据库中欠缺的部分,因而将该元数据部分以增量的方式写入目标数据库的第二控制文件。以增量的方式写入可以减少对第二控制文件的操作,提高控制文件的稳定性。

另一方面,本发明还提出了一种分布式数据存储的装置。图2示出了根据本发明的数据库备份元数据的迁移装置的实施例的示意图。在如图2所示的实施例中,该装置至少包括:

备份模块m10,该备份模块m10配置为对源数据库进行备份,并基于备份所产生的备份信息生成元数据并存入第一控制文件;

元数据导出模块m20,该元数据导出模块m20配置为响应于接收到元数据导出指令,根据元数据导出指令从第一控制文件中读取元数据以生成元数据文件,并根据元数据导出指令将元数据文件存入源数据库;

接口模块m30,该接口模块m30配置为将元数据文件从源数据库传输至目标数据库;

元数据导入模块m40,该元数据导入模块m40配置为响应于接收到元数据导入指令,根据元数据导入指令从目标数据库中获取相应的元数据文件,并根据元数据导入指令将获取的元数据文件中的相应元数据写入目标数据库的第二控制文件。

本发明实施例公开所述的装置、设备等可为各种电子终端设备,例如手机、个人数字助理(pda)、平板电脑(pad)、智能电视等,也可以是大型终端设备,如服务器等,因此本发明实施例公开的保护范围不应限定为某种特定类型的装置、设备。本发明实施例公开所述的客户端可以是以电子硬件、计算机软件或两者的组合形式应用于上述任意一种电子终端设备中。

本文所述的计算机可读存储介质(例如存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)或快闪存储器。易失性存储器可以包括随机存取存储器(ram),该ram可以充当外部高速缓存存储器。作为例子而非限制性的,ram可以以多种形式获得,比如同步ram(dram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强sdram(esdram)、同步链路dram(sldram)、以及直接rambusram(drram)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。

采用上述技术方案,本发明至少具有如下有益效果:通过使数据库备份元数据在源数据库和目标数据库的控制文件之间传递的方式实现了数据库备份元数据的迁移,为此设计了元数据导出指令和元数据导入指令,并且基于元数据导出指令有针对性地从控制文件中导出数据库备份元数据、基于元数据导入指令有针对性地将元数据导入控制文件,实现了在不同数据库之间为控制文件传递数据库备份元数据,保证了在目标数据库的恢复源数据库的数据时能够以最新的数据库备份元数据为依据,进一步提高数据库的安全性和稳定性。

应当理解的是,在技术上可行的情况下,以上针对不同实施例所列举的技术特征可以相互组合,从而形成本发明范围内的另外实施例。此外,本文所述的特定示例和实施例是非限制性的,并且可以对以上所阐述的结构、步骤及顺序做出相应修改而不脱离本发明的保护范围。

在本申请中,反意连接词的使用旨在包括连接词。定或不定冠词的使用并不旨在指示基数。具体而言,对“该”对象或“一”和“一个”对象的引用旨在表示多个这样对象中可能的一个。然而,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。此外,可以使用连接词“或”来传达同时存在的特征,而不是互斥方案。换句话说,连接词“或”应理解为包括“和/或”。术语“包括”是包容性的并且具有与“包含”相同的范围。

上述实施例,特别是任何“优选”实施例是实施方式的可能示例,并且仅仅为了清楚理解本发明的原理而提出。在基本上不脱离本文描述的技术的精神和原理的情况下,可以对上述实施例做出许多变化和修改。所有修改旨在被包括在本公开的范围内。


技术特征:

1.一种数据库备份元数据的迁移方法,其特征在于,所述方法包括以下步骤:

对源数据库进行备份,并基于备份所产生的备份信息生成元数据并存入第一控制文件;

响应于接收到元数据导出指令,根据所述元数据导出指令从所述第一控制文件中读取所述元数据以生成元数据文件,并根据所述元数据导出指令将所述元数据文件存入源数据库;

将所述元数据文件从所述源数据库传输至目标数据库;

响应于接收到元数据导入指令,根据所述元数据导入指令从所述目标数据库中获取相应的元数据文件,并根据所述元数据导入指令将所述获取的元数据文件中的相应元数据写入所述目标数据库的第二控制文件。

2.根据权利要求1所述的方法,其特征在于,所述对源数据库进行备份,并基于备份所产生的备份信息生成元数据并存入第一控制文件进一步包括:

响应于对源数据库进行全备份,基于所述全备份所产生的备份信息生成元数据并存入第一控制文件;

响应于对源数据库进行增量备份,基于所述增量备份所产生的备份信息生成元数据并增量地存入第一控制文件。

3.根据权利要求1所述的方法,其特征在于,所述响应于接收到元数据导出指令,根据所述元数据导出指令从所述第一控制文件中读取所述元数据以生成元数据文件,并根据所述元数据导出指令将所述元数据文件存入源数据库进一步包括:

解析所述元数据导出指令以获取导出参数,所述导出参数至少包括导出类型、导出路径;

根据所述导出类型从所述第一控制文件中读取相应的元数据并生成所述元数据文件;

将所述元数据文件按照所述导出路径存入所述源数据库。

4.根据权利要求3所述的方法,其特征在于,所述响应于接收到元数据导出指令,根据所述元数据导出指令从所述第一控制文件中读取所述元数据以生成元数据文件,并根据所述元数据导出指令将所述元数据文件存入源数据库进一步包括:

响应于所述导出类型为全导出,从所述第一控制文件中读取全部元数据并生成所述元数据文件。

5.根据权利要求3所述的方法,其特征在于,所述响应于接收到元数据导出指令,根据所述元数据导出指令从所述第一控制文件中读取所述元数据以生成元数据文件,并根据所述元数据导出指令将所述元数据文件存入源数据库进一步包括:

响应于所述导出类型为部分导出,解析所述元数据导出指令以进一步获取导出条件;

从所述第一控制文件中读取符合所述导出条件的元数据并生成所述元数据文件。

6.根据权利要求3所述的方法,其特征在于,所述响应于接收到元数据导入指令,根据所述元数据导入指令从所述目标数据库中获取相应的元数据文件,并根据所述元数据导入指令将所述获取的元数据文件中的相应元数据写入所述目标数据库的第二控制文件进一步包括:

解析所述元数据导入指令以获取导入参数,所述导入参数至少包括导入路径;

按照所述导入路径从所述目标数据库中获取所述元数据文件;

将所述获取的元数据文件中的元数据根据所述获取的元数据文件的导出类型相应地写入所述目标数据库的第二控制文件。

7.根据权利要求6所述的方法,其特征在于,所述将所述获取的元数据文件中的元数据根据所述获取的元数据文件的导出类型相应地写入所述目标数据库的第二控制文件进一步包括:

响应于所述获取的元数据文件的导出类型为全导出,检查所述目标数据库的第二控制文件中是否已有元数据;

响应于所述目标数据库的第二控制文件中没有元数据,将所述获取的元数据文件中的相应元数据直接写入所述目标数据库的第二控制文件。

8.根据权利要求7所述的方法,其特征在于,所述将所述获取的元数据文件中的元数据根据所述获取的元数据文件的导出类型相应地写入所述目标数据库的第二控制文件进一步包括:

响应于所述目标数据库的第二控制文件中已有元数据,提取所述获取的元数据文件中与所述目标数据库的第二控制文件中已有元数据不同的元数据部分;

将所述不同的元数据部分以增量的方式写入所述目标数据库的第二控制文件。

9.根据权利要求6所述的方法,其特征在于,所述将所述获取的元数据文件中的元数据根据所述获取的元数据文件的导出类型相应地写入所述目标数据库的第二控制文件进一步包括:

响应于所述获取的元数据文件的导出类型为部分导出,提取所述获取的元数据文件中与所述目标数据库的第二控制文件中已有元数据不同的元数据部分;

将所述不同的元数据部分以增量的方式写入所述目标数据库的第二控制文件。

10.一种数据库备份元数据的迁移装置,其特征在于,所述装置包括:

备份模块,所述备份模块配置为对源数据库进行备份,并基于备份所产生的备份信息生成元数据并存入第一控制文件;

元数据导出模块,所述元数据导出模块配置为响应于接收到元数据导出指令,根据所述元数据导出指令从所述第一控制文件中读取所述元数据以生成元数据文件,并根据所述元数据导出指令将所述元数据文件存入源数据库;

接口模块,所述接口模块配置为将所述元数据文件从所述源数据库传输至目标数据库;

元数据导入模块,所述元数据导入模块配置为响应于接收到元数据导入指令,根据所述元数据导入指令从所述目标数据库中获取相应的元数据文件,并根据所述元数据导入指令将所述获取的元数据文件中的相应元数据写入所述目标数据库的第二控制文件。

技术总结
本发明涉及了一种数据库备份元数据的迁移方法及装置,其中该方法包括:对源数据库进行备份,并基于备份所产生的备份信息生成元数据并存入第一控制文件;响应于接收到元数据导出指令,根据元数据导出指令从第一控制文件中读取元数据以生成元数据文件,并根据元数据导出指令将元数据文件存入源数据库;将元数据文件从源数据库传输至目标数据库;响应于接收到元数据导入指令,根据元数据导入指令从目标数据库中获取相应的元数据文件,并根据元数据导入指令将获取的元数据文件中的相应元数据写入目标数据库的第二控制文件。本发明的实施例实现了在不同数据库之间为控制文件传递数据库备份元数据,进一步提高数据库的安全性和稳定性。

技术研发人员:马国良
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2020.01.10
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-58476.html

最新回复(0)