CN100388225C - 具有远程数据镜像的集群数据库 - Google Patents
具有远程数据镜像的集群数据库 Download PDFInfo
- Publication number
- CN100388225C CN100388225C CNB2005800022809A CN200580002280A CN100388225C CN 100388225 C CN100388225 C CN 100388225C CN B2005800022809 A CNB2005800022809 A CN B2005800022809A CN 200580002280 A CN200580002280 A CN 200580002280A CN 100388225 C CN100388225 C CN 100388225C
- Authority
- CN
- China
- Prior art keywords
- website
- server
- data
- websites
- place
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/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/2056—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 by mirroring
- G06F11/2071—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 by mirroring using a plurality of controllers
- G06F11/2079—Bidirectional techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1425—Reconfiguring to eliminate the error by reconfiguration of node membership
-
- 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/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
- G06F11/1662—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
-
- 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/2056—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 by mirroring
- G06F11/2069—Management of state, configuration or failover
-
- 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/2056—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 by mirroring
- G06F11/2071—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 by mirroring using a plurality of controllers
-
- 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
Abstract
本发明提供一种用于在多个站点之间镜像数据的方法和装置。在包括第一站点和第二站点的多个站点之间建立复制关系。在第一站点处的第一数据库服务器接收到在第二站点处不能成功镜像写操作的指示。响应于该指示,第一数据库服务器通过与定额装置通信来启动成员投票操作以确定是将第一数据库服务器还是与第二站点有关的第二数据库服务器从复制成员中去除。如果确定应将与第二站点有关的第二数据库服务器从复制成员中去除,那么第一数据库服务器发送消息以指示在第二站点处将不再重复写操作。
Description
技术领域
本发明涉及在多个站点之间镜像数据。
背景技术
数据镜像是一项将数据从第一位置复制到一个或多个第二位置同时数据存储在第一位置处的技术。从第一位置复制到一个或多个第二位置的数据是对存储在第一位置的数据的精确复制。因此,数据镜像可用于提供镜像数据的备份以及在故障后能够及时恢复数据。数据镜像与数据将被复制到的位置无关,无论这个位置在地理上是接近还是远离待镜像的位置。
图1是示出了采用第一种方法来进行数据镜像的系统100的框图,其中存储在站点A处的数据将被镜像到站点B。文件服务器130同时将存储在数据库140中的数据复制到数据库142。每当文件服务器130处理由数据库服务器120发出的对数据库140中的数据块作出改变的事务时,文件服务器130就将反映该改变的消息发送到文件服务器132。一旦接收到该消息,文件服务器132就更新存储在数据库142中的数据来反映对数据库140所作出的改变。可使用各种技术来更新数据库142,例如对数据库142执行与对数据库140所执行的事务相同的事务或通过更新数据库142的非易失性存储器来反映存储在数据库140中的数据的当前状态。
客户端(例如客户端110和客户端112)可向数据库服务器发出I/O请求以读取数据库中的数据或向数据库写入数据。为了确保数据库140和142的一致性,在系统100中的所有客户端都通过在站点A处的数据库服务器120发出所有的I/O请求,从而保证无论客户端与哪个站点有关,所有客户端都能看到相同的被镜像的数据。
图1所示的数据镜像方法存在几个问题。首先,来自与站点A无关的客户端(例如客户端112)的所有I/O请求会由于这些客户端必须传送其I/O请求到在不同站点处的数据库服务器而遇到执行障碍。由于来自客户端的所有I/O请求都通过单一的数据库服务器(其可能在地理位置上远离请求客户端)发送,因此那些位于较远位置的客户端会遇到与I/O请求有关的明显的传输延迟。此外,单一数据库服务器将成为来自系统100中的客户端的所有I/O请求的瓶颈。
其次,如果站点A不起作用,例如,文件服务器130崩溃或变得不可用,那么在取代站点A的故障系统的备用系统(例如站点B)可用之前,数据库服务器120和连接到数据库服务器120的系统100中的所有客户端都将遇到临时服务损失。
第三,如果文件服务器130也许由于在文件服务器130与文件服务器132之间的通信链路不起作用而不能将写操作复制到文件服务器132,那么就必须注意确定是否将数据库140或数据库142作为备用系统以便从所遇到的问题中恢复过来,这是因为数据库140和142由于不能复制一个或多个写操作而不再彼此同步。如果一个数据库被选作备用系统而所选择的数据库并不反映已在系统中任何数据库上执行的所有写操作,那么就会丢失对数据库所作出的改变。
图2是示出了数据镜像的第二种方法的框图。如图2所述,存储在每个站点的每个数据库被分成两个或更多个分区。举例来说,数据库240具有分区A和B’,并且数据库242具有分区A’和B。存储在数据库240的分区A中的数据被镜像到数据库242中的分区A’,而存储在数据库242的分区B中的数据被镜像到数据库240中的分区B’。将数据库240看作分区A的主站点,并将数据库242看作分区B的主站点。
当且仅当请求仅涉及到存储在那个站点处将被镜像的分区中的数据时,可本地执行来自客户端的写数据或读数据的请求(就是,发出请求的客户端和服务该请求的数据库两者都在相同的站点中)。举例来说,如果客户端210发出写或读请求到分区A中的数据块,那么请求就可在数据库240处本地执行。然而,如果客户端210发送写或读请求到分区B中的数据块,那么数据库服务器220就将那个请求发送到文件服务器232以便可在数据库242处执行所述请求。虽然与主站点为远程站点的分区中的数据相比,这项技术并没有降低处理事务的执行延迟,但是与主站点为本地站点的分区中的数据相比,以此方式划分数据有助于降低处理事务的执行延迟。
然而,如果不能在站点之间复制数据或者如果一个特定站点不起作用,那么这个方法就存在问题。当不能将数据从第一站点(主站点)的一个分区复制到第二站点(从站点)的对应分区时,在主站点处的数据库就没有被通知复制不成功。结果,在从站点处存储复制数据的分区就变得陈旧并过时。此后,如果主站点不起作用,那么在从站点处存储复制数据的分区会由于存储在其中的数据过时而不能用于恢复主站点的不可用性。使用过时数据违反了数据库一致性原则。
因此,仍然需要可同时避免与上述方法相关的问题的镜像数据技术。
在这个部分中所述的方法是可以继续执行的方法,但并非必须是先前已设想或执行的方法。因此,除非另有说明,否则不要以为在这个部分中所描述的任何方法仅由于其已被包括在这部分中而被当作现有技术。
附图说明
通过不局限于此的附图中的实例来描述本发明,在附图中相同的参考标号表示类似的组件,其中:
图1是示出第一种数据镜像方法的框图;
图2是示出第二种数据镜像方法的框图;
图3是示出根据本发明实施例的数据镜像系统的网络框图;
图4是示出根据实施例的在多个站点之间镜像数据的步骤的流程图;
图5是示出根据本发明实施例启动成员投票操作的功能步骤的流程图;
图6是示出根据本发明实施例的在多个站点之间镜像数据的步骤的流程图;
图7是示出根据本发明实施例的在多个站点之间镜像数据的步骤的流程图;
图8是示出根据本发明实施例的在多个站点之间镜像数据的步骤的流程图;
图9是示出根据本发明实施例的在多个站点之间镜像数据的步骤的流程图;以及
图10是示出在其上可以实现本发明的实施例的计算机系统的框图。
具体实施方式
描述一种用于在多个站点之间镜像数据的方法和系统。在以下描述中,为了便于解释,阐明大量细节以提供对本发明更加全面的理解。然而,显而易见本发明可在没有这些细节的条件下来实施。在其它实例中,众所周知的结构和装置以框图形式表示以便避免不必要地模糊本发明。
结构概述
图3是示出根据本发明的实施例的数据镜像系统300的网络框图。数据镜像系统300可在数据镜像系统300中每个站点之间双向复制数据。另外,如本文所述,使用数据镜像系统300可获得其它好处。图3的数据镜像系统300包括站点310和站点312、客户端320和客户端322、数据库服务器330和数据库服务器332、文件服务器340和文件服务器342、数据库350和数据库352、定额装置(quorum device)360以及通信链路370、372、374和376。
文中所广泛使用的站点指的是在数据镜像系统300中的物理组件的逻辑分组。数据可从数据镜像系统300中的第一站点复制到第二站点。可将数据镜像系统300中的大量组件存储在单一站点中。举例来说,单一站点可有一个或多个客户端、一个或多个数据库服务器、一个或多个文件服务器、一个或多个数据库以及一个或多个定额装置。可将在一个站点中的物理组件的逻辑分组物理定位在不同尺寸的范围内。举例来说,一个站点可对应于特定的建筑物、建筑物的特定层或建筑物的特定房间。站点也可彼此物理靠近或远离。为了便于解释,图3仅图示了两个站点;然而,实施例可具有任何数量的站点,包括仅有一个单一的站点。
在此所广泛使用的客户端指的是能够发出服务请求的任何软件或硬件组件。举例来说,能够向数据库服务器发出请求的组件通常被称作数据库客户端。为了便于解释,在图3中,每个站点都被描述为具有单一客户端;然而,一个站点可包含任何数量的客户端。客户端的非限制、示例性实例(例如客户端320和322)包括软件应用程序、个人计算机、能够向数据库服务器发出请求的机器、以及数据库服务器。
诸如数据库服务器330和数据库服务器332的数据库服务器是用于管理数据的一个或多个软件和/或硬件组件。在数据库管理的其它功能中,数据库服务器通常管理和促进存取数据库,且处理数据库客户端存取数据库的请求。虽然在图3中仅示出了两个数据库服务器,即数据库服务器330和数据库服务器332,但是在数据镜像系统300中可使用任何数量的数据库服务器。
在此广泛使用的文件服务器指的是能够执行文件处理和存储功能的任何硬件或软件组件。诸如文件服务器340和文件服务器342的文件服务器处理从数据库服务器接收到的并在数据库上执行的写和读操作。注意在此广泛使用的术语“文件服务器”,作为文件服务器可以包括与数据库管理系统分开执行并独立于数据库管理系统的系统、或在数据库管理系统中的一个模块。
诸如数据库350和数据库352的数据库是电子信息的持久存储器。数据库的非限制、示例性实例包括关系数据库、面向对象的数据库、多维数据库、分布式计算机集群中的数据库以及在服务器刀片的网格中的数据库。在美国专利第6,353,836号中还详细解释了数据库服务器的分布式集群,其内容结合于此作为参考。在美国临时专利申请序列号60/500,050中还详细解释了在其上运行有一组数据库服务器的网格,其内容结合于此作为参考。
在此所广泛使用的定额装置指的是能够执行成员投票操作的任何硬件或软件组件。在一个实施例中,成员投票操作确定要将哪一(几)个数据库服务器从复制成员中去除。定额装置(例如定额装置360)的操作将在下面题为“双向复制”的部分中进一步详细解释。为了便于解释,在图3中仅示出了一个定额装置;然而,数据镜像系统300的实例可包括任何数量的定额装置。
可通过在数据库服务器(例如数据库服务器330或数据库服务器332)与定额装置360之间提供数据交换的任何介质或机构来实现通信链路370和372。可通过在文件服务器(例如文件服务器340和文件服务器342)之间提供数据交换的任何介质或机构来实现通信链路374和376。通信链路370、372、374和376的实例包括(但不限于)诸如局域网(LAN)、广域网(WAN)、以太网或互联网的网络,或者一个或多个陆地、卫星或无线链路。
在镜像环境下的误差处理-概述
提供了用于在多个站点之间镜像数据的方法和机构。根据一项技术,在包括第一站点和第二站点的多个站点之间建立复制关系。在一个实施例中,复制关系规定将在多个站点的任何一个站点处所作出的至少一些改变复制到所述多个站点的其它站点中的每个站点处。
与复制关系的第一站点有关的第一数据库服务器请求执行写操作。此后,在第一站点处执行写操作。发送消息以请求要在复制关系的第二站点处镜像该写操作。
为了解释,假定第二站点不能成功执行写操作。因此,第一数据库服务器接收到在第二站点处未能成功执行写操作的指示。响应于此,第一数据库服务器启动成员投票操作来确定是将第一数据库服务器还是与第二站点有关的第二数据库服务器从复制成员中去除。
在实施例中,第一数据库服务器通过与定额装置通信来启动成员投票操作。定额装置是能够执行成员投票操作的硬件或软件组件。定额装置可基于多个因素(例如哪个数据库服务器更重要或更可靠)来确定将哪个数据库服务器从复制成员中去除。定额装置可采用各种成员投票协议来确定成员。
如果确定与第二站点有关的第二数据库服务器应从复制成员中去除,那么第一数据库服务器会发送消息给第一站点处的文件服务器来指示在第二站点处将不再复制写操作。以下将进一步详细描述其它的实施例。
基于优先权的提交处理-概述
也提供了用于基于与事务有关的优先值来处理事务提交的技术。根据一项技术,数据在多个站点之间镜像。在多个站点的第一站点处,保持一个第一记录,其识别哪些已在第一站点处执行的事务已将其重做信息复制到多个站点中的其它站点。在此广泛使用的重做信息指的是描述事务的信息。同样在第一站点处,保持一个第二记录,其识别哪些已在第一站点处执行的事务已将其重做信息记录到第一站点处的持久存储器。
确定与将在第一站点处执行的事务有关的优先值。该事务指定对数据块的修改。通常将重做信息存储在重做日志文件中。在多数实施中,重做日志文件按事务提交的顺序来顺序存储重做信息。因而,确保与高优先权事务(具有指示如果发布事务的站点不起作用,不会丢失该事务的优先值的事务)有关的重做信息已被复制来确保与低优先权事务(具有指示如果发布事务的站点不起作用,可能丢失该事务的优先值的事务)有关的重做信息也已被复制,其中低优先权事务在高优先权事务之前已被提交。
如果优先值指示如果第一站点不起作用不会丢失该事务,那么仅在第一记录指示在第一站点处的事务之前已提交的所有其它事务已将其各自的重做信息复制到多个站点的其它站点之后才提交该事务。
然而,在实施例中,如果优先值指示在第一站点不起作用时可以丢失该事务,那么在第一记录指示在第一站点处的事务之前已提交的所有其它事务已将其各自的重做信息复制到多个站点的其它站点之前,提交该事务。在另一实施例中,如果优先值指示当第一站点不起作用时可能丢失该事务,那么在第二记录指示在第一站点处的事务之前提交的所有其它事务已将其各自重做信息存储到第一站点处的持久存储器之后,提交该事务。
以下进一步详细描述其它实例。
双向复制
如以下进一步详细解释的,实施例支持在系统300的每个站点中的同时本地读操作和本地写操作。写操作可以同步或不同步地复制到系统300中的每个其它站点。在实施例中,可以通过延迟将写操作复制到另一个站点来加强写操作的性能。举例来说,向另一个站点的写操作复制可以被延迟,直到高优先权事务需要提交或者需要保存预写式日志或回写式日志的点。写操作的迟迟使得写操作的复制能够被有效地批处理。
图4是示出了根据实施例的在多个站点之间镜像数据的步骤的流程图400。开始,在步骤410,在多个站点之间建立复制关系。在实施例中,为数据镜像系统300中的每个站点建立复制关系,例如,为图3中的站点310和站点312建立复制关系。在实施例中,复制关系规定将在数据镜像系统300中的任何一个站点处所作出的至少一些改变复制到数据镜像系统300的其它站点中的每个站点处。在执行了步骤410后,处理进行到步骤420。
在步骤420中,与多个站点中的第一站点有关的第一数据库服务器请求执行写操作。在实施例中,步骤420可以由站点310中请求执行写操作的数据库服务器330来执行。写操作可以是将数据写入位于第一站点处的数据库(例如数据库350)的操作。在执行了步骤420之后,处理进行到步骤430。
在步骤430中,在第一站点处执行在步骤420中请求的写操作。在实施例中,可以由指示文件服务器340在数据库350处执行写操作的数据库服务器330来在站点310处执行写操作,且之后文件服务器340在数据库350处执行写操作。同样在步骤430中,发送消息以请求在第二站点处镜像写操作。在实施例中,文件服务器340可以向文件服务器342发送将写操作镜像在站点312上的请求。在执行了步骤430之后,处理进行到步骤440。
应注意,由于每个站点的每个数据库服务器都使用一个机制来确保在同一时刻仅有一个写操作可改变持久存储在磁盘上的相同数据块,因此可在系统中的每个站点处执行写操作。可使用多种技术来实现这样的机制,其中多种技术可包括全局加锁管理的形式(共享磁盘集群)或磁盘分区(无共享集群)。
在步骤440中,第一数据库服务器接收到在第二站点处不能成功执行写操作的指示。举例来说,数据库服务器330接收到在站点312处不能成功执行写操作的指示。在实施例中,指示是指示应该执行成员投票操作的输入/输出误差。输入/输出误差可以使用由数据库服务器330在消息中所接收到的唯一误差码来表示。在站点310处所接收的指示可为标识在站点312处不能复制写操作的输入/输出误差。在实施例中,在步骤440中仅当在数据镜像系统300中的一个站点不能反映在数据镜像系统300中的另一个站点处所执行的写操作时才接收到指示;因此,如果数据库服务器332故障,步骤440的指示就不能被站点310接收。在实施例中,如果文件服务器342故障、数据库352故障、通信链路374故障或通信链路376故障时,则站点310接收步骤440的指示。在执行了步骤440之后,处理进行到步骤450。
在步骤450中,第一数据库服务器启动成员投票操作来确定是将第一数据库服务器还是与第二站点有关的第二数据库服务器从复制成员中去除。举例来说,通过数据库服务器330启动成员投票操作来确定是将数据库服务器330还是数据库服务器332从复制成员中去除来执行步骤450。
在实施例中,第一数据库服务器通过与定额装置通信来启动成员投票操作。举例来说,数据库服务器330通过通信链路370与定额装置360通信来启动成员投票操作。
图5是示出根据本发明实施例的启动成员投票操作的功能步骤的流程图。在步骤510中,通知定额装置不能成功执行写操作。举例来说,可通过数据库服务器330经由通信链路370来通知定额装置360在站点312处不能成功执行写操作来执行步骤510。在执行了步骤510之后,处理进行到步骤520。
在步骤520中,在步骤510中被通知的定额装置确定将哪个数据库服务器从复制成员中去除。举例来说,可通过定额装置360确定将哪个数据库服务器从复制关系中去除来执行步骤520。在实施例中,确定将哪个数据库服务器从复制关系中去除包括确定哪个数据库服务器更重要或更可靠。如果在数据镜像系统300中的所有数据库服务器同样重要或同样可靠,那么可由定额装置选择一个默认的数据库服务器。
在实施例中,如果定额装置360确定将数据库服务器332从复制成员中去除,那么数据库服务器330就向文件服务器340发送消息,该消息指示在站点312处将不再复制在站点310处执行的写操作。换句话说,如果定额装置360确定将站点310从复制成员中去除,那么数据库服务器332通知文件服务器342在站点310处将不再复制数据。即使不再将写操作复制到不同的站点,文件服务器仍可本地地处理读和写操作。
在实施例中,定额装置360包含多个镜像装置且步骤510是由主文件服务器执行的。主文件服务器是与多个站点中的一个有关的文件服务器,通过该文件服务器,与多个站点中其它站点有关的所有其它文件服务器与定额装置通信。举例来说,数据库服务器330可以为主文件服务器,因此,数据库服务器332通过数据库服务器330与定额装置360通信。
在另一个实施例中,将定额装置360定位在与不同故障范围有关的与数据镜像系统300中的任何其它站点不同的站点中。在该实施例中,在数据镜像系统300中的每个数据库服务器可直接接触定额装置360。然而,如果定额装置360故障,那么在数据镜像系统300中的每个站点由于不能与定额装置360通信而故障,即使这些站点本来是正常的且彼此之间具有网络和输入/输出连接。
在实施例中,站点可在定额装置确定将在该站点处的数据库服务器从复制成员中去除之后重新加入复制关系。举例来说,如果将站点312从复制关系中去除,那么站点312可重新加入复制关系。响应于站点312重新加入复制关系,站点312中的数据将与站点310中的数据重新同步,并且数据库352被重新安装。
改进写重做信息的执行
写操作的同步复制增加了写操作的等待时间和成本。虽然必须注意要协调在仍未被复制的其它地方启动的写操作和即将发布的写操作,但是文件服务器也可异步复制写操作。以下讨论了有利地采用了异步复制的大量实例。
以下讨论通过异步复制改进写重做信息执行的几个实施例。文中所广泛使用的重做信息指的是描述事务的信息。在实施例中,重做信息描述了已提交或待提交的事务。在实施例中,可将重做信息记录在重做日志文件中。重做信息可用于重新运行或“取消”已被提交的事务。
图6是示出了根据本发明实施例的在多个站点之间镜像数据的步骤的流程图。图6中示出的步骤可用于在多个站点之间镜像重做信息。开始,在步骤610中,保持在多个站点的第一站点处的一个第一记录,其识别已在该第一站点处执行的哪些事务已将其重做信息复制到多个站点中的其它站点。步骤610可由站点310的数据库服务器330来执行。在实施例中,步骤610可通过识别重做日志文件的一部分来执行。在步骤610的重做日志文件的已识别部分中反映的所有事务已经被复制到多个站点的其它站点。
举例来说,在步骤610中识别的重做日志文件的部分可通过保持识别在重做日志文件中所反映的特定事务的记录来识别,其中重做日志文件已将其各自的重做信息复制到多个站点的其它站点并与最大日志序列号(LSN)有关。在重做日志文件中具有小于或等于与特定事务有关的LSN的LSN的所有事务都在重做日志文件中的已将其重做信息复制到多个站点的其它站点的识别部分中。在执行步骤610之后,处理进行到步骤620。
在步骤620中,保持在多个站点的第一站点处的第二记录,其识别已在第一站点处执行的哪个事务已将其重做信息记录到第一站点处的持久存储器。步骤620可以由站点310的数据库服务器330来执行。在实施例中,步骤620可通过识别重做日志文件的一部分来执行。在步骤620的重做日志文件的识别部分中所反映的所有事务都已被记录到第一站点处的持久存储器中。
举例来说,在步骤620中识别的重做日志文件的部分可通过保持一个记录来识别,该记录识别了在重做日志文件中反映的特定事务的记录来识别,其中该重做日志文件已将其各自的重做信息记录到第一站点处的持久存储器中并与最大日志序列号(LSN)有关。在重做日志文件中具有小于或等于与特定事务有关的LSN的LSN的所有事务位于重做日志文件的识别部分中,其中该重做日志文件已将其重做信息记录到第一站点处的持久存储器。在执行了步骤620之后,处理进行到步骤630。
在步骤630中,确定与事务有关的优先值。优先值可以用于基于事务的重要性来确定何时提交事务。举例来说,如果第一站点不起作用时不应丢失特定的事务,那么可给该务一个比第一站点不起作用时可能丢失的事务更高的优先值。
在实施例中,与步骤630的优先值有关的事务将在第一站点处执行。在实施例中,事务指明将对至少一个数据块作出修改。被事务修改的数据块可位于站点310的数据库350中。为了便于解释,虽然一个事务可修改两个或多个数据块,但是只讨论修改一个数据块的事务。步骤630可由站点310的数据库服务器330来执行。在执行了步骤630之后,处理进行到步骤640。
在步骤640中,确定优先值是否指示当第一站点不起作用时不应丢失事务。步骤640可由站点310的数据库服务器330来执行。
如果步骤640的确定是肯定的(优先值指示如果第一站点不起作用不应丢失事务),那么处理进行到步骤650。在步骤650中,仅在第一记录指示与事务有关的重做信息已被复制到数据镜像系统300中的其它站点中的每个站点之后才提交事务。步骤650可由站点310的数据库服务器330来执行。
在实施例中,在步骤650中所作出的是否已将与事务有关的重做信息复制到多个站点中的其它站点的确定是通过将与事务有关的提交记录和第一记录进行比较来执行的。
如果步骤640的确定是否定的(优先值指示如果第一站点不起作用可能丢失事务),那么处理进行到步骤660。在步骤660中,仅在第二记录指示与事务有关的重做信息已被存储到第一站点的持久存储器之后才提交事务。步骤660可由站点310的数据库服务器330来执行。
在实施例中,在步骤660中所作出的与事务有关的重做信息是否已被存储到持久存储器的确定是通过将与事务有关的提交记录和第二记录进行比较来执行的。
在可选实施例中(图6中没有示出),步骤660可通过在第一记录指示与事务有关的重做信息已被复制到多个站点的其它站点之前提交该事务来执行。在实施例中,站点310的数据库服务器330在第一记录指示与事务有关的重做信息已被复制到多个站点的其它站点之前提交了该事务。由事务所产生的重做信息被认为是与该事务有关的。
以上所讨论的实施例有利地使得基于事务的重要性来确定何时提交事务成为可能。举例来说,如果特定事务是非常重要的事务(在任何情况下都不能丢失),那么仅在第一记录指示已在该事务之前提交的所有其它事务都已将其各自的重做信息复制到其它站点之后才提交该事务。然而,并不如此重要的事务可在第二记录指示出在该事务之前提交的所有其它事务都已将其各自的重做信息存储到第一站点处的持久存储器之后才提交。以这种方式,尽管如果第一站点在与所提交事务有关的改变被镜像到多个站点的其它站点中之前不起作用,则所提交的并不如此重要的事务可能会丢失,但是并不如此重要的事务可能会比非常重要的事务更早提交。
如果写操作的复制被延迟并且发出该写操作的特定站点不起作用,那么在开始恢复不起作用的站点之前,存活的站点必须等待从不起作用的站点传输的所有信息都已被多个站点中的其它站点中的每个站点接收到。这样实施确保在站点不起作用之前就已从不起作用的站点发出并且还未被接收到的消息,在其启动恢复或已完成不起作用的站点的恢复之后没有被存活站点处理。可选地,剩余站点可在一个或多个剩余站点已启动或完成不起作用站点的恢复之后忽略从不起作用的站点传输的任何消息。
图7是示出根据本发明实施例的在多个站点之间镜像数据的步骤的流程图。图7中示出的步骤可用于有利地延迟将写操作复制到重做日志。对于数据库服务器来说有利地减少将数据写到重做日志的等待时间。如果在站点故障的情况下能允许最近所提交的事务的丢失,则数据库服务器可延迟将写复制到重做日志。以下所讨论的本发明实施例有利地延迟了将写复制到重做日志,直到反映还未被持久存储的改变的数据块被持久存储或传送到另一个站点为止。
开始,在步骤710,在多个站点中的第一站点处处理事务。步骤710可通过处理事务(例如写操作)的站点310的数据库服务器330来执行。
在步骤720中,产生反映所处理事务的信息。该信息可在易失性存储器中产生。信息可包括关于所处理事务的重做信息。步骤720可由站点310的数据库服务器330来执行。在产生反映所处理事务的信息之后,处理进行到步骤730。
在步骤730中,确定在与所处理事务有关的数据块被持久存储或该数据块被传送到另一个站点之前是否已持久存储了在步骤720中所产生的信息。步骤730可由站点310的数据库服务器330来执行。
如果步骤730的确定是肯定的(在与所处理事务有关的数据块被持久存储或该数据块被传送到了另一个站点之前已持久存储了在步骤720中所产生的信息),那么处理进行到步骤740。在步骤740中,在步骤720中所产生的信息在数据块被持久存储或该数据块被传送到多个站点的另一个站点之前就被持久存储了。
在实施例中,可执行步骤740以便持久存储关于多个事务的信息。举例来说,在第一站点处,可处理第二事务,并且在第一站点处的易失性存储器中可产生反映所处理的第二事务的信息。如果在步骤720中所产生的信息(以下称为“第一信息”)和反映第二事务的信息(以下称为“第二信息”)在与所处理的第二事务有关的第二数据块被持久存储或该第二数据块被传送到多个站点的另一个站点之前没有被持久存储,那么可在第二数据块被持久存储或第二数据块被传送到多个站点的另一个站点之前,使用批处理持久存储第一信息和第二信息。在实施例中,数据库服务器330使用批处理持久存储第一信息和第二信息。在实施例中,批处理可以是异步的。异步批处理的结果可使用输入/输出结果描述符(例如在UNIX中所使用的aio_result_t)来确定。异步输入/输出结果描述符可用于确定批处理何时完成处理。
如果步骤730的确定是否定的(在与所处理事务有关的数据块被持久存储或将该数据块传送到另一个站点之前没有持久存储在步骤720中所产生的信息),那么处理进行到步骤750。在步骤750中,持久存储或传送与所处理事务有关的数据块。
改进写入数据库文件的执行
以下讨论通过异步复制改进写入数据库文件的执行的几个实施例。图8是示出了根据本发明一个实施例在多个站点之间镜像数据的步骤的流程图。图8中示出的步骤可用于使用预写式日志方案写入数据库文件。
开始,在步骤810中,在多个站点的第一站点处保持第一记录,其识别对第一站点处的一个或多个数据块所作出的改变已将有关的重做信息复制到多个站点中的其它站点了。第一站点实施预写式日志方案。在预写式日志方案中,在高速缓存中反映未被持久存储的改变的数据块(“脏”数据块)仅在已持久存储了与所述的一个或多个数据块有关的重做信息之后才被持久存储。在实施例中,第一站点相对于事务的执行异步复制事务到多个站点中的其它站点。步骤810可由保持第一记录的站点310的数据库服务器330执行,其中第一记录识别对存储在站点310处的数据库350中的一个或多个数据块所作出的哪些改变已将有关的重做信息复制到站点312。对已将有关的重做信息复制到多个站点中的其它站点的一个或多个数据块作出的改变可通过将每个改变分配给重做日志中的一个日志序列号(LSN)并存储最近已被复制的改变的日志序列号来跟踪。另外,与对特定数据块作出的最后改变有关的LSN被存储在所述特定数据块的头信息中。在执行了步骤810之后,处理进行到步骤820。
在步骤820中,在多个站点的第一站点处保持第二记录,其识别对存储在第一站点处的一个或多个数据块所作出的改变已将有关的重做信息记录到多个站点的第一站点处的持久存储器。对一个或多个数据块所作出的已将有关重做信息记录到多个站点的第一站点处的持久存储器的改变可通过将每个改变分配给重做日志中的一个日志序列号(LSN)并存储已被记录到持久存储器的最近改变的日志序列号来跟踪。步骤820可通过保持第二记录的站点310的数据库服务器330来执行,其中第二记录识别对存储在站点310的数据库350中的一个或多个数据块所作出的的哪些改变已将有关的重做信息记录到站点310处的持久存储器。在执行步骤820之后,处理进行到步骤830。
在步骤830中,确定第一站点是否以与在第一站点发出写事务相同的顺序复制写事务。站点310的数据库服务器330可执行步骤830。
如果步骤830的确定是肯定的(第一站点的确以与在第一站点处完成写事务相同的顺序复制写事务),那么处理进行到步骤840。在步骤840中,在第二记录指示对存储在第一站点处的一个或多个数据块所作出的任何改变都已将重做信息记录到持久存储器之后才持久存储数据块。对数据块所作出的改变可以由一个或多个事务来执行。可以通过在第二记录指示对存储在站点310处的数据库350中的数据块所作出的任何改变都已将有关的重做信息记录到站点310处的持久存储器之后,将特定数据块持久存储在数据库350中来执行步骤840。
如果步骤830的确定是否定的(第一站点没有以与在第一站点处完成写事务相同的顺序复制写事务),那么处理进行到步骤850。在步骤850中,在第一记录指示对存储在第一站点处的一个或多个数据块所作出的任何改变都已将重做信息复制到多个站点的其它站点之后,持久存储数据块。对一个或多个数据块所作出的改变可由一个或多个事务执行。步骤850可通过在第一个记录指示对存储在站点310处的数据库350中的一个或多个数据块所作出的任何改变都已使有关的重做信息复制到多个站点的其它站点之后将特定数据块持久存储在站点310的数据库350中来执行。在第一记录指示对特定数据块所作出的改变已被复制到多个站点的其它站点之后,那么可释放与所述数据块有关的锁定。特别地,在共享磁盘或共享高速缓存集群数据库中,其中使用全局加锁管理协调对数据块的同时存取,仅在第一记录指示与对数据块作出的改变有关的重做信息已被复制到多个站点的其它站点之后才释放与数据块有关的锁定。这样确保了除非与在先对数据块作出的改变有关的所有在先重做信息在站点的本地持久存储器中都是可以得到的,否则从远程站点接收数据块的任何站点不会读或写该数据块。
使用图8所示的实施例,如果对不同文件的写操作是以与发布写操作相同的顺序复制的,那么一旦第二记录反映已更新特定数据块的所有事务,特定数据块就可以被持久存储。以这种方式,特定数据块的复制将仅发生在已复制由一个或多个事务对特定数据块作出的改变有关的重做信息之后。
本发明的实施例使用回写式日志方案改进写入数据库文件的执行。在回写式日志方案中,在产生数据块的重做信息之前持久存储数据块。图9是示出了根据本发明实施例的在多个站点之间镜像数据的步骤的流程图。图9中示出的步骤可用于使用回写式日志方案写入数据库文件。开始,在步骤910中,在多个站点的第一站点处,在持久存储了关于对数据块所作出的改变的重做信息之前持久存储数据块。可以通过在持久存储关于对数据块所作出的改变的重做信息之前站点310的数据库服务器330将数据块持久存储在数据块350中来执行步骤910。在执行步骤910之后,处理进行到步骤920。
在步骤920中,在第一站点处,在已将改变复制到多个站点中的其它站点之后,持久存储反映对数据块所作出的改变的重做信息。可以通过在已将对数据块的改变存储到站点312之后,站点310的数据库服务器330持久存储反映对数据块所作出的改变的重做信息来执行步骤920。
在实施例中,在步骤920中,确定何时将对数据块作出的改变复制到多个站点中的其它站点。在实施例中,站点310的数据库服务器330确定何时将对数据块作出的改变复制到站点312。
在实施例中,单一处理可发出一个或多个事务,每个事务对数据块作出改变。在另一实施例中,一个或多个事务可由两个或多个处理发出。数据库服务器330可确定对一个或多个数据块作出改变的一个或多个事务何时完成。在对一个或多个数据块作出改变的一个或多个事务完成之后,如步骤910中所述来持久存储一个或多个数据块。
使用图9中所示出的步骤,数据库服务器可等待直到文件服务器完成向数据块的所有写操作的复制为止,所述数据块已在持久存储用于写操作的重做信息之前就已被持久存储。举例来说,站点310中的数据库服务器330可以等待直到文件服务器340完成了向站点312复制所有对数据块的写操作为止,其中数据块在数据库服务器330将用于写操作的重做信息持久存储在数据库350中之前就已被持久存储在站点310。
站点恢复
在实施例中,如果在数据镜像系统300中的特定站点不起作用,那么在确定从特定站点传输到在数据镜像系统300的其它站点中的每个站点的所有消息都已被其目标方接收到之后启动特定站点的恢复。举例来说,在图3所示的实施例中,如果站点310不起作用,那么直到确定已在站点312接收到从站点310传输到站点312的所有消息之后才启动站点310的恢复。
改进写向临时文件的执行
临时文件可被特定数据库操作中的一个数据库服务器使用,例如排序和散列连接。临时文件被用作类似于缓冲存储区以在有线的时间内容纳数据。在某些情况下,需要复制关于临时文件的空间分配的元数据的改变。然而,如果多个站点中的其它站点不需要临时文件,那么就不需要复制临时文件。
在实施例中,在多个站点的第一站点处的数据库服务器处确定是否将数据结构(例如临时文件)复制到多个站点的其它站点中每个站点处。除非确定不用将数据结构复制到多个站点的其它站点中每个站点,否则第一站点处的数据结构将被复制到多个站点的其它站点中每个站点。举例来说,在图3所示的实施例中,站点310的数据库服务器330可确定不需要将特定临时文件复制到站点312。因此,数据库服务器330不将临时文件复制到站点312。
实施机构
图10是示出可实施本发明一个实施例的计算机系统1000的框图。计算机系统1000包括用于通信信息的总线1002或其它通信机构,以及与总线1002连接的用于处理信息的处理器1004。计算机系统1000也包括连接到总线1002的用于存储由处理器1004执行的信息和指令的主存储器1006,例如随机存取存储器(RAM)或其它动态存储设备。主存储器1006也可用于存储临时变量或在将由处理器1004执行的指令执行期间的中间信息。计算机系统1000进一步包括连接到总线1002的用于存储处理器1004的静态信息和指令的只读存储器(ROM)1008或其它静态存储设备。将存储设备1010(例如磁盘或光盘)连接到总线1002来存储信息和指令。
计算机系统1000可通过总线1002连接到一个用于向计算机用户显示信息的显示器1012,例如阴极射线管(CRT)。将一个包括字母数字和其它键的输入设备1014连接到总线1002来与处理器100通信信息和指令选择。另一种类型的用户输入设备是用于与处理器1004通信方向信息和命令选择并用于控制在显示器1012上的光标移动的光标控制器1016,例如鼠标、追踪球或光标方向键。输入装置通常在两个轴上(第一个轴(例如X轴)和第二个轴(例如Y轴))具有两个自由度,使装置能指定平面上的位置。
本发明涉及用于实施本文中所描述技术的计算机系统1000的使用。根据本发明的一个实施例,通过计算机系统1000响应执行包含在主存储器1006中的一个或多个指令的一个或多个序列的处理器1004来执行那些技术。这样的指令可从另一个计算机可读介质(例如存储设备1010)读入到主存储器1006。包含在主存储器1006中的指令序列的执行使得处理器1004执行本文中所述的处理步骤。在可选的实施例中,硬连线电路可取代软件指令或与软件指令相结合来实施本发明。因此,本发明的实施例并不限于硬件电路和软件的任何特定组合。
本文中所用的术语“计算机可读介质”指的是参与向处理器提供用于执行的指令的任何介质。这种介质可采取多种形式,包括但不限于非易失介质、易失介质和传输介质。非易失介质包括(例如)光盘或磁盘,例如存储设备1010。易失介质包括动态存储器,例如主存储器1006。传输介质包括同轴电缆、铜线和光纤,包括组成总线1002的导线。传输介质也可采取声波或光波的形式,例如那些在无线电波和红外线数据通信期间所产生的声波和光波。
一般形式的计算机可读介质包括(例如)软盘、软磁盘、硬盘、磁带,或任何其它磁介质、CD-ROM、任何其它光介质、穿孔片、纸带、任何具有孔式图样的物理介质、RAM、PROM和EPROM、FLASH-EPROM、任何其它存储芯片或盒式磁带、下文中所描述的载波,或计算机可读的任何其它介质。
各种形式的计算机可读介质可参与将用于执行的一个或多个指令的一个或多个序列承载到处理器1004。举例来说,开始可将指令承载到远程计算机的磁盘上。远程计算机可将指令存入其动态存储器中,然后使用调制解调器通过电话线来发送指令。计算机系统1000的本地调制解调器可接收到电话线上的数据,并使用红外线传输器将数据转换成红外信号。红外监测器可接收在红外信号上所携带的数据且适当的电路可将数据置于总线1002上。总线1002将数据承载到主存储器1006,处理器从主存储器1006处接收并执行指令。主存储器1006所接收的指令可视情况在处理器1004执行之前或之后存储在存储设备1010上。
计算机系统1000也包括连接到总线1002的通信接口1018。通信接口1018提供双向的数据通信,其连接到与局域网1022连接的网络链路1020。举例来说,通信接口1018可为综合业务数字网(ISDN)卡或调制解调器以提供与相应类型电话线的数据通信连接。如另一个实例,通信接口1018可为本地网(LAN)卡以提供与兼容LAN的数据通信连接。也可使用无线链路。在任何这样的实施例中,通信接口1018发送并接收承载表示各种类型信息的数字数据流的电、电磁或光信号。
网络链路1020通常可通过一个或多个网络向其它数据设备提供数据通信。举例来说,网络链路1020可通过局域网1022与主机1024链接,或与由互联网服务提供商(ISP)1026所操作的数据设备的链接。ISP 1026反过来通过目前通称为“互联网”1028的全球分组数据通信网络提供数据通信服务。局域网1022和互联网1028都使用承载有数字数据流的电、电磁或光信号。通过各种网络的信号以及在网络链路1020上和通过通信接口1018的信号是传输信息的载波的典型形式,所述信号传送数字数据给计算机系统1000或传送来自计算机系统的数字数据。
计算机系统1000可通过网络、网络链路1020和通信接口1018发送消息和接收包括程序代码的数据。在互联网实例中,服务器1030可通过互联网1028、ISP 1026、局域网1022和通信接口1018传送用于应用程序的请求程序代码。
所接收的代码可在其被接收到时由处理器1004执行,和/或存储在存储设备1010或其它非易失存储介质中用于稍后执行。以这种方式,计算机系统1000可获得载波形式的应用代码。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则内所作出的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种用于在多个站点之间镜像数据的方法,包括:
在包括第一站点和第二站点的所述多个站点之间建立复制关系;
建立特定装置作为定额装置;
将在所述多个站点的任何一个站点处作出的至少一些改变复制到所述多个站点的其它站点中的每个站点处;
与所述第一站点有关的第一服务器请求执行写操作;
响应于所述请求,在所述第一站点处执行所述写操作,
并且发送消息以请求在所述第二站点处镜像所述写操作;
所述第一服务器接收到在所述第二站点处不能成功执行所述写操作的指示;
响应于所述指示,所述第一服务器启动成员投票操作来确定应将所述第一服务器和与所述第二站点有关的第二服务器中的哪个从所述复制关系中去除;
其中启动所述成员投票操作包括:
通知所述定额装置所述写操作不能成功执行;以及所述定额装置确定应将所述第一服务器和与所述第二站点有关的第二服务器中的哪个从所述复制关系中去除;以及
如果确定应将与所述第二站点有关的所述第二服务器从所述复制关系中去除,那么所述第一服务器发送消息以指示在所述第二站点处不再复制写操作。
2.根据权利要求1所述的方法,还包括以下步骤:
所述第二站点重新加入所述复制关系中;以及
响应于所述第二站点重新加入所述复制关系,使得与所述第二站点有关的数据与位于所述第一站点处的数据重新同步,并将与所述第二站点有关的数据库重新安装在所述第二站点处。
3.根据权利要求1所述的方法,进一步包括以下步骤:
如果在所述成员投票操作期间,确定应将所述第一站点从所述复制关系中去除,那么通知所述第二站点在所述第一站点处不再复制数据。
4.根据权利要求3所述的方法,其中所述通知的步骤包括:
在所述第二站点处,通知与所述第二站点有关的文件服务器或所述第二服务器在所述第一站点处不再复制数据。
5.根据权利要求1所述的方法,其中,所述确定应将所述第一服务器和与所述第二站点有关的所述第二服务器中的哪个从所述复制关系中去除的步骤包括:确定所述第一服务器或所述第二服务器中的哪个更重要或更可靠。
6.根据权利要求1所述的方法,其中所述定额装置包括多个镜像装置,并且所述通知所述定额装置的步骤是由主文件服务器执行的,其中所述主文件服务器是与所述多个站点中的一个有关的文件服务器,通过其与所述多个站点中的其它站点有关的所有其它文件服务器与所述定额装置通信。
7.根据权利要求1所述的方法,其中,在所述第二站点处不能成功执行所述写操作的所述指示是在所述第一服务器处接收的输入/输出误差。
8.根据权利要求1所述的方法,还包括以下步骤:
如果所述多个站点中的特定站点不起作用,那么在确定从所述特定站点传输到所述多个站点中的每个其它站点的所有消息都已被其目标方接收之后启动所述特定站点的恢复。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/760,013 US6859811B1 (en) | 2004-01-15 | 2004-01-15 | Cluster database with remote data mirroring |
US10/760,013 | 2004-01-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1910556A CN1910556A (zh) | 2007-02-07 |
CN100388225C true CN100388225C (zh) | 2008-05-14 |
Family
ID=34136916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800022809A Active CN100388225C (zh) | 2004-01-15 | 2005-01-12 | 具有远程数据镜像的集群数据库 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6859811B1 (zh) |
EP (1) | EP1704480B1 (zh) |
JP (1) | JP4461147B2 (zh) |
CN (1) | CN100388225C (zh) |
AU (1) | AU2005207572B2 (zh) |
CA (1) | CA2550614C (zh) |
DE (1) | DE602005002532T2 (zh) |
HK (1) | HK1090711A1 (zh) |
WO (1) | WO2005071575A2 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194486B2 (en) * | 2004-06-03 | 2007-03-20 | Hitachi, Ltd. | Method and system for data processing with data replication for the same |
JP4575762B2 (ja) * | 2004-06-03 | 2010-11-04 | 株式会社日立製作所 | データ処理方法および装置並びにストレージ装置およびその処理プログラム |
US7827141B2 (en) * | 2005-03-10 | 2010-11-02 | Oracle International Corporation | Dynamically sizing buffers to optimal size in network layers when supporting data transfers related to database applications |
US7689607B2 (en) * | 2005-04-15 | 2010-03-30 | Microsoft Corporation | Database page mirroring |
US7644305B2 (en) | 2006-05-18 | 2010-01-05 | Microsoft Corporation | Quorum establishment based on a vote from a voting device |
US8041985B2 (en) * | 2006-08-11 | 2011-10-18 | Chicago Mercantile Exchange, Inc. | Match server for a financial exchange having fault tolerant operation |
US8156082B2 (en) * | 2006-10-06 | 2012-04-10 | Sybase, Inc. | System and methods for temporary data management in shared disk cluster |
US20080243782A1 (en) * | 2007-03-28 | 2008-10-02 | Microsoft Corporation | Client collection membership evaluation |
US8818960B2 (en) | 2011-03-18 | 2014-08-26 | Microsoft Corporation | Tracking redo completion at a page level |
US9953305B2 (en) * | 2012-10-22 | 2018-04-24 | Oonetic | Online payment system and method according to the mirror authorization server principle |
US9588855B2 (en) * | 2015-04-22 | 2017-03-07 | PernixData, Inc. | Management and utilization of fault domains in distributed cache systems |
CN105426275B (zh) * | 2015-10-30 | 2019-04-19 | 成都华为技术有限公司 | 双活集群系统中容灾的方法及装置 |
US10387273B2 (en) | 2016-09-16 | 2019-08-20 | Oracle International Corporation | Hierarchical fault tolerance in system storage |
US10416905B2 (en) * | 2017-02-09 | 2019-09-17 | Hewlett Packard Enterprise Development Lp | Modifying membership of replication groups via journal operations |
CN110019091A (zh) * | 2017-12-03 | 2019-07-16 | 中国直升机设计研究所 | 一种异地数据协同系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5917998A (en) * | 1996-07-26 | 1999-06-29 | International Business Machines Corporation | Method and apparatus for establishing and maintaining the status of membership sets used in mirrored read and write input/output without logging |
US20020083036A1 (en) * | 2000-12-21 | 2002-06-27 | Price Daniel M. | Method of improving the availability of a computer clustering system through the use of a network medium link state function |
US20030188114A1 (en) * | 2002-03-26 | 2003-10-02 | Clark Lubbers | Data replication with virtualized volumes |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6163856A (en) * | 1998-05-29 | 2000-12-19 | Sun Microsystems, Inc. | Method and apparatus for file system disaster recovery |
US6144999A (en) * | 1998-05-29 | 2000-11-07 | Sun Microsystems, Incorporated | Method and apparatus for file system disaster recovery |
US6643795B1 (en) * | 2000-03-30 | 2003-11-04 | Hewlett-Packard Development Company, L.P. | Controller-based bi-directional remote copy system with storage site failover capability |
US6505307B1 (en) * | 2000-09-06 | 2003-01-07 | Unisys Corporation | Method and apparatus for ensuring data integrity |
US7016946B2 (en) * | 2001-07-05 | 2006-03-21 | Sun Microsystems, Inc. | Method and system for establishing a quorum for a geographically distributed cluster of computers |
US7421509B2 (en) * | 2001-09-28 | 2008-09-02 | Emc Corporation | Enforcing quality of service in a storage network |
US6757790B2 (en) * | 2002-02-19 | 2004-06-29 | Emc Corporation | Distributed, scalable data storage facility with cache memory |
US7542986B2 (en) * | 2002-03-26 | 2009-06-02 | Hewlett-Packard Development Company, L.P. | System and method for maintaining order for a replicated multi-unit I/O stream |
-
2004
- 2004-01-15 US US10/760,013 patent/US6859811B1/en not_active Expired - Lifetime
-
2005
- 2005-01-12 WO PCT/US2005/001056 patent/WO2005071575A2/en active IP Right Grant
- 2005-01-12 CA CA2550614A patent/CA2550614C/en active Active
- 2005-01-12 CN CNB2005800022809A patent/CN100388225C/zh active Active
- 2005-01-12 DE DE602005002532T patent/DE602005002532T2/de active Active
- 2005-01-12 EP EP05705624A patent/EP1704480B1/en active Active
- 2005-01-12 JP JP2006549582A patent/JP4461147B2/ja active Active
- 2005-01-12 AU AU2005207572A patent/AU2005207572B2/en active Active
-
2006
- 2006-10-12 HK HK06111231A patent/HK1090711A1/xx unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5917998A (en) * | 1996-07-26 | 1999-06-29 | International Business Machines Corporation | Method and apparatus for establishing and maintaining the status of membership sets used in mirrored read and write input/output without logging |
US20020083036A1 (en) * | 2000-12-21 | 2002-06-27 | Price Daniel M. | Method of improving the availability of a computer clustering system through the use of a network medium link state function |
US20030188114A1 (en) * | 2002-03-26 | 2003-10-02 | Clark Lubbers | Data replication with virtualized volumes |
Also Published As
Publication number | Publication date |
---|---|
HK1090711A1 (en) | 2006-12-29 |
AU2005207572A1 (en) | 2005-08-04 |
EP1704480B1 (en) | 2007-09-19 |
CA2550614A1 (en) | 2005-08-04 |
JP4461147B2 (ja) | 2010-05-12 |
CA2550614C (en) | 2011-01-04 |
JP2007518195A (ja) | 2007-07-05 |
US6859811B1 (en) | 2005-02-22 |
WO2005071575A2 (en) | 2005-08-04 |
DE602005002532T2 (de) | 2008-06-19 |
EP1704480A2 (en) | 2006-09-27 |
AU2005207572B2 (en) | 2008-03-13 |
WO2005071575A3 (en) | 2006-01-12 |
CN1910556A (zh) | 2007-02-07 |
DE602005002532D1 (de) | 2007-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100478902C (zh) | 地理分布式集群 | |
CN100388225C (zh) | 具有远程数据镜像的集群数据库 | |
US8719227B1 (en) | Dynamic membership management in a distributed system | |
CN103226502B (zh) | 一种数据灾备控制系统及数据恢复方法 | |
CN102891849B (zh) | 业务数据同步方法、恢复方法及装置和网络设备 | |
CN108833479B (zh) | 一种数据同步方法和装置 | |
CN107832138B (zh) | 一种扁平化的高可用namenode模型的实现方法 | |
CN101809558A (zh) | 远程异步数据复制系统和方法 | |
CN107771321A (zh) | 数据中心中的恢复 | |
CN100552637C (zh) | 在不同地点间建立数据镜像的方法和系统 | |
CN101334797A (zh) | 一种分布式文件系统及其数据块一致性管理的方法 | |
CN106339278A (zh) | 一种网络文件系统的数据备份及恢复方法 | |
TW200805079A (en) | Consolidating session information for a cluster of sessions in a coupled session environment | |
CN113905054B (zh) | 基于RDMA的Kudu集群数据同步方法、装置、系统 | |
CN113518984A (zh) | 数据库更新 | |
KR101035857B1 (ko) | 데이터 관리 방법 및 그 시스템 | |
CN115495282A (zh) | 一种远程复制源卷到多目标卷的方法、服务器及存储介质 | |
CN114090545A (zh) | 分布式数据库的维护方法、装置、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |