CN115470043B - 数据库备份方法、装置、计算机设备和存储介质 - Google Patents
数据库备份方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115470043B CN115470043B CN202211116598.1A CN202211116598A CN115470043B CN 115470043 B CN115470043 B CN 115470043B CN 202211116598 A CN202211116598 A CN 202211116598A CN 115470043 B CN115470043 B CN 115470043B
- Authority
- CN
- China
- Prior art keywords
- database
- backup
- server
- databases
- installation
- 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/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
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Abstract
本申请涉及一种数据库备份方法、装置、计算机设备、存储介质和计算机程序产品。通过识别进程信息确运行中的多个数据库的安装路径和标识,根据每个数据库的安装路径确定备份逻辑共享库的安装位置,根据安装路径获取每个数据库对应的备份配置信息,根据上述标识和备份配置信息生成每个数据库对应的备份子进程,由该备份子进程确定对应的数据库的备份逻辑共享库的安装位置并读取备份逻辑共享库,根据其中的备份逻辑备份上述备份子进程对应的数据库。相较于传统的通过人工识别多个数据库并备份的方式,本方案通过检测进程存在的多个数据库,并基于每个数据库的配置信息配置子进程,基于子进程对多个数据库进行备份,提高备份单机中多套数据库的效率。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据库备份方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,为进行数据的存储和处理,数据库成为计算机设备中必备的数据产品。为保证数据安全,需要对数据库进行备份,在备份前,需要首先识别出系统中的数据库实例,由于企业需要处理和存储的数据量较大,会在单台设备中设置多套数据库,这些数据库版本不一,运行实例又多,因此需要对单台设备中的多套数据库进行识别,以对这些数据库进行备份。目前对多套数据库进行识别和备份的方式通常是通过数据管理员进行手动识别并进行备份。然而,通过手动识别备份的方式,会降低备份多套数据库的效率。
因此,目前对多数据库备份的方法存在效率低的缺陷。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高备份效率的数据库备份方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种数据库备份方法,应用于服务器,所述方法包括:
接收数据库备份指令,根据所述服务器中的进程信息,确定所述服务器中运行中的多个数据库的安装路径以及每个数据库的标识;
根据每个数据库的安装路径确定备份逻辑共享库的安装位置,并根据所述每个数据库的安装路径获取所述每个数据库对应的备份配置信息;
根据所述每个数据库的标识以及所述备份配置信息,生成每个数据库对应的备份子进程;
针对每个备份子进程,由该备份子进程基于该备份子进程对应的数据库的标识确定所述数据库中备份逻辑共享库的安装位置,从所述安装位置读取所述备份逻辑共享库,并根据所述备份逻辑共享库的备份逻辑备份该备份子进程对应的数据库。
在其中一个实施例中,所述根据所述服务器中的进程信息,确定所述服务器中运行中的多个数据库的安装路径以及各个数据库的标识,包括:
获取所述服务器中正在运行的进程信息;所述进程信息包括进程的名称、数据库实例名和数据库可执行文件路径;
若所述进程的名称中包括预设数据库字符,确定所述进程为目标进程;
根据所述目标进程的进程信息中的实例名,确定所述数据库的标识,并根据所述目标进程的进程信息中的数据库可执行文件路径,确定所述数据库的安装路径。
在其中一个实施例中,所述根据每个数据库的安装路径确定备份逻辑共享库的安装位置,包括:
针对每个数据库,将该数据库的安装路径的上一级目录确定为该数据库的共享内存目录,获取所述共享内存目录中的静态数据连接库,作为所述备份逻辑共享库的安装位置。
在其中一个实施例中,所述根据所述每个数据库的安装路径获取所述每个数据库对应的备份配置信息,包括:
针对每个数据库,从该数据库的共享内存目录的上一级目录中获取包含预设配置字符的配置文件;所述配置文件中包括多行键值对信息;
遍历所述配置文件中的每行键值对信息,获取包含所述静态数据连接库对应的名称的目标键值对,获取所述目标键值对中的配置信息,作为该数据库的备份配置信息。
在其中一个实施例中,所述根据所述每个数据库的标识以及所述备份配置信息,生成每个数据库对应的备份子进程,包括:
针对每个数据库,根据该数据库的标识生成待配置备份子进程;
读取该数据库对应的备份配置信息,将所述备份配置信息保存为环境变量,并根据环境变量配置所述待配置备份子进程,得到该数据库对应的备份子进程。
在其中一个实施例中,所述确定所述服务器中运行中的多个数据库的安装路径以及每个数据库的标识之后,还包括:
根据多个数据库的标识生成数据库标识文件,将所述数据库标识文件发送至终端;所述终端用于展示所述数据库标识文件中的多个数据库的标识。
第二方面,本申请提供了一种数据库备份装置,应用于服务器,所述装置包括:
第一识别模块,用于接收数据库备份指令,根据所述服务器中的进程信息,确定所述服务器中运行中的多个数据库的安装路径以及每个数据库的标识;
第二识别模块,用于根据每个数据库的安装路径确定备份逻辑共享库的安装位置,并根据所述每个数据库的安装路径获取所述每个数据库对应的备份配置信息;
生成模块,用于根据所述每个数据库的标识以及所述备份配置信息,生成每个数据库对应的备份子进程;
备份模块,用于针对每个备份子进程,由该备份子进程基于该备份子进程对应的数据库的标识确定所述数据库中备份逻辑共享库的安装位置,从所述安装位置读取所述备份逻辑共享库,并根据所述备份逻辑共享库的备份逻辑备份该备份子进程对应的数据库。
第三方面,本申请提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
第五方面,本申请提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
上述数据库备份方法、装置、计算机设备、存储介质和计算机程序产品,通过识别服务器中的进程信息确定服务器中运行中的多个数据库的安装路径和标识,根据每个数据库的安装路径确定备份逻辑共享库的安装位置,并根据安装路径获取每个数据库对应的备份配置信息,根据上述标识和备份配置信息,生成每个数据库对应的备份子进程,并由该备份子进程基于对应的数据库的标识确定数据库中备份逻辑共享库的安装位置,从安装位置读取备份逻辑共享库,根据其中的备份逻辑备份上述备份子进程对应的数据库。相较于传统的通过人工识别多个数据库并备份的方式,本方案通过检测进程存在的多个数据库,并基于每个数据库的配置信息配置子进程,基于子进程对多个数据库进行备份,提高备份单机中多套数据库的效率。
附图说明
图1为一个实施例中数据库备份方法的应用环境图;
图2为一个实施例中数据库备份方法的流程示意图;
图3为另一个实施例中数据库备份方法的流程示意图;
图4为一个实施例中数据库备份装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数据库备份方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102可以接收数据库备份指令,并将数据库备份指令发送至服务器104,服务器104可以接收到数据库备份指令后,识别服务器104中的多个数据库,并基于多个备份子进程分别备份多个数据库。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机和平板电脑。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种数据库备份方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤S202,接收数据库备份指令,根据服务器中的进程信息,确定服务器中运行中的多个数据库的安装路径以及每个数据库的标识。
其中,数据库备份指令可以是用户触发的指令,用于对服务器中的数据库进行备份。其中,单台服务器中可以设置有多套数据库,每个数据库的版本可能不同。服务器在对数据库进行备份时,需要首先识别出服务器中的多个数据库。其中,服务器可以检测服务器中运行的进程,并获取各个运行中进程的进程信息,服务器根据上述进程信息,确定出服务器中状态为运行中的多个数据库的安装路径和每个数据库的标识。其中,数据库的标识表示该数据库的实例名称等信息,数据库的安装路径可以以字符串形式呈现。
具体地,上述数据库可以是Sybase ASE(以下简称ASE)数据库,是德国SAP公司旗下的一款关系型数据库产品,在政府部门,金融证券,电信等领域有大量的企业级用户。ASE存放着企业的关键业务数据,为了避免误操作、系统故障、自然灾害和计算机病毒等造成数据丢失,用户需定时对ASE进行备份。ASE为备份软件厂商提供了一系列C语言应用编程接口(Application Programming Interface,API),这些API以共享库的形式提供。通常,备份软件厂商需将备份软件安装到装有ASE的服务器上,并将备份逻辑以共享库的形式,安装到ASE指定的目录。备份软件运行时,动态加载ASE的API共享库,调用API对ASE发起备份请求,ASE再从指定目录动态加载备份逻辑,从而共同完成备份任务。预算有限的企业等,服务器数量有限,但又需要部署多套业务系统,往往在单台服务器安装了多套ASE数据库,这些ASE版本不一,因此需要识别出多套ASE数据库,并对各个数据库进行同时备份。上述从进程信息中确定数据库的安装路径和标识,可以基于预设的指令获取得到,该指令可以在服务器的bash命令处理器中输入,服务器可以将获取到的安装路径和标识通过bash命令处理器进行输出。
其中,服务器获取到每个数据库的标识后,还可以将其进行展示。例如,在一个实施例中,确定服务器中运行中的多个数据库的安装路径以及每个数据库的标识之后,还包括:根据多个数据库的标识生成数据库标识文件,将数据库标识文件发送至终端;终端用于展示数据库标识文件中的多个数据库的标识。
本实施例中,服务器基于进程信息识别出服务器中各个数据库的标识后,可以根据多个数据库的标识生成数据库标识文件,并且服务器可以将上述数据库标识文件发送至终端中,终端可以接收服务器发送的数据库标识文件,并将数据库标识文件中的各个数据库标识进行展示。具体地,服务器可以基于Python进行建立,上述数据库的标识可以是每个数据库的实例名称,以单台服务器上运行了n个ASE实例为例,为讨论方便,分别命名这n个ASE实例为ASE1,ASE2,...ASEn。需要说明的是,实例名称也可以是其他形式,服务器可以自主检测服务器中的各个数据库的实例。服务器可以通过设定命令提取出各个数据库的实例名,并保存为文件ASE-instances.txt,即上述数据库标识文件。服务器可以将该文件发送至终端中进行展示,也可以在服务器中通过命令行或图形进行展示。其中,服务器将各个实例名保存为数据库标识文件的命令可以如下所示:
import re#导入Python标准库re,用以进行正则匹配;
import sys#导入Python标准库sys,用以读取命令输出;
with open('ASE-instances.txt','w')as fp:#打开ASE-instances.txt,用于写入;
fp.writelines(re.findall(r'(?<=-s)\w+',line)for line in sys.stdin)#遍历识别数据库标识时的每一行输出,通过正则匹配-s后提取实例名,保存到ASE-instances.txt。
从而终端或服务器可以展示上述ASE-instances.txt文件中的各个数库的标识。
步骤S204,根据每个数据库的安装路径确定备份逻辑共享库的安装位置,并根据每个数据库的安装路径获取每个数据库对应的备份配置信息。
其中,备份逻辑共享库可以是服务器中的备份软件提供的,该备份逻辑共享库中可以包括对数据库进行备份的备份逻辑,即服务器可以通过备份软件对数据库进行备份,备份逻辑共享库可以是备份软件提供的,备份软件第一次运行时,可以读取每个数据库对应的备份逻辑共享库,从而得到该数据库对应的备份逻辑。服务器确定每个数据库在服务器中的安装路径后,可以基于该安装路径,确定备份逻辑共享库的安装位置,从而终端可以将备份逻辑共享库安装至上述安装位置中。另外,每个数据库的安装路径中还可以存储有每个数据库对应的备份配置信息,备份配置信息存储有每个数据库在备份时需要的环境变量,因此服务器可以根据服务器中每个数据库的安装路径获取每个数据库对应的备份配置信息。
步骤S206,根据每个数据库的标识以及备份配置信息,生成每个数据库对应的备份子进程。
其中,备份子进程可以是服务器在备份各个数据库时使用的进程。以数据库是Sybase ASE为例,每个ASE数据库具有对应的备份配置信息,备份配置信息可以由ASE数据库的共享库提供,由于每个ASE数据库的版本可能不一致,提供的备份配置信息的版本也可能不一致,而同一进程无法加载有相同逻辑的不同版本的共享库,因此需要通过子进程实现对不同数据库的备份。因此,服务器可以根据上述每个数据库的标识和备份配置信息,生成每个数据库对应的备份子进程。其中,备份配置信息可以用于确定生成的备份子进程的环境变量,数据库的标识可以用于将生成的备份子进程与对应的数据库进行关联,从而服务器可以在每个备份子进程中对相应的数据库进行备份。
步骤S208,针对每个备份子进程,由该备份子进程基于该备份子进程对应的数据库的标识确定数据库中备份逻辑共享库的安装位置,从安装位置读取备份逻辑共享库,并根据备份逻辑共享库的备份逻辑备份该备份子进程对应的数据库。
其中,由于服务器中的数据库可以有多个,因此上述备份子进程也可以有多个。对于每个备份子进程,由于每个备份子进程与每个数据库的标识一一对应,服务器可以在该备份子进程中,基于该备份子进程对应的数据库的标识确定该数据库标识对应的数据库,并从对应的数据库中确定备份逻辑共享库的安装位置,从而服务器在该备份子进程中,从上述安装位置读取备份逻辑共享库,从而服务器可以基于备份逻辑共享库得到该备份子进程对应的数据库的备份逻辑,服务器可以在该备份子进程中基于上述备份逻辑备份该备份子进程对应的数据库。
上述数据库备份方法中,通过识别服务器中的进程信息确定服务器中运行中的多个数据库的安装路径和标识,根据每个数据库的安装路径确定备份逻辑共享库的安装位置,并根据安装路径获取每个数据库对应的备份配置信息,根据上述标识和备份配置信息,生成每个数据库对应的备份子进程,并由该备份子进程基于对应的数据库的标识确定数据库中备份逻辑共享库的安装位置,从安装位置读取备份逻辑共享库,根据其中的备份逻辑备份上述备份子进程对应的数据库。相较于传统的通过人工识别多个数据库并备份的方式,本方案通过检测进程存在的多个数据库,并基于每个数据库的配置信息配置子进程,基于子进程对多个数据库进行备份,提高备份单机中多套数据库的效率。
在一个实施例中,根据服务器中的进程信息,确定服务器中运行中的多个数据库的安装路径以及各个数据库的标识,包括:获取服务器中正在运行的进程信息;进程信息包括进程的名称、数据库实例名和数据库可执行文件路径;若进程的名称中包括预设数据库字符,确定进程为目标进程;根据目标进程的进程信息中的实例名,确定数据库的标识,并根据目标进程的进程信息中的数据库可执行文件路径,确定数据库的安装路径。
本实施例中,服务器可以通过检测服务器中的进程信息,确定服务器中安装的多个数据库的相关信息。服务器中可以运行有多个进程,服务器可以获取服务器中正在运行的进程,并获取这些运行中进程的进程信息。其中,进程信息包括进程的名称、数据库实例名和数据库可执行文件路径等信息。服务器可以检测上述进程信息中的进程名称,若服务器检测到进程的名称中包括预设数据库字符,则服务器可以确定进程为目标进程,目标进程表示该进程是数据库对应的进程。服务器可以根据上述目标进程的进程信息中的实例名,确定数据库的标识,并根据目标进程的进程信息中的数据库可执行文件路径,确定数据库的安装路径。
具体地,服务器可以通过格式化列信息指令(COLUMNS)提取出服务器中的进程信息。以数据库是上述ASE数据库为例,在备份软件安装阶段,服务器可以在bash命令处理器中执行下述命令,以得到服务器中的进程信息:COLUMNS=1024ps-elf|grep-v grep|grep-i sybase。其中,COLUMNS=1024设置该命令每一行输出的大小为1024个字符,以避免输出被截断。ps-elf|grep-v grep|grep-i sybase列出系统上所有正在运行的并且进程名称中包含sybase的进程,即sybase为上述预设数据库字符。其中,若服务器检测到进程信息中包含预设数据库字符,例如sybase,则服务器可以输出一次进程的信息,即每一个运行着的Sybase ASE实例有一个这样的输出。输出的格式如下所示:
<Sybase ASE可执行文件路径>
-d<主数据路径>-e<日志路径>
-c<配置文件路径>-M<共享内存目录>
-N<许可证路径>-i<接口文件路径>-s<实例名>
以输出实例ASE0为例,上述命令的输出可以如下所示:
/opt/sap/ASE-16_0/bin/dataserver
-d/opt/sap/data/master.dat-e/opt/sap/ASE-16_0/install/ASE0.log
-c/opt/sap/ASE-16_0/ASE0.cfg-M/opt/sap/ASE-16_0
-N/opt/sap/ASE-16_0/sysam/ASE0.properties-i/opt/sap-sASE0
其中,<>中是该输出各个部分的具体含义,诸如-d,-e等是SybaseASE进程本身的命令选项。由上述输出可知,目标进程的实例名是ASE0,服务器可以将该实例名作为该数据库的标识,数据库可执行文件路径是/opt/sap/ASE-16_0/bin/dataserver,服务器可以将该路径作为数据库的安装路径。
通过本实施例,服务器可以通过检测进程信息中是否包括预设字符,确定各个数据库的标识和安装路径,实现对单台服务器中多个数据库进行识别,提高了数据库识别的效率。
在一个实施例中,根据每个数据库的安装路径确定备份逻辑共享库的安装位置,包括:针对每个数据库,将该数据库的安装路径的上一级目录确定为该数据库的共享内存目录,获取共享内存目录中的静态数据连接库,作为备份逻辑共享库的安装位置。
本实施例中,服务器可以基于进程信息得到服务器中每个数据库的安装路径,服务器得到安装路径后,可以确定备份软件的备份逻辑共享库的安装位置。由于上述服务器中有多套数据库,对于每个数据库,服务器可以将该数据库的安装路径的上一级目录确定为该数据库的共享内存目录,共享内存目录中存储有静态数据连接库,服务器可以将该静态数据连接库作为备份逻辑共享库的安装位置。
具体地,以数据库是上述ASE为例,服务器得到ASE的可执行文件的路径/opt/sap/ASE-16_0/bin/dataserver后,/opt/sap/ASE-16_0/bin/即为安装路径,则服务器可以将该安装路径的上一级目录,即/opt/sap/ASE-16_0/,作为共享内存目录,共享内存目录中存在静态连接库(lib),则服务器可以在共享内存目录中检测静态连接库,若检测到静态连接库存在,则服务器可以将静态连接库作为备份逻辑共享库的安装位置,其具体路径可以是/opt/sap/ASE-16_0/lib。其中,服务器还可以提取上述共享内存目录,并将其记录到ASE-install-dirs.txt文件中,需要说明的是,上述共享内存目录可以根据用户的实际选择确定。服务器可以通过Python提取出上述备份逻辑共享库的目录,备份软件第一次运行时可以读取上述ASE-install-dirs.txt文件,将共享库拷贝到对应的目录下。其运行代码如下所示:
import re#导入Python标准库re,用以进行正则匹配
import sys#导入Python标准库sys,用以读取命令输出
with open('ASE-install-dirs.txt','w')as fp:#打开文件ASE-install-dirs.txt,用于写入
fp.writelines(re.findall(r'^(.*)/bin/dataserver',line)for line insys.stdin)。#遍历进程信息的每一行输出,通过正则匹配提取行首/bin/dataserver的目录,保存ASE-install-dirs.txt
其中,行首的/opt/sap/ASE-16_0加上子目录lib即/opt/sap/ASE-16_0/lib即备份软件的备份逻辑共享库的安装目录,这是Sybase ASE本身所要求的,在备份软件发起备份请求后,Sybase ASE可以自动到这个目录加载备份软件的共享库。
通过本实施例,服务器可以基于数据库的安装路径确定备份逻辑共享库的安装位置,从而服务器可以将备份逻辑共享库安装至对应的位置以为数据库提供备份逻辑,提高了数据库备份的效率。
在一个实施例中,根据每个数据库的安装路径获取每个数据库对应的备份配置信息,包括:针对每个数据库,从该数据库的共享内存目录的上一级目录中获取包含预设配置字符的配置文件;配置文件中包括多行键值对信息;遍历配置文件中的每行键值对信息,获取包含静态数据连接库对应的名称的目标键值对,获取目标键值对中的配置信息,作为该数据库的备份配置信息。
本实施例中,服务器可以基于数据库的安装路径确定数据库的备份配置信息。服务器得到上述数据库的安装路径后,可以基于安装路径得到共享内存目录,由于服务器中的数据库可以有多个,对于每个数据库,服务器可以获取该数据库的共享内存目录的上一级目录,并从该上一个目录中获取包含预设配置字符的配置文件,其中,配置文件中包括多行键值对信息。例如,服务器可以检测上述共享内存目录的上一级目录中是否包含有预设配置字符的配置文件,若有则确定得到该数据库对应的配置文件。服务器得到配置文件后,可以遍历配置文件中的每行键值对信息,服务器可以从每行键值对信息中检测出包含静态连接库对应的名称的键值对,作为目标键值对,从而服务器可以获取上述目标键值对中的配置信息,作为该数据库的备份配置信息。
具体地,以数据库是ASE数据库为例,服务器可以获取上述共享内存目录的上一级目录,即/opt/sap,服务器可以在该目录下检测预设配置字符,即SYBASE.env,若检测到,则服务器可以获取该配置文件SYBASE.env,该配置文件可以是ASE自带的配置文件,记录了ASE API共享库的位置,配置文件中每一行记录一个配置项,格式为KEY=VALUE。其中,上述静态连接库LIB的名称即为ASE API共享库路径,服务器可以通过Python解析上述SYBASE.env中的各个配置项,取得ASE API共享库的路径,进而得到上述备份配置信息,并且服务器还可以将备份配置信息的路径存储到ASE-API-paths.txt文件中。具体地,服务器检测上述备份配置信息的代码如下所示:
Import re#导入Python标准库re,用以进行正则匹配
Import os#导入Python标准库os,用以拼接目录
With open('ASE-API-paths.txt','w')as api_paths:#打开文件'ASE-API-paths.txt,用于写入
With open('ASE-install-dirs.txt','r')as install_dirs:#打开文件ASE-install-dirs.txt,用于读取
For dir ininstall_dirs:#遍历每一个4.中的目录
With open(os.path.join(os.path.split(dir)[0],'SYBASE.env'),'r')asenvs:#打开目录中的配置文件SYBASE.env
For line in envs:#遍历SYBASE.env中每一行
If line.startswith('LIB'):#找到LIB开头的一行
api_paths.writelines([line[line.index('=')+1:]])#将LIB一行配置项的值保存到ASE-API-paths.tx。
上述备份配置信息也可以是一种共享库,该备份配置想可以是Sybase ASE实例提供的,备份软件连接数据库发起备份请求时,需要加载这个共享库。使得服务器可以基于备份配置信息确定上述备份子进程的环境信息。
通过本实施例,服务器可以基于数据库的安装路径和共享内存目录的路径确定每个数据库的备份配置信息,从而服务器可以基于备份配置信息对数据库进行备份,提高了对单台服务器中的多个数据库进行备份效率。
在一个实施例中,根据每个数据库的标识以及备份配置信息,生成每个数据库对应的备份子进程,包括:针对每个数据库,根据该数据库的标识生成待配置备份子进程;读取该数据库对应的备份配置信息,将备份配置信息保存为环境变量,并根据环境变量配置待配置备份子进程,得到该数据库对应的备份子进程。
本实施例中,服务器可以基于上述数据库的安装路径,以及数据库的共享内存目录的安装路径,确定数据库的备份配置信息。服务器确定数据库的备份配置信息以及数据库的标识后,可以对数据库进行备份。其中,服务器中可以安装有多套数据库,服务器可以通过生成多个备份子进程的方式,同时对多套数据库进行备份。例如,对于每个数据库,服务器可以根据该数据库的标识生成待配置备份子进程,待配置备份子进程可以与该数据库的标识对应,即该数据库会在该备份子进程中进行备份。服务器还可以读取该数据库对应的备份配置信息,并将该备份配置信息保存为环境变量,根据环境变量配置上述待配置备份子进程,使得待配置备份子进程符合该数据库的备份要求,得到该数据库对应的配置完成的备份子进程。
具体地,以数据库是Sybase ASE为例,数据库的标识可以是数据库的实例名,例如上述ASE0,服务器可以读取ASE-instances.txt文件,得到数据库的实例名,服务器可以基于实例名生成数据库ASE0对应的待配置备份子进程,服务器还可以通过读取上述ASE-API-paths.txt文件,得到数据库ASE0对应的备份配置信息,并将其中的值保存为环境变量传给对应的待配置备份子进程,服务器可以基于该环境变量对待配置备份子进程进行配置,得到配置完成的备份子进程。并且,服务器还可以读取上述ASE-install-dirs.txt,确定数据库ASE0对应的备份逻辑共享库的安装位置,并从该安装位置中读取该备份逻辑共享库,基于其提供的备份逻辑对数据库ASE0进行备份。
通过本实施例,服务器可以基于服务器中每个数据库的标识和备份配置信息等生成每个数据库对应的备份子进程,从而服务器可以基于多个备份子进程同时对多个数据库进行备份,提高了对单台服务器中多个数据库进行备份的效率。
在一个实施例中,如图3所示,图3为另一个实施例中数据库备份方法的流程示意图。本实施例中,服务器可以在bash命令处理器输入特定指令,列出服务器中运行中的各个进程信息,服务器可以检测这些进程信息的进程名称是否包含预设数据库字符,例如sybase,若是,则服务器可以通过Python正则r'(?<=-s)\w+'提取数据库ASE的实例名,包括ASE0~ASEn等,并保存到数据库标识文件中,具体可以是ASE-instances.txt。服务器还可以通过Python正则r'^(.*)/bin/dataserver'提取数据库ASE的安装目录,并将备份逻辑共享库安装至ASE安装目录/lib中,例如/opt/sap/ASE-16_0/lib,服务器还可以保存上述目录至ASE-install-dirs.txt文件中。
另外,服务器还可以在上述安装目录中打开配置文件,例如在/opt/sap目录中的SYBASE.env文件,从而服务器可以解析该文件,获取其中配置项为LIB的键值对,并将该键值对的配置作为备份配置信息,保存到ASE-API-paths.txt文件中。
服务器在备份时,可以读取上述ASE-instances.txt文件,确定数据库的标识,并基于该标识生成待配置的备份子进程,服务器可以读取上述ASE-API-paths.txt文件,从而确定数据库的配置信息的路径,并从该路径中读取配置信息,将其保存为环境变量,基于该环境变量配置上述待配置的备份子进程,得到配置完成的备份子进程;服务器还可以读取上述ASE-install-dirs.txt文件,从而确定数据库对应的备份逻辑共享库的安装位置,并从该安装位置中读取备份逻辑共享库,基于其提供的备份逻辑在对应的备份子进程中备份数据库,实现对单台服务器中的多套数据库进行同时备份,以及实现ASE实例自动发现,备份共享库自动安装,ASE API共享库自动发现。
通过上述实施例,通过检测进程存在的多个数据库,并基于每个数据库的配置信息配置子进程,基于子进程对多个数据库进行备份,提高备份单机中多套数据库的效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据库备份方法的数据库备份装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据库备份装置实施例中的具体限定可以参见上文中对于数据库备份方法的限定,在此不再赘述。
在一个实施例中,如图4所示,提供了一种数据库备份装置,包括:第一识别模块500、第二识别模块502、生成模块504和备份模块506,其中:
第一识别模块500,用于接收数据库备份指令,根据服务器中的进程信息,确定服务器中运行中的多个数据库的安装路径以及每个数据库的标识。
第二识别模块502,用于根据每个数据库的安装路径确定备份逻辑共享库的安装位置,并根据每个数据库的安装路径获取每个数据库对应的备份配置信息。
生成模块504,用于根据每个数据库的标识以及备份配置信息,生成每个数据库对应的备份子进程。
备份模块506,用于针对每个备份子进程,由该备份子进程基于该备份子进程对应的数据库的标识确定数据库中备份逻辑共享库的安装位置,从安装位置读取备份逻辑共享库,并根据备份逻辑共享库的备份逻辑备份该备份子进程对应的数据库。
在一个实施例中,上述第一识别模块500,具体用于获取服务器中正在运行的进程信息;进程信息包括进程的名称、数据库实例名和数据库可执行文件路径;若进程的名称中包括预设数据库字符,确定进程为目标进程;根据目标进程的进程信息中的实例名,确定数据库的标识,并根据目标进程的进程信息中的数据库可执行文件路径,确定数据库的安装路径。
在一个实施例中,上述第二识别模块502,具体用于针对每个数据库,将该数据库的安装路径的上一级目录确定为该数据库的共享内存目录,获取共享内存目录中的静态数据连接库,作为备份逻辑共享库的安装位置。
在一个实施例中,上述第二识别模块502,具体用于针对每个数据库,从该数据库的共享内存目录的上一级目录中获取包含预设配置字符的配置文件;配置文件中包括多行键值对信息;遍历配置文件中的每行键值对信息,获取包含静态数据连接库对应的名称的目标键值对,获取目标键值对中的配置信息,作为该数据库的备份配置信息。
在一个实施例中,上述生成模块504,具体用于针对每个数据库,根据该数据库的标识生成待配置备份子进程;读取该数据库对应的备份配置信息,将备份配置信息保存为环境变量,并根据环境变量配置待配置备份子进程,得到该数据库对应的备份子进程。
在一个实施例中,上述装置还包括:展示模块,用于根据多个数据库的标识生成数据库标识文件,将数据库标识文件发送至终端;终端用于展示数据库标识文件中的多个数据库的标识。
上述数据库备份装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储多个版本的数据库及其中的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库备份方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述的数据库备份方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时上述的数据库备份方法。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的数据库备份方法。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据库备份方法,其特征在于,应用于服务器,所述方法包括:
接收数据库备份指令,根据所述服务器中的进程信息,确定所述服务器中运行中的多个数据库的安装路径以及每个数据库的标识;
根据每个数据库的安装路径确定备份逻辑共享库的安装位置,并根据所述每个数据库的安装路径获取所述每个数据库对应的备份配置信息;
根据所述每个数据库的标识以及所述备份配置信息,生成每个数据库对应的备份子进程;
针对每个备份子进程,由该备份子进程基于该备份子进程对应的数据库的标识确定所述数据库中备份逻辑共享库的安装位置,从所述安装位置读取所述备份逻辑共享库,并根据所述备份逻辑共享库的备份逻辑备份该备份子进程对应的数据库。
2.根据权利要求1所述的方法,其特征在于,所述根据所述服务器中的进程信息,确定所述服务器中运行中的多个数据库的安装路径以及各个数据库的标识,包括:
获取所述服务器中正在运行的进程信息;所述进程信息包括进程的名称、数据库实例名和数据库可执行文件路径;
若所述进程的名称中包括预设数据库字符,确定所述进程为目标进程;
根据所述目标进程的进程信息中的实例名,确定所述数据库的标识,并根据所述目标进程的进程信息中的数据库可执行文件路径,确定所述数据库的安装路径。
3.根据权利要求1所述的方法,其特征在于,所述根据每个数据库的安装路径确定备份逻辑共享库的安装位置,包括:
针对每个数据库,将该数据库的安装路径的上一级目录确定为该数据库的共享内存目录,获取所述共享内存目录中的静态数据连接库,作为所述备份逻辑共享库的安装位置。
4.根据权利要求3所述的方法,其特征在于,所述根据所述每个数据库的安装路径获取所述每个数据库对应的备份配置信息,包括:
针对每个数据库,从该数据库的共享内存目录的上一级目录中获取包含预设配置字符的配置文件;所述配置文件中包括多行键值对信息;
遍历所述配置文件中的每行键值对信息,获取包含所述静态数据连接库对应的名称的目标键值对,获取所述目标键值对中的配置信息,作为该数据库的备份配置信息。
5.根据权利要求1所述的方法,其特征在于,所述根据所述每个数据库的标识以及所述备份配置信息,生成每个数据库对应的备份子进程,包括:
针对每个数据库,根据该数据库的标识生成待配置备份子进程;
读取该数据库对应的备份配置信息,将所述备份配置信息保存为环境变量,并根据环境变量配置所述待配置备份子进程,得到该数据库对应的备份子进程。
6.根据权利要求1所述的方法,其特征在于,所述确定所述服务器中运行中的多个数据库的安装路径以及每个数据库的标识之后,还包括:
根据多个数据库的标识生成数据库标识文件,将所述数据库标识文件发送至终端;所述终端用于展示所述数据库标识文件中的多个数据库的标识。
7.一种数据库备份装置,其特征在于,应用于服务器,所述装置包括:
第一识别模块,用于接收数据库备份指令,根据所述服务器中的进程信息,确定所述服务器中运行中的多个数据库的安装路径以及每个数据库的标识;
第二识别模块,用于根据每个数据库的安装路径确定备份逻辑共享库的安装位置,并根据所述每个数据库的安装路径获取所述每个数据库对应的备份配置信息;
生成模块,用于根据所述每个数据库的标识以及所述备份配置信息,生成每个数据库对应的备份子进程;
备份模块,用于针对每个备份子进程,由该备份子进程基于该备份子进程对应的数据库的标识确定所述数据库中备份逻辑共享库的安装位置,从所述安装位置读取所述备份逻辑共享库,并根据所述备份逻辑共享库的备份逻辑备份该备份子进程对应的数据库。
8.根据权利要求7所述的装置,其特征在于,所述第一识别模块,具体用于:
获取所述服务器中正在运行的进程信息;所述进程信息包括进程的名称、数据库实例名和数据库可执行文件路径;
若所述进程的名称中包括预设数据库字符,确定所述进程为目标进程;
根据所述目标进程的进程信息中的实例名,确定所述数据库的标识,并根据所述目标进程的进程信息中的数据库可执行文件路径,确定所述数据库的安装路径。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211116598.1A CN115470043B (zh) | 2022-09-14 | 2022-09-14 | 数据库备份方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211116598.1A CN115470043B (zh) | 2022-09-14 | 2022-09-14 | 数据库备份方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115470043A CN115470043A (zh) | 2022-12-13 |
CN115470043B true CN115470043B (zh) | 2023-04-25 |
Family
ID=84333560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211116598.1A Active CN115470043B (zh) | 2022-09-14 | 2022-09-14 | 数据库备份方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115470043B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804618A (zh) * | 2018-05-31 | 2018-11-13 | 康键信息技术(深圳)有限公司 | 数据库配置方法、装置、计算机设备和存储介质 |
CN111382012A (zh) * | 2020-03-03 | 2020-07-07 | 广州鼎甲计算机科技有限公司 | MySQL云数据库的备份方法、装置、计算机设备和存储介质 |
CN111984465A (zh) * | 2020-07-28 | 2020-11-24 | 北京人大金仓信息技术股份有限公司 | 数据库远程备份方法、装置、介质和电子设备 |
CN113064760A (zh) * | 2021-04-06 | 2021-07-02 | 广州鼎甲计算机科技有限公司 | 数据库合成备份方法、装置、计算机设备和存储介质 |
CN113467996A (zh) * | 2021-07-08 | 2021-10-01 | 咪咕音乐有限公司 | 数据库备份方法、装置、计算机设备及存储介质 |
CN114691653A (zh) * | 2022-04-24 | 2022-07-01 | 金蝶蝶金云计算有限公司 | 账套迁移方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10558531B2 (en) * | 2017-04-18 | 2020-02-11 | Netapp, Inc. | Systems and methods for backup and restore of master-less distributed database clusters |
-
2022
- 2022-09-14 CN CN202211116598.1A patent/CN115470043B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804618A (zh) * | 2018-05-31 | 2018-11-13 | 康键信息技术(深圳)有限公司 | 数据库配置方法、装置、计算机设备和存储介质 |
CN111382012A (zh) * | 2020-03-03 | 2020-07-07 | 广州鼎甲计算机科技有限公司 | MySQL云数据库的备份方法、装置、计算机设备和存储介质 |
CN111984465A (zh) * | 2020-07-28 | 2020-11-24 | 北京人大金仓信息技术股份有限公司 | 数据库远程备份方法、装置、介质和电子设备 |
CN113064760A (zh) * | 2021-04-06 | 2021-07-02 | 广州鼎甲计算机科技有限公司 | 数据库合成备份方法、装置、计算机设备和存储介质 |
CN113467996A (zh) * | 2021-07-08 | 2021-10-01 | 咪咕音乐有限公司 | 数据库备份方法、装置、计算机设备及存储介质 |
CN114691653A (zh) * | 2022-04-24 | 2022-07-01 | 金蝶蝶金云计算有限公司 | 账套迁移方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
赵旭华.舰船通信网络传输数据容灾备份方法研究.《舰船科学技术》.2021,第43卷(第6A期),142-144. * |
Also Published As
Publication number | Publication date |
---|---|
CN115470043A (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180067933A1 (en) | System and method of handling file metadata | |
JP5731000B2 (ja) | 差分バックアップからのデータベースの個別復元を実行する方法及びシステム | |
US9836244B2 (en) | System and method for resource sharing across multi-cloud arrays | |
US9223661B1 (en) | Method and apparatus for automatically archiving data items from backup storage | |
US10089148B1 (en) | Method and apparatus for policy-based replication | |
US8332442B1 (en) | Automated restoration of links when restoring individual directory service objects | |
CN108804253B (zh) | 一种用于海量数据备份的并行作业备份方法 | |
US10241870B1 (en) | Discovery operations using backup data | |
US20110113013A1 (en) | Duplicate backup data identification and consolidation | |
US8832030B1 (en) | Sharepoint granular level recoveries | |
CN112395157B (zh) | 审计日志的获取方法、装置、计算机设备和存储介质 | |
US8843450B1 (en) | Write capable exchange granular level recoveries | |
US6546474B1 (en) | Method and system for the fast backup and transmission of data | |
US10318330B2 (en) | Data-persisting temporary virtual machine environments | |
US20210303404A1 (en) | Systems and methods for database migration | |
US7506002B2 (en) | Efficient deletion of archived data | |
CN115470043B (zh) | 数据库备份方法、装置、计算机设备和存储介质 | |
CN115454717B (zh) | 数据库实时备份方法、装置、计算机设备和存储介质 | |
CN115827691A (zh) | 批量处理结果验证方法、装置、计算机设备、存储介质 | |
US9971532B2 (en) | GUID partition table based hidden data store system | |
CN114816470A (zh) | 元数据库的管理方法、装置、电子设备和介质 | |
CN114020541A (zh) | 备份数据展示方法、装置、设备及存储介质 | |
CN109241011B (zh) | 一种虚拟机文件处理方法及装置 | |
CN115695173A (zh) | 网络安全例外接入方法、装置、设备、介质和程序产品 | |
CN115373903A (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 |