CN111104389A - 用于在信息技术环境中智能地使数据库备份操作的负载平衡的方法和系统 - Google Patents

用于在信息技术环境中智能地使数据库备份操作的负载平衡的方法和系统 Download PDF

Info

Publication number
CN111104389A
CN111104389A CN201910957202.8A CN201910957202A CN111104389A CN 111104389 A CN111104389 A CN 111104389A CN 201910957202 A CN201910957202 A CN 201910957202A CN 111104389 A CN111104389 A CN 111104389A
Authority
CN
China
Prior art keywords
backup operation
client node
pai
database
operation phase
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.)
Pending
Application number
CN201910957202.8A
Other languages
English (en)
Inventor
阿蒂雅·R·班索
图沙尔·B·德泽
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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Publication of CN111104389A publication Critical patent/CN111104389A/zh
Pending legal-status Critical Current

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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/1456Hardware arrangements for backup
    • 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
    • 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
    • G06F11/1461Backup scheduling policy
    • 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
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • 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/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种用于在信息技术(IT)环境中智能地使数据库备份操作的负载平衡的方法和系统。具体地说,本文公开的方法和系统可以针对将任何给定的数据库备份操作分解为各种组成性备份操作阶段。此外,可以通过负载平衡协调在客户端节点群集中的适当客户端节点上执行各种备份操作阶段中的每个连续备份操作阶段。可以至少基于用于在所述客户端节点上执行数据库备份操作的资源的可用性与所述群集中的其它客户端节点上的资源的可用性来确定对用于执行给定备份操作阶段的所述适当客户端节点的选择。

Description

用于在信息技术环境中智能地使数据库备份操作的负载平衡 的方法和系统
背景技术
数据库备份操作通常是资源密集型进程,这会消耗任何给定服务器上可用的大量计算资源。
附图说明
图1A展示根据本发明的一个或多个实施例的系统。
图1B展示根据本发明的一个或多个实施例的客户端节点。
图2展示根据本发明的一个或多个实施例的备份操作阶段。
图3展示根据本发明的一个或多个实施例的全局负载分布表。
图4展示描述根据本发明的一个或多个实施例的用于处理数据库备份初始化指令的方法的流程图。
图5展示描述根据本发明的一个或多个实施例的用于处理备份操作阶段包的方法的流程图。
图6展示描述根据本发明的一个或多个实施例的用于确定保护可用性索引的方法的流程图。
图7展示描述根据本发明的一个或多个实施例的用于处理备份继续查询的方法的流程图。
图8展示描述根据本发明的一个或多个实施例的用于处理远程索引查询的方法的流程图。
图9展示描述根据本发明的一个或多个实施例的用于处理备份操作阶段包的方法的流程图。
图10展示根据本发明的一个或多个实施例的计算系统。
图11A-11Q展示根据本发明的一个或多个实施例的实例场景。
图12A-12E展示根据本发明的一个或多个实施例的实例全局负载分布表。
具体实施方式
现在将参考附图详细描述本发明的具体实施例。在以下对本发明实施例的详细描述中,阐述了许多具体细节以便提供对本发明的更透彻理解。然而,对于本领域普通技术人员显而易见的是,可以在没有这些具体细节的情况下实践本发明。在其它情况下,没有详细描述众所周知的特征以避免使描述不必要地复杂化。
在图1A-12E的以下描述中,在本发明的各种实施例中,关于一个图描述的任一组件可等效于关于任一其它图描述的一个或多个相似命名的组件。为简洁起见,将不关于每一图来重复此等组件的描述。因此,每一图的组件的每个实施例被以引用的方式并入,且假定为任选地存在于具有一个或多个相似命名的组件的每一其它图内。另外,根据本发明的各种实施例,图的组件的任何描述应被解释为任选实施例,其可除了关于任一其它图中的对应的相似命名的组件描述的实施例外再实施,与所述实施例一起实施,或代替所述实施例加以实施。
在整个申请中,序数(例如,第一、第二、第三等)可以用作元件(即,应用中的任何名词)的形容词。除非明确公开,例如通过使用术语“之前”、“之后”、“单个”和其它此类术语,否则使用序数不一定暗示或创建元件的任何特定排序,也不限制任何元件仅为单个元件。相反,序数的使用是为了区分元件。举例来说,第一元件不同于第二元件,并且第一元件可以涵盖多于一个元件并且在元件排序中占先于(或先于)第二元件。
大体上,本发明的实施例涉及用于在信息技术(IT)环境中智能地使数据库备份操作的负载平衡的方法和系统。具体地说,本发明的一个或多个实施例可以针对将任何给定的数据库备份操作分解为各种组成性备份操作阶段。此外,可以通过负载平衡协调在客户端节点群集中的适当客户端节点上执行各种备份操作阶段中的每个连续备份操作阶段。可以至少基于用于在所述客户端节点上执行数据库备份操作的资源的可用性与所述群集中的其它客户端节点上的资源的可用性来确定用于执行给定备份操作阶段的所述适当客户端节点的选择。
当在服务器(即客户端节点)上实例化数据库备份操作时,数据库备份操作往往会消耗服务器上的大量可用资源。在消耗大量可用资源时,服务器的性能(支持执行其它任务)被削弱。本发明的实施例随后通过以下手段来解决这一难题:首先,将任何给定的数据库备份操作分成若干备份操作阶段;第二,将执行每个备份操作阶段所涉及的工作负载指派给适当的客户端节点(即,形成负载平衡群集的两个或更多个客户端节点中的客户端节点),所述客户端节点在接下来将执行相应备份操作阶段的时间点上展现最多可用资源。在以这种方式的使数据库备份操作的负载平衡时,本发明的一个或多个实施例:针对整个数据库备份操作减轻对单个服务器的目标性能命中;无需管理员实施为处理数据库备份操作而保留的固定时间表;并且无需管理员显式部署将独自负责执行数据库备份操作的新服务器。本发明实施例的其它优点包含但不限于:促进较小的备份窗口以完成数据库备份操作;最大限度地减少因数据传送而导致备份失败的可能性;最小化由于任何特定服务器上的资源紧张而导致备份失败的可能性;以及即使形成负载平衡群集的一个或多个客户端节点存在故障传送,仍然继续数据库备份操作。
图1A展示根据本发明的一个或多个实施例的系统。系统(100)可以包含两个或更多个客户端节点(102A-102N)、一个或多个数据库(104A-104N)和远程备份存储装置(RBS)(106)。下文描述这些组件中的每一个。
在本发明的一个实施例中,上述组件可以通过网络(未展示)(例如,局域网(LAN)、例如因特网的广域网(WAN)、移动网络等)直接或间接地彼此连接。可以使用有线和/或无线连接的任何组合来实施网络。在上述组件间接连接的实施例中,可以存在便于通信、信息交换和/或资源共享的其它网络组件或系统(例如,交换机、路由器、网关等)。此外,上述组件可以使用有线和/或无线通信协议的任何组合彼此通信。
在本发明的一个实施例中,每个客户端节点(102A-102N)可以表示设备-例如,服务器,其可以是可以驻留在数据中心中的物理服务器或可以驻留在云计算环境中的虚拟服务器;或者可以是类似于图10中所示的示例性计算系统的任何计算系统。每个客户端节点(102A-102N)可以包含在本地或通过网络生成、发送、接收和处理请求和答复的功能性。此外,两个或更多个客户端节点(102A-102N)可以共同形成负载平衡群集(未展示)或一组链接的节点,它们一起工作以实施一个或多个应用和/或服务。在本发明的一个实施例中,两个或更多个客户端节点(102A-102N)可以一起工作以智能地并且有效地使数据库备份操作的负载平衡。普通技术人员将理解,在不脱离本发明的范围的情况下,每个客户端节点(102A-102N)可以执行其它功能性。客户端节点(102A-102N)在下文参考图1B进一步详细描述。
在本发明的一个实施例中,每个数据库(104A-104N)可以表示用于组织和合并与两个或更多个客户端节点(102A-102N)相关的各种形式的信息的本地存储库。每个数据库(104A-104N)可以在逻辑上跨越一个或多个物理存储装置和/或介质(未展示),其可以是或可以不是相同类型或共同位于同一物理站点。此外,可以使用任何存储机制(例如,文件系统、表或记录的集合等)来布置在每个数据库(104A-104N)中合并的信息。在本发明的一个实施例中,每个数据库(104A-104N)可以使用永久性(即,非易失性)存储装置来实施。永久性存储装置的实例包含但不限于光学存储装置、磁性存储装置、NAND闪存、NOR闪存、磁性随机存取存储器(M-RAM)、自旋扭矩磁性RAM(ST-MRAM)、相变存储器(PCM),或定义为非易失性存储类存储器(SCM)的任何其它存储介质。
在本发明的一个实施例中,RBS(106)可以表示数据备份、存档和/或灾难恢复存储系统。可以使用一个或多个服务器(未展示)来实施RBS(106)。每个服务器可以是物理服务器(即,可以驻留在数据中心中)或虚拟服务器(即,可以驻留在云计算环境中)。在本发明的一个实施例中,RBS(106)可以使用类似于图10中所示的示例性计算系统的一个或多个计算系统来实施。此外,RBS(106)可以包含以下功能性:从各种客户端节点(102A-102N)接收目标数据库快照;并且在进一步构成RBS(106)的一个或多个物理存储装置和/或介质(未展示)的集合内合并这些所接收的目标数据库快照。目标数据库快照可以指存储在数据库(104A-104N)中的各种形式的信息的至少一部分的精确的基于图像的副本。此外,普通技术人员将理解,在不脱离本发明的范围的情况下,RBS(106)可以执行其它功能性。
尽管图1A展示组件的配置,但在不脱离本发明的范围的情况下,可以使用其它系统配置。
图1B展示根据本发明的一个或多个实施例的客户端节点。如上所述,各种客户端节点(102A-102N)可以表示共同形成负载平衡群集(未展示)的设备,其可以一起工作以实施一个或多个应用和/或服务。在本发明的一个实施例中,这些各种客户端节点(102A-102N)可以一起工作以智能地并且有效地使数据库备份操作的负载平衡。就此而言,每个客户端节点(102A-102N)可以包含操作性地连接到负载平衡服务(LBS)(124)的数据备份代理(DBA)(120),所述负载平衡服务又可以操作性地连接到进程监视服务(PMS)(122)和驻留在一个或多个其它(远程)客户端节点(102A-102N)上的一个或多个其它(远程)LBS(124)。下文描述这些客户端节点子组件中的每一个。
在本发明的一个实施例中,DBA(120)可以是在客户端节点(102A-102N)的底层硬件上执行的计算机程序或进程(即,计算机程序的实例)。具体地说,DBA(120)可以是计算机程序或进程,其任务是至少部分地管理客户端节点(102A-102N)上的数据备份和恢复操作。就此而言,DBA(120)可以包含以下功能性:根据本发明的实施例接收和处理数据库备份初始化指令(参见例如图4);以及根据本发明的一个或多个实施例接收和处理备份操作阶段包(参见例如图5)。普通技术人员将理解,在不脱离本发明的范围的情况下,DBA(120)可以执行其它功能性。
在本发明的一个实施例中,PMS(122)可以是在客户端节点(102A-102N)的底层硬件上执行的计算机程序或进程(即,计算机程序的实例)。具体地说,PMS(122)可以是计算机程序或进程,其任务是至少部分地确定客户端节点(102A-102N)的保护可用性索引(PAI)。就此而言,根据本发明的一个或多个实施例,PMS(122)可以包含以下功能性:收集备份关键参数(BCP)(下文描述)并且至少使用BCP来计算PAI(参见例如图6)。普通技术人员将理解,在不脱离本发明的范围的情况下,PMS(122)可以执行其它功能性。
在本发明的一个实施例中,LBS(124)可以是在客户端节点(102A-102N)的底层硬件上执行的计算机程序或进程(即,计算机程序的实例)。具体地说,LBS(124)可以是至少部分地与其它(远程)客户端节点(102A-102N)上的其它(远程)LBS(124)一起执行任务或协调使跨负载平衡群集(未展示)的数据备份和恢复操作的负载平衡的计算机程序或进程。就此而言,LBS(124)可以包含以下功能性:根据本发明的一个或多个实施例接收和处理备份继续查询(参见例如图7);根据本发明的一个或多个实施例接收和处理远程索引查询(参见例如图8);根据本发明的一个或多个实施例接收和处理备份操作阶段包(参见例如图9);以及维护关于协调使跨负载平衡群集的数据备份和恢复操作的负载平衡的全局负载分布表(GLDT)(参见例如图3)。普通技术人员将理解,在不脱离本发明的范围的情况下,LBS(124)可以执行其它功能性。
尽管图1B展示子组件的配置,但在不脱离本发明的范围的情况下,可以存在其它客户端节点子组件。
图2展示根据本发明的一个或多个实施例的备份操作阶段。当以所呈现的顺序次序执行时,下文概述的各种备份操作阶段(200)可以构成单个完整的数据库备份操作。各种备份操作阶段(200)包含但不限于:(i)阶段0(S0)-目标选择(202);(ii)阶段1(S1)-目标数据收集(204);(iii)阶段2(S2)-目标备份历史验证(206);(iv)阶段3(S3)-目标属性验证(208);(v)阶段4(S4),目标快照生成(210);(vi)阶段5(S5)-目标快照翻转(212);(vii)阶段6(S6)-快照后清理(214);(viii)阶段7(S7)-备份提交(216)。下文描述这些备份操作阶段(200)中的每一个。
在本发明的一个实施例中,任何给定数据库备份操作的阶段0(S0)(202)备份操作阶段可以针对目标选择。在此备份操作阶段,可以执行的过程可以包含但不限于:获得或标识给定数据库备份操作所针对的每个目标数据库的目标数据库ID和/或目标数据库位置。目标数据库ID可以指可以唯一地标识给定目标数据库的字符串(例如,字母、数字、符号等)。目标数据库位置可以指可以指定给定目标数据库所驻留的文件系统(即,路径)层级中的唯一位置的字符串(例如,字母、数字、符号等)。此外,此备份操作阶段的输出(其可以从执行上述过程产生)可以包含但不限于:分别与一个或多个目标数据库相关联的一个或多个目标数据库ID和/或一个或多个目标数据库位置。
在本发明的一个实施例中,任何给定数据库备份操作的阶段1(S1)(204)备份操作阶段可以针对目标数据收集。在此备份操作阶段,可以执行的过程可以包含但不限于:获得描述给定数据库备份操作所针对的每个目标数据库或与之相关联的各种目标数据库相关数据点。目标数据库相关数据点的实例包含但不限于目标数据库大小、目标数据库类型、目标数据库配置、目标数据库模式、目标数据库压缩类型、目标数据库创建或上次修改日期等。此外,可用于执行上述过程的此备份操作阶段的输入可以至少包含给定数据库备份操作的阶段0(S0)备份操作阶段的上述输出。此外,此备份操作阶段的输出(其可以从执行上述过程产生)可以包含但不限于:分别与一个或多个目标数据库相关联的一组或多组目标数据库元数据(即,目标数据库相关数据点)。
在本发明的一个实施例中,任何给定数据库备份操作的阶段2(S2)(206)备份操作阶段可以针对目标备份历史验证。在此备份操作阶段,可以执行的过程可以包含但不限于:获得给定数据库备份操作所针对的每个目标数据库的备份历史或链。备份历史/链可以指可以记录应当对给定目标数据库中的初始信息和对给定目标数据库的更改进行排序以保证给定目标数据库的适当恢复的适当次序的备份序列。备份历史/链可以包含一个或多个备份,其可以指定完整备份,然后是零或更多增量备份。完整备份可能需要在时间点生成与给定目标数据库相关联的所有状态、配置和/或元数据的副本(即,快照),而增量备份可能替代地仅仅需要生成与从上一次(或前一次)数据库备份操作以来可能已经发生的与给定目标数据库相关联的状态、配置和/或元数据的更改的副本(即,快照)。此外,此备份操作阶段的输入(其可以用于执行上述过程)可以至少包含给定数据库备份操作的阶段0(S0)和阶段1(S1)备份操作阶段的上述输出。此外,此备份操作阶段的输出(其可以从执行上述过程产生)可以包含但不限于:分别与一个或多个目标数据库相关联的一组或多组目标数据库备份元数据(即,目标数据库备份历史/链)。
在本发明的一个实施例中,任何给定数据库备份操作的阶段3(S3)(208)备份操作阶段可以针对目标属性验证。在此备份操作阶段,可以执行的过程可以包含但不限于:确定给定数据备份操作是否可以针对给定目标数据库进行;更具体地说,确定给定目标数据库是无效、不一致还是排除。无效目标数据库可以指无法建立连接或访问的目标数据库。不一致的目标数据库可以指包含对与目标数据库的配置文件中维护的信息不一致的事务日志的更改的目标数据库。排除的目标数据库可以指可以基于用户定义的策略从数据库备份操作列入黑名单的目标数据库。此外,此备份操作阶段的输入(其可以用于执行上述过程)可以至少包含给定数据库备份操作的阶段0(S0)和阶段2(S2)备份操作阶段的上述输出(s)。此外,此备份操作阶段的输出(其可以从执行上述过程产生)可以包含但不限于:分别与一个或多个有效、一致或包含的目标数据库相关联的一个或多个目标数据库ID和/或一个或多个目标数据库位置。
在本发明的一个实施例中,任何给定数据库备份操作的阶段4(S4)(210)备份操作阶段可以针对目标快照生成。在此备份操作阶段,可以执行的过程可以包含但不限于:生成给定数据库备份操作所针对的每个有效、一致或包含的目标数据库的快照。快照可以表示与给定目标数据库有关的状态、配置和/或元数据的任何粒度(例如,一个或多个卷)的时间点、完整或增量、精确副本。此外,此备份操作阶段的输入(其可以用于执行上述过程)可以至少包含给定数据库备份操作的阶段3(S3)备份操作阶段的上述输出。此外,此备份操作阶段的输出(其可以从执行上述过程产生)可以包含但不限于:一个或多个有效、一致或包含的目标数据库的相应的一个或多个目标数据库快照。
在本发明的一个实施例中,任何给定数据库备份操作的阶段5(S5)(212)备份操作阶段可以针对目标快照翻转。在此备份操作阶段,可以执行的过程可以包含但不限于:分配数据翻转所有权(下文描述)(参见例如图3);将一个或多个目标数据库快照传送到远程备份存储装置(RBS)(参见例如图1A)以进行合并。此外,此备份操作阶段的输入(其可以用于执行上述过程)可以至少包含给定数据库备份操作的阶段3(S3)和阶段4(S4)备份操作阶段的上述输出,以及跨各种客户端节点维护的全局负载分布表(GLDT)(参见例如图3)。此外,此备份操作阶段的输出(其可以从执行上述过程产生)可以包含但不限于:分别指示一个或多个有效、一致或包含的目标数据库的快照传送完成状态的一个或多个翻转完成状态。
在本发明的一个实施例中,任何给定数据库备份操作的阶段6(S6)(214)备份操作阶段可以针对快照后清理。在此备份操作阶段,可以执行的过程可以包含但不限于:移除在给定数据库备份操作中创建的临时文件;释放分配以支持给定数据库备份操作的先前备份操作阶段的存储器;以及删除与一个或多个无效、不一致或排除的目标数据库相关联的不需要的数据和/或元数据。此外,此备份操作阶段的输入(其可以用于执行上述过程)可以至少包含给定数据库备份操作的阶段3(S3)和阶段5(S5)备份操作阶段的上述输出。此外,此备份操作阶段的输出(其可以从执行上述过程产生)可以包含但不限于:一个或多个清理完成状态,其分别指示对一个或多个有效、一致或包含的目标数据库的内务处理任务完成的状态。
在本发明的一个实施例中,任何给定数据库备份操作的阶段7(S7)(216)备份操作阶段可以针对备份提交。在此备份操作阶段,可以执行的过程可以包含但不限于:为给定数据库备份操作所针对的每个有效、一致或包含的目标数据库提交快照;以及更新备份后相关元数据(例如,更新目标数据库备份历史或链(如上所述))以反映针对每个有效、一致或包含的目标数据库最近执行的给定数据库备份操作。此外,此备份操作阶段的输入(其可以用于执行上述过程)可以至少包含给定数据库备份操作的阶段3(S3)和阶段6(S6)备份操作阶段的上述输出。此外,此备份操作阶段的输出(其可以从执行上述过程产生)可以包含但不限于:一个或多个提交完成状态,其分别指示一个或多个有效、一致或包含的目标数据库数据库的数据库备份完成状态。
图3展示根据本发明的一个或多个实施例的全局负载分布表(GLDT)。GLDT(300)可以表示用于存储和跟踪数据翻转所有权映射的数据对象或结构。数据翻转所有权映射可以跟踪与一个或多个目标数据库有关的快照(如上所述),其被排入队列以由给定客户端节点传送到或合并在远程备份存储装置(RBS)中(参见例如图1A)。此外,可以在负载平衡群集的各种客户端节点上执行的各种负载平衡服务(LBS)(参见例如图1B)上共享和/或维护GLDT(300)。
在本发明的一个实施例中,可以通过一个或多个GLDT条目(302A-302N)存储和跟踪这些前述数据翻转所有权映射。每个GLDT条目(302A-302N)可以存储和跟踪负载平衡群集的不同客户端节点的数据翻转所有权映射。因此,任何给定的GDLT条目(302A-302N)可以包含指派给给定客户端节点的客户端节点标识符(ID)(304),以及分别与零个或多个目标数据库相关联的零个或多个目标数据库ID(306A-306N)。在本发明的一个实施例中,客户端节点ID(304)可以指可以唯一地标识给定客户端节点的字符串(例如,字母、数字、符号等),而目标数据库ID(306A-306N)可以指可以唯一地标识给定目标数据库的字符串(例如,字母、数字、符号等)。此外,客户端节点ID(304)和目标数据库ID(306A-306N)可以各自延伸任何长度并且可以包含任何字符组合。作为实例,客户端节点ID(304)和目标数据库ID(306A-306N)可以各自通过字母数字串或通过以十六进制符号表达的N位整数(其中N>0)来表示。
在本发明的一个实施例中,可以基于由用户偏好控制的静态负载分布算法以及在GLDT(300)初始化时实例化和/或执行的各种工作负载的公平负载分布来初始化在GLDT(300)中存储和跟踪的一个或多个数据翻转所有权映射。对于任何给定的数据库备份操作,在执行阶段5(S5)(如上所述)备份操作阶段期间或之后可以发生GLDT(300)初始化。此外,可以至少部分地基于旨在减轻快照翻转(即,快照传送)拥塞的客户端节点的可用性来更新在GLDT(300)中存储和跟踪的一个或多个数据翻转所有权映射。也就是说,基于从拥塞或占用的客户端节点到可用或空闲客户端节点的数据翻转所有权的重新指派,一个或多个数据翻转所有权映射可能更改以移除或添加一个或多个目标数据库ID(306A-306N)。
图4展示描述根据本发明的一个或多个实施例的用于处理数据库备份初始化指令的方法的流程图。下文概述的各种步骤可以由驻留在任何客户端节点上的数据备份代理(DBA)来执行(参见例如图1B)。此外,尽管顺序地呈现和描述了流程图中的各种步骤,但普通技术人员将理解,一些或所有步骤可以按不同次序执行、可以组合或省略,并且一些或所有步骤可以并行执行。
转到图4,在步骤400中,接收数据库备份初始化指令。在本发明的一个实施例中,可以从访问客户端节点的用户接收数据库备份初始化指令,或替代地,从由图1A所示系统的管理员操作的计算系统(参见例如图10)接收数据库备份初始化指令。此外,数据库备份初始化指令可以关于针对目标数据库的数据库备份操作的实例化。因此,数据库备份初始化指令可以包含与前述目标数据库相关联的目标数据库标识符(ID)。
在步骤402中,响应于数据库备份初始化指令(在步骤400中接收),向本地负载平衡服务(LBS)发出备份继续查询(参见例如图1B)。在本发明的一个实施例中,本地LBS可以表示可以在可以执行图4中公开的方法的DBA也可以在其上执行的同一客户端节点上执行的LBS。此外,备份继续查询可以是对继续执行针对目标数据库的数据库备份操作的备份操作阶段(参见例如图2)的许可的请求,其可能已经通过所接收的数据库备份初始化指令来实例化。
在步骤404中,从本地LBS接收备份继续响应。在本发明的一个实施例中,备份继续响应可以表示对备份继续查询的答复(在步骤402中发布)。此外,备份继续响应可以包含进行或委托指示符。进行指示符可以实施为指示DBA(执行图4中公开的方法)执行针对目标数据库的数据库备份操作的当前备份操作阶段的通知或指令。另一方面,委托指示符可以实施为指示DBA停止并且随后不追求执行针对目标数据库的数据库备份操作的当前备份操作阶段的通知或指令。
在步骤406中,确定备份继续响应(在步骤404中接收)是否包含进行指示符(如上所述)。在本发明的一个实施例中,如果确定备份继续响应包含进行指示符,则所述过程可以进行到步骤410。另一方面,在本发明的另一实施例中,如果替代地确定备份继续包含代理指示符(如上所述),则所述过程可以替代地进行到步骤408。
在步骤408中,在确定(步骤406)备份继续响应(在步骤404中接收)包含委托指示符之后,随后将某些信息提供到本地LBS。具体地说,在本发明的一个实施例中,所提供的信息可以包含但不限于:(a)与目标数据库相关联的目标数据库ID;(b)与针对目标数据库的数据库备份操作的先前备份操作阶段(如果存在)相关联的备份操作阶段ID;(c)与针对目标数据库的数据库备份操作的先前备份操作阶段(如果存在)相关联的备份操作阶段输出。
在步骤410中,在确定(步骤406)备份继续响应(在步骤404中接收)包含进行指示符之后,标识针对目标数据库的数据库备份操作的当前备份操作阶段。在本发明的一个实施例中,基于数据库备份初始化指令(在步骤400中接收),要执行的当前备份操作阶段可以是第一备份操作阶段-即阶段1(S1)(参见例如图2)。在本发明的另一实施例中,可以替代地基于接收到与先前备份操作阶段相关联的备份操作阶段ID来标识要执行的当前备份操作阶段。在此后一实施例中,先前备份操作阶段可能已经由可以执行图4中所示的方法的DBA(即本地DBA)或驻留在远程客户端节点上的远程DBA执行。因此,与先前备份操作阶段相关联的上述备份操作阶段ID可能已经为本地DBA所知,或者可能已经经由本地LBS从远程客户端节点提供到本地DBA。
在步骤412中,随后执行针对目标数据库的数据库备份操作的当前备份操作阶段(在步骤410中标识)。在本发明的一个实施例中,执行当前备份操作阶段可能需要执行与在上文参考图2详细描述的相关备份操作阶段相关联的一个或多个任务。例如,如果阶段4(S4)-即,目标快照生成-被标识为要执行的当前备份操作阶段,则随后可以执行以上关于阶段4(S4)概述的一个或多个任务。此外,执行当前备份操作阶段可能进一步需要使用与先前备份操作阶段相关联的备份操作阶段输出(如果存在),这也在上文参考图2进一步描述。也就是说,在上述实例之后,执行阶段4(S4),被标识为所述非限制性实例的当前备份操作阶段,可能需要使用从先前备份操作阶段的执行产生的输出-即阶段3(S3)。如果本地DBA已经执行了先前备份操作阶段,则可以容易地获得此先前备份操作阶段输出,或如果远程DBA已经替代地执行了先前备份操作阶段,则可以从远程客户端节点提供此先前备份操作阶段输出。
在步骤414中,获得当前备份操作阶段输出(如果存在)。在本发明的一个实施例中,当前备份操作阶段输出可以表示从执行当前备份操作阶段产生的输出(在步骤412中执行)。此外,当前备份操作阶段输出可以包含与在上文参考图2详细描述的相关备份操作阶段相关联的输出。
在步骤416中,确定针对目标数据库的数据库备份操作是否完成。在当前备份操作阶段(在步骤410中标识)是最后的备份操作阶段-即阶段7(S7)-备份提交时,可以发生数据库备份操作的完成。随后,在本发明的一个实施例中,如果确定当前备份操作阶段是最后一个备份操作阶段,从而指示数据库备份操作完成,则所述过程结束。另一方面,在本发明的另一实施例中,如果替代地确定当前备份操作阶段不是最后的备份操作阶段,从而指示数据库备份操作未完成,则所述过程可以替代地进行到步骤402。在步骤402,可以向本地LBS发出另一备份继续查询,其可以关于请求继续执行针对目标数据库的数据库备份操作的下一备份操作阶段的许可。
图5展示描述根据本发明的一个或多个实施例的用于处理备份操作阶段包的方法的流程图。下文概述的各种步骤可以由驻留在任何客户端节点上的数据备份代理(DBA)来执行(参见例如图1B)。此外,尽管顺序地呈现和描述了流程图中的各种步骤,但普通技术人员将理解,一些或所有步骤可以按不同次序执行、可以组合或省略,并且一些或所有步骤可以并行执行。
转到图5,在步骤500中,接收备份操作阶段包。在本发明的一个实施例中,可以从本地负载平衡服务(LBS)接收备份操作阶段包,本地LBS即在执行图5中描述的方法的DBA(即,本地DBA)也可以在其上执行的同一客户端节点上执行的LBS。此外,备份操作阶段包可以包含但不限于:(a)与数据库备份操作所针对的目标数据库相关联的目标数据库标识符(ID);(b)与先前执行的备份操作阶段(如果存在)相关联的先前备份操作阶段ID;以及(c)从先前执行的备份操作阶段产生的先前备份操作阶段输出(如果存在)。此外,尽管由本地LBS提供的备份操作阶段包可以源自远程客户端节点,其中其上的远程DBA可以在远程客户端节点处执行上述先前执行的备份操作阶段(如果存在)。
在步骤502中,标识要执行的当前备份操作阶段。在本发明的一个实施例中,可以基于先前备份操作阶段ID(经由在步骤500中接收的备份操作阶段包获得)来标识要执行的当前备份操作阶段。作为实例,假设先前备份操作阶段ID属于数据库备份操作的阶段1(S1)-即,目标数据收集。遵循上文关于图2描述的备份操作阶段的顺序,要执行的当前备份操作阶段可以表示序列中的后续备份操作阶段,或阶段2(S2)-即,目标备份历史验证。
在步骤504中,随后执行针对目标数据库的数据库备份操作的当前备份操作阶段(在步骤502中标识)。在本发明的一个实施例中,执行当前备份操作阶段可能需要执行与在上文参考图2详细描述的相关备份操作阶段相关联的一个或多个任务。也就是说,在上文的实例之后,如果阶段2(S2)-即,目标备份历史验证-被标识为要执行的当前备份操作阶段,则可以随后执行上文关于阶段2(S2)概述的一个或多个任务。此外,执行当前备份操作阶段可能进一步需要使用先前备份操作阶段输出(如果存在)(经由在步骤500中接收的备份操作阶段包获得)。
在步骤506中,获得当前备份操作阶段输出(如果存在)。在本发明的一个实施例中,当前备份操作阶段输出可以表示从执行当前备份操作阶段产生的输出(在步骤504中执行)。此外,当前备份操作阶段输出可以包含与在上文参考图2详细描述的相关备份操作阶段相关联的输出。也就是说,在上文的实例之后,如果阶段2(S2)-即,目标备份历史验证-被标识为要执行的当前备份操作阶段,则可以随后获得上文关于阶段2(S2)概述的一个或多个输出。
在步骤508中,确定针对目标数据库的数据库备份操作是否完成。在当前备份操作阶段(在步骤502中标识)是最后的备份操作阶段-即阶段7(S7)-备份提交时,可以发生数据库备份操作的完成。随后,在本发明的一个实施例中,如果确定当前备份操作阶段是最后一个备份操作阶段,从而指示数据库备份操作完成,则所述过程结束。另一方面,在本发明的另一实施例中,如果替代地确定当前备份操作阶段不是最后的备份操作阶段,从而指示数据库备份操作未完成,则所述过程可替代地进行到步骤510。
在步骤510中,在确定(在步骤508中)针对目标数据库的数据库备份操作未完成之后,向本地LBS发出备份继续查询。在本发明的一个实施例中,备份继续查询可以是对继续执行针对目标数据库的数据库备份操作的下一备份操作阶段(即,在备份操作阶段序列(参见例如图2)中在当前备份操作阶段之后的备份操作阶段(在步骤502中标识))的许可的请求。
在步骤512中,从本地LBS接收备份继续响应。在本发明的一个实施例中,备份继续响应可以表示对备份继续查询(在步骤510中发布)的答复。此外,备份继续响应可以包含进行或委托指示符。进行指示符可以被实施为指示本地DBA(执行图5中公开的方法)继续执行针对目标数据库的数据库备份操作的下一备份操作阶段的通知或指令。另一方面,委托指示符可以实施为指示本地DBA停止并且随后不追求执行针对目标数据库的数据库备份操作的下一备份操作阶段的通知或指令。
在步骤514中,确定备份继续响应(在步骤512中接收)是否包含进行指示符(如上所述)。在本发明的一个实施例中,如果确定备份继续响应包含进行指示符,则所述过程可以进行到步骤502,其中可以标识针对目标数据库的数据库备份操作的下一备份操作阶段。另一方面,在本发明的另一实施例中,如果替代地确定备份继续包含委托指示符(如上所述),则所述过程可以替代地进行到步骤516。
在步骤516中,在确定(在步骤514中)备份继续响应(在步骤512中接收)包含委托指示符之后,随后将某些信息提供到本地LBS。具体地说,在本发明的一个实施例中,所提供的信息可以包含但不限于:(a)与目标数据库相关联的目标数据库ID;(b)与最近执行的针对目标数据库的数据库备份操作的当前备份操作阶段相关联的备份操作阶段ID;(c)从执行当前备份操作阶段(在步骤504中执行)产生的当前备份操作阶段输出(在步骤506中获得)。
图6展示描述根据本发明的一个或多个实施例的用于确定保护可用性索引的方法的流程图。下文概述的各种步骤可以由驻留在任何客户端节点(参见例如图1B)上的进程监视服务(PMS)来执行。此外,尽管顺序地呈现和描述了流程图中的各种步骤,但普通技术人员将理解,一些或所有步骤可以按不同次序执行、可以组合或省略,并且一些或所有步骤可以并行执行。
转到图6,在步骤600中,收集一个或多个备份关键参数(BCP)。在本发明的一个实施例中,每个BCP可以指可能至少部分地影响可以在本地客户端节点上执行的任何数据备份和/或恢复操作的因素(即,展现、使用、生成或以其它方式与本地客户端节点相关联)。本地客户端节点可以是可以执行图6中公开的方法的PMS可能正在其上执行的客户端节点。此外,可以在任何时间跨度上周期性地收集BCP,以便维护用于本地客户端节点的节点历史信息。因此,节点历史信息可以用于捕获各种数据备份和/或恢复相关数据点的历史简档。此外,BCP的实例包含但不限于节点计算资源、节点网络资源、节点存储资源、节点虚拟化资源和节点配置信息。
在本发明的一个实施例中,节点计算资源可以指可以被请求、分配和消费的可测量数量的计算相关资源类型。计算相关资源类型可以关于物理装置(即,硬件)、逻辑智能(即,软件)或其组合,其实施本地客户端节点的一些计算功能性。作为实例,本地客户端节点的计算相关资源类型组件可以包含但不限于中央处理单元(CPU)和图形处理单元(GPU)。此外,可能影响本地客户端节点上的数据备份和/或恢复操作的节点计算资源(或因素)的实例可以包含但不限于计算利用率百分比、计算等待时间、计算争用百分比、计算开销,等等。
在本发明的一个实施例中,节点网络资源可以指可以被请求、分配和消费的可测量数量的网络相关资源类型。网络相关资源类型可以关于物理装置(即,硬件)、逻辑智能(即,软件)或其组合,其实施本地客户端节点的一些联网功能性。作为实例,本地客户端节点的网络相关资源类型组件可以包含但不限于网络接口卡(NIC)和网络适配器。此外,可能影响本地客户端节点上的数据备份和/或恢复操作的节点网络资源(或因素)的实例可以包含但不限于网络带宽、网络延迟、数据传送网络吞吐量、网络抖动、数据接收速率、数据发射速率、丢包率等。
在本发明的一个实施例中,节点存储资源可以指可以被请求、分配和消费的可测量数量的存储相关资源类型。存储相关资源类型可以关于物理装置(即,硬件)、逻辑智能(即,软件)或其组合,其实施本地客户端节点的一些存储功能性。作为实例,本地客户端节点的存储相关资源类型组件可以包含但不限于易失性存储器(例如,随机存取存储器(RAM))和永久性存储装置(例如,闪存、硬盘驱动器(HDD)、固态驱动器(SSD)等)。此外,可能影响本地客户端节点上的数据备份和/或恢复操作的节点存储资源(或因素)的实例可以包含但不限于存储器利用率百分比、磁盘输入-输出(IO)等待时间、磁盘IO吞吐量、磁盘访问或响应时间、存储器压缩率、存储器争用百分比、堆栈分配百分比等。
在本发明的一个实施例中,节点虚拟化资源是指可以被请求、分配和消费的可测量数量的虚拟化相关资源类型。虚拟化相关资源类型可以关于物理装置(即,硬件)、逻辑智能(即,软件)或其组合,其实施本地客户端节点的一些虚拟化功能。作为实例,本地客户端节点的虚拟化相关资源类型组件可以包含但不限于虚拟机和容器。此外,可能影响本地客户端节点上的数据备份和/或恢复操作的节点虚拟化资源(或因素)的实例可以包含但不限于正在运行的虚拟机的数目、虚拟机磁盘输入-输出(IO)延迟、虚拟机输入输出每秒操作数(IOPS)、已启动虚拟机上的虚拟CPU(vCPU)的数目等。
在本发明的一个实施例中,节点配置信息可以指描述硬件、软件和/或固件组件的布置的元数据,其可以被安装并因此构成本地客户端节点。硬件组件可以表示本地客户端节点的任何物理或有形组件-例如,主板、CPU、GPU、RAM、电源、视频卡、存储装置、音频卡、NIC、输入外围设备、输出外围设备等。软件组件可以表示可以由一个或多个硬件组件执行的通过计算机指令或计算机可读程序代码实施的任何逻辑包,例如,操作系统(OS)、应用程序、实用程序、工具等。固件组件可以表示通过专用计算机指令实施的任何嵌入式逻辑包,所述指令控制一个或多个硬件组件的基本功能性-例如,装置驱动程序、基本输入输出系统(BIOS)、虚拟设备驱动程序等。此外,可能影响本地客户端节点上的数据备份和/或恢复操作的元数据(或因素)的实例可能包含但不限于版本号、型号、装置类别、制造商名称等。
在步骤602中,确定是否已从本地负载平衡服务(LBS)接收到本地索引查询。本地LBS可以表示可以在可以执行图6中描述的方法的PMS也可以在其上执行的同一客户端节点(即,本地客户端节点)上执行的LBS。此外,本地索引查询可以关于获得用于本地客户端节点的保护可用性索引(PAI)(下文描述)。随后,在本发明的一个实施例中,如果确定已经接收到本地索引查询,则所述过程可以进行到步骤604。另一方面,在本发明的另一实施例中,如果替代地确定尚未接收到本地索引查询,则所述过程可以进行到步骤600,其中继续收集BCP以便维护用于本地客户端节点的节点历史信息。
在步骤604中,在确定(在步骤602中)已从本地LBS接收到本地索引查询之后,确定本地客户端节点的当前PAI。在本发明的一个实施例中,本地客户端节点的当前PAI可以表示量化资源(例如,计算、存储器、存储装置、网络、虚拟化等)(例如,数值)的当前可用性、存在于本地客户端节点上、可以被分配用于执行针对目标数据库的数据库备份操作的备份操作阶段(参见例如图2)的度量。此外,确定本地客户端节点的当前PAI可能需要使用节点历史信息(通过步骤600中的BCP集合维护),其任何组合可以用作要由深度学习模型(DLM)(如下文所描述的)处理的输入数据。
在本发明的一个实施例中,DLM可以是机器学习和/或人工智能范例(例如,神经网络、决策树、支持向量机等)。可以通过一组参数和/或超参数来定义任何DLM,所述参数和/或超参数可以被优化或调整以确保功能的最佳性能-例如,节点历史信息到本地客户端节点的当前PAI的映射。参数可以指DLM内部的配置变量,其值可以从数据估计。参数的实例包含但不限于神经网络中的权重,以及支持向量机中的支持向量。相反,超参数可以指DLM外部的配置变量,并且其值可以不从数据估计。超参数的实例包含但不限于用于训练神经网络的学习速率,以及用于非线性支持向量机的软边际成本函数。此外,可以通过其它架构要素进一步定义任何DLM,其可以取决于可以对DLM建模的范例而变化。
例如,如果DLM遵循神经网络设计,则可以考虑的其它架构要素可以包含但不限于:层的数目、占据每个层的节点的数目、各种节点之间的互连配置、用于表示各节点间连接强度的权重的值、通过节点输出相对于节点输入和/或其它参数(例如,权重)计算的传播函数、管理一个或多个参数如何调整以产生期望的训练结果等的学习规则的特异性。作为另一实例,如果DLM遵循支持向量机设计,则可以考虑的其它架构要素可以替代地包含但不限于:定义最大化类之间边距的超平面的支持向量的数目、用于将低维输入数据转换为更高维空间的核函数、与误差项相关联的惩罚值、用于最佳拟合训练数据的核系数的特异性等。
在本发明的一个实施例中,可以通过监督学习来优化DLM。监督学习可以指通过训练样本和/或数据的分析来学习(或优化)。实质上,通过监督学习,可以通过连续馈送训练或样本节点历史信息来调整DLM的各种架构要素(例如,参数、超参数等)。在每个训练或样本节点历史信息被馈送到DLM(其可以由设置为特定值的各种架构要素来定义)之后,可以获得输出(例如,当前PAI)。随后可以将所获得的输出与已经馈送到DLM中进行处理的训练或样本节点历史信息的期望输出进行比较。此后,鉴于满足指定的优化目标(例如,所获得的输出与所需输出之间的误差的最小化),基于所获得的输出与期望输出之间的比较来调整与各种架构要素相关联的值。
此外,在本发明的一个实施例中,当处理每个连续的训练或样本节点历史信息时,各种架构要素的调整值可以被传送到后续训练或样本节点历史信息的处理中,其中各种架构元素可以进一步调整,直到还满足后续训练或样本节点历史信息的指定优化目标。在本发明的一个实施例中,训练/样本节点历史信息和对应期望输出可以从在任何时间跨度上收集的BCP的任何组合生成。普通技术人员将理解,在不脱离本发明的范围的情况下,可以使用其它学习方法(例如,无监督学习)来优化DLM。实质上,在本发明的一个实施例中,DLM可以包含以下功能性:接收输入数据(即,节点历史信息);使用一组优化的架构要素值处理输入数据;以及基于处理产生输出数据(即,当前PAI)。
在步骤606中,随后将当前PAI(在步骤604中确定)提供到本地LBS。具体地说,在本发明的一个实施例中,可以通过本地查询响应来提供当前PAI,所述本地查询响应可以表示对本地索引查询的答复(确定已经在步骤602中接收)。此后,所述过程可以进行到步骤600,其中继续收集BCP以便维护本地客户端节点的节点历史信息。
图7展示描述根据本发明的一个或多个实施例的用于处理备份继续查询的方法的流程图。下文概述的各种步骤可以由驻留在任何客户端节点上的负载平衡服务(LBS)来执行(参见例如图1B)。此外,尽管顺序地呈现和描述了流程图中的各种步骤,但普通技术人员将理解,一些或所有步骤可以按不同次序执行、可以组合或省略,并且一些或所有步骤可以并行执行。
转到图7,在步骤700中,接收备份继续查询。具体地说,在本发明的一个实施例中,可以从本地数据备份代理(DBA)接收备份继续查询。本地DBA可以表示在可以执行图7中描述的方法的LBS(即,本地LBS)也可以在其上执行的同一客户端节点上执行的DBA。此外,备份继续查询可以是本地DBA对于继续执行针对目标数据库的数据库备份操作的备份操作阶段(参见例如图2)的许可的请求。
在步骤702中,响应于备份继续查询(在步骤700中接收),随后向本地进程监视服务(PMS)发出本地索引查询。在本发明的一个实施例中,本地PMS可以表示在本地LBS(其可以执行图7中描述的方法)也可以在其上执行的同一客户端节点上执行的PMS。此外,本地索引查询可以关于获得用于本地客户端节点的保护可用性索引(PAI)(下文描述),其中本地客户端节点是本地DBA、本地LBS和本地PMS可能都在执行的客户端节点。
在步骤704中,从本地PMS接收本地索引响应。在本发明的一个实施例中,本地索引响应可以表示对本地索引查询(在步骤702中发布)的答复。此外,本地索引响应可以包含用于本地客户端节点的当前PAI。本地客户端节点的当前PAI可以表示量化资源(例如,计算、存储器、存储装置、网络带宽等)的当前可用性、存在于本地客户端节点上、可以被分配用于执行针对目标数据库的数据库备份操作的备份操作阶段(参见例如图2)的度量。
在步骤706中,分别向一个或多个远程LBS发出一个或多个远程索引查询。在本发明的一个实施例中,远程LBS可以表示可以在与其上可以执行本地LBS(其可以执行图7中公开的方法)的客户端节点不同的客户端节点上执行的LBS。此外,每个远程索引查询可以关于获得与远程客户端节点相对应的PAI。
在步骤708中,分别从一个或多个远程LBS接收一个或多个远程索引响应。在本发明的一个实施例中,每个远程索引响应可以表示对于对应远程索引查询的答复(在步骤706中发布)。此外,每个远程索引响应可以包含用于不同远程客户端节点的当前PAI。远程客户端节点的当前PAI可以表示量化资源(例如,计算、存储器、存储装置、网络带宽等)的当前可用性、存在于本地客户端节点上、可以被分配用于执行针对目标数据库的数据库备份操作的备份操作阶段(参见例如图2)的度量。
在步骤710中,确定本地客户端节点的当前PAI(经由步骤704中接收的本地索引响应获得)是否分别超过一个或多个远程客户端节点的一个或多个当前PAI(经由在步骤708中接收的一个或多个远程索引响应获得)。在本发明的一个实施例中,如果确定本地客户端节点的当前PAI确实超过远程客户端节点的每个当前PAI,则所述过程可以进行到步骤712。另一方面,在本发明的另一实施例中,如果替代地确定本地客户端节点的当前PAI不超过远程客户端节点的至少一个当前PAI,则所述过程可以替代地进行到步骤714。
在步骤712中,在确定(在步骤710中)本地客户端节点的当前PAI超过远程客户端节点的每个当前PAI之后,向本地DBA发出备份继续响应。在本发明的一个实施例中,备份继续响应可以表示对备份继续查询的答复(在步骤700中接收)。此外,备份继续响应可以包含进行指示符。进行指示符可以实施为指示本地DBA继续执行针对目标数据库的数据库备份操作的备份操作阶段(寻求其许可)的通知或指令。
在步骤714中,在替代地确定(在步骤710中)本地客户端节点的当前PAI不超过远程客户端节点的至少一个当前PAI之后,向本地DBA发出备份继续响应。在本发明的一个实施例中,备份继续响应可以表示对备份继续查询的答复(在步骤700中接收)。此外,备份继续响应可以包含委托指示符。委托指示符可以实施为指示本地DBA停止并且随后不寻求执行针对目标数据库的数据库备份操作的备份操作阶段(寻求其许可)的通知或指令。
在步骤716中,响应于备份继续响应(在步骤714中发出),从本地DBA接收回某些信息。具体地说,在本发明的一个实施例中,所接收的信息可以包含但不限于:(a)与目标数据库相关联的目标数据库ID;(b)与针对目标数据库的数据库备份操作的先前备份操作阶段(如果存在)相关联的备份操作阶段ID;以及(c)与针对目标数据库的数据库备份操作的先前备份操作阶段(如果存在)相关联的备份操作阶段输出。
在步骤718中,生成备份操作阶段包。具体地说,在本发明的一个实施例中,可以至少使用目标数据库ID、先前备份操作阶段ID和先前备份操作阶段输出(如果存在)(在步骤716中从本地DBA接收)来生成备份操作阶段包。之后,在步骤720中,标识与最高或最大当前PAI相关联的远程客户端节点。在本发明的一个实施例中,最高/最大当前PAI可以分别是远程客户端节点的当前PAI中的一个(通过在步骤708中接收的一个或多个远程索引响应获得)。此后,在步骤722中,随后将备份操作阶段包(在步骤718中生成)发射到远程LBS,其中远程LBS可以在远程客户端节点上执行(在步骤720中标识)。
图8展示描述根据本发明的一个或多个实施例的用于处理远程索引查询的方法的流程图。下文概述的各种步骤可以由驻留在任何客户端节点上的负载平衡服务(LBS)来执行(参见例如图1B)。此外,尽管顺序地呈现和描述了流程图中的各种步骤,但普通技术人员将理解,一些或所有步骤可以按不同次序执行、可以组合或省略,并且一些或所有步骤可以并行执行。
转到图8,在步骤800中,接收远程索引查询。在本发明的一个实施例中,可以从远程LBS接收远程索引查询。远程LBS可以表示可以在与其上可以执行本地LBS(其可以执行图8中公开的方法)的客户端节点不同的客户端节点上执行的LBS。此外,远程索引查询可以关于获得与本地客户端节点相对应的保护可用性索引(PAI)(下文描述),其中本地客户端节点是本地LBS可以在其上执行的客户端节点。
在步骤802中,响应于远程索引查询(在步骤800中接收),随后向本地进程监视服务(PMS)发出本地索引查询。在本发明的一个实施例中,本地PMS可以表示可以在本地LBS(其可以执行图8中描述的方法)也可以在其上执行的同一客户端节点上执行的PMS。此外,本地索引查询可以关于获得本地客户端节点的当前PAI(下文描述)。
在步骤804中,从本地PMS接收本地索引响应。在本发明的一个实施例中,本地索引响应可以表示对本地索引查询的答复(在步骤802中发布)。此外,本地索引响应可以包含用于本地客户端节点的当前PAI。本地客户端节点的当前PAI可以表示量化资源(例如,计算、存储器、存储装置、网络带宽等)的当前可用性、存在于本地客户端节点上、可以被分配用于执行针对目标数据库的数据库备份操作的备份操作阶段(参见例如图2)的度量。
在步骤806中,生成远程索引响应。在本发明的一个实施例中,远程索引响应可以表示对远程索引查询的答复(在步骤800中接收)。此外,远程索引响应可以包含用于本地客户端节点的当前PAI(经由在步骤804中接收的本地索引响应获得)和指派给本地客户端节点的客户端节点标识符(ID)。此后,在步骤808中,随后将远程索引响应(在步骤806中生成)发射到远程LBS,远程索引查询(在步骤800中接收)已经从所述远程LBS发送。
图9展示描述根据本发明的一个或多个实施例的用于处理备份操作阶段包的方法的流程图。下文概述的各种步骤可以由驻留在任何客户端节点上的负载平衡服务(LBS)来执行(参见例如图1B)。此外,尽管顺序地呈现和描述了流程图中的各种步骤,但普通技术人员将理解,一些或所有步骤可以按不同次序执行、可以组合或省略,并且一些或所有步骤可以并行执行。
转到图9,在步骤900中,接收备份操作阶段包。在本发明的一个实施例中,可以从远程LBS接收备份操作阶段包,远程LBS即在与本地LBS(其可以执行图9中公开的方法)可以执行的客户端节点不同的客户端节点(即,远程客户端节点)上执行的LBS。此外,备份操作阶段包可以包含但不限于:(a)与数据库备份操作所针对的目标数据库相关联的目标数据库标识符(ID);(b)与先前执行的备份操作阶段(如果存在)相关联的先前备份操作阶段ID(参见例如图2);以及(c)从先前执行的备份操作阶段产生的先前备份操作阶段输出(如果存在)。此外,可以在远程客户端节点处执行上述先前执行的备份操作阶段(如果存在)。此后,在步骤902中,将将备份操作阶段包(在步骤900中接收)委托给本地数据备份代理(DBA)进行处理。在本发明的一个实施例中,本地LBS可以表示在本地LBS(其可以执行图9中描述的方法的DBA)也可以在其上执行的同一客户端节点上执行的DBA。
图10展示根据本发明的一个或多个实施例的计算系统。计算系统(1000)可以包含一个或多个计算机处理器(1002)、非永久性存储装置(1004)(例如,易失性存储器,例如随机存取存储器(RAM)、高速缓冲存储器)、永久性存储装置(1006)(例如,硬盘、例如压缩光盘驱动器(CD)驱动器或数字通用光盘(DVD)驱动器的光学驱动器、闪存等)、通信接口(1012)(例如,蓝牙接口、红外线接口、网络接口、光接口等)、输入装置(1010)、输出装置(1008)和众多其它元件(未展示)和功能性。下文描述这些组件中的每一个。
在本发明的一个实施例中,计算机处理器(1002)可为用于处理指令的集成电路。举例来说,计算机处理器可为处理器的一个或多个核心或微核心。计算系统(1000)还可包含一个或多个输入装置(1010),例如,触摸屏、键盘、鼠标、麦克风、触控板、电子笔或任何其它类型的输入装置。此外,通信接口(1012)可以包含集成电路,其用于将计算系统(1000)连接到网络(未展示)(例如,局域网(LAN)、例如因特网的广域网(WAN)、移动网络或任何其它类型的网络)和/或连接到另一装置(例如,另一计算装置)。
在本发明的一个实施例中,计算装置(1000)可以包含一个或多个输出装置(1008),例如,屏幕(例如,液晶显示器(LCD)、等离子显示器、触摸屏、阴极射线管(CRT)监视器、投影仪或其它显示装置)、打印机、外部存储装置或任何其它输出装置。输出装置中的一个或多个可与输入装置相同或不同。输入和输出装置可本地或远程连接到计算机处理器(1002)、非永久性存储装置(1004)和永久性存储装置(1006)。存在许多不同类型的计算系统,且前述输入和输出装置可以采取其它形式。
用于执行本发明的实施例的计算机可读程序代码形式的软件指令可以全部或部分地临时或永久地存储在例如CD、DVD、存储装置、磁盘、磁带、闪存、物理存储器或任何其它计算机可读存储介质的非暂时性计算机可读介质上。具体地说,软件指令可以对应于计算机可读程序代码,当由处理器执行时,所述计算机可读程序代码被配置为执行本发明的一个或多个实施例。
图11A-11Q展示根据本发明的一个或多个实施例的实例场景。与图11A-11Q中所示的组件一起呈现的以下实例场景仅用于说明目的,并不意图限制本发明的范围。
转到图11A,说明实例系统(1100)。实例系统(1100)包含操作性地连接到五个客户端节点(1104A-1104E)的三个数据库(1102A-1102C),其共同形成负载平衡群集(未注释)。客户端节点(1104A-1104E)又操作性地连接到远程备份存储装置(RBS)(1106)。
转到图11B,对于所述实例场景,考虑由用户或管理员在第二客户端节点(1104B)上实例化数据库备份操作。数据库备份操作是针对第一数据库(1102A),上述第一数据库此后被标识为目标数据库。此外,至少关于确定哪个客户端节点应执行数据库备份操作的当前备份操作阶段(即,阶段0(S0)),将第二客户端节点(1104B)标识为本地客户端节点,而将其余客户端节点(1104A、1104C-1104E)标识为远程客户端节点。随后,第二客户端节点(1104B)查询并且接收本地和远程客户端节点的当前保护可用性索引(PAI)-例如{81、15、86、12、10}。
转到图11C,基于所获得的本地和远程客户端节点的当前PAI,确定第三客户端节点(1104C)(即,远程客户端节点中的一个)与最高或最大当前PAI相关联。因此,第二客户端节点(1104B)将执行数据库备份操作的当前备份操作阶段(即,阶段0(S0))所需的任何信息发射到第三客户端节点(1104C)。此后,至少关于执行当前备份操作阶段,将第三客户端节点(1104C)标识为本地客户端节点,而将其余客户端节点(1104A、1104B、1104D、1104E)标识为远程客户端节点。随后,在从第二客户端节点(1104B)接收到所发射的必要信息时,第三客户端节点(1104C)继续执行(P)当前备份操作阶段。
转到图11D,在完成数据库备份操作的当前备份操作阶段(即阶段0(S0))之后,确定哪个客户端节点应执行下一备份操作阶段-即阶段1(S1)。因此,第三客户端节点(1104C)查询并且接收用于本地和远程客户端节点的新的当前PAI(例如,{96、22、38、100、82})。
转到图11E,基于所获得的本地和远程客户端节点的当前PAI,确定第四客户端节点(1104D)(即,远程客户端节点中的一个)与最高或最大当前PAI相关联。因此,第三客户端节点(1104C)将执行数据库备份操作的下一备份操作阶段(即阶段1(S1))所需的任何信息发射到第四客户端节点(1104D)。此后,至少关于执行下一备份操作阶段,将第四客户端节点(1104D)标识为本地客户端节点,而将其余客户端节点(1104A-1104C,1104E)标识为远程客户端节点。随后,在从第三客户端节点(1104C)接收到所发射的必要信息时,第四客户端节点(1104D)继续执行(P)下一备份操作阶段(即,其已成为新的当前备份操作阶段)。
转到图11F,在完成数据库备份操作的当前备份操作阶段(即阶段1(S1))之后,确定哪个客户端节点应执行下一备份操作阶段-即阶段2(S2)。因此,第四客户端节点(1104D)查询并且接收用于本地和远程客户端节点的新的当前PAI(例如,{28、83、16、17、45})。
转到图11G,基于所获得的本地和远程客户端节点的当前PAI,确定第二客户端节点(1104B)(即,远程客户端节点中的一个)与最高或最大当前PAI相关联。因此,第四客户端节点(1104D)将执行数据库备份操作的下一备份操作阶段(即,阶段2(S2))所需的任何信息发射到第二客户端节点(1104B)。此后,至少关于执行下一备份操作阶段,将第二客户端节点(1104B)标识为本地客户端节点,而将其余客户端节点(1104A、1104C-1104E)标识为远程客户端节点。随后,在从第四客户端节点(1104D)接收到所发射的必要信息时,第二客户端节点(1104B)继续执行(P)下一备份操作阶段(即,其已成为新的当前备份操作阶段)。
转到图11H,在完成数据库备份操作的当前备份操作阶段-即阶段2(S2)之后,确定哪个客户端节点应执行下一备份操作阶段-即阶段3(S3)。因此,第二客户端节点(1104B)查询并且接收用于本地和远程客户端节点的新的当前PAI(例如,{64、60、97、79、57})。
转到图11I,基于所获得的本地和远程客户端节点的当前PAI,确定第三客户端节点(1104C)(即,远程客户端节点中的一个)与最高或最大当前PAI相关联。因此,第二客户端节点(1104B)将执行数据库备份操作的下一备份操作阶段(即,阶段3(S3))所需的任何信息发射到第三客户端节点(1104C)。此后,至少关于执行下一备份操作阶段,将第三客户端节点(1104C)标识为本地客户端节点,而将其余客户端节点(1104A、1104B、1104D、1104E)标识为远程客户端节点。随后,在从第二客户端节点(1104B)接收到所发射的必要信息时,第三客户端节点(1104C)继续执行(P)下一备份操作阶段(即,其已成为新的当前备份操作阶段)。
转到图11J,在完成数据库备份操作的当前备份操作阶段(即阶段3(S3))之后,确定哪个客户端节点应执行下一备份操作阶段-即阶段4(S4)。因此,第三客户端节点(1104C)查询并且接收用于本地和远程客户端节点的新的当前PAI(例如,{25、8、91、82、89})。
转到图11K,基于所获得的本地和远程客户端节点的当前PAI,确定第三客户端节点(1104C)(即,本地客户端节点)与最高或最大当前PAI相关联。因此,至少关于执行下一备份操作阶段,第三客户端节点(1104C)保持为本地客户端节点,而仍将其余客户端节点(1104A,1104B,1104D,1104E)标识为远程客户端节点。随后,第三客户端节点(1104C)继续执行(P)下一备份操作阶段(即,其已成为新的当前备份操作阶段)。此外,在执行阶段4(S4)备份操作阶段时,生成目标数据库(即,第一数据库(1102A))的快照(1108)。
转到图11L,在完成数据库备份操作的当前备份操作阶段(即阶段4(S4))之后,确定哪个客户端节点应执行下一备份操作阶段-即阶段5(S5)。因此,第三客户端节点(1104C)查询并且接收用于本地和远程客户端节点的新的当前PAI(例如,{32、22、3、43、98})。
转到图11M,基于所获得的本地和远程客户端节点的当前PAI,确定第五客户端节点(1104E)(即,远程客户端节点中的一个)与最高或最大当前PAI相关联。因此,第三客户端节点(1104C)将执行数据库备份操作的下一备份操作阶段(即,阶段5(S5))所需的任何信息发射到第五客户端节点(1104E)。此后,至少关于执行下一备份操作阶段,将第五客户端节点(1104E)标识为本地客户端节点,而将其余客户端节点(1104A-1104D)标识为远程客户端节点。随后,在从第三客户端节点(1104C)接收到所发射的必要信息时,第五客户端节点(1104E)继续执行(P)下一备份操作阶段(即,其已成为新的当前备份操作阶段)。此外,在执行阶段5(S5)备份操作阶段时,将在先前备份操作阶段中生成的目标数据库(即,第一数据库(1102A))的快照(1108)传送到RBS(1106)。
转到图11N,在完成数据库备份操作的当前备份操作阶段(即阶段5(S5))之后,确定哪个客户端节点应执行下一备份操作阶段-即阶段5(S5)。因此,第五客户端节点(1104E)查询并且接收用于本地和远程客户端节点的新的当前PAI(例如,{84、43、6、16、57})。
转到图11O,基于所获得的本地和远程客户端节点的当前PAI,确定第一客户端节点(1104A)(即,远程客户端节点中的一个)与最高或最大当前PAI相关联。因此,第五客户端节点(1104E)将执行数据库备份操作的下一备份操作阶段(即,阶段6(S6))所需的任何信息发射到第一客户端节点(1104A)。此后,至少关于执行下一备份操作阶段,将第一客户端节点(1104A)标识为本地客户端节点,而将其余客户端节点(1104B-1104E)标识为远程客户端节点。随后,在从第五客户端节点(1104E)接收到所发射的必要信息时,第一客户端节点(1104A)继续执行(P)下一备份操作阶段(即,其已成为新的当前备份操作阶段)。
转到图11P,在完成数据库备份操作的当前备份操作阶段(即阶段6(S6))之后,确定哪个客户端节点应执行下一备份操作阶段-即阶段7(S7)。因此,第一客户端节点(1104A)查询并且接收用于本地和远程客户端节点的新的当前PAI(例如,{27、28、73、55、95})。
转到图11Q,基于所获得的本地和远程客户端节点的当前PAI,确定第五客户端节点(1104E)(即,远程客户端节点中的一个)与最高或最大当前PAI相关联。因此,第一客户端节点(1104A)将执行数据库备份操作的下一备份操作阶段(即阶段7(S7))所需的任何信息发射到第五客户端节点(1104E)。此后,至少关于执行下一备份操作阶段,将第五客户端节点(1104E)标识为本地客户端节点,而将其余客户端节点(1104A-1104D)标识为远程客户端节点。随后,在从第一客户端节点(1104A)接收到所发射的必要信息时,第五客户端节点(1104E)继续执行(P)下一备份操作阶段(即,其已成为新的当前备份操作阶段)。此后,在完成数据库备份操作的当前备份操作阶段-即阶段7(S7)时,针对第一数据库(1102A)的数据库备份操作完成。
图12A-12E展示根据本发明的一个或多个实施例的实例全局负载分布表(GLDT)。与图12A-12E中所示的组件一起呈现的以下实例GLDT仅用于说明目的,并不意图限制本发明的范围。
转到图12A,说明实例GLDT(1200)的初始状态。初始状态展示实例GLDT(1200)包含四个GLDT条目(1202A-1202D),每个条目存储和跟踪相应客户端节点的数据翻转所有权映射。因此,每个GLDT条目(1202A-1202D)包含与其相应客户端节点相关联的客户端节点ID(1204A-1204D),以及分别与零个或多个目标数据库相关联的零个或多个数据库ID(1206A-1206H)。特别是,如图12A所示:(a)第一GLDT条目(1202A)将第一客户端节点ID(1204A)映射到第一、第二和第五数据库ID(1206A、1206B、1206E);(b)第二GLDT条目(1202B)将第二客户端节点ID(1204B)映射到第六数据库ID(1206F);(c)第三GLDT条目(1202C)将第三客户端节点ID(1204C)映射到第三和第七数据库ID(1206C、1206G);并且(d)第四GLDT条目(1202D)将第四客户端节点ID(1204D)映射到第四和第八数据库ID(1206D、1206H)。
基于此初始状态,实例GLDT(1200)反映:(i)第一客户端节点(与第一客户端节点ID(1204A)相关联)当前正在将第一目标数据库(与第一数据库ID(1206A)相关联)的快照传送到远程备份存储装置(RBS)(参见例如图1A);(ii)第二客户端节点(与第二客户端节点ID(1204B)相关联)当前正在将第六目标数据库(与第六数据库ID(1206F)相关联)的快照传送到RBS;(iii)第三客户端节点(与第三客户端节点ID(1204C)相关联)当前正在将第三目标数据库(与第三数据库ID(1206C)相关联)的快照传送到RBS;并且(iv)第四客户端节点(与第四客户端节点ID(1204D)相关联)当前正在将第四目标数据库(与第四数据库ID(1206D)相关联)的快照传送到RBS。
转到图12B,实例GLDT(1200)更新以反映:(i)第一目标节点(与第一客户端节点ID(1204A)相关联)已完成传送第一目标数据库(与第一目标数据库ID(1206A)(未展示)相关联)的快照并且因此已经开始将第二目标数据库(与第二数据库ID(1206B)相关联)的快照传送到RBS;(ii)第二客户端节点(与第二客户端节点ID(1204B)相关联)已经完成传送第六目标数据库(与第六数据库ID(1206F)(未展示)相关联)的快照,并且因此已完成处理向其指派的工作负载;(iii)第三客户端节点(与第三客户端节点ID(1204C)相关联)仍然在传送第三目标数据库(与第三数据库ID(1206C)相关联)的快照;并且(iv)第四客户端节点(与第四客户端节点ID(1204D)相关联)已经完成传送第四目标数据库(与第四数据库ID(1206D)(未展示)相关联)的快照,并且因此已经开始传送第八目标数据库(与第八数据库ID(1206H)相关联))的快照。
转到图12C,实例GLDT(1200)更新以反映:(i)第一客户端节点(与第一客户端节点ID(1204A)相关联)仍在传送第二目标数据库(与第二数据库ID(1206B)相关联)的快照;(ii)第二客户端节点(与第二客户端节点ID(1204B)相关联)已承担将先前已排入队列以由第一客户端节点进行处理的第五目标数据库(与第五数据库ID(1206E)相关联)的快照传送到RBS;(iii)第三客户端节点(与第三客户端节点ID(1204C)相关联)仍在传送第三目标数据库(与第三数据库ID(1206C)相关联)的快照,其中针对第九目标数据库(与第九数据库ID(1206I)相关联)的新数据库备份操作的快照翻转已被排入队列以由第三客户端节点进行处理;并且(iv)第四客户端节点(与第四客户端节点ID(1204D)相关联)已经完成传送第八目标数据库(与第八数据库ID(1206H)(未展示)相关联)的快照,并且因此已经完成了对其指派的工作负载的处理。
转到图12D,实例GLDT(1200)更新以反映:(i)第一客户端节点(与第一客户端节点ID(1204A)相关联)仍在传送第二目标数据库(与第二数据库ID(1206B)相关联)的快照;(ii)第二客户端节点(与第二客户端节点ID(1204B)相关联)已完成传送第五目标数据库(与第五数据库ID(1206E)(未展示)相关联)的快照,并且因此已经完成处理向其指派的工作负载;(iii)第三客户端节点(与第三客户端节点ID(1204C)相关联)仍在传送第三目标数据库(与第三数据库ID(1206C)相关联)的快照;并且(iv)第四客户端节点(与第四客户端节点ID(1204D)相关联)已经承担传送先前已排入队列以由第三客户端节点进行处理的第七目标数据库(与第七数据库ID(1206G)相关联)的快照。
转到图12E,实例GLDT(1200)更新以反映:(i)第一客户端节点(与第一客户端节点ID(1204A)相关联)仍在传送第二目标数据库(与第二数据库ID(1206B)相关联)的快照;(ii)第二客户端节点(与第二客户端节点ID(1204B)相关联)已经承担传送先前已排入队列以由第三客户端节点(与第三客户端节点ID(1204C)相关联)进行处理的第九目标数据库(与第九数据库ID(1206I)相关联)的快照;(iii)第三客户端节点仍在传送第三目标数据库(与第三数据库ID(1206C)相关联)的快照;并且第四客户端节点(与第四客户端节点ID(1204D)相关联)仍在传送第七目标数据库(与第七数据库ID(1206G)相关联)的快照。
尽管上文已关于有限数目个实施例描述本发明,但受益于本发明的所属领域的技术人员将了解,可设计不脱离如本文中所公开的本发明的范围的其它实施例。因此,本发明的范围应只受到随附的权利要求书限制。

Claims (20)

1.一种用于执行数据库备份操作的方法,其包括:
对于涉及第一目标数据库的第一数据库备份操作,接收包括与所述第一目标数据库相关联的第一目标数据库标识符(ID)的第一数据库备份初始化指令;
响应于接收到所述第一数据库备份初始化指令:
获得本地客户端节点的第一保护可用性索引(PAI);
获得第一远程客户端节点的第二PAI和第二远程客户端节点的第三PAI;
进行所述第一PAI超过所述第二PAI和所述第三PAI的第一确定;以及
基于所述第一确定:
执行涉及所述第一目标数据库的所述第一数据库备份操作的第一备份操作阶段。
2.根据权利要求1所述的方法,其中所述第一PAI量化所述本地客户端节点上用于执行所述第一备份操作阶段的资源的可用性。
3.根据权利要求1所述的方法,其中所述第一备份操作阶段是为了完成涉及所述第一目标数据库的所述第一数据库备份操作而需要执行的多个备份操作阶段中的一个。
4.根据权利要求1所述的方法,其进一步包括:
从执行所述第一备份操作阶段获得第一备份操作阶段输出;
进行所述第一数据库备份操作未完成的第二确定;
基于所述第二确定:
获得所述本地客户端节点的第四PAI;
获得所述第一远程客户端节点的第五PAI和所述第二远程客户端节点的第六PAI;
进行所述第五PAI超过所述第四PAI和所述第六PAI的第三确定;
基于所述第三确定:
使用所述第一目标数据库ID、所述第一备份操作阶段输出和与所述第一备份操作阶段相关联的备份操作阶段ID生成备份操作阶段包;以及
将所述备份操作阶段包发射到所述第一远程客户端节点。
5.根据权利要求1所述的方法,其进一步包括:
从执行所述第一备份操作阶段获得第一备份操作阶段输出;
进行所述第一数据库备份操作未完成的第二确定;
基于所述第二确定:
获得所述本地客户端节点的第四PAI;
获得所述第一远程客户端节点的第五PAI和所述第二远程客户端节点的第六PAI;
进行所述第四PAI超过所述第五PAI和所述第六PAI的第三确定;以及
基于所述第三确定:
使用所述第一备份操作阶段输出执行涉及所述第一目标数据库的所述第一数据库备份操作的第二备份操作阶段。
6.根据权利要求1所述的方法,其进一步包括:
对于涉及第二目标数据库的第二数据库备份操作,接收包括与所述第二目标数据库相关联的第二目标数据库标识符(ID)的第二数据库备份初始化指令;
响应于接收到所述第二数据库备份初始化指令:
获得所述本地客户端节点的第四PAI;
获得所述第一远程客户端节点的第五PAI和所述第二远程客户端节点的第六PAI;
进行所述第五PAI超过所述第四PAI和所述第六PAI的第二确定;
基于所述第二确定:
使用所述第二目标数据库ID和与所述第二数据库备份操作的第一备份操作阶段相关联的备份操作阶段ID生成备份操作阶段包;以及
将所述备份操作阶段包发射到所述第一远程客户端节点。
7.根据权利要求1所述的方法,其进一步包括:
从所述第二远程客户端节点接收远程索引查询;
响应于接收到所述远程索引查询:
获得所述本地客户端节点的第四PAI;
使用与所述本地客户端节点相关联的客户端节点ID和所述第四PAI生成远程索引响应;以及
将所述远程索引响应发射到所述第二远程客户端节点。
8.根据权利要求5所述的方法,其进一步包括:
至少基于所述第四PAI从所述第二远程客户端节点接收备份操作阶段包,所述包包括与第二目标数据库相关联的第二目标数据库ID、备份操作阶段输出和与涉及所述第二目标数据库的第二数据库备份操作的第二备份操作阶段相关联的备份操作阶段ID;
基于所述备份操作阶段ID,标识第三备份操作阶段以执行所述第二数据库备份操作;以及
至少使用所述备份操作阶段输出,执行涉及所述第二目标数据库的所述第二数据库备份操作的所述第三备份操作阶段。
9.一种系统,其包括:
多个数据库;以及
多个客户端节点,其操作性地连接到所述多个数据库并且彼此连接,
其中所述多个客户端节点包括本地客户端节点、第一远程客户端节点和第二远程客户端节点,
其中所述本地客户端节点被编程为:
对于涉及所述多个数据库中的第一目标数据库的第一数据库备份操作,接收包括与所述第一目标数据库相关联的第一目标数据库标识符(ID)的第一数据库备份初始化指令;
响应于接收到所述第一数据库备份初始化指令:
获得所述本地客户端节点的第一保护可用性索引(PAI);
从所述第一远程客户端节点获得所述第一远程客户端节点的第二PAI并且从所述第二远程客户端节点获得所述第二远程客户端节点的第三PAI;
进行所述第一PAI超过所述第二PAI和所述第三PAI的第一确定;以及
基于所述第一确定:
执行涉及所述第一目标数据库的所述第一数据库备份操作的第一备份操作阶段。
10.根据权利要求9所述的系统,其中所述多个客户端节点中的每个客户端节点包括数据备份代理(DBA),其负责至少管理其相应客户端节点上的数据库备份操作。
11.根据权利要求10所述的系统,其中所述多个客户端节点中的每个客户端节点进一步包括操作性地连接到所述DBA并且至少负责使跨所述多个客户端节点的数据库备份操作的负载平衡的负载平衡服务(LBS)。
12.根据权利要求11所述的系统,其中所述多个客户端节点中的每个客户端节点进一步包括操作性地连接到所述LBS并且负责确定其相应客户端节点的PAI的进程监视服务(PMS)。
13.一种非暂时性计算机可读介质(CRM),其包括计算机可读程序代码,所述计算机可读程序代码当由计算机处理器执行时使所述计算机处理器能够进行以下操作:
对于涉及第一目标数据库的第一数据库备份操作,接收包括与所述第一目标数据库相关联的第一目标数据库标识符(ID)的第一数据库备份初始化指令;
响应于接收到所述第一数据库备份初始化指令:
获得本地客户端节点的第一保护可用性索引(PAI);
获得第一远程客户端节点的第二PAI和第二远程客户端节点的第三PAI;
进行所述第一PAI超过所述第二PAI和所述第三PAI的第一确定;以及
基于所述第一确定:
执行涉及所述第一目标数据库的所述第一数据库备份操作的第一备份操作阶段。
14.根据权利要求13所述的非暂时性CRM,其中所述第一PAI量化所述本地客户端节点上用于执行所述第一备份操作阶段的资源的可用性。
15.根据权利要求13所述的非暂时性CRM,其中所述第一备份操作阶段是为了完成涉及所述第一目标数据库的所述第一数据库备份操作而需要执行的多个备份操作阶段中的一个。
16.根据权利要求13所述的非暂时性CRM,其进一步包括当由所述计算机处理器执行时使所述计算机处理器能够进行以下操作的计算机可读程序代码:
从执行所述第一备份操作阶段获得第一备份操作阶段输出;
进行所述第一数据库备份操作未完成的第二确定;
基于所述第二确定:
获得所述本地客户端节点的第四PAI;
获得所述第一远程客户端节点的第五PAI和所述第二远程客户端节点的第六PAI;
进行所述第五PAI超过所述第四PAI和所述第六PAI的第三确定;
基于所述第三确定:
使用所述第一目标数据库ID、所述第一备份操作阶段输出和与所述第一备份操作阶段相关联的备份操作阶段ID生成备份操作阶段包;以及
将所述备份操作阶段包发射到所述第一远程客户端节点。
17.根据权利要求13所述的非暂时性CRM,其进一步包括当由所述计算机处理器执行时使所述计算机处理器能够进行以下操作的计算机可读程序代码:
从执行所述第一备份操作阶段获得第一备份操作阶段输出;
进行所述第一数据库备份操作未完成的第二确定;
基于所述第二确定:
获得所述本地客户端节点的第四PAI;
获得所述第一远程客户端节点的第五PAI和所述第二远程客户端节点的第六PAI;
进行所述第四PAI超过所述第五PAI和所述第六PAI的第三确定;以及
基于所述第三确定:
使用所述第一备份操作阶段输出执行涉及所述第一目标数据库的所述第一数据库备份操作的第二备份操作阶段。
18.根据权利要求13所述的非暂时性CRM,其进一步包括当由所述计算机处理器执行时使所述计算机处理器能够进行以下操作的计算机可读程序代码:
对于涉及第二目标数据库的第二数据库备份操作,接收包括与所述第二目标数据库相关联的第二目标数据库标识符(ID)的第二数据库备份初始化指令;
响应于接收到所述第二数据库备份初始化指令:
获得所述本地客户端节点的第四PAI;
获得所述第一远程客户端节点的第五PAI和所述第二远程客户端节点的第六PAI;
进行所述第五PAI超过所述第四PAI和所述第六PAI的第二确定;
基于所述第二确定:
使用所述第二目标数据库ID和与所述第二数据库备份操作的第一备份操作阶段相关联的备份操作阶段ID生成备份操作阶段包;以及
将所述备份操作阶段包发射到所述第一远程客户端节点。
19.根据权利要求13所述的非暂时性CRM,其进一步包括当由所述计算机处理器执行时使所述计算机处理器能够进行以下操作的计算机可读程序代码:
从所述第二远程客户端节点接收远程索引查询;
响应于接收到所述远程索引查询:
获得所述本地客户端节点的第四PAI;
使用与所述本地客户端节点相关联的客户端节点ID和所述第四PAI生成远程索引响应;以及
将所述远程索引响应发射到所述第二远程客户端节点。
20.根据权利要求19所述的非暂时性CRM,其进一步包括当由所述计算机处理器执行时使所述计算机处理器能够进行以下操作的计算机可读程序代码:
至少基于所述第四PAI从所述第二远程客户端节点接收备份操作阶段包,所述包包括与第二目标数据库相关联的第二目标数据库ID、备份操作阶段输出和与涉及所述第二目标数据库的第二数据库备份操作的第二备份操作阶段相关联的备份操作阶段ID;
基于所述备份操作阶段ID,标识第三备份操作阶段以执行所述第二数据库备份操作;以及
至少使用所述备份操作阶段输出,执行涉及所述第二目标数据库的所述第二数据库备份操作的所述第三备份操作阶段。
CN201910957202.8A 2018-10-26 2019-10-10 用于在信息技术环境中智能地使数据库备份操作的负载平衡的方法和系统 Pending CN111104389A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/171,817 US10606709B1 (en) 2018-10-26 2018-10-26 Method and system for intelligently load balancing database backup operations in information technology environments
US16/171,817 2018-10-26

Publications (1)

Publication Number Publication Date
CN111104389A true CN111104389A (zh) 2020-05-05

Family

ID=68172090

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910957202.8A Pending CN111104389A (zh) 2018-10-26 2019-10-10 用于在信息技术环境中智能地使数据库备份操作的负载平衡的方法和系统

Country Status (3)

Country Link
US (1) US10606709B1 (zh)
EP (1) EP3644185A1 (zh)
CN (1) CN111104389A (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737395B (zh) * 2018-07-20 2023-09-29 伊姆西Ip控股有限责任公司 I/o管理方法、电子设备和计算机可读存储介质
US11169887B2 (en) * 2019-02-20 2021-11-09 Cohesity, Inc. Performing a database backup based on automatically discovered properties
US11403183B2 (en) * 2020-04-29 2022-08-02 EMC IP Holding Company LLC Iterative integer programming with load balance for cyclic workloads
US11777910B2 (en) * 2020-06-17 2023-10-03 Hyundai Motor Company Systems and methods providing message encryption on a can bus using remote frames
CN114265720A (zh) * 2020-09-16 2022-04-01 伊姆西Ip控股有限责任公司 选择备份目的地的方法、电子设备和计算机程序产品
CN117170941B (zh) * 2023-11-02 2024-02-13 建信金融科技有限责任公司 数据备份的方法、装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8387054B1 (en) * 2007-09-28 2013-02-26 Symantec Corporation Method and apparatus of scheduling data movers
WO2015070236A1 (en) * 2013-11-11 2015-05-14 Amazon Technologies, Inc. Partition-based data stream processing framework
US20160162362A1 (en) * 2014-12-09 2016-06-09 International Business Machines Corporation Computer system backup performance optimization through performance analytics

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180365110A1 (en) * 2015-12-07 2018-12-20 Hewlett Packard Enterprise Development Lp Application-aware database backups

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8387054B1 (en) * 2007-09-28 2013-02-26 Symantec Corporation Method and apparatus of scheduling data movers
WO2015070236A1 (en) * 2013-11-11 2015-05-14 Amazon Technologies, Inc. Partition-based data stream processing framework
US20160162362A1 (en) * 2014-12-09 2016-06-09 International Business Machines Corporation Computer system backup performance optimization through performance analytics

Also Published As

Publication number Publication date
EP3644185A1 (en) 2020-04-29
US10606709B1 (en) 2020-03-31

Similar Documents

Publication Publication Date Title
CN111104389A (zh) 用于在信息技术环境中智能地使数据库备份操作的负载平衡的方法和系统
US10795905B2 (en) Data stream ingestion and persistence techniques
US10375167B2 (en) Low latency RDMA-based distributed storage
JP2022122993A (ja) データセット及び他の管理オブジェクトをクラウドベースのストレージシステムに同期複製すること
EP3069228B1 (en) Partition-based data stream processing framework
CA2929777C (en) Managed service for acquisition, storage and consumption of large-scale data streams
CA2929776C (en) Client-configurable security options for data streams
CA2930026C (en) Data stream ingestion and persistence techniques
US9471585B1 (en) Decentralized de-duplication techniques for largescale data streams
US20190392047A1 (en) Multi-table partitions in a key-value database
CN108292235B (zh) 使用选择性资源迁移的网络附连存储器
US20200348863A1 (en) Snapshot reservations in a distributed storage system
US10817380B2 (en) Implementing affinity and anti-affinity constraints in a bundled application
US20240053886A1 (en) File operations in a distributed storage system
US20210263667A1 (en) Multi-cloud orchestration as-a-service
US10963182B2 (en) System and method for on-demand recovery points
US10594620B1 (en) Bit vector analysis for resource placement in a distributed system
US11860835B1 (en) Efficient drop column requests in a non-relational data store
Chellouf et al. Popularity and correlation aware data replication strategy based on half‐life concept and clustering in cloud system
US11381468B1 (en) Identifying correlated resource behaviors for resource allocation
US11586608B1 (en) Handling requests to access separately stored items in a non-relational database
CN113302584B (zh) 基于云的存储系统的存储管理
CN117795468A (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