CN115454717B - 数据库实时备份方法、装置、计算机设备和存储介质 - Google Patents

数据库实时备份方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN115454717B
CN115454717B CN202211126923.2A CN202211126923A CN115454717B CN 115454717 B CN115454717 B CN 115454717B CN 202211126923 A CN202211126923 A CN 202211126923A CN 115454717 B CN115454717 B CN 115454717B
Authority
CN
China
Prior art keywords
log
block
redo log
database
disk
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
Application number
CN202211126923.2A
Other languages
English (en)
Other versions
CN115454717A (zh
Inventor
王贤达
冷毅生
黄律棋
王子骏
马立珂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Dingjia Computer Technology Co ltd
Original Assignee
Guangzhou Dingjia Computer Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Dingjia Computer Technology Co ltd filed Critical Guangzhou Dingjia Computer Technology Co ltd
Priority to CN202211126923.2A priority Critical patent/CN115454717B/zh
Publication of CN115454717A publication Critical patent/CN115454717A/zh
Application granted granted Critical
Publication of CN115454717B publication Critical patent/CN115454717B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

数据库实时备份方法、装置、计算机设备和存储介质
技术领域
本申请涉及数据库技术领域,特别是涉及一种数据库实时备份方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着数据库技术的发展,出现了数据库实时备份技术。数据库实时备份技术是提高数据安全性与完整性的一种技术手段,通过数据库实时备份,可以将发生故障的数据库恢复到故障发生前的任一时间点,保证数据的安全与完整。
传统技术中,第三方的数据库实时备份技术通过文件系统过滤驱动等方式捕获数据库对数据文件或重做日志的更新,实时将更新数据备份到存储目标端。
然而,第三方数据库实时备份技术需要运行于开放应用程序接口的文件系统上。对于使用ASM(Automatic Storage Management,自动存储管理)作为文件系统及存储管理方案的Oracle数据库(Oracle Database,一款关系数据库管理系统),其文件系统未对外提供应用程序接口,换言之,第三方无法通过文件系统过滤驱动等方式捕获数据库的实时更新。因此,如何对不开放应用程序接口的数据库实现第三方实时备份,是一个尚未解决的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够对不开放应用程序接口的数据库实现第三方实时备份的数据库实时备份方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种数据库实时备份方法。所述方法包括:
通过虚拟文件流,在数据块映射表中,确认与数据库中的重做日志的数据块的数据块标识对应的磁盘块标识;所述数据块映射表用于记录所述数据库中的数据库文件的各个数据块的数据块标识与磁盘设备的各个磁盘块的磁盘块标识之间的映射关系;
将所述磁盘设备中与所述磁盘块标识对应的磁盘块,确认为与所述数据库中的重做日志的数据块对应的目标磁盘块;
通过所述虚拟文件流,从所述目标磁盘块上读取出所述重做日志的数据块,对所述重做日志进行备份。
在其中一个实施例中,在之前,还包括:
创建数据块映射表;
根据所述数据块映射表,创建虚拟文件流。
在其中一个实施例中,所述创建数据块映射表,包括:
查询所述数据库的存储管理接口,获取组成所述数据库文件的各个数据块的数据块标识,以及存储所述各个数据块的磁盘块的磁盘块标识;
根据所述数据块标识与所述磁盘块标识,创建所述数据块映射表。
在其中一个实施例中,所述对所述重做日志进行备份,包括:
确认所述重做日志的日志类型;
在所述重做日志的日志类型为归档重做日志的情况下,对所述归档重做日志进行备份;
在所述重做日志的日志类型为在线重做日志的情况下,对所述在线重做日志中的各个待备份日志块进行备份。
在其中一个实施例中,所述对所述归档重做日志进行备份,包括:
获取各个所述归档重做日志的元数据信息;所述归档重做日志的元数据信息至少包括各个所述归档重做日志的起始系统改变号;
按照所述归档重做日志的起始系统号从小到大的顺序,对各个所述归档重做日志进行备份;
所述对所述在线重做日志中的各个待备份日志块进行备份,包括:
获取各个所述在线重做日志的元数据信息;所述在线重做日志的元数据信息至少包括各个所述在线重做日志的日志序列号和起始系统改变号;
按照所述在线重做日志的起始系统改变号从小到大的顺序,确认所述在线重做日志的各个日志块是否为待备份日志块;
对各个所述待备份日志块进行备份。
在其中一个实施例中,所述按照所述在线重做日志的起始系统改变号从小到大的顺序,确认所述在线重做日志的各个日志块是否为待备份日志块,包括:
按照第一在线重做日志的日志块顺序,判断所述第一在线重做日志的各个日志块是否属于更新后的日志块;所述第一在线重做日志为所述在线重做日志中起始系统改变号最小的在线重做日志;
在所述日志块属于更新后的日志块的情况下,将所述日志块确认为待备份日志块;
在所述日志块不属于更新后的日志块的情况下,判断所述第一在线重做日志是否完成备份;
在所述第一在线重做日志完成备份的情况下,对第二在线重做日志进行备份;所述第二在线重做日志是指,在所述在线重做日志中,按照所述在线重做日志的起始系统改变号从小到大的顺序,所述第一在线重做日志的下一个在线重做日志;
在所述第一在线重做日志未完成备份的情况下,等待所述数据库更新日志块,并判断更新后的日志块是否为所述待备份日志块。
第二方面,本申请还提供了一种数据库实时备份装置。所述装置包括:
数据映射模块,用于通过虚拟文件流,在数据块映射表中,确认与数据库中的重做日志的数据块的数据块标识对应的磁盘块标识;所述数据块映射表用于记录所述数据库中的数据库文件的各个数据块的数据块标识与磁盘设备的各个磁盘块的磁盘块标识之间的映射关系;
磁盘确认模块,用于将所述磁盘设备中与所述磁盘块标识对应的磁盘块,确认为与所述数据库中的重做日志的数据块对应的目标磁盘块;
日志备份模块,用于通过所述虚拟文件流,从所述目标磁盘块上读取出所述重做日志的数据块,对所述重做日志进行备份。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
通过虚拟文件流,在数据块映射表中,确认与数据库中的重做日志的数据块的数据块标识对应的磁盘块标识;所述数据块映射表用于记录所述数据库中的数据库文件的各个数据块的数据块标识与磁盘设备的各个磁盘块的磁盘块标识之间的映射关系;
将所述磁盘设备中与所述磁盘块标识对应的磁盘块,确认为与所述数据库中的重做日志的数据块对应的目标磁盘块;
通过所述虚拟文件流,从所述目标磁盘块上读取出所述重做日志的数据块,对所述重做日志进行备份。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
通过虚拟文件流,在数据块映射表中,确认与数据库中的重做日志的数据块的数据块标识对应的磁盘块标识;所述数据块映射表用于记录所述数据库中的数据库文件的各个数据块的数据块标识与磁盘设备的各个磁盘块的磁盘块标识之间的映射关系;
将所述磁盘设备中与所述磁盘块标识对应的磁盘块,确认为与所述数据库中的重做日志的数据块对应的目标磁盘块;
通过所述虚拟文件流,从所述目标磁盘块上读取出所述重做日志的数据块,对所述重做日志进行备份。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
通过虚拟文件流,在数据块映射表中,确认与数据库中的重做日志的数据块的数据块标识对应的磁盘块标识;所述数据块映射表用于记录所述数据库中的数据库文件的各个数据块的数据块标识与磁盘设备的各个磁盘块的磁盘块标识之间的映射关系;
将所述磁盘设备中与所述磁盘块标识对应的磁盘块,确认为与所述数据库中的重做日志的数据块对应的目标磁盘块;
通过所述虚拟文件流,从所述目标磁盘块上读取出所述重做日志的数据块,对所述重做日志进行备份。
上述数据库实时备份方法、装置、计算机设备、存储介质和计算机程序产品,通过虚拟文件流,在数据块映射表中,确认与数据库中的重做日志的数据块的数据块标识对应的磁盘块标识;然后将磁盘设备中与磁盘块标识对应的磁盘块,确认为与数据库中的重做日志的数据块对应的目标磁盘块;最后通过虚拟文件流,从目标磁盘块上读取出重做日志的数据块,对重做日志进行备份。这样,通过数据库文件的数据块标识,确定存储数据块的磁盘块的磁盘块标识,进一步确定磁盘块,能够读取不对外开放应用程序接口的数据库中的数据文件,实时跟踪重做日志的变化范围,并对发生变化的重做日志完成备份,从而使得第三方能够对不开放应用程序接口的数据库实现实时备份。
附图说明
图1为一个实施例中数据库实时备份方法的流程示意图;
图2为一个实施例中按照在线重做日志的起始系统改变号从小到大的顺序,确认在线重做日志的各个日志块是否为待备份日志块的步骤的流程示意图;
图3为另一个实施例中数据库实时备份方法的流程示意图;
图4为另一个实施例中对归档重做日志,以起始SCN号从小到大的顺序进行备份的步骤的流程示意图;
图5为另一个实施例中对在线重做日志,以起始SCN号从小到大的顺序进行备份的步骤的流程示意图;
图6为一个实施例中数据库实时备份装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1是根据一个实施例示出的一种数据库实时备份方法的流程图,如图1所示,该数据库实时备份方法用于备份程序中,可以理解的是,该方法也可以应用于服务器,还可以应用于终端。本实施例中,该方法包括以下步骤:
步骤S101,通过虚拟文件流,在数据块映射表中,确认与数据库中的重做日志的数据块的数据块标识对应的磁盘块标识。
其中,数据块映射表用于记录数据库中的数据库文件的各个数据块的数据块标识与磁盘设备的各个磁盘块的磁盘块标识之间的映射关系;数据库中的数据库文件的各个数据块存储在磁盘设备的各个磁盘块中。
需要说明的是,数据库是指不对外开放应用程序接口的数据库,如使用ASM作为文件系统及存储管理方案的Oracle数据库,即Oracle ASM数据库文件系统,也可以是其他不对外开放应用程序接口的数据库,本申请在此不做限定。
具体地,备份程序通过查询数据库的数据块映射表,从数据块映射表中获取数据库文件中重做日志的数据块的数据块标识与磁盘设备的磁盘块的磁盘块标识之间的映射关系,确认与数据库中的重做日志的数据块的数据块标识对应的磁盘块的磁盘块标识。
举例说明,备份程序通过查询数据块映射表,可以获取以下信息:重做日志1中,数据块标识为1~10的数据块对应于磁盘1中磁盘块标识为101~110的磁盘块;重做日志1中,数据块标识为11~20的数据块对应于磁盘2中磁盘块标识为201~210的磁盘块。
步骤S102,将磁盘设备中与磁盘块标识对应的磁盘块,确认为与数据库中的重做日志的数据块对应的目标磁盘块。
具体地,备份程序根据磁盘块标识,将磁盘块标识对应的磁盘块,确认为与数据库的重做日志的数据块对应的目标磁盘块。
举例说明,备份程序通过查询磁盘块映射表,可以获取以下信息:磁盘1中磁盘块标识为101~110的磁盘块,为重做日志1中数据块标识为1~10的数据块对应的目标磁盘块;磁盘2中磁盘块标识为201~210的磁盘块,为重做日志1中数据块标识为11~20的数据块对应的目标磁盘块。
步骤S103,通过虚拟文件流,从目标磁盘块上读取出重做日志的数据块,对重做日志进行备份。
其中,虚拟文件流是指备份程序封装好的,用于读取数据库文件的程序组件。可以理解为,在已知目标磁盘块的情况下,通过虚拟文件流,便可以对数据库的数据文件进行读取。
具体地,备份程序通过上述步骤,获取数据库的重做日志的所有数据块对应的目标磁盘块,通过虚拟文件流在目标磁盘块上读取出数据库的重做日志,对重做日志进行备份。本实施例中,备份程序通过虚拟文件流,在数据块映射表中,确认与数据库中的重做日志的数据块的数据块标识对应的磁盘块标识;然后将磁盘设备中与磁盘块标识对应的磁盘块,确认为与数据库中的重做日志的数据块对应的目标磁盘块;最后通过虚拟文件流,从目标磁盘块上读取出重做日志的数据块,对重做日志进行备份。这样,通过数据库文件的数据块标识,确定存储数据块的磁盘块的磁盘块标识,进一步确定磁盘块,能够读取不对外开放应用程序接口的数据库中的数据文件,实时跟踪重做日志的变化范围,并对发生变化的重做日志完成备份,从而使得第三方能够对不开放应用程序接口的数据库实现实时备份。
在一个实施例中,在上述步骤S101,通过虚拟文件流,在数据块映射表中,确认与数据库中的重做日志的数据块的数据块标识对应的磁盘块标识之前,还具体包括如下内容:创建数据块映射表;根据数据块映射表,创建虚拟文件流。
具体地,备份程序在查询数据块映射表前,需要创建数据块映射表,接着根据数据块映射表,创建读取数据库文件所需的虚拟文件流。
本实施例中,备份程序通过获取重做日志在Oracle ASM数据库文件系统的底层磁盘设备的映射关系,为每个重做日志建立映射表,并根据映射表创建出对应的虚拟文件流。备份程序通过虚拟文件流,将需要读取的数据块的数据块标识转换为对应的磁盘块标识,并根据磁盘块标识确认需要进行数据读取的磁盘块,从而实现了能够读取不对外开放应用程序接口的数据库中的数据文件的功能。
在一个实施例中,在上述步骤S101之前,创建数据块映射表,还具体包括如下内容:查询数据库的存储管理接口,获取组成数据库文件的各个数据块的数据块标识,以及存储各个数据块的磁盘块的磁盘块标识;根据数据块标识与磁盘块标识,创建数据块映射表。
其中,数据块标识是能够唯一确定各个数据块的符号,可以理解为数据块ID;磁盘块标识是能够唯一确定各个磁盘块的符号,可以理解为磁盘块ID。
具体地,备份程序连接数据库实例,查询组成该数据库中的数据文件的磁盘组、磁盘块ID、数据块ID以及大小等,然后创建数据库文件的数据块映射表,数据块映射表中包含有数据块ID、磁盘块ID等信息,记录了哪一个数据块对应于哪一个磁盘块,数据库映射表中的信息按数据块ID排序。
举例说明,备份程序首先连接Oracle ASM数据库实例,获取组成数据文件的磁盘组、磁盘块ID、数据块ID以及大小等,根据数据文件的数据块与磁盘块的映射关系创建数据块映射表,如在数据块映射表中记录有:重做日志1的第5块数据块对应于磁盘1的第105块磁盘块、重做日志1的第13块数据块对应于磁盘2的第203块磁盘块。
本实施例中,备份程序通过查询数据库,获取数据文件的数据块与磁盘块的映射关系,创建数据块映射表。从而备份程序可以通过数据块映射表,可以将指定的数据块ID,转换为存储该数据块的磁盘块ID,通过该磁盘块ID,实现对该磁盘块数据的读取。
在一个实施例中,在上述步骤S103中,对重做日志进行备份,具体包括如下内容:确认重做日志的日志类型;在重做日志的日志类型为归档重做日志的情况下,对归档重做日志进行备份;在重做日志的日志类型为在线重做日志的情况下,对在线重做日志中的各个待备份日志块进行备份。
其中,重做日志是数据库记录事务日志的文件,通过重新执行重做日志中的操作记录,可将数据库恢复到有日志记录的任意时间点;重做日志分为归档重做日志与在线重做日志,在线重做日志是重复使用的多个文件,而其中完成写入的在线重做日志会被复制到另外一个目录,此目录中的重做日志便称为归档重做日志。
具体地,备份程序在读取出重做日志之后还需要确认重做日志的类型,具体判断是归档重做日志还是在线重做日志。如果重做日志的类型是归档重做日志,备份程序对该归档重做日志进行备份,如果重做日志的类型是在线重做日志,备份程序对该在线重做日志中的待备份日志块进行备份。
举例说明,对于重做日志1,其类型为归档重做日志,备份程序对其进行备份;对于重做日志6,其类型为在线重做日志,且在在线重做日志6中,待备份的数据块为数据块1、数据块2和数据块3,备份程序对在线重做日志6中的数据块1、数据块2和数据块3进行备份。
本实施例中,备份程序通过确认重做日志的类型,对不同类型的重做日志采取不同的备份方法,能够实时跟踪重做日志的变化范围,并将发生变化的日志块同步传输到本地或远程备份设备上进行保存,从而达到实时备份的目的。
在一个实施例中,上述步骤,对归档重做日志进行备份,具体还包括以下内容:获取各个归档重做日志的元数据信息;归档重做日志的元数据信息至少包括各个归档重做日志的起始系统改变号;按照归档重做日志的起始系统号从小到大的顺序,对各个归档重做日志进行备份。
上述步骤,对在线重做日志中的各个待备份日志块进行备份,具体包括以下内容:获取各个在线重做日志的元数据信息;在线重做日志的元数据信息至少包括各个在线重做日志的日志序列号和起始系统改变号;按照在线重做日志的起始系统改变号从小到大的顺序,确认在线重做日志的各个日志块是否为待备份日志块;对各个待备份日志块进行备份。
其中,归档重做日志与在线重做日志的元数据信息包括,重做日志的日志序列号(Sequence#)、起始系统改变号、结束系统改变号及时间;日志序列号为重做日志的序列号,每次写入下一个文件,此序列增加1;系统改变号即SCN号(System change number),数据库为每个更新数据库的操作赋予一个递增的唯一数字,称为SCN,恢复数据库时指定具体的某个SCN号,即可将数据库准确地恢复到某个变更操作前的状态。
需要说明的是,每个日志文件由若干个日志块(block)组成,前两个块为日志文件头,后面为日志记录,每个日志块都有块头。无论日志文件头还是块头,都记录有对应的日志序列、SCN号、时间点等关键信息。
还需要说明的是,在线重做日志是循环覆盖使用的,若数据库所使用的日志线程共有三个在线重做日志,其日志文件头的日志序列分别为11、12、13,那么当三个在线重做日志完成写入后,数据库会将完成写入的在线重做日志复制到归档重做日志的目录中,并将三个在线重做日志的文件头的日志序列更新为14、15、16,之后的日志记录将会对已经复制到归档重做日志目录的日志记录进行覆盖。
具体地,备份程序连接数据库,查询最近一次定时备份后产生的归档重做日志信息,包括日志序列号、起始SCN号、结束SCN号及时间等,然后按照起始SCN号从小到大的顺序,通过虚拟文件流读取归档重做日志的文件数据,将各个归档重做日志备份至备份存储设备。对归档重做日志完成备份后,备份程序连接数据库,查询最近一次定时备份后产生的在线重做日志信息,包括日志序列号、起始SCN号、结束SCN号及时间等,然后按照起始SCN号从小到大的顺序,判断各个在线重做日志的各个日志块是否为待备份日志块,如果日志块属于待备份日志块,则将该日志块备份至备份存储设备。
举例说明,备份程序连接数据库,获取最近一次定时备份后产生的归档重做日志,按照起始SCN号从小到大的顺序,对各个归档重做日志进行备份。在完成对归档重做日志的备份后,数据库获取最近一次定时备份后产生的在线重做日志,按照起始SCN号从小到大的顺序,根据在线重做日志的日志文件头的日志序列,逐一判断各个在线重做日志的各个日志块是否为当前序列写入,若日志块为当前日志写入,则将日志块确认为待备份日志块,对其进行备份。
本实施例中,由于数据库恢复需要按SCN号从小到大的顺序进行,如果缺了包含某个SCN号的日志,则其他大于该SCN的日志也无法恢复,因此备份程序按照起始SCN号从小到大的顺序对重做日志进行备份,能够保证备份的顺序性与完整性。
需要说明的是,本申请并不限定于备份到特定类型的存储设备,通过实现对应的通讯协议或应用接口,可将备份数据实时备份至各种本地或网络存储设备上,包括但不限于磁盘及磁盘阵列、NAS设备、磁带机及磁带库、光盘及光盘库、云存储等。本地或通过网络访问的磁盘、磁带、光盘、云存储等,并不限定于某种存储设备。
在一个实施例中,如图2所示,上述步骤,按照在线重做日志的起始系统改变号从小到大的顺序,确认在线重做日志的各个日志块是否为待备份日志块,具体还包括以下步骤:
步骤S201,按照第一在线重做日志的日志块顺序,判断第一在线重做日志的各个日志块是否属于更新后的日志块。
步骤S202,在日志块属于更新后的日志块的情况下,将日志块确认为待备份日志块。
步骤S203,在日志块不属于更新后的日志块的情况下,判断第一在线重做日志是否完成备份。
步骤S204,在第一在线重做日志完成备份的情况下,对第二在线重做日志进行备份。
步骤S205,在第一在线重做日志未完成备份的情况下,等待数据库更新日志块,并判断更新后的日志块是否为待备份日志块。
其中,第一在线重做日志为在线重做日志中起始系统改变号最小的在线重做日志。第二在线重做日志是指,在在线重做日志中,按照在线重做日志的起始系统改变号从小到大的顺序,第一在线重做日志的下一个在线重做日志。即,若三个在线重做日志的起始SCN号分别为9900、10000、10100,那么起始SCN号为9900的在线重做日志即第一在线重做日志,起始SCN号为10000的在线重做日志即为第二在线重做日志。
具体地,备份程序首先选取起始SCN号最小的在线重做日志,获取并解析其日志文件头,得到日志文件头的日志序列号,根据该日志文件头的日志序列号,判断起始SCN号最小的在线重做日志的各个日志块是否为当前序列写入的日志块。如果日志块属于当前日志序列写入,那么该日志块即为待备份日志块,对该日志块进行备份;若不属于,则备份程序获取并解析下一个在线重做日志的日志文件头,得到下一个在线重做日志的日志文件头的日志序列号。通过对比两个日志文件头的日志序列号,判断当前起始SCN号最小的在线重做日志是否已经完成备份,若已经完成,则对下一个在线重做日志进行备份;若没有完成,则备份程序等待数据库继续在当前在线重做日志的日志块中写入数据,并继续判断日志块是否为当前日志序列写入。
需要说明的是,数据库通常是还没写满当前的重做日志就开始写下一个重做日志,所以不能等当前日志文件整个更新完再检测下一个日志文件。
举例说明,若数据库所使用的日志线程共有三个在线重做日志,其日志文件头的日志序列分别为11、12、13,起始SCN号分别为9900、10000、10100,那么第一在线重做日志即为起始SCN号为9900的在线重做日志,第二在线重做日志即为起始SCN号为10000的在线重做日志。备份程序首先解析第一在线重做日志的日志文件头,获得日志文件头的日志序列号为11;然后按照日志块的顺序,依次解析日志块的块头,获得日志块的日志序列号,根据日志文件头的日志序列号与日志块的日志序列号是否一致,判断该日志块是否为当前序列写入。即,若日志块的日志序列号同样为11,则该日志块为当前序列写入,该日志块为待备份日志块;若该日志块的日志序列号为8,则该日志块并非当前序列写入,而是之前已经复制到归档重做日志目录的日志序列写入,不对该日志块进行备份。当备份程序判断某一日志块不是当前序列写入时,需要解析第二在线重做日志的日志文件头,获得日志文件头的日志序列,此时,若第二在线重做日志的日志文件头的日志序列为12,即大于第一在线重做日志的日志文件头的日志序列,那么说明数据库已经开始对第二在线重做日志进行写入,第一在线重做日志已经完成备份,因此备份程序对第二在线重做日志重复上述步骤S201~步骤S205,并将第二在线重做日志设为新的第一在线重做日志,将第二在线重做日志的下一个在线重做日志,即起始SCN号为10100的在线重做日志设为新的第二在线重做日志;若第二在线重做日志的日志文件头的日志序列为9,即小于第一在线重做日志的日志文件头的日志序列,说明该第二在线重做日志还未被覆盖,且第一在线重做日志还在等待数据库写入新的日志记录,因此备份程序需要等待数据库更新日志块。
需要说明的是,由于备份程序是从日志文件头开始,一边解析日志块一边进行备份,所以当读到非当前日志序列写入的日志块时,说明前面所有当前日志序列写入的日志块都已经完成备份了,即当前正在进行备份的在线重做日志已经完成备份。
本实施例中,备份程序通过比较日志文件头的日志序列号与日志块的日志序列号,可以判断该日志块是否为当前日志序列写入,是否需要进行备份;此外,通过比较第一在线重做日志的日志文件头的日志序列号与第二在线重做日志的日志文件头的日志序列号,可以判断当前第一在线重做日志是否还需要进行备份,以及是否需要开始对第二在线重做日志进行备份,从而使得备份程序能够实时跟踪重做日志的变化范围,并将发生变化的日志块同步传输到本地或远程备份设备上进行保存,从而达到实时备份的目的。
在一个实施例中,如图3所示,提供了另一种数据库实时备份方法,以该方法应用于备份程序为例进行说明,包括以下步骤:
步骤S301,创建数据块映射表。
步骤S302,根据数据块映射表,创建虚拟文件流。
步骤S303,通过虚拟文件流,在数据块映射表中,确认与数据库中的重做日志的数据块的数据块标识对应的磁盘块标识。
步骤S304,将磁盘设备中与磁盘块标识对应的磁盘块,确认为与数据库中的重做日志的数据块对应的目标磁盘块。
步骤S305,通过虚拟文件流,从目标磁盘块上读取出重做日志。
步骤S306,确认重做日志的日志类型,判断重做日志是归档重做日志还是在线重做日志。
步骤S307,按照归档重做日志的起始系统号从小到大的顺序,对各个归档重做日志进行备份。
步骤S308,按照在线重做日志的起始系统号从小到大的顺序,对各个在线重做日志中待备份的日志块进行备份。
需要说明的是,本申请所述方法为纯软件实现,不依赖于硬件或系统驱动,因此可适用于任何软硬件平台,且可适配于各Oracle版本。
在本实施例中,备份程序通过虚拟文件流,在数据块映射表中,确认与数据库中的重做日志的数据块的数据块标识对应的磁盘块标识;然后将磁盘设备中与磁盘块标识对应的磁盘块,确认为与数据库中的重做日志的数据块对应的目标磁盘块;最后通过虚拟文件流,从目标磁盘块上读取出重做日志的数据块,对重做日志进行备份。这样,备份程序通过获取重做日志在底层磁盘设备的映射关系,为每个重做日志建立映射表,并根据映射表创建出对应的虚拟文件流;通过虚拟文件流,将需要读取的数据块的数据块标识转换为对应的磁盘块标识,并根据磁盘块标识确认需要进行数据读取的磁盘块,从而实现了能够读取不对外开放应用程序接口的数据库中的数据文件的功能。同时,备份程序通过确认重做日志的类型,对不同类型的重做日志采取不同的备份方法,通过判断日志块是否为当前序列所写入,能够实时跟踪重做日志的变化范围,并将发生变化的日志块同步传输到本地或远程备份设备上进行保存,从而使得第三方能够对不开放应用程序接口的数据库实现实时备份。此外,备份程序按照起始SCN号从小到大的顺序对重做日志进行备份,能够保证备份的顺序性与完整性。特殊地,本申请并不限定于备份到特定类型的存储设备,通过实现对应的通讯协议或应用接口,可将备份数据实时备份至各种本地或网络存储设备上,包括但不限于磁盘及磁盘阵列、NAS设备、磁带机及磁带库、光盘及光盘库、云存储等。此外,备份程序在通过定时物理备份将数据库恢复到备份时间点的基础上,再通过在数据库上继续恢复实时备份的归档重做日志及在线重做日志,可将数据库恢复到故障发生前一刻或之前的任意时间点,RPO可达到<0.1s的级别。
为了更清晰阐明本申请实施例提供的数据库实时备份方法,以下以一个具体的实施例对该数据库实时备份方法进行具体说明。在一个实施例中,本申请还提供了一种数据库实时备份方法,具体包括以下步骤:
(1)创建数据块映射表与虚拟文件流:
步骤1,备份程序查询内存中是否创建有磁盘映射表,若没有,在内存中创建一个磁盘块ID与磁盘设备访问句柄的磁盘映射表。
步骤2,备份程序连接Oracle ASM实例,查询组成该文件的磁盘组、磁盘块ID、数据块ID及大小等。
步骤3,备份程序在内存中生成该文件的数据块映射表,包括数据块ID、磁盘块ID等信息,数据块映射表中的信息按数据块ID排序。
步骤4,判断数据块映射表中记录的每个磁盘块ID,是否在磁盘映射表中。
步骤5,若磁盘块ID不在上述磁盘映射表中,则通过Oracle ASM实例查询磁盘路径,通过操作系统API打开该磁盘设备,得到访问磁盘的句柄,将磁盘ID及句柄添加到上述磁盘映射表。否则不重复打开已有磁盘设备,多个虚拟文件流可共享一个或多个相同的磁盘句柄。
步骤6,备份程序创建虚拟文件流。根据以下规则封装虚拟文件流:当通过该虚拟文件流读取文件内指定数据块时,通过数据块映射表将对应数据块转换为对应磁盘句柄及磁盘块,通过句柄读取相应大小的数据返回。该虚拟文件流内部通过操作系统的线程锁机制保证多个线程可互斥访问上述一或多个共享的磁盘句柄。
(2)如图4所示,备份程序对各个归档重做日志,以起始SCN号从小到大的顺序按以下步骤进行备份:
步骤S401,备份程序连接Oracle数据库,查询最近一次定时备份后产生的归档重做日志信息,包括路径、日志序列号、起始及结束SCN及时间等,取起始SCN最小的归档重做日志。
步骤S402,备份程序创建数据块映射表及虚拟文件流。
步骤S403,备份程序通过虚拟文件流读取归档重做日志数据,发送数据至备份存储设备进行保存。此处的备份存储设备包括任何可用于数据存储的设备和介质,包括本地或通过网络访问的磁盘、磁带、光盘、云存储等,并不限定于某种存储设备。
步骤S404,备份程序将归档重做日志的线程号、日志序列号、起始及结束SCN及时间点等元数据信息保存至备份索引设备,此处的备份索引设备可为任何保存备份元数据信息的设备或本地文件,用于查询备份数据的信息,备份索引设备可以和备份存储设备为同一个设备。
(3)如图5所示,备份程序对各个在线重做日志,以起始SCN号从小到大的顺序按以下步骤进行备份:
步骤S501,备份程序连接Oracle数据库,查询实例使用的在线重做日志信息,包括路径、日志序列号、起始及结束SCN及时间等,取起始SCN最小的在线重做日志。
步骤S502,备份程序创建数据块映射表与虚拟文件流。
步骤S503,备份程序通过虚拟文件流读取在线重做日志,先备份日志文件头至备份设备,同时从文件头中解析出日志序列等信息。
步骤S504,备份程序按顺序解析每个日志块头部,获取每个日志块的日志序列号及起始SCN号。
步骤S505,判断该日志块是否为当前日志序列所写入。
步骤S506,如果当前日志块为当前日志序列所写入,则同步备份该日志块至备份设备,重复步骤S504解析下一个日志块。
步骤S507,如果当前日志块非当前日志序列所写入,说明当前在线重做日志的当前有效日志块已经备份,将已备份的日志序列号、最新SCN及时间点等元数据信息保存至备份索引设备。
步骤S508,解析下一个在线重做日志的日志文件头。
步骤S509,若下一个在线重做日志文件头的日志序列小于当前日志序列,说明当前日志序列仍在等待数据库写入,返回步骤S504,继续监控日志块是否发生变化。
步骤S510,若下一个在线重做日志文件头的日志序列大于当前日志序列,说明当前日志序列已经完成,结束当前在线重做日志的备份,返回步骤S503,解析下一个在线重做日志。
特殊地,若归档重做日志与在线重做日志存储于本地文件系统,备份程序通过操作系统API打开文件创建本地文件流,通过本地文件流读取归档重做日志于在线重做日志。
在本实施例中,备份程序通过虚拟文件流,按Oracle数据库循环写入的顺序,依次监控各在线重做日志的日志块变化,重复上述步骤将监控到发生变化的日志块实时同步备份到备份设备,从而使得第三方能够对不开放应用程序接口的数据库实现实时备份。此外,备份程序按照起始SCN号从小到大的顺序对重做日志进行备份,能够保证备份的顺序性与完整性。特殊地,本申请并不限定于备份到特定类型的存储设备,通过实现对应的通讯协议或应用接口,可将备份数据实时备份至各种本地或网络存储设备上,包括但不限于磁盘及磁盘阵列、NAS设备、磁带机及磁带库、光盘及光盘库、云存储等。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据库实时备份方法的数据库实时备份装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据库实时备份装置实施例中的具体限定可以参见上文中对于数据库实时备份方法的限定,在此不再赘述。
在一个实施例中,如图6所示,提供了一种数据库实时备份装置,包括:数据映射模块601、磁盘确认模块602和日志备份模块603,其中:
数据映射模块601,通过虚拟文件流,在数据块映射表中,确认与数据库中的重做日志的数据块的数据块标识对应的磁盘块标识;数据块映射表用于记录数据库中的数据库文件的各个数据块的数据块标识与磁盘设备的各个磁盘块的磁盘块标识之间的映射关系。
磁盘确认模块602,用于将磁盘设备中与磁盘块标识对应的磁盘块,确认为与数据库中的重做日志的数据块对应的目标磁盘块。
日志备份模块603,通过虚拟文件流,从目标磁盘块上读取出重做日志的数据块,对重做日志进行备份。
在一个实施例中,数据库实时备份模块还包括映射表创建模块,用于创建数据块映射表;根据数据块映射表,创建虚拟文件流。
在一个实施例中,映射表创建模块,还用于查询数据库的存储管理接口,获取组成数据库文件的各个数据块的数据块标识,以及存储各个数据块的磁盘块的磁盘块标识;根据数据块标识与磁盘块标识,创建数据块映射表。
在一个实施例中,日志备份模块603,还用于确认重做日志的日志类型;在重做日志的日志类型为归档重做日志的情况下,对归档重做日志进行备份;在重做日志的日志类型为在线重做日志的情况下,对在线重做日志中的各个待备份日志块进行备份。
在一个实施例中,日志备份模块603,还用于获取各个归档重做日志的元数据信息;归档重做日志的元数据信息至少包括各个归档重做日志的起始系统改变号;按照归档重做日志的起始系统号从小到大的顺序,对各个归档重做日志进行备份;
日志备份模块603,还用于获取各个在线重做日志的元数据信息;在线重做日志的元数据信息至少包括各个在线重做日志的日志序列号和起始系统改变号;按照在线重做日志的起始系统改变号从小到大的顺序,确认在线重做日志的各个日志块是否为待备份日志块;对各个待备份日志块进行备份。
在一个实施例中,日志备份模块603,还用于按照第一在线重做日志的日志块顺序,判断第一在线重做日志的各个日志块是否属于更新后的日志块;第一在线重做日志为在线重做日志中起始系统改变号最小的在线重做日志;在日志块属于更新后的日志块的情况下,将日志块确认为待备份日志块;在日志块不属于更新后的日志块的情况下,判断第一在线重做日志是否完成备份;在第一在线重做日志完成备份的情况下,对第二在线重做日志进行备份;第二在线重做日志是指,在在线重做日志中,按照在线重做日志的起始系统改变号从小到大的顺序,第一在线重做日志的下一个在线重做日志;在第一在线重做日志未完成备份的情况下,等待数据库更新日志块,并判断更新后的日志块是否为待备份日志块。
上述数据库实时备份装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储备份数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库实时备份方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
通过虚拟文件流,在数据块映射表中,确认与数据库中的重做日志的数据块的数据块标识对应的磁盘块标识;数据块映射表用于记录数据库中的数据库文件的各个数据块的数据块标识与磁盘设备的各个磁盘块的磁盘块标识之间的映射关系;
将磁盘设备中与磁盘块标识对应的磁盘块,确认为与数据库中的重做日志的数据块对应的目标磁盘块;
通过虚拟文件流,从目标磁盘块上读取出重做日志的数据块,对重做日志进行备份。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:创建数据块映射表;根据数据块映射表,创建虚拟文件流。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:查询数据库的存储管理接口,获取组成数据库文件的各个数据块的数据块标识,以及存储各个数据块的磁盘块的磁盘块标识;根据数据块标识与磁盘块标识,创建数据块映射表。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:确认重做日志的日志类型;在重做日志的日志类型为归档重做日志的情况下,对归档重做日志进行备份;在重做日志的日志类型为在线重做日志的情况下,对在线重做日志中的各个待备份日志块进行备份。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取各个归档重做日志的元数据信息;归档重做日志的元数据信息至少包括各个归档重做日志的起始系统改变号;按照归档重做日志的起始系统号从小到大的顺序,对各个归档重做日志进行备份;获取各个在线重做日志的元数据信息;在线重做日志的元数据信息至少包括各个在线重做日志的日志序列号和起始系统改变号;按照在线重做日志的起始系统改变号从小到大的顺序,确认在线重做日志的各个日志块是否为待备份日志块;对各个待备份日志块进行备份。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:按照第一在线重做日志的日志块顺序,判断第一在线重做日志的各个日志块是否属于更新后的日志块;第一在线重做日志为在线重做日志中起始系统改变号最小的在线重做日志;在日志块属于更新后的日志块的情况下,将日志块确认为待备份日志块;在日志块不属于更新后的日志块的情况下,判断第一在线重做日志是否完成备份;在第一在线重做日志完成备份的情况下,对第二在线重做日志进行备份;第二在线重做日志是指,在在线重做日志中,按照在线重做日志的起始系统改变号从小到大的顺序,第一在线重做日志的下一个在线重做日志;在第一在线重做日志未完成备份的情况下,等待数据库更新日志块,并判断更新后的日志块是否为待备份日志块。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(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.根据权利要求2所述的方法,其特征在于,所述创建数据块映射表,包括:
查询所述数据库的存储管理接口,获取组成所述数据库文件的各个数据块的数据块标识,以及存储所述各个数据块的磁盘块的磁盘块标识;
根据所述数据块标识与所述磁盘块标识,创建所述数据块映射表。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述对所述重做日志进行备份,包括:
确认所述重做日志的日志类型;
在所述重做日志的日志类型为归档重做日志的情况下,对所述归档重做日志进行备份;
在所述重做日志的日志类型为在线重做日志的情况下,对所述在线重做日志中的各个待备份日志块进行备份。
5.根据权利要求4所述的方法,其特征在于,所述对所述归档重做日志进行备份,包括:
获取各个所述归档重做日志的元数据信息;所述归档重做日志的元数据信息至少包括各个所述归档重做日志的起始系统改变号;
按照所述归档重做日志的起始系统号从小到大的顺序,对各个所述归档重做日志进行备份;
所述对所述在线重做日志中的各个待备份日志块进行备份,包括:
获取各个所述在线重做日志的元数据信息;所述在线重做日志的元数据信息至少包括各个所述在线重做日志的日志序列号和起始系统改变号;
按照所述在线重做日志的起始系统改变号从小到大的顺序,确认所述在线重做日志的各个日志块是否为待备份日志块;
对各个所述待备份日志块进行备份。
6.根据权利要求5所述的方法,其特征在于,所述按照所述在线重做日志的起始系统改变号从小到大的顺序,确认所述在线重做日志的各个日志块是否为待备份日志块,包括:
按照第一在线重做日志的日志块顺序,判断所述第一在线重做日志的各个日志块是否属于更新后的日志块;所述第一在线重做日志为所述在线重做日志中起始系统改变号最小的在线重做日志;
在所述日志块属于更新后的日志块的情况下,将所述日志块确认为待备份日志块;
在所述日志块不属于更新后的日志块的情况下,判断所述第一在线重做日志是否完成备份;
在所述第一在线重做日志完成备份的情况下,对第二在线重做日志进行备份;所述第二在线重做日志是指,在所述在线重做日志中,按照所述在线重做日志的起始系统改变号从小到大的顺序,所述第一在线重做日志的下一个在线重做日志;
在所述第一在线重做日志未完成备份的情况下,等待所述数据库更新日志块,并判断更新后的日志块是否为所述待备份日志块。
7.一种数据库实时备份装置,其特征在于,所述装置包括:
数据映射模块,用于通过虚拟文件流,在数据块映射表中,确认与数据库中的重做日志的数据块的数据块标识对应的目标磁盘块标识;所述数据块映射表用于记录所述数据库中的数据库文件的各个数据块的数据块标识与磁盘设备的各个磁盘块的磁盘块标识之间的映射关系;所述虚拟文件流为根据所述数据块映射表创建得到的,用于读取所述数据库文件的程序组件;磁盘确认模块,用于将所述磁盘设备中与所述目标磁盘块标识对应的磁盘块,确认为与所述数据库中的重做日志的数据块对应的目标磁盘块;
日志备份模块,用于通过所述虚拟文件流,从所述目标磁盘块上读取出所述重做日志的数据块,对所述重做日志进行备份。
8.根据权利要求7所述的装置,其特征在于,所述数据库实时备份装置还包括映射表创建模块,用于创建数据块映射表;根据所述数据块映射表,创建虚拟文件流。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202211126923.2A 2022-09-16 2022-09-16 数据库实时备份方法、装置、计算机设备和存储介质 Active CN115454717B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211126923.2A CN115454717B (zh) 2022-09-16 2022-09-16 数据库实时备份方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211126923.2A CN115454717B (zh) 2022-09-16 2022-09-16 数据库实时备份方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN115454717A CN115454717A (zh) 2022-12-09
CN115454717B true CN115454717B (zh) 2023-05-05

Family

ID=84304834

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211126923.2A Active CN115454717B (zh) 2022-09-16 2022-09-16 数据库实时备份方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN115454717B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116541469B (zh) * 2023-07-07 2024-04-09 深圳市科力锐科技有限公司 数据同步的实现方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442560A (zh) * 2019-08-14 2019-11-12 上海达梦数据库有限公司 一种日志重演方法、装置、服务器和存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1387269A1 (en) * 2002-08-02 2004-02-04 Hewlett Packard Company, a Delaware Corporation Backup system and method of generating a checkpoint for a database
US7996363B2 (en) * 2004-05-19 2011-08-09 Oracle International Corporation Real-time apply mechanism in standby database environments
CN101719165B (zh) * 2010-01-12 2014-12-17 浪潮电子信息产业股份有限公司 一种实现数据库高效快速备份的方法
CN109445989A (zh) * 2018-10-22 2019-03-08 郑州云海信息技术有限公司 一种文件系统数据备份方法及装置
CN110209528B (zh) * 2018-11-30 2022-10-28 腾讯科技(深圳)有限公司 数据备份方法、装置、服务器以及存储介质
CN111414320B (zh) * 2020-02-20 2023-06-06 上海交通大学 基于日志文件系统的非易失内存构建磁盘cache的方法及系统
CN114595096A (zh) * 2021-09-29 2022-06-07 湖南亚信安慧科技有限公司 数据库热备份的方法、装置、电子设备及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442560A (zh) * 2019-08-14 2019-11-12 上海达梦数据库有限公司 一种日志重演方法、装置、服务器和存储介质

Also Published As

Publication number Publication date
CN115454717A (zh) 2022-12-09

Similar Documents

Publication Publication Date Title
US8352490B2 (en) Method and system for locating update operations in a virtual machine disk image
US8234475B2 (en) Save set bundling for staging
US8332442B1 (en) Automated restoration of links when restoring individual directory service objects
US20080016131A1 (en) Emulated storage system
WO2018098972A1 (zh) 一种日志恢复方法、存储装置和存储节点
US9760453B2 (en) Two-tier failover service for data disaster recovery
US11221785B2 (en) Managing replication state for deleted objects
US10146633B2 (en) Data recovery from multiple data backup technologies
US9753792B2 (en) Method and system for byzantine fault tolerant data replication
WO2021051627A1 (zh) 基于数据库的批量导入方法、装置、设备及存储介质
US11409711B2 (en) Barriers for dependent operations among sharded data stores
US20210165760A1 (en) Managing Dependent Delete Operations among Data Stores
US20210165768A1 (en) Replication Barriers for Dependent Data Transfers between Data Stores
CN115454717B (zh) 数据库实时备份方法、装置、计算机设备和存储介质
US10223205B2 (en) Disaster recovery data sync
US8843450B1 (en) Write capable exchange granular level recoveries
CN115114370B (zh) 主从数据库的同步方法、装置、电子设备和存储介质
DE112016004457T5 (de) Vervielfältigen von Daten in Datenspeichervorrichtungen eines Verknüpfungsvolumens
CN110134551A (zh) 一种持续数据保护方法及装置
US11429620B2 (en) Data storage selection based on data importance
US7921324B2 (en) Providing file system availability during local path failure of a non-server node
US11074002B2 (en) Object storage system with meta object replication
CN116257531B (zh) 一种数据库空间回收方法
TWI812510B (zh) 區塊鏈稽核系統
CN117539690B (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