CN110392884A - 自动化的自修复数据库系统及实现其的方法 - Google Patents
自动化的自修复数据库系统及实现其的方法 Download PDFInfo
- Publication number
- CN110392884A CN110392884A CN201880013123.5A CN201880013123A CN110392884A CN 110392884 A CN110392884 A CN 110392884A CN 201880013123 A CN201880013123 A CN 201880013123A CN 110392884 A CN110392884 A CN 110392884A
- Authority
- CN
- China
- Prior art keywords
- database
- standby
- data
- home site
- primary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/203—Failover techniques using migration
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- 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
-
- 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/805—Real-time
-
- 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/82—Solving problems relating to consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
提供了一种自动化的自修复数据库系统,包括主数据库、在主数据库可用时向主数据库写入数据以及从主数据库读取数据的应用程序服务器、是主数据库的副本的备用数据库和自修复模块(SHM)。SHM可以自动地检测主数据库的不可用性,并且如果备用数据库是可用的,SHM可以自动地启用备用数据库为可读和可写,在主站点上为备用数据库分配主数据库的角色,以开始将数据复制到其他备用数据库,以及使用应用程序服务器和备用数据库之间预建立的的连接,以允许应用程序服务器从备用数据库读取数据并将数据写入备用数据库,从而导致备用数据库在主站点上充当主数据库的角色。
Description
优先权声明
本申请要求于2017年2月23日提交的序列号15/440,810的美国申请的优先权。
技术领域
本文描述的主题的实施例一般地涉及基于云的计算。更具体地,该主题的实施例涉及自动化的自修复数据库系统和用于在基于云的计算环境中实现该系统的方法。
背景技术
目前,许多企业现在使用基于云的计算平台,允许通过互联网(或通过其他网络)访问服务和数据。这些基于云的计算平台的基础设施提供商提供了基于网络的处理系统,这些系统通常支持使用公共计算机硬件和数据存储的多个企业(或租户)。这种“云”计算模型允许通过由基础设施提供商提供的平台“作为服务”提供应用程序。
高可用性(HA)数据库架构通过使用冗余系统和软件消除单点故障来防止宕机和数据丢失。管理员错误、由系统或软件故障导致的数据损坏、或完全的站点故障都可能影响数据库的可用性。防止受到单点故障影响的唯一方法是,使一个完全独立的生产数据库的副本运行在不同的系统上,并理想地部署在第二位置,如果生产数据库由于任何原因不可用,可以快速访问该副本。
甲骨文数据保护形成了对甲骨文关系数据库管理系统(RDBMS)的扩展。在甲骨文的数据保护系统中,数据库以以下相互排斥的角色之一运行:主角色或备用角色。甲骨文数据保护技术可以帮助消除单点故障,并通过在远程位置维护生产或主数据库的同步物理副本,以简单而经济的方式防止数据丢失和宕机。甲骨文数据保护将这些备用数据库维护为生产数据库的副本。然后,如果生产数据库由于计划好的或计划外的断电(outage)而不可用,甲骨文数据保护可以将任何备用数据库切换到生产角色,从而最小化与断电相关联的宕机。
数据保护允许数据库管理员通过发出SQL语句或通过使用数据保护代理的任何接口来动态地更改这些角色。数据保护技术的一个限制是,当由于各种类型的故障(例如主数据库服务器或存储子系统上的硬件故障)导致主数据库不可用时,它不能保证在角色更改后自动提供新的备用数据库。
附图说明
当结合以下图形进行考虑时,通过参照详细的说明和权利要求,可以得到对主题的更全面的了解,其中相同的参考数字指的是贯穿附图的类似元素。
图1是根据所公开的实施例的说明了具有自动化的自修复模块的自动化的自修复数据库系统的框图。
图2示出了根据所公开的实施例的自动化的自修复模块的各个模块的框图。
图3A和图3B是根据所公开的实施例说明了提供自动化的自修复数据库系统的示例方法的总体流程图。
图4-图7是根据所公开实施例的说明了自动化的自修复数据库系统以及它如何实现自修复功能的框图。
图8示出了根据一些实现方式的其中可以使用按需数据库服务的环境的示例的框图。
图9示出了根据一些实现方式的图8的各元素的示例实现方式以及这些元素之间的示例连接的框图。
图10A示出了根据一些实现方式的说明了按需数据库服务环境的示例架构组件的系统框图。
图10B示出了根据一些实现方式的进一步说明了按需数据库服务环境的示例架构组件的系统框图。
图11描述了以计算机系统的示例形式的机器的图解表示,其中可以执行一组指令,用于使机器执行本文讨论的方法中的任何一种或多种。
详细描述
这里给出的示例实施例涉及可在基于云的计算环境中实现的,自修复自动化数据库系统、方法、程序和技术。例如,所描述的主题可以在任何基于云的计算环境(例如,多租户数据库系统)的上下文中实现。
为了解决上述问题,提供了一种自动化的自修复数据库系统和相关方法。自动化的自修复数据库系统包括主站点(或数据中心),其包括主数据库、一个或多个备用数据库(每个备用数据库都是主数据库的副本)和自修复模块。自修复模块是可以监视和管理自动化的自修复数据库系统的配置的自定义应用程序。自修复模块可以通过供应商的API与供应商的技术交互。这些技术的例子包括甲骨文TM数据保护(OracleTM Data Guard)复制和故障切换技术、亚马逊网络服务(AWS)TM快照技术等。自修复模块可以自动地检测主数据库的不可用性(例如,硬件和/或软件故障),并确定主站点的备用数据库(即主数据库的副本)是否可用。如果是这样,自修复模块可以自动启动故障切换处理序列,其中包括自动将备用数据库分配为主站点上的主数据库,以恢复主数据库的功能和能力。在主数据库发生故障时,通过提供自动故障切换和API来提供备用数据库,可以实现自修复。
例如,在一个实现方式中,当主数据库变得不可用(例如,失败、崩溃等等),自修复模块自动检测到不可用,并可选地通过在备用数据库上启用只读应用模式来提供只读功能,以及将由应用程序服务器(在主站点)提供的应用程序的流量路由到只读备用数据库来改善客户体验。如果主数据库是在预定义的且可配置的时间段(例如,10分钟)期间没有恢复/重启,则主数据库的角色将自动转移到备用数据库,以便备用数据库成为新的主数据库。这可以通过启用备用数据库(主数据库的副本)作为可读和可写的,并将其指定为开始将数据复制到其他备用数据库的主要角色来实现。为了提高效率,应用程序可以预先建立到主数据库和备用数据库的连接,以便在发生角色转换时不需要建立新的连接。此外,如果原始主数据库的存储子系统仍然可用并且处于一致的状态,则可以进行进一步的增强。例如,将存储子系统从故障的主数据库服务器上分离出来,并将其附加到备用数据库的数据库服务器上;这可以帮助减少任何数据丢失。
此外,系统可以自动提供新的备用数据库,使系统恢复到最大容量,而无需人工干预。作为故障切换处理序列的一部分,可以使用存储在快照存储系统上的最近的快照数据自动创建一个新的数据库,且自动添加为主站点的备用数据库,这样系统被恢复为包括高可用性和备用容量的满负荷。在一些实现方式中,当/如果故障的原始主数据库已恢复,则可以将其重新提供为备用数据库。
图1是根据所公开的实施例的、说明了具有自动化的自修复模块130的自动化的自修复数据库系统100的框图。在一个实施例中,自动化的自修复数据库系统100是基于云的数据库系统。
自动化的自修复数据库系统100包括若干用户系统112、负载均衡器111、以及快照存储系统128。负载均衡器111控制用户系统112流量到主站点110(或数据中心)中或作为灾难恢复站点的第二站点140中的应用程序服务器124的路由。
主站点110站点(或数据中心)包括多个(n个)应用程序服务器124,其中n大于或等于1,主数据库120-1,备用数据库120-2和120-3。在这个特定的实现方式中,主站点110有两个备用数据库,但是可以根据特定的实现方式可以包含更少或更多个备用数据库。如图所示,每个数据库120包括数据库服务器,其执行各种数据库计算过程、连接、排序、查询或事务,以及存储子系统,其包含存储管理软件和存储事务数据的硬件。数据库服务器可以从存储子系统读取数据,并将数据写入存储子系统。存储子系统和数据库服务器(包括其软件组件或模块)一起提供处理和存储数据(或事务)的能力,这些数据(或事务)可以通过查询语言和其他接口进行查询、更新和删除。虽然没有说明,但该站点可以包括其他硬件。在这方面,正如本文所使用的,“站点”或“数据中心”可以指承载物理硬件的设施,其具有独立的电源和网络连接。站点与站点之间通常有一定的物理距离(例如,从数十到数千英里的距离)。
数据保护配置包括在主角色中运行的生产数据库,在这里也称为主数据库120-1。这是由应用程序服务器124执行的应用程序访问的数据库。用户系统112与在应用程序服务器124上执行的应用程序交互。作为响应,在应用程序服务器124上执行的应用程序将读 /写(R/W)请求通信到主站点110中的主数据库120-1。例如,应用程序124可以写入数据以将其存储在主数据库120-1,并且可以通过从主数据库120-1读取数据来访问主数据库 120-1上的该数据,当主数据库120-1可用且正常运行时(例如,未遭受故障或其他的不可用原因)。这种读/写事务能力由图1中位于应用程序服务器124和主数据库120-1之间的标记为R/W的箭头表示。根据实现方式,主数据库120-1可以是单实例甲骨文数据库,也可以是甲骨文实际应用程序集群数据库。
每个备用数据库120-2,120-3是主(或生产)数据库120-1的独立副本,其可以用于高可用性环境中的灾难保护。换句话说,每个备用数据库120-2、120-3是主数据库120-1 的事务一致性或“备份”副本。当事务被委托并存储在主数据库120-1时,备用数据库120-2,120-3同步或异步地从主数据库120-1接收复制的数据。这在图1中被例示为在主数据库120-1和备用数据库120-2之间、主数据库120-1和备用数据库120-3之间、以及主数据库120-1和主站点110之间、以及主数据库120-1和灾难恢复站点140之间延伸的无标记的双向箭头。例如,一旦创建了备用数据库120-2,120-3并将其合并到数据保护配置中,每个备用数据库120-2,120-3就会被自动维护,通过从主数据库120-1传输重做数据,然后将重做应用于备用数据库。在一些实现方式中,备用数据库可以是单实例甲骨文数据库,也可以是甲骨文实际应用程序集群(RAC)数据库(主数据库120-1就是这种情况)。
如下将解释在某些情况下,当启用只读应用程序模式时,应用程序124可以具有对于存储在备用数据库120-2中的数据的只读访问,这意味着在应用程序服务器124上执行的应用程序可以通信只读请求到备用数据库120-2,这样它们只能从备用数据库120-2读取数据,但不能写入数据到备用数据库120-2。图1中,在主数据库120-1和备用数据库120-2 之间延伸的标记为“只读”的双向箭头表示了这种只读能力。应用程序124通常不能访问备份备用数据库120-3,因为它的目的是作为备份,以便在临时不可用的情况下创建新数据库或更新现有数据库。拥有用于快照备份的专用备用数据库120-3的目的是将用户系统工作负载和请求与后端快照操作分开。这是对性能稳定性和操作的优化,而不是限制。
一般来说,当整个主站点110(或主数据中心)变得不可用或故障时,灾难恢复站点140是组织可以用来恢复和恢复其技术基础设施和操作的设施。在这方面,灾难恢复站点140是主站点110的对称版本,它的操作与主站点110相同,并且根据实现方式的不同,可以包含主站点110一部分的所有相同元素。因此,在这个特定的实现方式中,灾难恢复站点140包括主数据库120-1、备用数据库120-2、120-3和应用程序服务器124,其与主站点110上实现的那些相同。在大多数实现方式中,辅助或灾难恢复站点140通常位于离主站点110一定距离的位置,这样站点之间就不会彼此靠近。这样,如果一些不可预见的灾难(例如,自然灾害或人为灾难)袭击了主站点110,那么辅助站点140很可能不会受到影响,并且应该能够开始运行,这样就不会出现业务中断。
快照存储系统128可以在主站点110和辅助站点140上实现,也可以远程地在另一个位置实现,这样它就不会与主站点110和/或灾难恢复站点140在物理上接近。例如,根据一些所公开的实施例,快照存储系统128是单独的存储硬件,其不在主站点110上实现,并且位于远程,以防止主站点级故障。如下所述,快照应用程序和管理模块(图1中没有说明)有规律地或定期地执行,以捕获存储在备用数据库120-3中的数据快照,并将数据快照存储在快照存储系统128中。快照存储系统128可以由主站点110或DR站点140访问,因此快照数据几乎是即时可用的。快照数据可用于数据恢复或在故障切换情况下提供备用数据库。
在某些情况下,由于某种原因,主站点110上的主数据库120-1可能不可用。例如,主数据库120-1可能由于多种原因不可用,包括但不限于断电、硬件故障、软件故障、网络故障或操作员错误等。
为了解决这个问题,所公开的实施例可以在每个站点110,140提供一个自动化的自修复模块130。如将在下面更详细地解释的那样,自动化的自修复模块130可以自动地检测在主站点110上的主数据库120-1的不可用和/或故障,并且如果主数据库120-1在一段时间内无法恢复,且主站点110的备用数据库120-2可用,自动化的自修复模块130可以自动地启动故障切换处理序列。故障切换是一种操作模式,其中当主数据库120-1不可用 (例如,由于故障、计划好的不可用等原因)时,主数据库120-1的角色自动切换到主站点110上的备用数据库120-2,并由备用数据库120-2承担。主数据库120-1的存储子系统如果完好无损且可访问,则可以自动地附加到备用数据库120-2的数据库服务器上进行恢复,从而进一步减少任何潜在的数据丢失。通过在启用备用数据库120-2作为可读和可写的之前,自动地将主数据库120-1的存储子系统附加到备用数据库120-2的数据库服务器,可以避免可能发生的由于在主数据库120-1失败之前在主数据库120-1上的一些事务可能不被及时复制到备用数据库120-2的问题。在自动地将主数据库120-1的存储子系统附加到备用数据库120-2的数据库服务器之后,备用数据库120-2可以自动被启用为可读和可写,然后被分配给在主站点100上主数据库的角色,以开始将数据复制到其他备用数据库。
换句话说,作为故障切换的一部分,自修复模块130可以自动地且无缝地将主角色分配给备用数据库120-2,使其充当主站点110的主数据库。因此,当主数据库120-1发生故障(或者变得不可用)时,可以自动分配备用数据库之一作为主数据库。通过这种方式,应用程序服务器124提供的应用程序仍然可以完全访问这个“新”主数据库,包括执行读 /写事务的权限(例如,从分配作为新主数据库的角色的备用数据库中读取数据并将数据写入该备用数据库)。故障切换角色转变后,预建立的应用程序服务器与备用数据库120-2 之间的连接用来允许应用程序服务器从备用数据库120-2读取数据和将数据写入到备用数据库120-2,导致备用数据库120-2充当在主站点110上的主数据库的角色。此外,正如下面将更详细地解释的那样,使用最新快照提供一个新的备用,然后将其添加回复制配置,以恢复主站点的全部容量,包括高可用性和备用容量。
图2示出了根据所公开的实施例的自动化自修复模块130的各个模块的框图。图2示出了自动化的自修复模块130的各种模块,包括数据库健康监控模块232、快照应用程序和管理模块234、只读应用程序模式模块236、数据库故障切换模块238、备用数据库供应模块240、以及数据库复制管理模块242。
下面将参考图3A-图7更详细地描述由图1和图2中的各种元件执行的各种任务和操作。例如,在主站点110处执行的某些任务和操作,包括由图2中所示的自动化的自修复模块130的各种模块执行的任务和操作,以及灾难恢复站点140上执行的任务和操作,将在下面参照图3A-图7和继续参照图1和2进行描述。
图3A和图3B是根据所公开实施例的、说明了用于提供自动化的自修复数据库系统的示例方法300的总体流程图。作为一项初步事项,应当了解方法300的步骤不一定是有限的,可以同时增加、省略和/或执行步骤,而不偏离所附权利要求的范围。应该领会的是,方法300可以包括任何数量的额外或替代任务,即图3A和图3B中所示的任务不需要按照图示的顺序执行,并且方法300可以被合并到一个更全面的过程中,或者具有本文没有详细描述的附加功能的过程中。此外,只要预期的总体功能保持完整,图3A和图3B中所示的一个或更多个任务可以从方法300的实施例中省略。还应该理解,所说明的方法300可以随时停止。方法300是计算机实现的,其中与方法300有关的各种任务或步骤可以通过软件、硬件、固件或它们的任何组合来执行。为了说明的目的,下面对方法300的描述可以参考上面提到的与图1和图2有关的元素。在某些实施例中,此流程的某些或所有步骤,和/或实质上等效的步骤,由存储或包含在处理器可读介质上的处理器可读指令的执行来执行。
现在将参照图4-图7对图3A和图3B进行描述,其是说明了在主数据库120-1故障且无法恢复后,数据库系统100的自动化的自修复操作,特别是自动化的自修复模块130 如何在主站点上实现自修复功能的框图。在接下来对图3A-图7的描述中,自动化的自修复模块130将被描述为执行各种动作、任务或步骤,但应该领会的是,这涉及到这些实体的处理系统执行指令以执行这些动作、任务或步骤。根据实现方式,一些处理系统可以集中定位,或者分布在共同工作的多个系统中。
再次引用图3A,需要注意的是,在方法300的开始之前和期间,快照应用程序和管理模块234在后台执行以定期或周期性地捕获存储在备用数据库120-3中的数据的快照,并将数据的快照存储在快照存储系统128中。例如,在一个实现方式中,快照应用程序和管理模块234可以每小时对备用数据库120-3进行一次快照,并将快照数据存储在快照存储系统128中。然后,快照数据可用来进行数据恢复,或者在发生故障切换时提供备用数据库。此外,每个小时的快照可以在经过一定数量的小时后合并为每天的快照,并根据数据保留策略存储若干天。快照应用程序和管理模块234执行的这些任务在图3A中用一个未编号的块表示,因为它们发生在图3A和图3B中编号的块所说明的方法300之外。
图3A和图3B的方法300从304开始,其中数据库健康监控模块232(图2)自动地检测到在主站点110处的主数据库120-1不可用,如图4的304所示。例如,在一个实施例中,数据库健康监控模块232(图2)通过向主数据库服务器发送心跳并向主数据库 120-1发送健康检查查询和事务,自动检测在主站点110处的主数据库120-1不可用性或故障。例如,在一个实现方式中,心跳消息可以被发送到主数据库服务器的网络和操作系统,例如,使用在Unix或Linux中可用的“ping”实用程序。如果到主数据库服务器的心跳没有响应,或者健康检查查询和事务没有完成,则数据库健康监控模块232可以确定主数据库120-1不是可用的,需要重新启动或恢复。
在304,数据库健康监控模块232(图2)也可以启动恢复计时器/计数器,用于跟踪主数据库120-1的不可用性(例如,主数据库120-1已经不可用多长时间)。如下解释,当确定主数据库120-1不可用的时间/数量超过恢复定时器/计数器,然后假设主数据库 120-1不会恢复,这将触发故障切换以转换主要角色至(1)在主站点110处的备用数据库120-2(如果其是可用的),或(2)到DR站点140的另一个主数据库120-1。
在306,健康监控模块232(图2)可以确定主站点的任意备用数据库是否是可用的,(例如,这是主站点的主数据库和主站点的所有备用数据库不可用的站点级故障,还是主数据库已变得不可用、但主站点上至少有一个备用数据库可用的部分故障)。
当数据库健康监控模块232(图2)确定(在306)主站点110的所有数据库都不可用(例如,已故障),方法300前进到308,其中数据库故障切换模块238(图2)执行故障切换到灾难恢复站点140处的主数据库120-1(也称为站点切换操作),并指示负载均衡器111将所有网络流量引导至灾难恢复站点140(例如,将所有流量引导到灾难恢复站点140的主数据库120-1(如果可用的话))。因此,来自用户系统112的任何读/写请求将由应用程序服务器124和灾难恢复站点140处的主数据库120-1处理。
块310以虚线框进行了说明,因为它是可选的。当数据库健康监控模块232(图2)确定(在306)主站点110的备用数据库120-2可用(例如,没有故障),则方法300可以可选地前进到310,其中只读应用程序模式模块236(图2)可以在备用数据库120-2启用只读应用程序模式124,以临时允许由应用程序服务器124服务的应用程序对存储在主站点110处的备用数据库120-2上的数据的只读访问。这在图4中以应用程序服务器124 和备用数据库120-2之间的线310示出。允许只读访问有利于改善客户体验,因为当事务不能被提交时,应用程序服务器124仍然可以从备用数据库120-2读取数据和满足客户查询和其他只读请求,当主数据库120-1停止运行时,以及当正在确定主数据库120-1是否会恢复(进而确定是否应该发生角色转变)。在某些情况下,当主数据库120-1可以在相对较短的时间内恢复时,更有意义的做法是等待,以便主数据库120-1保持其作为主站点 110的主数据库的角色。
在312,数据库健康监控模块232(图2)确定主数据库120-1是否已经不可用超过恢复计时器/计数器的时间/计数。当数据库健康监控模块232(图2)确定了(在312)主数据库120-1可用且已经在恢复定时器/计数器达到一定的恢复时间/计数之前恢复,这意味着主数据库120-1已经在恢复时间/计数之内恢复,从而方法前进到314,其中数据库健康监控模块232(图2)自动地重启主数据库120-1(例如,通过操作系统的后台(daemon) 进程/监督(watchdog)过程),主数据库120-1将继续作为主站点110的主数据库120-1 使用。应用程序服务器124上的应用程序将继续使用到主站点110上的主数据库120-1的预先建立的连接,并将继续正常运行。
相比之下,当数据库健康监控模块232(图2)确定主数据库120-1已经不可用超过恢复时间/计数器的时间/计数,这意味着主数据库120-1在恢复/计数的时间内没有恢复,并且方法前进到316,其中数据库故障切换模块238(图2)触发故障切换,以将备用数据库120-2切换为作为主站点110的主数据库的新角色,如图5所示。在一个实施例中,可以通过例如自动将主数据库120-1的存储子系统(如果完整且可访问)附加到备用数据库 120-2的数据库服务器上用于恢复目的,来实现这一点;这可以帮助减少任何数据丢失,并消除分配新主机的延迟。然后,可以自动将备用数据库120-2启用为可读和可写的,并分配在主站点100上的主数据库的角色,以便开始将数据复制到其他备用数据库。故障切换角色转变之后,应用程序服务器和备用数据库120-2之间的预建立的连接用来允许应用程序服务器从备用数据库120-2读取数据和将数据写入到备用数据库120-2,导致备用数据库120-2充当主站点110上主数据库的角色。根据所公开的实施例,为了提高效率,预先建立了应用程序服务器和备用数据库之间的连接,因此不需要建立新的连接。备用数据库 120-2可以自动切换。已充当了主数据库角色的数据库120-2,现在可被应用程序124读/ 写访问(如图5中的在应用程序服务器124和数据库120-2之间延伸的线316所示),现在也处于DR站点140的主数据库120-1的数据保护复制配置中(如图5中所示的在主站点110的数据库120-2和DR站点140的主数据库120-1之间延伸的双向箭头所示)。
因此,在自动启动故障切换处理序列之前,数据库健康监控模块232(图2)确定(在312处)主站点上的主数据库120-1是否已经在允许的恢复时间期间恢复。如果主站点110上的主数据库120-1在恢复时间期间没有恢复,那么在316,数据库故障切换模块238(图 2)自动地启动故障切换处理序列。数据库故障切换模块238(图2)会自动地提供主数据库120-1的副本,通过分配主站点110的备用数据库120-2作为主数据库或“新”主数据库的角色,意味着这个备用数据库120-2将为主站点110承担主数据库的角色。在本例中,假设数据库故障切换模块238(图2)选择备用数据库120-2作为主站点110的主数据库的角色,那么因此应用程序124将切换到数据库120-2作为主站点110的主数据库。因此,应用程序服务器124提供的应用程序将完全访问“新”主数据库120-2,包括在新主数据库120-2上执行读/写事务的权限。因此,应用程序124可以继续从新的主数据库120-2读取数据,也可以将数据写入新的主数据库120-2。
作为故障切换处理序列的一部分,在图3B的318,备用数据库供应模块240(图2)可以使用存储在快照存储系统128中最新的快照数据自动地创建新的数据库120-4,如图6的线318所示。
接着,数据库复制管理模块242(图2)可以自动地添加(在320)新创建的数据库120-4作为主站点110的备用数据库,使系统恢复到包括高可用性和备用容量在内的全部容量。图7中的主站点110的新备用数据库120-4与主站点110的主数据库120-2之间延伸的双向箭头320示出了这一点。
下面的描述是可以实现上述特征的系统的一个示例。下面描述的系统的组件只是一个例子,不应该被解释为作为限制。上述参照图1-图7描述的特征可以在其他类型的计算环境中实现,例如具有多个数据库的环境、多租户数据库系统环境、单租户数据库系统环境或上述几种环境的组合。
图8示出了根据一些实现方式的其中可以使用按需数据库服务的环境410的一个例子的框图。环境410包括用户系统412、网络414、数据库系统416(也称此为“基于云的系统”)、处理器系统417、应用程序平台418、网络接口420、用于存储租户数据423的租户数据库422、用于存储系统数据425的系统数据库424、用于实现系统416的多种功能的程序代码426、以及用于执行数据库系统进程和与租户相关的进程的进程空间428,例如运行作为应用程序主机服务的部分的应用程序。在一些其它的实现方式中,环境410 可以没有这些元件或系统的全部,或者可以具有其它的元件或系统替代上述列出的那些,或者具有其它的元件或系统来补充上文列出的那些。
在一些实现方式中,环境410是按需数据库服务存在于其中的环境。按需数据库服务,例如可以使用系统416实现的数据库服务,是企业外部拥有、维护或提供对系统416 的访问的用户可以使用的服务。如上所述,这些用户通常不需要关心构建或维护系统416。相反,当用户需要系统416提供的服务时,系统416提供的资源可以供该用户的使用;也就是说,根据用户的需求。一些按需数据库服务可以将来自一个或更多个租户的信息存储到公共数据库映像的表中,从而形成多租户数据库系统(MTS)。术语“多租户数据库系统”是指一个或更多个客户或租户可以共享数据库系统的硬件和软件的各种元素的系统。例如,给定的应用程序服务器可以同时处理大量客户的请求,而给定的数据库表可以为更多的客户存储诸如提要条目之类的数据行。数据库映像可以包含一个或更多个数据库对象。关系数据库管理系统(RDBMS)或类似的系统可以对数据库对象执行信息的存储和检索。
应用程序平台418可以是框架,其允许系统416的应用程序执行,例如系统416的硬件或软件基础设施。在一些实现方式中,应用程序平台418允许创建、管理和执行由按需数据库服务提供者开发的一个或更多个应用程序,用户通过用户系统412访问按需数据库服务,或第三方应用程序开发人员通过用户系统412访问按需数据库服务。
在一些实现方式中,系统416实现了基于web的客户关系管理(CRM)系统。例如,在一些这样的实现方式中,系统416包括应用程序服务器,配置为实现和执行CRM软件应用程序以及提供相关的数据、代码、形式、可渲染的网页和文档、以及到用户系统412 的和来自用户系统412的其他信息,并且用于存储到数据库系统相关的数据、对象和web 页面内容,和用于从数据库系统相关的数据、对象和web页面内容检索。在一些MTS实现方式中,多个租户的数据可以存储在租户数据库422中的同一个物理数据库对象中。在一些这样的实现方式中,租户数据被安排在租户数据库422的存储介质中,因此一个租户的数据与其他租户的数据在逻辑上是分开的,使得一个租户不能访问其他租户的数据,除非这些数据是明确共享的。系统416还实现了不同于CRM应用程序的、或者CRM应用程序之外的应用程序。例如,系统416可以提供对多个托管(标准和定制)应用程序(包括 CRM应用程序)的租户访问。应用程序平台418可以支持用户(或第三方开发人员)应用程序,其可以或可以不包括CRM。应用程序平台418管理至一个或更多个数据库对象中的应用程序的创建和存储,以及在系统416的进程空间中的一个或更多个虚拟机中的应用程序的执行。
根据一些实现方式,每个系统416都被配置为向用户(客户端)系统412提供web 页面、表单、应用程序、数据和媒体内容,以支持用户系统412作为系统416的租户进行访问。因此,系统416提供了安全机制,以保持每个租户的数据独立,除非数据是共享的。如果使用多于一个MTS,它们可以位于彼此附近(例如,在坐落在一个建筑物或校园中的服务器工场中),或者它们可以分布在远离彼此的位置(例如,一个或更多个服务器位于城市A而一个或更多个服务器位于城市B)。如本文中使用的,每个MTS可以包括一个或更多个逻辑或物理连接的服务器,这些服务器分布在本地或跨一个或更多个地理位置。此外,术语“服务器”指的是计算设备或系统,包括处理硬件和进程空间、相关联的存储介质(如内存设备或数据库),以及在某些情况下,本领域熟知的数据库应用程序(例如 OODBMS或RDBMS)。还应该理解,“服务器系统”和“服务器”在这里经常互换使用。类似地,本文描述的数据库对象可以实现为以下的一部分:单个数据库、分布式数据库、分布式数据库集合、具有冗余的在线或离线备份或其他冗余的数据库等,还可以包括分布式数据库或存储网络以及相关联的处理智能。
网络414可以是或包括相互通信的系统或设备的任何网络或网络组合。例如,网络414可以是或包括LAN(局域网)、WAN(广域网)、电话网络、无线网络、蜂窝网络、点对点网络、星形网络、令牌环网、集线网或其他适当配置的任何一个或任何组合。网络 414可以包括TCP/IP(传输控制协议和互联网协议)网络,如全球互联网络中的网络通常称为“互联网”(具有大写“I”)。本文中的许多示例都将使用互联网。但是,应该理解,虽然TCP/IP是一种经常实现的协议,但是公开的实现方式可以使用的网络并不限于此。
用户系统412可以使用TCP/IP、在更高的网络级别上使用诸如HTTP、FTP、AFS、 WAP等其他常用的互联网协议,与系统416进行通信。在使用HTTP的示例中,每个用户系统412都可以包含一个HTTP客户端,通常被称为“web浏览器”,或者简单地称为“浏览器”,用于向系统416的HTTP服务器发送HTTP信号以及从系统416的HTTP服务器接收HTTP信号。这样的HTTP服务器可以实现为系统416和网络414之间的唯一网络接口420,但是可以使用其他技术来补充或替代这些技术。在一些实现方式中,系统416和网络414之间的网络接口420包含负载共享功能,例如循环HTTP请求分发器,以平衡负载并在多个服务器之间均匀地分发传入的HTTP请求。在MTS实现方式中,每个服务器都可以访问MTS数据;然而,也可以替代地使用其他可选的配置。
用户系统412可以实现为用户访问数据库系统416所使用的任何计算设备或其他数据处理装置或系统。例如,任意用户系统的412可以是台式电脑、工作站、笔记本电脑、平板电脑、手持计算设备、移动蜂窝电话(例如,“智能手机”),或任何其他使能WiFi 设备、无线访问协议(WAP)使能设备,或能够直接或间接连接到互联网或其他网络的其他计算设备。术语“用户系统”和“计算设备”在这里可以互换使用,也可以与术语“计算机”互换使用。如上所述,每个用户系统412通常执行HTTP客户端,例如,web浏览 (或简称为“浏览”)程序,如基于WebKit平台,微软的IE浏览器、Netscape的Navigator 浏览器,Opera浏览器,Mozilla的火狐浏览器,或支持WAP的浏览器(如手机、PDA或其他无线设备)等的浏览器,允许用户系统412的用户(例如,系统416提供的按需服务的订阅者)通过网络414从系统416访问、处理和查看可用的信息、页面和应用程序。
每个用户系统412也通常包括一个或更多个用户输入设备,如键盘、鼠标、轨迹球、触摸板、触摸屏、钢笔或手写笔等,用于与在显示器(例如,监控屏幕,液晶显示器(LCD),发光二极管(LED),以及其他可能)上由浏览器提供的图形用户界面(GUI)进行交互,结合由系统416或其他系统或服务器提供的页面、表单、应用程序和其他信息。例如,用户界面设备可用于访问由系统416承载的数据和应用程序,并对存储的数据执行搜索,以及允许用户与可能呈现给用户的各种GUI页面交互。如上所述,实现方式适合与互联网一起使用,尽管可以使用其他网络代替互联网或除互联网之外的其他网络,如内部网、外联网、虚拟专用网(VPN)、基于非TCP/IP的网络、任何LAN或WAN或类似的网络。
用户系统412的用户可能在各自的容量上有所不同,而特定用户系统412的容量可以完全由这样的用户系统的当前用户的权限(权限级别)决定。例如,当销售人员正在使用特定的用户系统412与系统416交互时,该用户系统可以拥有分配给销售人员的能力。然而,当管理员使用该用户系统412与该系统416交互时,该用户系统可以拥有分配给该管理员的能力。当使用分层角色模型时,一个权限级别的用户可以访问较低权限级别的用户可以访问的应用程序、数据和数据库信息,但是不能访问较高权限级别的用户可以访问的某些应用程序、数据库信息和数据。因此,不同的用户在访问和修改应用程序和数据库信息方面通常具有不同的功能,这取决于用户各自的安全性或权限级别(也称为“授权”)。
根据一些实现方式,每个用户系统412及其部分或所有组件都可以使用应用程序(如浏览器)进行操作程序配置,包括使用中央处理单元(CPU)(如处理器或类似处理器)执行的计算机代码。同样,系统416(以及MTS的额外的实例,其中存在多个)和它的所有组件都可以是运营商-可配置的,使用包括计算机代码的应用程序运行使用处理器系统417,其可以实现为包括CPU,这可以包括处理器或类似的,或多个CPU。
系统416包括有形的计算机可读媒体,其上/中存储着非暂时性指令,这些指令可由服务器或其他计算系统(或此类服务器或计算系统的集合)执行或用于编写程序以执行本文所述过程的一些实现方式。例如,计算机程序代码426可以实现指令用于操作和配置系统416,以便按照本文所述进行交互并处理web页面、应用程序和其他数据和媒体内容。在一些实现方式中,计算机代码426可以被下载和存储在硬盘上,但整个程序代码,或其部分,也可以存储在任何其他易失性或非易失性存储介质或设备中,如众所周知的,如ROM 或RAM,或提供在任何能够存储程序代码的介质上,如任何类型的旋转介质,包括软盘、光盘、数字多功能光盘(DVD)、光盘(CD)、微型驱动器、磁光盘、以及磁性或光学卡、纳米系统(包括分子记忆IC),或适合存储指令或数据的任何其他类型的计算机可读介质或设备。此外,整个程序代码,或其部分,可以通过传输介质(例如互联网)从软件源或从另一台服务器(如众所众知的)传输和下载,或通过已知的任何其他现有网络连接传输(例如外部网、VPN、局域网等),使用众所周知的任何通信介质和协议(例如,TCP/IP, HTTP,HTTPS,以太网,等等)。可以领会的是,用于所公开的实现方式的计算机代码可以实现为任何编程语言,其可以在服务器或其他计算系统上执行,例如,C、C++、HTML、任何其他标记语言、JavaTM、JavaScript、ActiveX,其他脚本语言,例如VBScript,以及也可以使用许多众所周知的其他的编程语言。(JavaTM是Sun Microsystems公司的商标。)。
图9示出了根据一些实现方式的图8各元素的示例实现方式以及这些元素之间的示例连接的框图。也就是说,图9也说明了环境410,但是图9中,根据一些更具体的实现方式,更加具体地示出了系统416的多种元素以及这些元素之间的多种相互连接。图8中同样显示在图9中的元素将在图9中使用与图8中相同的参考编号。此外,在图9中,用户系统412包括处理器系统512A、内存系统512B、输入系统512C和输出系统512D。处理器系统512A可以包含一个或更多个处理器的任何适当组合。内存系统512B可以包括一个或更多个内存设备的任何适当组合。输入系统512C可以包含输入设备的任何适当组合,输入设备例如一个或更多个触摸屏接口、键盘、鼠标、轨迹球、扫描仪、摄像机或至网络的接口。输出系统512D可以包括输出设备的任何适当组合,输出设备例如一个或更多个显示设备、打印机或至网络的接口。
在图9中,图8的网络接口420被实现为一组HTTP应用程序服务器5001-500N。每个应用程序服务器500(在这里也称为“app服务器”)都配置为与租户数据库422和其中的租户数据523、以及系统数据库424和其中的系统数据525进行通信,以服务从用户系统512接收到的请求。租户数据523可以被划分为单独的租户存储空间513,这些存储空间可以在物理上或逻辑上进行安排或划分。在每个租户存储空间513中,同样可以为每个用户分配租户数据514和应用程序元数据516。例如,用户最近使用的(MRU)项的副本可以存储到用户存储器514。类似地,可以将租户所在的整个组织的MRU项的副本存储到租户存储空间513。
进程空间428包括系统进程空间502、单个租户进程空间504和租户管理进程空间510。应用程序平台418包括应用程序设置机制538,该机制支持应用程序开发人员创建和管理应用程序。例如,可以通过由订户将例程536保存为租户管理进程510管理的一个或更多个租户进程空间504,从而将此类应用程序和其他应用程序作为元数据保存到租户数据库422中。对此类应用程序的调用可以使用PL/SOQL 534进行编码,其为API 532提供了编程语言风格的接口扩展。一些PL/SOQL语言实现方式的详细描述在题为“允许通过多租户按需数据库服务访问已开发应用程序的方法和系统(METHOD AND SYSTEM FOR ALLOWING ACCESSTO DEVELOPED APPLICATIONS VIA A MULTI-TENANT ON-DEMAND DATABASE SERVICE)”的由克雷格·威士曼于2010年6月1日发布的 7,730,478号共同分配的美国专利中进行了讨论,并且其全部内容为所有的目的合并于此。对应用程序的调用可以由一个或更多个系统进程检测到,其为调用和作为虚拟机中的应用程序执行元数据的订阅者管理检索应用程序元数据416。
图9中的系统416还包括到系统416的用户接口(UI)530和应用程序编程接口(API)532,到用户系统512上的用户或开发者的驻留进程。在一些其他实现方式中,环境410 可以不具有与上面列出的相同的元素,或者可以具有与上面列出的元素不同的其他元素。
每个应用程序服务器500都可以与租户数据库422和系统数据库424可通信地耦连,例如,可以通过不同的网络连接分别访问租户数据523和系统数据525。例如,一个应用程序服务器5001可以通过网络414(例如互联网)被耦连、而另一个应用程序服务器500N可以通过直接的网络链接进行耦连,而另一个应用程序服务器(未示出可以通过另一个不同的网络连接进行耦连。传输控制协议和互联网协议(TCP/IP)是可以用于在应用程序服务器500和系统416之间通信的典型协议的例子。然而,对于本领域技术人员来说,显然可以根据所使用的网络互连使用其他传输协议来优化系统416。
在一些实现方式中,每个应用程序服务器500被配置为处理与系统416的租户的任何组织相关联的任何用户的请求。由于各种原因,随时都可以从服务器池中添加和删除应用程序服务器500,因此在一些实现方式中,用户或组织与特定的应用程序服务器500没有服务器关联性。在一些这样的实现方式中,实现负载均衡功能的接口系统(例如,F5Big-IP负载均衡器)在应用程序服务器500和用户系统512之间可通信地耦连,以便将请求分发给应用程序服务器500。在一个实现方式中,负载均衡器使用最小连接算法将用户请求路由到应用程序服务器500。其他负载均衡算法的例子,如循环和观察响应时间,也可以被使用。例如,在某些情况下,来自同一个用户的三个连续请求可以命中三个不同的应用程序服务器500,而来自不同用户的三个请求可以命中同一个应用程序服务器500。通过这种方式,示例性地,系统416可以是一个多租户系统,其中系统416处理不同用户和组织之间的不同对象、数据和应用程序的存储和访问。
在一个示例的存储使用实例中,租户可以是雇佣销售人员的公司,其中每个销售人员使用系统416管理他们销售的各个方面。用户可以维护联系人数据、领先数据、客户跟踪数据、性能数据、目标和进度数据等,它们都适用于该用户的个人销售流程(例如,在租户数据库422中)。在MTS安排的一个例子,由于所有用于访问、查看、修改、报告、传输、计算等的数据和应用程序都可以由一个用户系统512维护和访问,而这个用户系统只有网络访问权限,因此用户可以从许多不同的用户系统中管理他的或她的销售工作和周期。例如,当销售人员正在访问客户,而客户在其大堂可以上网时,销售人员可以在等待客户到达大堂时获得关于该客户的关键更新。
尽管每个用户的数据可以与其他用户的数据分开存储,而不管每个用户的雇主是谁,但是某些数据可以由多个用户或者作为租户的给定组织的所有用户共享或访问的组织范围内的数据。因此,可以在租户级别分配由系统416管理的一些数据结构,而在用户级别可以管理其他数据结构。由于MTS可以支持多个租户(包括可能的竞争对手),所以MTS 可以拥有安全协议,其将数据、应用程序和应用程序的使用分开。而且,因为许多租户可能会选择进入MTS而不是维护他们自己的系统,冗余、正常运行时间和备份是可以实现在MTS中的附加功能。除了特定于用户的数据和特定于租户的数据,系统416也可以维护由多个租户可用的系统级数据或其他数据。这样的系统级数据可以包括行业报告、新闻、公告(posting)等可在租户之间共享的内容。
在一些实现方式中,用户系统512(也可以是客户端系统)与应用程序服务器500通信,以从系统416请求和更新系统级和租户级的数据。这种请求和更新可以涉及向租户数据库422或系统数据库424发送一个或更多个查询。系统416(例如,系统416中的应用程序服务器500)可以自动地生成一个或更多个SQL语句(例如,一个或更多个SQL 查询),用于访问所需的信息。系统数据库424可以生成查询计划来访问数据库中请求的数据。术语“查询计划”通常指用于访问数据库系统中的信息的一个或更多个操作。
通常可以将每个数据库看作对象的集合,例如一组逻辑表,其中包含适合于预定义或可定制类别的数据。“表”是数据对象的一种表示形式,在这里可以根据一些实现方式来简化对象和自定义对象的概念描述。应该理解,“表”和“对象”在这里可以互换使用。每个表通常包含一个或更多个数据类别,这些数据类别逻辑上被安排为可查看模式中的列或字段。表的每一行或每个元素都可以包含由字段定义的每个类别的数据的实例。例如, CRM数据库可以包括描述客户的基本联系信息的字段的表,如姓名、地址、电话号码、传真号码等。另一个表可以描述采购订单,包括用于信息的字段,如客户、产品、销售价格、日期等。在一些MTS实现方式中,可以为所有租户提供用于使用的标准实体表。对于CRM 数据库应用程序,这些标准实体可以包括用于实例、账户、联系人、领导和机会数据对象的表,每个包含预定义的字段。如这里使用的的,术语“实体”也可以与“对象”和“表”互换使用。
在一些MTS实现方式中,允许租户创建和存储自定义对象,或者可以允许自定义标准实体或对象,例如为标准对象创建自定义字段,包括自定义索引字段。题为“多租户数据库系统中的自定义实体和字段(CUSTOM ENTITIES AND FIELDS IN A MULTI-TENANTDATABASE SYSTEM)”、由威士曼等人于2010年8月17日发布的 7,779,039号共同转让的美国专利,并且其全部内容通过引用为了所有目的合并于此,教导了用于在多租户数据库系统中创建自定义对象以及自定义标准对象的系统和方法。例如,在一些实现方式中,所有自定义实体数据行存储在单一的多租户物理表中,其可以包括每个组织的多个逻辑表。很明显,对于客户来说,他们的多个“表”实际上存储在一个大表中,或者他们的数据可能与其他客户的数据存储在同一个表中。
图10A示出了根据一些实现方式的说明了按需数据库服务环境600的示例架构组件的系统图。与云604通信连接的客户端机器(通常指一个或更多个网络的组合,如本文所述)可以通过一个或更多个边缘路由器608和612与按需数据库服务环境600通信。客户端机器可以是上面描述的用户系统12的任何示例。边缘路由器可以通过防火墙616与一个或更多个核心交换机620和624通信。核心交换机可以与负载均衡器628通信,其可以将服务器负载分配到不同的pod上,比如pod 640和644。pod 640和644,其每个可以包含一个或更多个服务器或其他计算资源,可以执行数据处理和用于提供按需服务的其他操作。与pod的通信可以通过pod交换机632和636进行。按需数据库服务环境的组件可以通过数据库防火墙648和数据库交换机652与数据库存储656通信。
如图10A和图10B所示,访问按需数据库服务环境可以包括在各种不同的硬件或软件组件之间传输的通信。此外,按需数据库服务环境600是实际按需数据库服务环境的简化表示。例如,尽管图10A和图10B中只显示了每种类型的一个或两个设备,但是按需数据库服务环境的一些实现方式可以包括每种类型的一个到多个设备。此外,按需数据库服务环境不需要包含图10A和图10B中所示的每个设备,或者可以包括图10A和图10B中没有示出的其他设备。
此外,应该领会的是,按需数据库服务环境600中的一个或更多个设备可以在相同的物理设备或不同的硬件上实现。一些设备可以使用硬件或硬件和软件的组合来实现。因此,这里使用的“数据处理装置”、“机器”、“服务器”和“设备”等术语并不局限于单个硬件设备,而对这些术语的引用可以包括配置为提供所述功能的任何适当的硬件和软件的组合。
云604意在指一个或更多个数据网络,通常包括互联网。与云604通信连接的客户端机器可以与按需数据库服务环境600的其他组件通信,以访问由按需数据库服务环境提供的服务。例如,客户端机器可以访问按需数据库服务环境以检索、存储、编辑或处理信息。在一些实现方式中,边缘路由器608和612在云604和按需数据库服务环境600的其他组件之间路由数据包。例如,边缘路由器608和612可以使用边界网关协议(BGP)。 BGP是互联网的核心路由协议。边缘路由器608和612可以维护IP网络表或“前缀”,其指定了互联网上自治系统之间的网络可达性。
在一些实现方式中,防火墙616可以保护按需数据库服务环境600的内部组件免受互联网流量的影响。防火墙616可以根据一组规则和其他标准阻止、允许或拒绝访问按需数据库服务环境600的内部组件。防火墙616可以充当一个或更多个包过滤器、应用程序网关、有状态的过滤器、代理服务器或任何其他类型的防火墙。
在一些实现方式中,核心交换机620和624是高容量交换机,其在按需数据库服务环境600中传输数据包。核心交换机620和624可以配置为网络桥,其可以在按需数据库服务环境中的不同组件之间快速路由数据。在一些实现方式中,使用两个或更多个核心交换机620和624可以提供冗余或减少的延迟。
在一些实现方式中,pod 640和644执行按需数据库服务环境提供的核心数据处理和服务功能。每个pod可以包含各种类型的硬件或软件计算资源。参考图10B更详细地讨论了pod架构的一个示例。在一些实现方式中,pod 640和644之间的通信通过pod交换机 632和636进行。pod交换机632和636可以辅助pod 640和644与通信连接至云604的客户端机器之间的通信,例如通过核心交换机620和624。此外,pod交换机632和636可以辅助pod 640和644与数据库存储656之间的通信。在一些实现方式中,负载均衡器628 可以在pod 640和644之间分配工作负载。在多个pod之间均衡按需服务请求可以帮助改进资源的使用、增加吞吐量、减少响应时间或减少开销。负载均衡器628可以包括多层交换机来分析和转发流量。
在一些实现方式中,对数据库存储656的访问由数据库防火墙648保护。数据库防火墙648可以充当在协议栈的数据库应用层操作的计算机应用程序防火墙。数据库防火墙648可以保护数据库存储656免受诸如结构查询语言(SQL)注入、数据库黑客程序和未经授权的信息公开等应用程序攻击。在一些实现方式中,数据库防火墙648包括使用一种或更多种形式的反向代理服务来代理流量,然后再将其传递给网关路由器的主机。数据库防火墙648可以检查数据库流量的内容,并阻止某些内容或数据库请求。数据库防火墙648 可以在TCP/IP堆栈之上的SQL应用程序级别上工作,管理应用程序到数据库或SQL管理接口的连接,以及拦截和强制执行往返于数据库网络或应用程序接口的数据包。
在一些实现方式中,与数据库存储656的通信是通过数据库交换机652进行的。多租户数据库存储656可以包含用于处理数据库查询的多于一个硬件或软件组件。因此,数据库交换机652可以将按需数据库服务环境的其他组件(例如pod 640和644)传输的数据库查询定向到数据库存储656中的正确组件。在一些实现方式中,数据库存储656是由许多不同的组织共享的按需数据库系统,如上文参照图8和图9所描述的那样。
图10B示出了根据一些实现方式的、进一步说明了按需数据库服务环境的示例架构组件的系统图。pod 644可用于向按需数据库服务环境600的用户提供服务。在一些实现方式中,每个pod包含各种服务器或其他系统。pod 644包括一个或更多个内容批处理服务器664、内容搜索服务器668、查询服务器682、文件强制服务器686、访问控制系统(ACS) 服务器680、批处理服务器684和应用程序服务器688。pod 644还可以包括数据库实例690、快速文件系统(QFS)692和索引器694。在一些实现方式中,pod 644中的多个服务器之间的部分或全部通信可以通过交换机636进行传输。
在一些实现方式中,应用程序服务器688包括硬件或软件框架,用于执行进程(例如,程序、例程、脚本),以支持由按需数据库服务环境600通过pod 644提供的应用程序的构建。在一些实现方式中,应用程序服务器688的硬件或软件框架配置为执行本文描述的服务的操作,包括本文描述的各种方法或流程块的性能。在一些替代实现方式中,可以包含两个或跟好多个应用程序服务器688,并协同执行这些方法,或者本文描述的一个或更多个其他服务器可以被配置为执行所公开的方法。
内容批处理服务器664可以处理pod内部的请求。一些这样的请求可以长时间运行,也可以不绑定到特定的客户。例如,内容批处理服务器664可以处理与日志挖掘、清理工作和维护任务相关的请求。内容搜索服务器668可以提供查询和索引器功能。例如,内容搜索服务器668提供的功能可以允许用户搜索存储在按需数据库服务环境中的内容。文件强制服务器686可以管理对存储在文件强制存储698中的信息的请求。文件强制存储698 可以存储诸如文档、图像和基本大对象(BLOB)等信息。通过使用文件强制服务器686 管理信息的请求,可以减少数据库上的映像占用(footprint)。查询服务器682可用于从一个或更多个文件存储系统检索信息。例如,查询系统682可以接收来自应用程序服务器 688的关于信息的请求,并将信息查询发送到位于pod外部的NFS 696。
Pod 644可以共享被配置为多租户环境的数据库实例690,其中不同的组织可以共享对同一数据库的访问。此外,pod 644提供的服务可能需要各种硬件或软件资源。在一些实现方式中,ACS服务器680控制对数据、硬件资源或软件资源的访问。在一些实现方式中,批处理服务器684处理批处理作业,这些作业用于在指定的时间运行任务。例如,批处理服务器684可以向其他服务器(如应用程序服务器688)发送指令,以触发批处理作业。
在一些实现方式中,QFS 692是可从加利福尼亚州圣克拉拉的Sun获得的开源文件存储系统。QFS可以作为快速访问文件存储系统,用于存储和访问pod 644中可用的信息。QFS 692可以支持一些卷管理功能,允许将许多磁盘共同组合到一个文件存储系统中。文件存储系统元数据可以保存在一组单独的磁盘上,这对于不能容忍长磁盘查找的流应用程序非常有用。因此,QFS系统可以与一个或更多个内容搜索服务器668或索引器694通信,以识别、检索、移动或更新存储在网络文件存储系统696或其他存储系统中的数据。
在一些实现方式中,一个或更多个查询服务器682与NFS 696通信,以检索或更新存储在pod 644之外的信息。NFS 696允许位于pod 644中的服务器以类似于访问本地存储的方式访问网络上的文件。在一些实现方式中,来自查询服务器682的查询被通过负载均衡器628传输到NFS 696,其可以将资源请求分布到按需数据库服务环境中可用的各种资源上。NFS 696还可以与QFS 692通信,以更新存储在NFS 696上的信息,或者为位于pod 644中的服务器提供QFS 692使用的信息。
在一些实现方式中,pod包含一个或更多个数据库实例690。数据库实例690可以将信息传输到QFS 692。当信息被传输到QFS时,pod 644中的服务器可以使用它,而不需要使用额外的数据库调用。在一些实现方式中,数据库信息被传输到索引器694。索引器 694可以提供数据库690或QFS 692中可用信息的索引。索引信息可以被提供给文件强制服务器686或QFS 692。
图11示出了以计算机系统700的示例形式的机器的图解表示,其中可以执行一组指令,用于使机器执行本文讨论的任何一种或更多种方法。系统700可以采用计算机系统的形式,在计算机系统中可以执行一组指令,用于使机器执行本文讨论的任何一种或更多种方法。在替代的实施例中,该机器可以连接(例如联网)到LAN、内部网、外联网或互联网中的其他机器。该机器可以在客户端-服务器网络环境中以服务器机器的身份运行。该机器可以是个人计算机(PC)、机顶盒(STB)、服务器、网络路由器、交换机或网桥,或任何能够执行指定该机器要执行的操作的一组指令(顺序指令或其他指令)的机器。此外,虽然只说明了一台机器,但术语“机器”还应包括单独或联合执行一组(或多组)指令的机器的任何集合,以执行本文讨论的任何一种或更多种方法。
示例性计算机系统700包括处理设备(处理器)702、主存储器704(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM)(诸如同步DRAM(SDRAM)))、静态内存706(例如,闪存、静态随机存取存储器(SRAM)),以及数据存储设备718,其通过总线730相互通信。
处理设备702表示一个或更多个通用处理设备,如微处理器、中央处理单元等。更具体地,处理设备702可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC) 微处理器、甚长指令字(VLIW)微处理器,或者是实现其他指令集的处理器或实现指令集组合的处理器。处理设备702还可以是一个或更多个专用处理设备,如应用程序专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。
计算机系统700还可以包括网络接口设备708。计算机系统700还可包括视频显示单元710(例如液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备712(例如键盘)、光标控制设备714(例如鼠标)和信号产生设备716(例如扬声器)。
数据存储设备718可以包括计算机可读介质728,其上存储一组或更多组指令722(例如,内存缓冲区服务74的指令),实现本文描述的任何一种或更多种方法或功能。指令722也可以完全或至少部分地驻留在主存储器704和/或处理设备702的处理逻辑726中,在由计算机系统700执行其期间,主存储器704和处理设备702也构成计算机可读介质。指令还可以进一步通过网络接口设备708通过网络720传输或接收。
尽管在示例实施例中所示的计算机可读存储介质728是单独的介质,但术语“计算机可读存储介质”应该被认为包括单独的介质或多个介质(例如,集中式或分布式的数据库,和/或相关联的缓存和服务器),其存储一个或更多个指令的集合。术语“计算机可读存储介质”还应被认为包括任何能够存储、编码或携带一组指令供机器执行的介质,并且其能使机器执行本发明的任何一种或更多种方法。因此,术语“计算机可读存储介质”应包括但不限于固态存储器、光学介质和磁性介质。
上述描述阐明了许多具体细节,例如具体系统、组件、方法等的示例,以便提供对本发明的几个实施例的很好的理解。然而,对于本领域技术人员来说,很明显,本发明的至少一些实施例可以在没有这些具体细节的情况下实施。在其他情况下,为了避免不必要地混淆本发明,没有详细描述已知的组件或方法,或者以简单的框图格式对其表示。因此,所提出的具体细节只是示例性的。具体的实现方式可能与这些示例性的细节不同,但仍应被考虑在本发明的范围内。
在上面的描述中,列出了许多细节。然而,对于具有本公开益处的本领域技术人员来说,显而易见的是,可以在不使用这些具体细节的情况下实施本发明的实施例。在某些情况下,为了避免模糊描述,已知的结构和设备以框图形式显示,而不是详细显示。
详细描述的某些部分以算法和计算机内存中数据位操作的符号表示形式给出。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们的工作内容传达给本领域其他技术人员的方法。一般来说,此处的算法被认为是自洽的步骤序列,引导到期望的结果。这些步骤需要对物理量进行物理操作。尽管不一定,但这些量以能够存储、传输、组合、比较和以其他方式操作的电信号或磁信号的形式出现。事实证明,有时将这些信号称为位、值、元素、符号、字符、术语、数字或类似的东西非常方便,这主要是出于通用的原因。
然而,应该记住,所有这些和类似的术语都要与适当的物理量相联系,并且只是应用于这些物理量的方便的标签。除非另有特别规定的,从上面的讨论中,应该理解的是,在整个描述中,使用诸如“确定”、“识别”、“添加”、“选择”等术语的讨论,都是指计算机系统或类似的电子计算设备的动作和过程,其将计算机系统寄存器和存储器中以物理量(例如电子量)表示的数据操作和转换为计算机系统存储器或寄存器或其他类似的信息存储、传输或显示设备中以物理量表示的其他数据。
本发明的实施例还涉及用于执行本文中操作的装置。该装置可为所需目的而特别构造,或其可包括由存储在该计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可以存储在计算机可读存储介质中,例如,但不限于,任何类型的磁盘,包括:磁盘、光盘、CD-ROM、以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光学卡,或适合储存电子指令的任何类型的介质。
本文提出的算法和显示器与任何特定的计算机或其他装置没有内在的联系。根据本文的教导,各种通用系统可以与程序一起使用,或者其可以方便地构建一个更专业的装置来执行所需的方法步骤。下面的描述将显示各种系统所需的结构。此外,本发明不根据任何特定的编程语言进行描述。可以领会的是,可以使用多种编程语言来实现本文描述的本发明的教导。
虽然在上述详细描述中提出了至少一个示例性实施例,但应该领会的是,存在大量的变化。还应该领会的是,此处描述的示例性实施例或多个实施例并不意图以任何方式限制所要求的主题的范围、适用性或配置。相反,上述详细描述将为那些本领域技术人员提供实施所描述的一个或多个实施例的方便路线图。应当理解,多个元素的功能和排列可以进行各种改变,而不偏离权利要求书所定义的范围,包括本专利申请提交时已知的等价物和可预见的等价物。
Claims (21)
1.一种数据库系统中的方法,所述数据库系统包括主站点,其中所述主站点进一步包括在主数据库可用时向所述主数据库写入数据以及从所述主数据库读取数据的应用程序服务器,所述方法包括:
通过自修复模块自动地检测所述主数据库的不可用性;
通过所述自修复模块确定所述主站点的备用数据库是否是可用的,其中所述备用数据库是所述主数据库的副本;以及
当所述自修复模块检测到所述主数据库是不可用的并确定所述备用数据库是可用的时,所述自修复模块自动地启动故障切换处理序列,其中所述故障切换处理序列包括:
自动地将所述备用数据库启用为可读和可写,并在所述主站点上为所述备用数据库分配主数据库的角色,以开始将数据复制到其他备用数据库;以及
在故障切换角色转变之后,使用所述应用程序服务器和所述备用数据库之间预建立的连接,以允许所述应用程序服务器从所述备用数据库读取数据以及将数据写入到所述备用数据库,从而导致所述备用数据库在所述主站点上充当所述主数据库的角色。
2.根据权利要求1所述的方法,进一步包括:
定期捕获存储在所述备用数据库上的数据的快照;以及
将所述数据的快照存储在快照存储系统中,所述快照存储系统包括未在所述主站点上实现的独立存储硬件。
3.根据权利要求2所述的方法,其中所述备用数据库是第一备用数据库,以及其中所述故障切换处理序列进一步包括:
使用存储在快照存储系统中的来自所述主数据库的最新快照数据,在所述自修复模块自动地创建新数据库;以及
在所述自修复模块自动地添加所述新数据库,作为所述主站点上的第二备用数据库,以恢复全部容量。
4.根据权利要求1、2或3所述的方法,其中所述主数据库是第一主数据库,并且其中所述数据库系统进一步包括灾难恢复站点,所述灾难恢复站点包括第二主数据库,并且所述方法进一步包括:
在所述主站点的所有数据库都故障且所述主站点上没有可用的备用数据库时,通过负载均衡器将用户系统的流量引导到所述灾难恢复站点上的有权访问所述第二主数据库的应用程序服务器。
5.根据上述权利要求中任一项所述的方法,进一步包括:
当所述自修复模块确定所述主站点上的所述备用数据库可用时,临时允许所述应用程序服务器从所述主站点上的所述备用数据库进行只读访问。
6.根据上述权利要求中任一项所述的方法,进一步包括:
当所述自修复模块确定所述备用数据库在所述主站点上可用时,在自动地启动所述故障切换处理序列之前,在所述自修复模块确定在所述主站点上的所述主数据库是否已在恢复时间期间恢复;以及
当所述主站点上的所述主数据库在所述恢复时间期间没有恢复时,在所述自修复模块自动地启动所述故障切换处理序列。
7.根据权利要求6所述的方法,进一步包括:
当所述自修复模块确定所述主站点上的所述主数据库已在所述恢复时间期间恢复时,自动地重新启动所述主数据库,其中所述应用程序服务器上的应用程序继续使用所述主站点上的所述主数据库作为所述主数据库。
8.根据上述权利要求中任一项所述的方法,其中所述主数据库包括第一数据库服务器和第一存储子系统,并且其中所述备用数据库包括第二数据库服务器和第二存储子系统,并且进一步包括:
在自动地启用之前,如果所述第一存储子系统完整且可访问,则自动地将所述第一存储子系统从所述第一数据库服务器附加到所述第二数据库服务器以用于恢复。
9.一种计算系统,包括处理器和存储器,其中所述存储器包括计算机可执行指令,其能够使所述计算系统以:
自动地检测在主站点上的主数据库的不可用性,其中所述主站点进一步包括应用程序服务器,在所述主数据库可用时所述应用程序服务器将数据写入所述主数据库以及从所述主数据库读取数据;
确定所述主站点上是否仍然有备用数据库是可用的,其中所述备用数据库是所述主数据库的副本;以及
当检测到所述主数据库不可用且确定所述备用数据库可用时,自动地启动故障切换处理序列,其中所述故障切换处理序列包括:
自动地将所述备用数据库启用为可读和可写,并在所述主站点上为所述备用数据库分配主数据库的角色,以开始将数据复制到其他备用数据库;以及
在故障切换角色转变之后,使用所述应用程序服务器和所述备用数据库之间预建立的连接,以允许所述应用程序服务器从所述备用数据库读取数据以及将数据写入到所述备用数据库,从而导致所述备用数据库在所述主站点上充当所述主数据库的角色。
10.根据权利要求9所述的计算系统,其中所述计算机可执行指令进一步能够使所述计算系统以:
定期捕获存储在所述备用数据库中的数据的快照,其中所述备用数据库是第一备用数据库;
将所述数据的快照存储在快照存储系统中,所述快照存储系统包括未在所述主站点上实现的独立存储硬件;
使用存储在快照存储系统中的来自所述主数据库的最新快照数据自动地创建新数据库;以及
自动地将所述新数据库添加为所述主站点上的第二备用数据库,以恢复全部容量。
11.根据权利要求9或10所述的计算系统,其中所述计算机可执行指令进一步能够使所述计算系统以:
当确定所述备用数据库在所述主站点上可用时,临时允许所述应用程序服务器从所述主站点上的所述备用数据库进行只读访问。
12.根据权利要求9、10或11所述的计算系统,其中所述主数据库包括第一数据库服务器和第一存储子系统,并且其中所述备用数据库包括第二数据库服务器和第二存储子系统,并且其中所述计算机可执行指令进一步能够使所述计算系统以:
在自动地启用之前,如果所述第一存储子系统完整且可访问,则自动地将所述第一存储子系统从所述第一数据库服务器附加到所述第二数据库服务器以用于恢复。
13.一种自动化的自修复数据库系统,包括:
主站点,包括:
主数据库;
应用程序服务器,在所述主数据库可用时向所述主数据库写入数据以及从所述主数据库读取数据;
备用数据库,是所述主数据库的副本;以及
自修复模块,配置为:
自动地检测所述主数据库的不可用性;
确定所述主站点的所述备用数据库是否可用;以及
当所述自修复模块检测到所述主数据库不可用并确定所述主站点的所述备用数据库可用时,自动地启动故障切换处理序列,其中所述故障切换处理序列包括:
自动地将所述备用数据库启用为可读和可写,并在所述主站点上为所述备用数据库分配主数据库的角色,以开始将数据复制到其他备用数据库;以及
在故障切换角色转变之后,使用所述应用程序服务器和所述备用数据库之间预建立的连接,以允许所述应用程序服务器从所述备用数据库读取数据以及将数据写入到所述备用数据库,从而导致所述备用数据库在所述主站点上充当所述主数据库的角色。
14.根据权利要求13所述的自动化的自修复数据库系统,其中所述自修复模块进一步配置为定期捕获存储在所述备用数据库中的数据的快照,其中所述自动化的自修复数据库系统进一步包括:
快照存储系统,包括独立存储硬件,其是远程定位的且不在所述主站点上实现,其中所述快照存储系统配置为存储所述数据的快照。
15.根据权利要求14所述的自动化的自修复数据库系统,其中所述备用数据库是第一备用数据库,并且其中所述自修复模块进一步配置为,作为所述故障切换处理序列的部分,使用存储在快照存储系统上的来自所述主数据库的最新快照数据,自动地创建新数据库,以及自动地添加所述新数据库作为所述主站点上的第二备用数据库,以恢复全部容量。
16.根据权利要求13到15中任一项所述的自动化的自修复数据库系统,其中所述主数据库是第一主数据库,并且其中所述自动化的自修复数据库系统进一步包括:
负载均衡器;以及
灾难恢复站点,包括应用程序服务器和第二主数据库,以及
其中所述负载均衡器配置为在所述主站点的所有数据库都故障且所述主站点上没有可用的备用数据库时,将用户系统的流量引导到所述灾难恢复站点上的有权访问所述第二主数据库的所述应用程序服务器。
17.根据权利要求13到16中任一项所述的自动化的自修复数据库系统,其中所述自修复模块进一步配置为:当所述自修复模块确定所述备用数据库在所述主站点上可用时,临时允许所述应用程序服务器从所述主站点上的所述备用数据库进行只读访问。
18.根据权利要求13到17中任一项所述的自动化的自修复数据库系统,其中所述自修复模块进一步配置为:
当所述自修复模块确定所述备用数据库在所述主站点上可用时,在自动地启动所述故障切换处理序列之前,确定在所述主站点上的所述主数据库是否已在恢复时间期间恢复;以及
当所述主站点上的所述主数据库在所述恢复时间期间没有恢复时,自动地启动所述故障切换处理序列。
19.根据权利要求18所述的自动化的自修复数据库系统,其中所述自修复模块进一步配置为:
当所述自修复模块确定所述主站点上的所述主数据库已在所述恢复时间期间恢复时,自动地重新启动所述主数据库,其中所述应用程序服务器上的应用程序继续使用来自所述主站点的所述主数据库作为所述主数据库。
20.根据权利要求13到19中任一项所述的方法,其中所述主数据库包括第一数据库服务器和第一存储子系统,并且其中所述备用数据库包括第二数据库服务器和第二存储子系统,并且
其中所述自修复模块进一步配置为:
在自动地启用之前,如果所述第一存储子系统完整且可访问,则自动地将所述第一存储子系统从所述第一数据库服务器附加到所述第二数据库服务器以用于恢复。
21.一种计算机程序,包括计算机可执行指令,其能够使计算系统以:
自动地检测在主站点上的主数据库的不可用性,其中所述主站点进一步包括应用程序服务器,在所述主数据库可用时所述应用程序服务器将数据写入所述主数据库以及从所述主数据库读取数据;
确定所述主站点上是否仍然有备用数据库是可用的,其中所述备用数据库是所述主数据库的副本;以及
当检测到所述主数据库不可用且确定所述备用数据库可用时,自动地启动故障切换处理序列,其中所述故障切换处理序列包括:
自动地将所述备用数据库启用为可读和可写,并在所述主站点上为所述备用数据库分配主数据库的角色,以开始将数据复制到其他备用数据库;以及
在故障切换角色转变后,使用所述应用程序服务器和所述备用数据库之间预建立的连接,允许所述应用程序服务器从所述备用数据库读取数据以及将数据写入到所述备用数据库,从而导致所述备用数据库在所述主站点上充当所述主数据库的角色。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/440,810 US10409697B2 (en) | 2017-02-23 | 2017-02-23 | Automated self-healing database system and method for implementing the same |
US15/440,810 | 2017-02-23 | ||
PCT/US2018/019230 WO2018156765A1 (en) | 2017-02-23 | 2018-02-22 | Automated self-healing database system and method for implementing the same |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110392884A true CN110392884A (zh) | 2019-10-29 |
CN110392884B CN110392884B (zh) | 2023-08-08 |
Family
ID=61599615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880013123.5A Active CN110392884B (zh) | 2017-02-23 | 2018-02-22 | 自动化的自修复数据库系统及实现其的方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10409697B2 (zh) |
EP (1) | EP3598877B1 (zh) |
JP (2) | JP7208906B6 (zh) |
CN (1) | CN110392884B (zh) |
CA (1) | CA3049468A1 (zh) |
WO (1) | WO2018156765A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177241A (zh) * | 2019-12-18 | 2020-05-19 | 贝壳技术有限公司 | 一种数据处理方法、装置、系统、电子设备及其存储介质 |
CN113360476A (zh) * | 2021-06-21 | 2021-09-07 | 上海上讯信息技术股份有限公司 | 一种程序数据库虚拟化插拔的方法及设备 |
CN113779148A (zh) * | 2021-09-10 | 2021-12-10 | 西安热工研究院有限公司 | 一种实时数据库冗余的工控系统数据传输方法和系统 |
CN114722029A (zh) * | 2022-04-18 | 2022-07-08 | 苏州浪潮智能科技有限公司 | 一种修复monitor数据库的方法、系统、设备和存储介质 |
CN117033087A (zh) * | 2023-10-10 | 2023-11-10 | 武汉吧哒科技股份有限公司 | 数据处理方法、装置、存储介质及管理服务器 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11157459B2 (en) * | 2016-02-26 | 2021-10-26 | Red Hat, Inc. | Granular data self-healing |
US11436223B2 (en) | 2017-01-30 | 2022-09-06 | Salesforce, Inc. | Query pin planner |
US10698882B2 (en) * | 2017-03-17 | 2020-06-30 | International Business Machines Corporation | Data compartments for read/write activity in a standby database |
US20180285217A1 (en) * | 2017-03-31 | 2018-10-04 | Intel Corporation | Failover response using a known good state from a distributed ledger |
US10425274B2 (en) | 2017-05-11 | 2019-09-24 | Salesforce.Com, Inc. | Techniques and architectures for recovering from a service disruption in a multi-server environment |
US10635561B2 (en) * | 2017-05-11 | 2020-04-28 | Salesforce.Com, Inc. | Techniques and architectures for managing database failure in a single-node database architecture |
JP6782210B2 (ja) * | 2017-09-01 | 2020-11-11 | 株式会社日立製作所 | 計算機システム、データ管理方法、及びデータ管理プログラム |
US11295836B2 (en) * | 2017-12-28 | 2022-04-05 | Cerner Innovation, Inc. | Preservation of multi-server database fidelity |
US11070419B2 (en) * | 2018-07-24 | 2021-07-20 | Vmware, Inc. | Methods and systems to troubleshoot and localize storage failures for a multitenant application run in a distributed computing system |
CN110928713B (zh) * | 2018-09-19 | 2024-04-05 | 深圳爱捷云科技有限公司 | 一种数据库服务的故障修复方法、相关装置及存储介质 |
US11132270B2 (en) | 2019-05-13 | 2021-09-28 | Saudi Arabian Oil Company | Planned zero downtime server switching for web applications |
CN110161930B (zh) * | 2019-06-05 | 2021-11-09 | 安徽三实信息技术服务有限公司 | 一种数据监控系统及其数据监控方法 |
US10917288B2 (en) * | 2019-06-25 | 2021-02-09 | Bank Of America Corporation | Adaptive edge-shift for enterprise contingency operations |
US11169723B2 (en) * | 2019-06-28 | 2021-11-09 | Amazon Technologies, Inc. | Data storage system with metadata check-pointing |
US11487637B2 (en) * | 2019-07-19 | 2022-11-01 | EMC IP Holding Company LLC | Global inline name space verification for distributed file systems |
US11977453B2 (en) | 2019-09-12 | 2024-05-07 | Restorvault, Llc | Virtual replication of unstructured data |
US11630737B2 (en) * | 2019-09-12 | 2023-04-18 | Restorvault, Llc | Virtual replication of unstructured data |
US11121914B2 (en) * | 2019-11-22 | 2021-09-14 | Walmart Apollo, Llc | Monitoring and self-healing of deployed environments |
CN111026577B (zh) * | 2019-12-27 | 2023-10-31 | 中国水产科学研究院渔业机械仪器研究所 | 软件系统功能自恢复的软件架构方法及其系统 |
US11151003B2 (en) | 2020-03-10 | 2021-10-19 | Capital One Services, Llc | Processor health monitoring and auto failover and failback of a streaming system using a timestamp |
US11249867B2 (en) | 2020-05-05 | 2022-02-15 | Capital One Services, Llc | Automating the failover of a relational database in a cloud computing environment |
US11169974B1 (en) * | 2020-05-08 | 2021-11-09 | Sap Se | Database setup using a master copy |
US11481367B2 (en) * | 2020-09-02 | 2022-10-25 | Oracle International Corporation | Redo mining during rolling upgrade |
US11409605B2 (en) | 2020-10-20 | 2022-08-09 | Sap Se | Failover system for database unavailability |
CN112199356B (zh) * | 2020-12-09 | 2021-07-30 | 北京顺达同行科技有限公司 | 故障处理方法、装置、服务器以及存储介质 |
US20220382742A1 (en) * | 2021-05-28 | 2022-12-01 | Salesforce.Com, Inc. | Ensuring high availablity of replicated database management systems during upgrades |
CN113778763B (zh) * | 2021-08-24 | 2023-10-24 | 百融至信(北京)科技有限公司 | 一种三方接口服务故障智能切换方法及系统 |
US11847120B2 (en) | 2021-12-03 | 2023-12-19 | International Business Machines Corporation | Performance of SQL execution sequence in production database instance |
US11874751B2 (en) | 2021-12-09 | 2024-01-16 | International Business Machines Corporation | Operating a data center |
US11847031B2 (en) * | 2022-03-04 | 2023-12-19 | Insight Direct Usa, Inc. | Database recovery and database recovery testing |
US12066885B2 (en) * | 2022-06-16 | 2024-08-20 | Dell Products L.P. | Collection of forensic data after a processor freeze |
US12072759B2 (en) | 2023-01-20 | 2024-08-27 | Salesforce, Inc. | Cross-region software failure recovery |
US11792125B1 (en) * | 2023-05-16 | 2023-10-17 | Citibank, N.A. | Reducing network traffic by filtering network requests based on network request-related information systems and methods |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040162836A1 (en) * | 2001-02-06 | 2004-08-19 | Eyal Aronoff | System and method for altering database requests and database responses |
US7058853B1 (en) * | 2000-06-09 | 2006-06-06 | Hewlett-Packard Development Company, L.P. | Highly available transaction processing |
US20090201799A1 (en) * | 2005-10-31 | 2009-08-13 | Packetfront Systems Ab | High-Availability Network Systems |
US20130091376A1 (en) * | 2011-10-05 | 2013-04-11 | International Business Machines Corporation | Self-repairing database system |
CN104660386A (zh) * | 2015-03-03 | 2015-05-27 | 浪潮电子信息产业股份有限公司 | 一种基于安腾平台下提高db2容灾高可用性的方法 |
US20150301910A1 (en) * | 2014-04-18 | 2015-10-22 | Ramanna Sathyanarayana | Flexible high avilability disaster recovery with a set of database servers |
US20150317221A1 (en) * | 2014-04-30 | 2015-11-05 | Oracle International Corporation | Comprehensive error management capabilities for disaster recovery operations |
US20160085648A1 (en) * | 2014-09-19 | 2016-03-24 | International Business Machines Corporation | Automatic client side seamless failover |
Family Cites Families (160)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5649104A (en) | 1993-03-19 | 1997-07-15 | Ncr Corporation | System for allowing user of any computer to draw image over that generated by the host computer and replicating the drawn image to other computers |
US5608872A (en) | 1993-03-19 | 1997-03-04 | Ncr Corporation | System for allowing all remote computers to perform annotation on an image and replicating the annotated image on the respective displays of other comuters |
US7991347B1 (en) | 1994-04-07 | 2011-08-02 | Data Innovation Llc | System and method for accessing set of digital data at a remote site |
US5577188A (en) | 1994-05-31 | 1996-11-19 | Future Labs, Inc. | Method to provide for virtual screen overlay |
US7181758B1 (en) | 1994-07-25 | 2007-02-20 | Data Innovation, L.L.C. | Information distribution and processing system |
US5835915A (en) * | 1995-01-24 | 1998-11-10 | Tandem Computer | Remote duplicate database facility with improved throughput and fault tolerance |
GB2300991B (en) | 1995-05-15 | 1997-11-05 | Andrew Macgregor Ritchie | Serving signals to browsing clients |
US5715450A (en) | 1995-09-27 | 1998-02-03 | Siebel Systems, Inc. | Method of selecting and presenting data from a database using a query language to a user of a computer system |
US5831610A (en) | 1996-02-23 | 1998-11-03 | Netsuite Development L.P. | Designing networks |
US5821937A (en) | 1996-02-23 | 1998-10-13 | Netsuite Development, L.P. | Computer method for updating a network design |
US6604117B2 (en) | 1996-03-19 | 2003-08-05 | Siebel Systems, Inc. | Method of maintaining a network of partially replicated database system |
US5873096A (en) | 1997-10-08 | 1999-02-16 | Siebel Systems, Inc. | Method of maintaining a network of partially replicated database system |
AU6183698A (en) | 1997-02-26 | 1998-09-18 | Siebel Systems, Inc. | Method of determining visibility to a remote database client of a plurality of database transactions having variable visibility strengths |
JP2002511164A (ja) | 1997-02-26 | 2002-04-09 | シーベル システムズ,インコーポレイティド | 単純化された可視度ルールに用いるための複数のデータベース・トランザクションのリモート・データベース・クライアントの可視度決定方法 |
AU6336698A (en) | 1997-02-26 | 1998-09-29 | Siebel Systems, Inc. | Distributed relational database |
AU6654798A (en) | 1997-02-26 | 1998-09-18 | Siebel Systems, Inc. | Method of determining visibility to a remote database client of a plurality of database transactions using a networked proxy server |
AU6440398A (en) | 1997-02-26 | 1998-09-18 | Siebel Systems, Inc. | Method of using a cache to determine the visibility to a remote database client of a plurality of database transactions |
WO1998040805A2 (en) | 1997-02-27 | 1998-09-17 | Siebel Systems, Inc. | Method of synchronizing independently distributed software and database schema |
JP2001514776A (ja) | 1997-02-27 | 2001-09-11 | シーベル システムズ,インコーポレイティド | ローカルな修正を組み込むソフトウェア配布の連続レベル移送の方法 |
AU6669198A (en) | 1997-02-28 | 1998-09-18 | Siebel Systems, Inc. | Partially replicated distributed database with multiple levels of remote clients |
US6169534B1 (en) | 1997-06-26 | 2001-01-02 | Upshot.Com | Graphical user interface for customer information management |
US6560461B1 (en) | 1997-08-04 | 2003-05-06 | Mundi Fomukong | Authorized location reporting paging system |
US5918159A (en) | 1997-08-04 | 1999-06-29 | Fomukong; Mundi | Location reporting satellite paging system with optional blocking of location reporting |
US20020059095A1 (en) | 1998-02-26 | 2002-05-16 | Cook Rachael Linette | System and method for generating, capturing, and managing customer lead information over a computer network |
US6732111B2 (en) | 1998-03-03 | 2004-05-04 | Siebel Systems, Inc. | Method, apparatus, system, and program product for attaching files and other objects to a partially replicated database |
US6161149A (en) | 1998-03-13 | 2000-12-12 | Groupserve, Inc. | Centrifugal communication and collaboration method |
US6772229B1 (en) | 2000-11-13 | 2004-08-03 | Groupserve, Inc. | Centrifugal communication and collaboration method |
US5963953A (en) | 1998-03-30 | 1999-10-05 | Siebel Systems, Inc. | Method, and system for product configuration |
JP2002523842A (ja) | 1998-08-27 | 2002-07-30 | アップショット・コーポレーション | ネットワークベースのセールス・フォース管理のための方法および装置 |
US6728960B1 (en) | 1998-11-18 | 2004-04-27 | Siebel Systems, Inc. | Techniques for managing multiple threads in a browser environment |
US6601087B1 (en) | 1998-11-18 | 2003-07-29 | Webex Communications, Inc. | Instant document sharing |
US6549908B1 (en) | 1998-11-18 | 2003-04-15 | Siebel Systems, Inc. | Methods and apparatus for interpreting user selections in the context of a relation distributed as a set of orthogonalized sub-relations |
JP2002531890A (ja) | 1998-11-30 | 2002-09-24 | シーベル システムズ,インコーポレイティド | クライアントサーバーアプリケーションにおける開発ツール、方法及びシステム |
AU2707200A (en) | 1998-11-30 | 2000-06-19 | Siebel Systems, Inc. | Assignment manager |
JP2002531899A (ja) | 1998-11-30 | 2002-09-24 | シーベル システムズ,インコーポレイティド | プロセス監視用の状態モデル |
WO2000033226A1 (en) | 1998-11-30 | 2000-06-08 | Siebel Systems, Inc. | Smart scripting call centers |
US7356482B2 (en) | 1998-12-18 | 2008-04-08 | Alternative Systems, Inc. | Integrated change management unit |
US20020072951A1 (en) | 1999-03-03 | 2002-06-13 | Michael Lee | Marketing support database management method, system and program product |
US6574635B2 (en) | 1999-03-03 | 2003-06-03 | Siebel Systems, Inc. | Application instantiation based upon attributes and values stored in a meta data repository, including tiering of application layers objects and components |
US7698160B2 (en) | 1999-05-07 | 2010-04-13 | Virtualagility, Inc | System for performing collaborative tasks |
US8095413B1 (en) | 1999-05-07 | 2012-01-10 | VirtualAgility, Inc. | Processing management information |
US6621834B1 (en) | 1999-11-05 | 2003-09-16 | Raindance Communications, Inc. | System and method for voice transmission over network protocols |
US6535909B1 (en) | 1999-11-18 | 2003-03-18 | Contigo Software, Inc. | System and method for record and playback of collaborative Web browsing session |
US6324568B1 (en) | 1999-11-30 | 2001-11-27 | Siebel Systems, Inc. | Method and system for distributing objects over a network |
US6654032B1 (en) | 1999-12-23 | 2003-11-25 | Webex Communications, Inc. | Instant sharing of documents on a remote server |
US6336137B1 (en) | 2000-03-31 | 2002-01-01 | Siebel Systems, Inc. | Web client-server system and method for incompatible page markup and presentation languages |
US6577726B1 (en) | 2000-03-31 | 2003-06-10 | Siebel Systems, Inc. | Computer telephony integration hotelling method and system |
US6732100B1 (en) | 2000-03-31 | 2004-05-04 | Siebel Systems, Inc. | Database access method and system for user role defined access |
US7266502B2 (en) | 2000-03-31 | 2007-09-04 | Siebel Systems, Inc. | Feature centric release manager method and system |
US6842748B1 (en) | 2000-04-14 | 2005-01-11 | Rightnow Technologies, Inc. | Usage based strength between related information in an information retrieval system |
US7730072B2 (en) | 2000-04-14 | 2010-06-01 | Rightnow Technologies, Inc. | Automated adaptive classification system for knowledge networks |
US6434550B1 (en) | 2000-04-14 | 2002-08-13 | Rightnow Technologies, Inc. | Temporal updates of relevancy rating of retrieved information in an information search system |
US6665655B1 (en) | 2000-04-14 | 2003-12-16 | Rightnow Technologies, Inc. | Implicit rating of retrieved information in an information search system |
US6763501B1 (en) | 2000-06-09 | 2004-07-13 | Webex Communications, Inc. | Remote document serving |
US7069231B1 (en) | 2000-07-20 | 2006-06-27 | Oracle International Corporation | Methods and systems for defining, applying and executing customer care relationship plans |
KR100365357B1 (ko) | 2000-10-11 | 2002-12-18 | 엘지전자 주식회사 | 무선통신 단말기의 데이터 통신 방법 |
US7581230B2 (en) | 2001-02-06 | 2009-08-25 | Siebel Systems, Inc. | Adaptive communication application programming interface |
USD454139S1 (en) | 2001-02-20 | 2002-03-05 | Rightnow Technologies | Display screen for a computer |
US7363388B2 (en) | 2001-03-28 | 2008-04-22 | Siebel Systems, Inc. | Method and system for direct server synchronization with a computing device |
US6829655B1 (en) | 2001-03-28 | 2004-12-07 | Siebel Systems, Inc. | Method and system for server synchronization with a computing device via a companion device |
US7174514B2 (en) | 2001-03-28 | 2007-02-06 | Siebel Systems, Inc. | Engine to present a user interface based on a logical structure, such as one for a customer relationship management system, across a web site |
US20030018705A1 (en) | 2001-03-31 | 2003-01-23 | Mingte Chen | Media-independent communication server |
US20030206192A1 (en) | 2001-03-31 | 2003-11-06 | Mingte Chen | Asynchronous message push to web browser |
US6732095B1 (en) | 2001-04-13 | 2004-05-04 | Siebel Systems, Inc. | Method and apparatus for mapping between XML and relational representations |
US7761288B2 (en) | 2001-04-30 | 2010-07-20 | Siebel Systems, Inc. | Polylingual simultaneous shipping of software |
US6763351B1 (en) | 2001-06-18 | 2004-07-13 | Siebel Systems, Inc. | Method, apparatus, and system for attaching search results |
US6711565B1 (en) | 2001-06-18 | 2004-03-23 | Siebel Systems, Inc. | Method, apparatus, and system for previewing search results |
US6728702B1 (en) | 2001-06-18 | 2004-04-27 | Siebel Systems, Inc. | System and method to implement an integrated search center supporting a full-text search and query on a database |
US6782383B2 (en) | 2001-06-18 | 2004-08-24 | Siebel Systems, Inc. | System and method to implement a persistent and dismissible search center frame |
US20030004971A1 (en) | 2001-06-29 | 2003-01-02 | Gong Wen G. | Automatic generation of data models and accompanying user interfaces |
US6978445B2 (en) | 2001-09-28 | 2005-12-20 | Siebel Systems, Inc. | Method and system for supporting user navigation in a browser environment |
US7761535B2 (en) | 2001-09-28 | 2010-07-20 | Siebel Systems, Inc. | Method and system for server synchronization with a computing device |
US6826582B1 (en) | 2001-09-28 | 2004-11-30 | Emc Corporation | Method and system for using file systems for content management |
US6724399B1 (en) | 2001-09-28 | 2004-04-20 | Siebel Systems, Inc. | Methods and apparatus for enabling keyboard accelerators in applications implemented via a browser |
US6993712B2 (en) | 2001-09-28 | 2006-01-31 | Siebel Systems, Inc. | System and method for facilitating user interaction in a browser environment |
US8359335B2 (en) | 2001-09-29 | 2013-01-22 | Siebel Systems, Inc. | Computing system and method to implicitly commit unsaved data for a world wide web application |
US6901595B2 (en) | 2001-09-29 | 2005-05-31 | Siebel Systems, Inc. | Method, apparatus, and system for implementing a framework to support a web-based application |
US7962565B2 (en) | 2001-09-29 | 2011-06-14 | Siebel Systems, Inc. | Method, apparatus and system for a mobile web client |
US7146617B2 (en) | 2001-09-29 | 2006-12-05 | Siebel Systems, Inc. | Method, apparatus, and system for implementing view caching in a framework to support web-based applications |
US7289949B2 (en) | 2001-10-09 | 2007-10-30 | Right Now Technologies, Inc. | Method for routing electronic correspondence based on the level and type of emotion contained therein |
US7062502B1 (en) | 2001-12-28 | 2006-06-13 | Kesler John N | Automated generation of dynamic data entry user interface for relational database management systems |
US6804330B1 (en) | 2002-01-04 | 2004-10-12 | Siebel Systems, Inc. | Method and system for accessing CRM data via voice |
US7058890B2 (en) | 2002-02-13 | 2006-06-06 | Siebel Systems, Inc. | Method and system for enabling connectivity to a data system |
US6959310B2 (en) | 2002-02-15 | 2005-10-25 | International Business Machines Corporation | Generating data set of the first file system by determining a set of changes between data stored in first snapshot of the first file system, and data stored in second snapshot of the first file system |
US7131071B2 (en) | 2002-03-29 | 2006-10-31 | Siebel Systems, Inc. | Defining an approval process for requests for approval |
US7672853B2 (en) | 2002-03-29 | 2010-03-02 | Siebel Systems, Inc. | User interface for processing requests for approval |
US6850949B2 (en) | 2002-06-03 | 2005-02-01 | Right Now Technologies, Inc. | System and method for generating a dynamic interface via a communications network |
US8639542B2 (en) | 2002-06-27 | 2014-01-28 | Siebel Systems, Inc. | Method and apparatus to facilitate development of a customer-specific business process model |
US7594181B2 (en) | 2002-06-27 | 2009-09-22 | Siebel Systems, Inc. | Prototyping graphical user interfaces |
US7437720B2 (en) | 2002-06-27 | 2008-10-14 | Siebel Systems, Inc. | Efficient high-interactivity user interface for client-server applications |
US20040010489A1 (en) | 2002-07-12 | 2004-01-15 | Rightnow Technologies, Inc. | Method for providing search-specific web pages in a network computing environment |
US7251787B2 (en) | 2002-08-28 | 2007-07-31 | Siebel Systems, Inc. | Method and apparatus for an integrated process modeller |
US9448860B2 (en) | 2003-03-21 | 2016-09-20 | Oracle America, Inc. | Method and architecture for providing data-change alerts to external applications via a push service |
US7904340B2 (en) | 2003-03-24 | 2011-03-08 | Siebel Systems, Inc. | Methods and computer-readable medium for defining a product model |
JP2006523353A (ja) | 2003-03-24 | 2006-10-12 | シーベル システムズ,インコーポレイティド | 共通共通オブジェクト |
WO2004086197A2 (en) | 2003-03-24 | 2004-10-07 | Siebel Systems, Inc. | Custom common object |
US8762415B2 (en) | 2003-03-25 | 2014-06-24 | Siebel Systems, Inc. | Modeling of order data |
US7685515B2 (en) | 2003-04-04 | 2010-03-23 | Netsuite, Inc. | Facilitating data manipulation in a browser-based user interface of an enterprise business application |
US7412455B2 (en) | 2003-04-30 | 2008-08-12 | Dillon David M | Software framework that facilitates design and implementation of database applications |
US7620655B2 (en) | 2003-05-07 | 2009-11-17 | Enecto Ab | Method, device and computer program product for identifying visitors of websites |
US7149919B2 (en) * | 2003-05-15 | 2006-12-12 | Hewlett-Packard Development Company, L.P. | Disaster recovery system with cascaded resynchronization |
US7409336B2 (en) | 2003-06-19 | 2008-08-05 | Siebel Systems, Inc. | Method and system for searching data based on identified subset of categories and relevance-scored text representation-category combinations |
US20040260659A1 (en) | 2003-06-23 | 2004-12-23 | Len Chan | Function space reservation system |
US7237227B2 (en) | 2003-06-30 | 2007-06-26 | Siebel Systems, Inc. | Application user interface template with free-form layout |
US7694314B2 (en) | 2003-08-28 | 2010-04-06 | Siebel Systems, Inc. | Universal application network architecture |
US7779039B2 (en) | 2004-04-02 | 2010-08-17 | Salesforce.Com, Inc. | Custom entities and fields in a multi-tenant database system |
US8607322B2 (en) | 2004-07-21 | 2013-12-10 | International Business Machines Corporation | Method and system for federated provisioning |
US7289976B2 (en) | 2004-12-23 | 2007-10-30 | Microsoft Corporation | Easy-to-use data report specification |
JP2007066154A (ja) * | 2005-09-01 | 2007-03-15 | Hitachi Ltd | データをコピーして複数の記憶装置に格納するストレージシステム |
US20070185912A1 (en) * | 2006-02-08 | 2007-08-09 | International Business Machines Corporation | Off-loading I/O and computationally intensive operations to secondary systems |
US8209308B2 (en) | 2006-05-01 | 2012-06-26 | Rueben Steven L | Method for presentation of revisions of an electronic document |
US8566301B2 (en) | 2006-05-01 | 2013-10-22 | Steven L. Rueben | Document revisions in a collaborative computing environment |
US9135228B2 (en) | 2006-05-01 | 2015-09-15 | Domo, Inc. | Presentation of document history in a web browsing application |
US7779475B2 (en) | 2006-07-31 | 2010-08-17 | Petnote Llc | Software-based method for gaining privacy by affecting the screen of a computing device |
US7730478B2 (en) | 2006-10-04 | 2010-06-01 | Salesforce.Com, Inc. | Method and system for allowing access to developed applications via a multi-tenant on-demand database service |
JP5244332B2 (ja) * | 2006-10-30 | 2013-07-24 | 株式会社日立製作所 | 情報システム、データ転送方法及びデータ保護方法 |
US8082301B2 (en) | 2006-11-10 | 2011-12-20 | Virtual Agility, Inc. | System for supporting collaborative activity |
US8954500B2 (en) | 2008-01-04 | 2015-02-10 | Yahoo! Inc. | Identifying and employing social network relationships |
US8498967B1 (en) * | 2007-01-30 | 2013-07-30 | American Megatrends, Inc. | Two-node high availability cluster storage solution using an intelligent initiator to avoid split brain syndrome |
US7702741B2 (en) * | 2007-07-31 | 2010-04-20 | Oracle International Corporation | Configuring or reconfiguring a multi-master information sharing environment |
US8583615B2 (en) | 2007-08-31 | 2013-11-12 | Yahoo! Inc. | System and method for generating a playlist from a mood gradient |
US20090100342A1 (en) | 2007-10-12 | 2009-04-16 | Gabriel Jakobson | Method and system for presenting address and mapping information |
JP4491482B2 (ja) * | 2007-11-28 | 2010-06-30 | 株式会社日立製作所 | 障害回復方法、計算機、クラスタシステム、管理計算機及び障害回復プログラム |
US8490025B2 (en) | 2008-02-01 | 2013-07-16 | Gabriel Jakobson | Displaying content associated with electronic mapping systems |
US8504945B2 (en) | 2008-02-01 | 2013-08-06 | Gabriel Jakobson | Method and system for associating content with map zoom function |
US8014943B2 (en) | 2008-05-08 | 2011-09-06 | Gabriel Jakobson | Method and system for displaying social networking navigation information |
US8032297B2 (en) | 2008-05-08 | 2011-10-04 | Gabriel Jakobson | Method and system for displaying navigation information on an electronic map |
US8189524B2 (en) | 2008-05-09 | 2012-05-29 | Research In Motion Limited | Method for cell selection in a radio access network |
US8646103B2 (en) | 2008-06-30 | 2014-02-04 | Gabriel Jakobson | Method and system for securing online identities |
US8510664B2 (en) | 2008-09-06 | 2013-08-13 | Steven L. Rueben | Method and system for displaying email thread information |
US8661056B1 (en) | 2008-11-03 | 2014-02-25 | Salesforce.Com, Inc. | System, method and computer program product for publicly providing web content of a tenant using a multi-tenant on-demand database service |
US8369968B2 (en) * | 2009-04-03 | 2013-02-05 | Dell Products, Lp | System and method for handling database failover |
US8677088B1 (en) | 2009-10-29 | 2014-03-18 | Symantec Corporation | Systems and methods for recovering primary sites after failovers to remote secondary sites |
US8510045B2 (en) | 2009-12-22 | 2013-08-13 | Steven L. Rueben | Digital maps displaying search-resulting points-of-interest in user delimited regions |
US8925041B2 (en) | 2010-04-01 | 2014-12-30 | Salesforce.Com, Inc. | System, method and computer program product for performing one or more actions based on a determined access permissions for a plurality of users |
US8566654B2 (en) | 2010-08-13 | 2013-10-22 | Salesforce.Com, Inc. | Debugging site errors by an admin as a guest user in a multi-tenant database environment |
JP5699658B2 (ja) * | 2011-02-10 | 2015-04-15 | 日本電気株式会社 | 待機系計算機、クラスタシステム、サービス提供方法およびプログラム |
US8615488B2 (en) | 2011-07-01 | 2013-12-24 | International Business Machines Corporation | Physical replication of database subset to improve availability and reduce resource cost in a cloud environment |
US8943002B2 (en) | 2012-02-10 | 2015-01-27 | Liveperson, Inc. | Analytics driven engagement |
US8769004B2 (en) | 2012-02-17 | 2014-07-01 | Zebedo | Collaborative web browsing system integrated with social networks |
US8769017B2 (en) | 2012-02-17 | 2014-07-01 | Zebedo | Collaborative web browsing system having document object model element interaction detection |
US8756275B2 (en) | 2012-02-17 | 2014-06-17 | Zebedo | Variable speed collaborative web browsing system |
JP5867902B2 (ja) * | 2012-03-06 | 2016-02-24 | 日本電気株式会社 | データベースの非同期レプリケーション方式 |
US8984332B2 (en) * | 2012-06-08 | 2015-03-17 | Microsoft Technology Licensing, Llc | Active/passive database management across clusters |
US8954783B2 (en) * | 2012-06-28 | 2015-02-10 | Microsoft Technology Licensing, Llc | Two-tier failover service for data disaster recovery |
US9513894B2 (en) | 2012-08-31 | 2016-12-06 | Oracle International Corporation | Database software upgrade using specify-validate-execute protocol |
US20140136878A1 (en) | 2012-11-14 | 2014-05-15 | Microsoft Corporation | Scaling Up and Scaling Out of a Server Architecture for Large Scale Real-Time Applications |
US9514160B2 (en) * | 2013-03-11 | 2016-12-06 | Oracle International Corporation | Automatic recovery of a failed standby database in a cluster |
US20150074536A1 (en) | 2013-09-12 | 2015-03-12 | Commvault Systems, Inc. | File manager integration with virtualization in an information management system, including user control and storage management of virtual machines |
JP2015149578A (ja) | 2014-02-06 | 2015-08-20 | 株式会社日立製作所 | 運用管理装置 |
JP6511739B2 (ja) * | 2014-06-20 | 2019-05-15 | 富士通株式会社 | 冗長システムおよび冗長化方法 |
US9836363B2 (en) * | 2014-09-30 | 2017-12-05 | Microsoft Technology Licensing, Llc | Semi-automatic failover |
JP6393612B2 (ja) * | 2014-12-26 | 2018-09-19 | 株式会社日立製作所 | システムのバックアップ装置及びバックアップ方法 |
CA3070683C (en) | 2014-12-31 | 2024-03-19 | Servicenow, Inc. | Failure resistant distributed computing system |
US9785480B2 (en) * | 2015-02-12 | 2017-10-10 | Netapp, Inc. | Load balancing and fault tolerant service in a distributed data system |
JP6374362B2 (ja) * | 2015-08-05 | 2018-08-15 | 日本電信電話株式会社 | 呼処理装置、セッション復旧方法及び呼処理サーバプログラム |
US10135837B2 (en) | 2016-05-17 | 2018-11-20 | Amazon Technologies, Inc. | Versatile autoscaling for containers |
US10698882B2 (en) | 2017-03-17 | 2020-06-30 | International Business Machines Corporation | Data compartments for read/write activity in a standby database |
US20200026786A1 (en) | 2018-07-18 | 2020-01-23 | International Business Machines Corporation | Management and synchronization of batch workloads with active/active sites using proxy replication engines |
US10891304B2 (en) | 2018-07-25 | 2021-01-12 | Commvault Systems, Inc. | Distributed and scalable client-based storage management |
-
2017
- 2017-02-23 US US15/440,810 patent/US10409697B2/en active Active
-
2018
- 2018-02-22 EP EP18709867.8A patent/EP3598877B1/en active Active
- 2018-02-22 CN CN201880013123.5A patent/CN110392884B/zh active Active
- 2018-02-22 WO PCT/US2018/019230 patent/WO2018156765A1/en unknown
- 2018-02-22 CA CA3049468A patent/CA3049468A1/en active Pending
- 2018-02-22 JP JP2019542595A patent/JP7208906B6/ja active Active
-
2019
- 2019-06-13 US US16/440,104 patent/US11093356B2/en active Active
-
2022
- 2022-01-11 JP JP2022002015A patent/JP7305813B2/ja active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058853B1 (en) * | 2000-06-09 | 2006-06-06 | Hewlett-Packard Development Company, L.P. | Highly available transaction processing |
US20040162836A1 (en) * | 2001-02-06 | 2004-08-19 | Eyal Aronoff | System and method for altering database requests and database responses |
US20090201799A1 (en) * | 2005-10-31 | 2009-08-13 | Packetfront Systems Ab | High-Availability Network Systems |
US20130091376A1 (en) * | 2011-10-05 | 2013-04-11 | International Business Machines Corporation | Self-repairing database system |
US20150301910A1 (en) * | 2014-04-18 | 2015-10-22 | Ramanna Sathyanarayana | Flexible high avilability disaster recovery with a set of database servers |
US20150317221A1 (en) * | 2014-04-30 | 2015-11-05 | Oracle International Corporation | Comprehensive error management capabilities for disaster recovery operations |
US20160085648A1 (en) * | 2014-09-19 | 2016-03-24 | International Business Machines Corporation | Automatic client side seamless failover |
CN104660386A (zh) * | 2015-03-03 | 2015-05-27 | 浪潮电子信息产业股份有限公司 | 一种基于安腾平台下提高db2容灾高可用性的方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177241A (zh) * | 2019-12-18 | 2020-05-19 | 贝壳技术有限公司 | 一种数据处理方法、装置、系统、电子设备及其存储介质 |
CN113360476A (zh) * | 2021-06-21 | 2021-09-07 | 上海上讯信息技术股份有限公司 | 一种程序数据库虚拟化插拔的方法及设备 |
CN113360476B (zh) * | 2021-06-21 | 2023-11-21 | 上海上讯信息技术股份有限公司 | 一种程序数据库虚拟化插拔的方法及设备 |
CN113779148A (zh) * | 2021-09-10 | 2021-12-10 | 西安热工研究院有限公司 | 一种实时数据库冗余的工控系统数据传输方法和系统 |
CN114722029A (zh) * | 2022-04-18 | 2022-07-08 | 苏州浪潮智能科技有限公司 | 一种修复monitor数据库的方法、系统、设备和存储介质 |
CN114722029B (zh) * | 2022-04-18 | 2024-01-09 | 苏州浪潮智能科技有限公司 | 一种修复monitor数据库的方法、系统、设备和存储介质 |
CN117033087A (zh) * | 2023-10-10 | 2023-11-10 | 武汉吧哒科技股份有限公司 | 数据处理方法、装置、存储介质及管理服务器 |
CN117033087B (zh) * | 2023-10-10 | 2024-01-19 | 武汉吧哒科技股份有限公司 | 数据处理方法、装置、存储介质及管理服务器 |
Also Published As
Publication number | Publication date |
---|---|
EP3598877B1 (en) | 2021-04-07 |
CN110392884B (zh) | 2023-08-08 |
JP2022141579A (ja) | 2022-09-29 |
US10409697B2 (en) | 2019-09-10 |
WO2018156765A1 (en) | 2018-08-30 |
US20180239677A1 (en) | 2018-08-23 |
US20190294512A1 (en) | 2019-09-26 |
CA3049468A1 (en) | 2018-08-30 |
JP2020511708A (ja) | 2020-04-16 |
US11093356B2 (en) | 2021-08-17 |
EP3598877A1 (en) | 2020-01-29 |
JP7305813B2 (ja) | 2023-07-10 |
JP7208906B6 (ja) | 2023-02-28 |
JP7208906B2 (ja) | 2023-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110392884A (zh) | 自动化的自修复数据库系统及实现其的方法 | |
US9875164B2 (en) | Systems, methods, and apparatuses for fixing logical or physical corruption in databases using LSM trees | |
US8676760B2 (en) | Maintaining data integrity in data servers across data centers | |
CN104823162B (zh) | 对于云服务器的高可用性 | |
CN102648448B (zh) | 供应并管理已复制数据 | |
CN110149364A (zh) | 基于数据服务平台提供微服务的方法、装置、存储介质 | |
US10635561B2 (en) | Techniques and architectures for managing database failure in a single-node database architecture | |
CN103226483B (zh) | 基于soa、云存储实现的双机热备份系统及其方法 | |
US9684570B1 (en) | Systems, methods, and apparatuses for fixing logical or physical corruption in databases using immutable LSM trees | |
US10891308B2 (en) | Automated self-scaling database system for automatically scaling out write operations and method for implementing the same in a multi-tenant, cloud-based computing environment | |
US10902021B2 (en) | Automated self-scaling database system for automatically scaling out read operations and method for implementing the same | |
US20200097556A1 (en) | Automated self-scaling database system and method for implementing the same | |
US20120310912A1 (en) | Crawl freshness in disaster data center | |
US10409629B1 (en) | Automated host data protection configuration | |
CN100563233C (zh) | 一种公共对象请求代理结构应用中的容错性方法 | |
CN109976944B (zh) | 数据处理方法和系统,存储介质和电子设备 | |
Bartkowski et al. | High availability and disaster recovery options for DB2 for Linux, UNIX, and Windows | |
CN108369548B (zh) | 云资源的灾难恢复 | |
CN110266564A (zh) | 探测装置及其执行的方法、以及控制装置及其执行的方法 | |
Pandey et al. | Replication in distributed systems and its improvements | |
Lin et al. | An optimized multi-Paxos protocol with centralized failover mechanism for cloud storage applications | |
CN118413440A (zh) | 一种节点控制方法、装置及设备 | |
Ubaidillah et al. | A survey on potential reactive fault tolerance approach for distributed systems in big data | |
Ramesh et al. | Design of byzantine fault-tolerant transaction commit protocol for heterogeneous distributed databases | |
CN118626553A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Shuo Power Co. Address before: California, USA Applicant before: SALESFORCE.COM, Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |