CN107209704A - 检测丢失的写入 - Google Patents

检测丢失的写入 Download PDF

Info

Publication number
CN107209704A
CN107209704A CN201580074553.4A CN201580074553A CN107209704A CN 107209704 A CN107209704 A CN 107209704A CN 201580074553 A CN201580074553 A CN 201580074553A CN 107209704 A CN107209704 A CN 107209704A
Authority
CN
China
Prior art keywords
data block
data
database
version
version identifier
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
Application number
CN201580074553.4A
Other languages
English (en)
Other versions
CN107209704B (zh
Inventor
李运睿
M·B·吉尔卡
姚泓毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN107209704A publication Critical patent/CN107209704A/zh
Application granted granted Critical
Publication of CN107209704B publication Critical patent/CN107209704B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2329Optimistic concurrency control using versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/38Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/383Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Abstract

描述了通过比较对应复制数据块的版本标识符与包括所述数据块的数据文件的检查点来确定丢失的写入的发生的技术。一种方法确定在第一数据块集合和第二数据块集合中可能已经发生的丢失的写入。第一数据块集合中的每个数据块与第二集合中作为第一集合中的数据块的版本的相应数据块对应。第一集合和第二集合中的数据块与版本标识符相关联。第二数据块集合与第二检查点相关联,第二集合中与低于第二检查点的版本标识符相关联的数据块的任何版本已经被数据库服务器确认为被写入到持久存储装置。该方法继续通过确定第一集合中的数据块与第二集合中的数据块满足标准来确定丢失的写入,诸如第一数据块的版本标识符在第二数据块的版本标识符和第二检查点之间。

Description

检测丢失的写入
技术领域
本文描述的技术和方法涉及电子数据库管理领域,尤其涉及检测数据丢失。
背景技术
本节中描述的方法是可以追求的方法,但不一定是以前构想或追求的方法。因此,除非另有说明,不应当假设本节中描述的任何方法仅仅因为包含在本节中而成为现有技术。
作为其操作的一部分,数据库管理系统(DBMS)可以频繁地将信息写入存储位置。但是,在某些情况下,由于错误,对存储位置的写入可能不会持久,从而造成数据丢失。这种情况在本文中称为“丢失的写入”。当DBMS发出成功的写入命令但数据无法在存储装置中持久化时,丢失的写入发生。例如,在多层存储层次结构中,上层(诸如存储高速缓存)可以由易失性存储器组成,以增加存储操作的速度。数据库服务器可以向操作系统发出持久盘写入操作,操作系统又可以将命令传递给存储控制器。存储控制器可以返回操作的成功状态,但是出于优化原因可能仅写入其存储高速缓存中的数据。由于严重情况(诸如电力丢失或逻辑故障),来自高速缓存的数据可能不会写入非易失性存储盘。因此,虽然数据库服务器已经接收到盘写入操作的成功状态,但是数据还没有在盘上改变,并且实际的写入已经丢失。改进数据写入操作性能的其它优化可能会类似地引起丢失的写入的风险。由于DBMS不知道丢失的写入,因此DBMS可能会从盘读取并返回陈旧数据。
当使用由丢失的写入导致的陈旧数据在DBMS中执行附加的数据改变时,丢失的写入的问题可能进一步加剧。由于DBMS接收到数据改变的大量请求,因此这些请求中的一些可能会使用DBMS中的现有数据来生成新的数据改变。例如,如果DBMS利用结构化查询语言(SQL),那么用户可以发出单个数据操纵语言(DML)语句,该语句从DBMS中检索数据,并且然后基于检索到的数据来改变其它数据(例如,具有SELECT子查询语句的UPDATE或INSERT)。检索到的数据可以包括由于丢失的写入而导致的陈旧数据,因此,其它数据将使用损坏其它数据的陈旧数据进行改变。因此,丢失的写入的影响可能会在非常短的时间内以这种方式级联到DBMS中的其它数据。为了避免丢失的写入及其级联效应,需要一种高效的方法来快速识别任何潜在的丢失的写入。
附图说明
在某些实施例的附图中,相同的标号贯穿附图指对应的部分:
图1是图示根据实施例、将主数据库中的数据库改变复制到备用数据库的DBMS的系统图。
图2是描绘在实施例中用于检测数据文件的数据块中的丢失的写入的过程的流程图。
图3是描绘用于基于附加因素检测丢失的写入的过程的流程图。
图4是图示可以在其上实现该方法的实施例的计算机系统的框图。
具体实施方式
在下面的描述中,出于解释的目的,阐述了许多具体细节,以提供对本方法的透彻理解。但是,将认识到的是,本方法可以在没有这些具体细节的情况下实践。在其它情况下,结构和设备以框图形式示出,以避免不必要地模糊本方法。
总体概述
为了避免数据丢失和数据损坏,DBMS需要提供一种高效的方式来早期检测丢失的写入并向用户报告该丢失的写入。在实施例中,DBMS可以使用主数据库的现有备份来比较数据并检测丢失的写入。一种这样的备份数据库可以是基于主数据库的重做日志被更新的物理备份数据库,这里称为“备用数据库”。另一种备份数据库可以是基于记录在主数据库的事务日志(transaction log)中的工作负载查询被更新的逻辑备份数据库。然后可以将来自备份数据库的数据与主数据库的对应数据进行比较,以检测丢失的写入。数据的这种比较对于资源来说可能是耗时且繁琐的,因为可以比较每个条目。在相关实施例中,可以比较数据的校验和而不是数据本身。
DBMS可以将数据库中的数据存储数据块的命名集合中。数据块的每个命名集合在本文被称为“数据文件”。数据文件中的每个数据块还可以包含与数据块的最后持久写入对应的其自己的版本标识符。数据文件可以包含存储数据文件的检查点的数据文件头,该检查点指示版本在检查点以下的所有数据块都已经被持久地写到数据文件。在实施例中,备用数据库可以包含与主数据库中的数据文件对应的数据文件。通过比较数据文件中的检查点与主数据库和备用数据库中包含的数据块的版本标识符,DBMS可以确定或者主数据库或者备用数据库上是否已发生丢失的写入。在实施例中,DBMS还可以比较数据块的校验和以及验证丢失的写入。
备用数据库
备用数据库包含数据库的备份、静态副本。短语“备份”通常指的是将复制的文件从一个位置传送到另一个位置,在这种情况下,是从一个数据库(主数据库)到另一个数据库(备用数据库)。备份可以包括数据库的所有或重要部分(诸如控制文件、重做日志和数据文件)并且可以是这些部分在某个时间的快照。通过提供一种将数据恢复到至少在生成备份的那个时间处的数据的方法,备份保护数据免于遭受应用错误,并用作防止意外数据丢失的保护措施。在实施例中,备用数据库可以是主(生产)数据库的实时备份。为了实时地保持备用数据库“最新”,主数据库的重做日志将定期应用到备用数据库。
备用数据库也可以用于检测丢失的写入。“丢失的写入”在本文中是指发布到持久存储设备(例如,盘驱动器)以持久地写入数据并且被存储设备确认为已经持久地写入但是由于例如存储设备错误或故障而未被持久地写入的写入。由于备用数据库是主数据库的物理副本,因此可以将备用数据库与生产数据库进行比较,以检测丢失的写入。备用数据库可以滞后于生产数据库,因此,为了对丢失的写入的准确确定,可以比较两个数据库中数据的时间戳、检查点或版本标识符。
图1是图示根据实施例的数据库管理系统(DBMS)100的系统图,其中对主数据库中包含的数据进行的改变被实时地应用到备用数据库。数据库管理系统100包括数据库服务器104、数据库缓冲区高速缓存106、以及主数据库108、重做日志文件110、备用数据库服务器116、备用重做日志文件118、备用恢复过程120以及备用数据库122。备用数据库122可以位于相对于主数据库108远但通过网络(诸如局域网(LAN),或诸如因特网之类的广域网(WAN))连接的位置。
客户端应用102向数据库服务器104发送数据库命令。数据库服务器104从客户端应用102接收数据库命令,并尝试从数据库缓冲区高速缓存106获取执行数据库命令所需的数据。如果数据库缓冲区高速缓存106中不包含数据,那么数据库服务器104从主数据库108获得数据。数据库服务器104将从主数据库108获得的数据存储在数据库缓冲区高速缓存106中。
数据库服务器104向数据库缓冲区高速缓存106中缓冲的数据应用由数据库命令指示的改变。数据库服务器104的“日志写入器”过程还向重做日志文件110写入重做记录,该重做记录指示数据库服务器104应用到缓冲的数据的对数据块的改变。在某个时间点,数据库服务器104的“数据库写入器”过程可以将数据库缓冲区高速缓存106中包含的经修改的缓冲的数据存储到主数据库108。
根据实施例,写入重做日志文件110的日志条目也被发送到备用数据库服务器116。当数据库服务器104将重做记录写到重做日志文件110时,数据库服务器104还可以通过网络(图1中未示出)向备用数据库服务器116发送重做记录。备用数据库服务器116接收重做记录并将重做记录写到与备用数据库122相关联的备用重做日志文件118。也与备用数据库122相关联的备用恢复过程120从备用重做日志文件118读取重做记录,以将记录应用到备用数据库122。备用恢复过程120将在那些重做记录中指示的改变应用到数据块中也由该记录指示的数据。备用恢复过程120可以在重做记录已被写到备用重做日志文件118之后很快读取重做记录并且应用其中所指示的改变。因此,备用数据库122中包含的数据与主数据库108中包含的数据快速同步。在任何给定的时刻,备用数据库122中的数据的内容可以反映主数据库108中的数据的内容。
使用数据版本和检查点信息来检测丢失的写入
在实施例中,数据库服务器以事务方式基于客户端命令应用数据库改变。事务中的数据库改变被记录在数据库服务器的、用于数据块的重做日志中。因此,数据块在重做日志中可以具有与数据文件中相同数据块的最后状态不同的状态。数据块的每个状态与数据块的版本对应。因而,重做日志中的数据块的版本可以与数据文件中相同数据块的版本不同。
在实施例中,数据块可以在该数据块的数据报头中包括该数据块的版本标识符。版本标识符可以与数据块的最后状态的版本对应。
在实施例中,版本标识符是单调递增的数字。用于后续状态的版本标识符大于先前状态下的数据块的版本的版本标识符。版本标识符表示数据库的逻辑时间,即,表示当提交事务时存在的数据库的特定状态。版本标识符的示例是系统改变号(SCN)。与上一次到状态的过渡(transition to state)相关联的重做记录还包含与重做记录描述的数据块报头中相同的SCN。因此,数据块和相应的重做提交记录与计数器值或SCN相关联。在其它示例中,版本标识符可以基于导致新版本的操作的实际时间戳。
在实施例中,数据块属于数据文件。与数据块类似,可以对数据文件进行版本控制(version)。通过版本控制,意味着数据文件或数据块被标记或以其它方式与表示数据文件或数据块的版本的版本标识符相关联。
可以通过本文中称为检查点设置的过程对数据文件进行版本控制。数据库服务器通过确保数据文件中低于版本标识符值的数据块的每个版本已经被持久地写到数据文件来对数据文件执行检查点设置。数据库服务器然后可以用那个版本标识符值表示数据文件,这在本文中被称为数据文件检查点或数据文件的检查点。
数据文件中持续存储的数据块中的版本标识符可以低于或高于该数据文件的检查点。如果更低,那么版本标识符应当表示到数据文件的检查点为止的数据块的最新版本,因为检查点设置应当确保其版本标识符低于检查点的数据文件的任何数据块都已经被持久地写入。
除了在下面解释的情况之外,对于数据文件中的给定数据块,在数据块的副本中不应当存在版本标识符,使得副本中的版本标识符在数据块中的版本标识符和数据块的数据文件的检查点之间。存在于数据块中的版本标识符与数据块的数据文件的检查点之间的数据块的副本中的版本标识符在本文中被称为发散版本标识符(divergent versionidentifier)。如果通过下面描述的过程对于数据块检测到发散版本标识符,那么数据块的最新版本可能由于丢失的写入而未进行检查点设置或以其它方式未被持久地写入。
用于确定是否存在用于数据块的版本标识符的方法是比较备用数据库系统与主数据库系统之间数据块的版本标识符。由于备用数据库是使用主数据库的重做日志以逐个数据块为基础复制的,因此主数据库数据块的版本标识符实际上在备用数据库中复制。对于应用到备用数据库服务器的重做日志记录,重做记录包含用于对数据块的改变的版本标识符;改变以及版本标识符被应用到在备用数据库服务器处的数据块的副本。如果主数据库中的数据块中的版本标识符是在备用数据库处的发散版本标识符,或者反之亦然,那么可能已经发生了丢失的写入。
未日志记录的数据改变
不是在主数据库处生成的所有类型的版本标识符都被复制到备用数据库。因此,在备用数据库处作为发散标识符的主数据库中的版本标识符可能不是丢失的写入的标志,而是可能代替地是在备用数据库处未被复制的一种版本标识符。例如,对数据块的元数据所做的改变可能未记录在数据库的重做日志中并且可能未在备用数据库处被复制。每个数据块可以由用户数据和数据块元数据组成。如本文所引用的“用户数据”与在数据库表中的一个或多个字段中组织的一个或多个记录的数据对应。对用户数据的任何改变都记录在重做日志中。
另一方面,数据块的元数据是用来向访问数据块的各种数据库服务器过程描述数据块的特性的数据。在某些实施例中,元数据可以存储在数据块的报头中。与对用户数据的改变不同,对数据块元数据的改变可能不会记录在重做日志中。但是,在实施例中,对数据块的元数据的改变生成数据块的新版本,并且因此生成与数据块相关联的新版本标识符。在这种情况下,数据块的版本标识符可能并不总是表示对数据块的用户数据的数据改变已经被持久化。例如,在事务提交之后,数据库服务器可以生成对该块的元数据部分的未日志记录的清理改变,这种改变指示事务已提交。
在实施例中,诸如涉及对数据块的清理操作的实施例,重做日志可以包含用于与数据块本身的报头不同的数据块的版本标识符。在清理操作之前,数据块报头可以包含与作为事务的一部分执行的数据块的用户数据的改变对应的版本。改变数据块的用户数据的初始操作与该改变的对应版本标识符一起记录在数据库服务器的重做日志中。但是,清除操作本身可以不记录在重做日志中,因为该操作仅修改数据块的元数据而不是用户数据。虽然清除操作未记录在重做日志中,但是数据块的版本仍然可能为了清理操作而被更新。因此,数据块可以包含与清理操作对应的数据块报头中的新版本,而重做日志包含与事务对应的数据块的先前版本。
在实施例中,数据块可以表示修改数据块的最后一个操作仅修改数据块的元数据。数据块的数据报头可以包含可以当只有数据块元数据已经改变时设置的标志。未日志记录的清理操作可以将数据块报头中的标志设置为识别仅数据块的元数据被该操作改变。因此,数据块的新版本可以被识别为与数据块的元数据的未日志记录的改变相关联。
检测数据块中丢失的写入
图2是描绘在实施例中用于检测数据文件的数据块中丢失的写入的过程的流程图。来自第一数据库的数据文件的数据块与第二数据库中对应数据文件的对应数据块进行比较。来自第一数据库的数据块和数据文件在本文中被称为“第一”数据块和数据文件,并且来自第二数据库的对应数据块和数据文件在本文中被称为“第二”数据块和数据文件。第一和第二数据库是彼此的物理复制。例如,第一数据库可以是第二数据库的备用数据库,或者第二数据库可以是第一数据库的备用数据库。但是,本文描述的技术独立于第一数据库还是第二数据库是备份,或者第一数据库还是第二数据库是主数据库或备用数据库。本文描述的技术可以被用来基于相应的复制数据库来检测主数据库和备用数据库中潜在的丢失的写入。
在方框210,从第一数据库的第一数据文件中选择第一数据块,并且在方框220,从第二数据库中的第二复制数据文件中选择对应的第二复制数据块。在方框240,从第一数据块和第二数据块的报头检索版本标识符,并且从第二数据文件的报头检索检查点,以进行比较。
基于该比较,第二数据块版本标识符可以高于来自第一数据库的第一数据块的版本标识符。因此,第二数据库中的第二数据块已经在第一数据库中的第一数据块之后被更新(可能是因为第一数据库和第二数据库不同步)。例如,如果第二数据库是主数据库并且已经生成了尚未被复制到第一数据库的、对第二数据块的改变,那么第一数据库中的第一数据块版本标识符会低于第二数据库中的第二数据块的版本标识符,因为改变尚未在第一数据库中应用(可能是由于重做日志的复制滞后)。因此,该过程可能不会对第一数据块中丢失的写入的发生作出任何确定,并且可以过渡到评估第一数据库中的下一个数据块,在方框260处。
如果,基于方框240的比较,第一数据块版本标识符与第二数据块的版本标识符匹配,那么最有可能的是第一数据库和第二数据库相对于第一数据块和第二数据是同步的。由于不太可能第一和第二数据库两者都丢失了对相同数据块的写入,因此该过程在方框260评估第一数据库中的下一个数据块。
可替代地,如果在方框240处将第一数据块版本标识符评估为大于第二数据块版本标识符,那么也可以将第一数据块的版本标识符与第二数据文件的检查点进行比较。如果第一数据块的版本标识符被评估为大于或等于第二数据文件检查点,那么这可以表示对第一数据库中的第一数据块的改变尚未在第二数据库的第二数据文件中进行检查点设置。因此,该过程可能无法确定是否发生了丢失的写入。
但是,如果,基于方框240的比较,第一数据块版本标识符小于第二数据文件检查点但是大于第二数据块版本标识符,那么第二数据块具有发散版本标识符,并且该过程可以在方框255报告丢失的写入。因为第二数据文件中的所有数据块都已进行检查点设置,所以在方框255处丢失的写入被检测到,然而,到第二数据文件的检查点为止,第一数据块具有比第二数据块更高的版本标识符。如果不是针对丢失的写入,那么第二数据块应当已经被更新在由第一数据块版本标识符指示的版本标识符。
换句话说,第二数据块的数据应当在第二数据块在第二数据文件中进行检查点设置的时间之前已经完全更新。因此,如果在第一数据库中第一数据块版本标识符在第二数据文件检查点和第二数据块版本标识符之间,那么第二数据块具有发散版本标识符。因而,第二数据库已丢失将触发第二数据块被更新为第一数据块的版本标识符的写入。
为了说明在对应的第二数据块中检测丢失的写入的可能性,提供了以下示例。在这个示例中,第一数据库中的第一数据块接收在写入时将第一数据块版本调整为与DBMS的SCN对应的版本标识符10的写入。这些写入通过重做日志被复制到第二数据库,其中第二数据块分别被更新为第二数据文件中的版本标识符10。然后,当SCN为20时,第一数据块接收其它写入,并且第一数据块版本标识符更新为20。其后,在SCN为30的某个时间点,DBMS对第二数据文件进行检查点设置,并确定所有未完成的更新都已被应用到第二数据文件中的数据块(包括第二数据块)。然后将第二数据文件检查点更新为30。为了检测发散版本标识符和可能错过的写入,比较第一与第二数据库中对应的数据块和数据文件。当进行比较时,如果到第二数据文件检查点30为止第二数据块仍处于版本标识符10而所有更新都已经提交,那么第一数据块具有发散版本标识符,并且第二数据块可能已经错过了将第一数据块版本标识符更新为20的写入。
在实施例中,由于未日志记录的改变,数据块可以具有发散版本标识符。如上所述,未日志记录的改变可能导致数据块的版本标识符的更新。由于未日志记录的改变更新数据块的元数据而不是用户数据,因此更新后的版本标识符和更新后的元数据都不被复制到备用数据库。因而,备用数据库中的对应数据块可以反映“更旧的”版本标识符。此外,如果备用数据库中的数据文件反映在未日志记录的改变之后的检查点,那么未日志记录的版本标识符将具有在该检查点和对应数据块的版本标识符之间的值。因此,未日志记录的更新后的数据块将具有发散版本标识符。
在相关的实施例中,图3是描绘用于考虑未日志记录的改变来检测丢失的写入的过程的流程图。此外,如果没有检测到丢失的写入,那么该过程还可以肯定地确定并报告对数据块的写入已经成功。为此,该过程或者比较数据块中的原始数据与其复制数据块,或者计算并比较数据块中数据的校验和。如本文所提到的,校验和是从数据块的数据中的位(bit)计算的数值,使得用于相同数据的校验和产生相等的值并且用于不匹配的用户数据的校验和产生不同的值。
为了检测丢失的写入和成功的写入,在方框305,过程从第一数据库中选择包含一个或多个数据块的第一数据文件。在方框310,从第一数据文件选择第一数据块,并且在方框320,从第二数据库中选择对应的第二数据块和第二数据文件。如果在方框325处第一数据块与第二数据块的版本标识符匹配,那么过程前进到方框327,以评估第一数据块和第二数据块的校验和。如果在方框327数据块的校验和也匹配,那么在方框335,过程可以报告用于第一数据块和第二数据块的写入两者都已经成功,并且对于这些数据块不存在丢失的写入。否则,如果在方框327数据块的校验和不匹配,那么在方框330处过程可以报告不确定的结果。在相关实施例中,如果数据块校验和不匹配,那么可以针对第一和第二数据块计算用户数据校验和并且可以将它们彼此进行比较。如果用户数据校验和匹配,那么过程可以报告写入已经成功,并且对于这些数据块不存在丢失的写入。但是,如果用户数据块校验和不匹配,那么过程可以报告数据块的可疑内容。
另一方面,如果在方框325处第一数据块与第二数据块的版本标识符不匹配,那么在方框340处将第一数据块的版本标识符与第二数据块的版本标识符和第二数据文件的检查点进行比较。类似于处理方框240的描述,如果第一数据块的版本标识符大于或等于第二数据文件检查点,那么在方框345过程报告不存在丢失的写入的证据。类似地,如果第一数据块版本标识符小于第二数据块版本标识符,那么过程也报告不确定的结果。但是,如果在方框340处过程将第一数据块版本标识符评估为大于第二数据块版本标识符但小于第二数据文件检查点,那么第二数据块具有发散版本标识符,并且过程前进到方框350。
在方框350,过程确定第一数据块版本标识符是否是由于未日志记录的改变。如上面在“未日志记录的数据改变”部分中所描述的,当发生未日志记录的数据改变时,可以对数据块进行版本控制。如果在方框350处过程评估第一数据块由于未日志记录的数据改变而已经被最后版本控制,那么过程前进到方框345并且报告不存在丢失的写入的证据。但是,如果没有发生未日志记录的数据改变,那么过程前进到方框355并且报告对于第二数据块已经检测到丢失的写入。
在方框360,可以对第一数据文件中的所有数据块处理方框310至355。在方框365,可以对第一数据库中的所有数据文件重复方框305至360。
在替代实施例中,可以通过扫描数据库的重做日志来检测丢失的写入。对于数据文件中具有比数据文件的检查点更低的版本标识符的每个数据块,可以扫描数据库重做日志以获取数据块的副本。如果在重做日志中找到数据块的副本,并且副本数据块具有在该数据块的版本标识符和数据文件的检查点之间的版本标识符,那么重做日志的数据块副本是发散数据块。然后,DBMS可以报告针对数据文件中数据块的丢失的写入。
数据库管理系统
数据库管理系统(DBMS)(诸如本文描述的DBMS 100)管理数据库。DBMS可以包括一个或多个数据库服务器(诸如在图1中描述的主数据库服务器104和备用数据库服务器116)。数据库包括存储在持久存储器机构(诸如硬盘集合)上的数据库数据和数据库字典。数据库数据可以被存储在一个或多个数据容器中。每个容器都包含记录。每个记录内的数据被组织成一个或多个字段。在关系DBMS中,数据容器被称为表,记录被称为行,并且字段被称为列。在面向对象的数据库中,数据容器被称为对象类,记录被称为对象,并且字段被称为属性。其他数据库体系架构可以使用其它术语。
用户通过向数据库服务器提交使数据库服务器对存储在数据库中的数据执行操作的命令与DBMS的数据库服务器交互。用户可以是在与数据库服务器交互的客户端计算机上运行的一个或多个应用。在本文中,多个用户也可以统称为用户。
如本文所使用的,“查询”是指数据库命令,并且可以是采用符合数据库语言的数据库语句的形式。在一个实施例中,用于表达查询的数据库语言是结构化查询语言(SQL)。有很多不同版本的SQL,一些版本是标准的并且一些是专有的,并且有各种扩展。数据定义语言(“DDL”)命令被发布到数据库服务器,以创建或配置数据库对象(诸如表、视图或复杂数据类型)。SQL/XML是在对象关系数据库中操纵XML数据时使用的SQL的常见扩展。虽然在本文中使用术语“SQL”描述该方法的实施例,但是该方法不仅限于这种特定的数据库查询语言,并且可以与其它数据库查询语言和构造结合使用。
客户端可以通过建立数据库会话(本文中称为“会话”)向数据库服务器发出一系列请求(诸如执行查询的请求)。会话包括为客户端建立到数据库服务器(诸如数据库实例)的特定连接,客户端可以通过该连接发出一系列请求。数据库服务器可以维护关于会话的会话状态数据。会话状态数据反映会话的当前状态,并且可以包含为其建立会话的用户的身份、用户使用的服务、对象类型的实例、语言和字符集数据、关于会话的资源使用的统计数据、由在会话内执行软件的过程生成的临时变量值,以及对于游标和变量的存储及其它信息。会话状态数据还可以包含为会话配置的执行计划参数。
多节点数据库管理系统由共享对相同数据库的访问的互连节点组成。通常,节点经由网络互连,并且在不同程度上共享对共享存储装置的访问,例如对盘驱动器集合和存储在其上的数据块的共享访问。多节点数据库系统中的节点可以采用经由网络互连的一组计算机(例如,工作站、个人计算机)的形式。可替代地,节点可以是网格的节点,其由与机架上的其它服务器刀片互连的服务器刀片(server blade)形式的节点组成。
多节点数据库系统中的每个节点都托管数据库服务器。服务器(诸如数据库服务器)是集成的软件组件和计算资源(诸如存储器、节点以及节点上用于在处理器上执行集成的软件组件的过程)的分配的组合,软件和计算资源的组合专用于代表一个或多个客户端执行特定功能。
来自多节点数据库系统中的多个节点的资源可以被分配为运行特定数据库服务器的软件。软件和来自节点的资源的分配的每个组合是在本文被称为“服务器实例”或“实例”的服务器。数据库服务器可以包括多个数据库实例,其中一些或全部在单独的计算机上运行,包括单独的服务器刀片。
硬件概述
根据一个实施例,本文所描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的,以执行所述技术,或者可以包括诸如被持久性地编程以执行所述技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)的数字电子设备,或者可以包括编程为按照固件、存储器、其它储存器或者其组合中的程序指令执行所述技术的一个或多个通用硬件处理器。这种专用计算设备还可以组合定制的硬连线逻辑、ASIC或FPGA与定制的编程来实现所述技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持式设备、联网设备或者结合硬连线和/或程序逻辑来实现所述技术的任何其它设备。
例如,图4是示出本方法的实施例可以在其上实现的计算机系统400的框图。计算机系统400包括总线402或者用于传送信息的其它通信机制,以及与总线402耦合用于处理信息的硬件处理器404。硬件处理器404可以是例如通用微处理器。
计算机系统400还包括耦合到总线402用于存储信息和要由处理器404执行的指令的主存储器406,诸如随机存取存储器(RAM)或其它动态存储设备。主存储器406还可以用于在要由处理器404执行的指令执行期间存储临时变量或其它中间信息。当存储在处理器404可访问的非暂态存储介质中时,这种指令使计算机系统400变成为执行指令中所指定的操作而定制的专用机器。
计算机系统400还包括只读存储器(ROM)408或者耦合到总线402的其它静态存储设备,用于为处理器404存储静态信息和指令。提供了存储设备410,诸如磁盘或光盘,并且耦合到总线402,用于存储信息和指令。
计算机系统400可以经总线402耦合到显示器412,诸如阴极射线管(CRT),用于向计算机用户显示信息。输入设备414,包括字母数字和其它键,耦合到总线402,用于向处理器404传送信息和命令选择。另一种类型的用户输入设备是游标控制件416,诸如鼠标、轨迹球或者游标方向键,用于向处理器404传送方向信息和命令选择并且用于控制显示器412上的游标移动。这种输入设备通常具有在两个轴(第一个轴(例如,x)和第二个轴(例如,y))中的两个自由度,以允许设备在平面内指定位置。
计算机系统400可以利用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文所述的技术,这些与计算机系统相结合,使计算机系统400成为或者把计算机系统400编程为专用机器。根据本发明的一种实施例,本文的技术由计算机系统400响应于处理器404执行包含在主存储器406中的一条或多条指令的一个或多个序列而执行。这种指令可以从另一存储介质,诸如存储设备410,读到主存储器406中。包含在主存储器406中的指令序列的执行使处理器404执行本文所述的过程步骤。在备选实施例中,硬连线的电路系统可以代替软件指令或者与其结合使用。
如在本文所使用的,术语“存储介质”指存储使机器以特定方式操作的数据和/或指令的任何非暂态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备410。易失性介质包括动态存储器,诸如主存储器406。存储介质的常见形式包括,例如,软盘、柔性盘、硬盘、固态驱动器、磁带,或者任何其它磁性数据存储介质,CD-ROM,任何其它光学数据存储介质,任何具有孔模式的物理介质,RAM、PROM和EPROM、FLASH-EPROM、NVRAM,任何其它存储器芯片或盒式带。
存储介质与传输介质截然不同但是可以与其结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴线缆、铜线和光纤,包括包含总线402的线。传输介质还可以采取声波或光波的形式,诸如在无线电波和红外线数据通信中产生的那些。
各种形式的介质可以参与把一条或多条指令的一个或多个序列携带到处理器404供执行。例如,指令最初可以承载在远程计算机的磁盘或固态驱动器上。远程计算机可以把指令加载到其动态存储器中并且利用调制解调器经电话线发送指令。位于计算机系统400本地的调制解调器可以在电话线上接收数据并且使用红外线发送器把数据转换成红外线信号。红外线检测器可以接收在红外线信号中携带的数据并且适当的电路系统可以把数据放在总线402上。总线402把数据携带到主存储器406,处理器404从该主存储器406检索并执行指令。由主存储器406接收的指令可以可选地在被处理器404执行之前或之后存储在存储设备410上。
计算机系统400还包括耦合到总线402的通信接口418。通信接口418提供耦合到网络链路420的双向数据通信,其中网络链路420连接到局域网络422。例如,通信接口418可以是综合业务数字网络(ISDN)卡、线缆调制解调器、卫星调制解调器,或者提供到对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口418可以是提供到兼容的局域网(LAN)的数据通信连接的LAN卡。无线链路也可以实现。在任何此类实现中,通信接口418都发送和接收携带表示各种类型信息的数字数据流的电气、电磁或光学信号。
网络链路420通常通过一个或多个网络向其它数据设备提供数据通信。例如。网络链路420可以通过局域网络422提供到主机计算机424或者到由互联网服务提供商(ISP)426操作的数据设备的连接。ISP 426又通过现在通常称为“因特网”428的全局分组数据通信网络提供数据通信服务。局域网络422和因特网428都使用携带数字数据流的电气、电磁或光学信号。通过各种网络的信号以及在网络链路420上并通过通信接口418的信号是传输介质的示例形式,其中信号把数字数据带到计算机系统400或者携带来自计算机系统400的数字数据。
计算机系统400可以通过(一个或多个)网络、网络链路420和通信接口418发送消息和接收数据,包括程序代码。在因特网示例中,服务器430可以通过因特网428、ISP 426、局域网络422和通信接口418发送应用程序的所请求代码。
所接收的代码可以在其被接收时由处理器404执行,和/或存储在存储设备410或其它非易失性储存器中,供随后执行。
在前面的说明书中,已经参考各种具体细节描述了该方法的实施例,这些细节可从实现到实现变化。因而,说明书和附图应当被认为是说明性的而不是限制性的。该方法的范围的唯一且排他的指标以及申请人预期作为该方法的范围的内容是从本申请中发出的权利要求集合的字面和等同范围,以这种权利要求发出的具体形式,包括任何后续的更正。
云计算概述
本文描述的技术使用一个或多个处理解决方案实现,其示例包括分布式系统、群集计算系统和云计算系统。在实施例中,数据库管理系统100是云计算系统的一部分。云计算系统实现云存储、云处理、云通信以及任何其它类型的云计算服务中的一个或多个。另外,云计算系统可以依据按使用付费模式、依据固定订阅模式等运行。在这个实施例中,归因于数据库管理系统100或归因于本描述中其它实体的功能的任何部分(或整体)可以经由在云计算系统暴露的接口来控制。
在前面的描述中,已经参考各种具体细节描述了该方法的实施例,这些细节可从实现到实现变化。因而,说明书和附图应当被认为是说明性的而不是限制性的。该方法的范围的唯一且排他的指标以及申请人预期作为该方法的范围的内容是从本申请中发出的权利要求集合的字面和等同范围,以这种权利要求发出的具体形式,包括任何后续的更正。

Claims (11)

1.一种方法,包括:
确定在第一数据块集合和第二数据块集合中可能已经发生的丢失的写入;
其中所述第一数据块集合中的每个数据块与第二集合中作为所述第一集合中所述每个数据块的版本的相应数据块对应;
其中在所述第一集合和所述第二集合中,每个数据块与所述第一集合中所述每个数据块的版本的版本标识符相关联;
其中所述第二数据块集合与第二检查点相关联,第二集合中与低于第二检查点的特定版本标识符相关联的数据块的任何版本已经被数据库服务器确认为写入到持久存储装置;
其中确定丢失的写入包括确定第一集合中的第一数据块和第二集合中的第二数据块满足一个或多个标准,其中所述一个或多个标准包括第一数据块的版本标识符在第二数据块的版本标识符和第二检查点之间。
2.如权利要求1所述的方法,其中版本标识符是单调递增的系统改变数字,该系统改变数字指示:由数据库服务器对在所述第一集合中所述每个数据块的创建的所述版本进行的改变相对于由所述数据库服务器对所述第一数据块集合进行的其它改变的相对次序。
3.如权利要求1所述的方法,其中所述一个或多个标准包括:第一数据块中的数据的校验和不等于第二数据块中的数据的校验和。
4.如权利要求3所述的方法,其中第一数据块的数据是第一数据块的用户数据,并且第二数据块的数据是第二数据块的用户数据。
5.如权利要求1所述的方法,其中所述一个或多个标准包括与第一数据块的版本标识符对应的第一数据块的版本是否是由第一数据块的元数据的改变创建的。
6.如权利要求1所述的方法,还包括:
确定写入在第一数据块集合和第二块集合当中成功,其中确定写入成功包括:
确定第一集合中的第一数据块与第二集合中的第二数据块具有相同的版本标识符;以及
确定第一集合中的第一数据块中的数据的校验和等于第二数据块中的数据的校验和。
7.如权利要求6所述的方法,其中第一数据块的数据是第一数据块的用户数据,并且第二数据块的数据是第二数据块的用户数据。
8.如权利要求1所述的方法,其中第二数据块集合是从第一数据块集合复制的。
9.如权利要求8所述的方法,其中与第一数据块的版本对应的、对第一数据块的改变被应用到第二数据块,以创建具有第一数据块的版本标识符的第二数据块的对应版本。
10.如权利要求1所述的方法,其中第一数据块集合来自主数据库,并且第二数据块集合来自备用数据库。
11.一种或多种存储指令的非暂态存储介质,当指令由一个或多个计算设备执行时,导致如权利要求1-10中任一项所述的方法的执行。
CN201580074553.4A 2014-12-19 2015-11-20 用于数据库管理的方法、系统和装置 Active CN107209704B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/578,093 2014-12-19
US14/578,093 US9892153B2 (en) 2014-12-19 2014-12-19 Detecting lost writes
PCT/US2015/061759 WO2016099797A1 (en) 2014-12-19 2015-11-20 Detecting lost writes

Publications (2)

Publication Number Publication Date
CN107209704A true CN107209704A (zh) 2017-09-26
CN107209704B CN107209704B (zh) 2020-09-11

Family

ID=55025326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580074553.4A Active CN107209704B (zh) 2014-12-19 2015-11-20 用于数据库管理的方法、系统和装置

Country Status (4)

Country Link
US (1) US9892153B2 (zh)
EP (1) EP3234780B1 (zh)
CN (1) CN107209704B (zh)
WO (1) WO2016099797A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542682A (zh) * 2018-11-16 2019-03-29 上海达梦数据库有限公司 一种数据备份方法、装置、设备和存储介质
CN110737719A (zh) * 2019-09-06 2020-01-31 深圳平安通信科技有限公司 数据同步方法、装置、设备及计算机可读存储介质
CN111475493A (zh) * 2020-06-19 2020-07-31 阿里云计算有限公司 数据读取方法及装置
CN112965858A (zh) * 2021-03-04 2021-06-15 电信科学技术第五研究所有限公司 一种组网分布式存储数据冲突处理的实现方法
WO2022111731A1 (en) * 2020-11-30 2022-06-02 Huawei Cloud Computing Technologies Co., Ltd. Method, apparatus and medium for data synchronization between cloud database nodes

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10152500B2 (en) 2013-03-14 2018-12-11 Oracle International Corporation Read mostly instances
US9767178B2 (en) 2013-10-30 2017-09-19 Oracle International Corporation Multi-instance redo apply
CN104636480B (zh) * 2015-02-13 2018-09-28 华为技术有限公司 重建备机数据库的方法及其装置
US10747752B2 (en) 2015-10-23 2020-08-18 Oracle International Corporation Space management for transactional consistency of in-memory objects on a standby database
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
US10372559B2 (en) * 2016-06-07 2019-08-06 International Business Machines Corporation Managing a redundant computerized database using a replicated database cache
US10324809B2 (en) 2016-09-12 2019-06-18 Oracle International Corporation Cache recovery for failed database instances
US10698771B2 (en) 2016-09-15 2020-06-30 Oracle International Corporation Zero-data-loss with asynchronous redo shipping to a standby database
US10891291B2 (en) 2016-10-31 2021-01-12 Oracle International Corporation Facilitating operations on pluggable databases using separate logical timestamp services
US11475006B2 (en) 2016-12-02 2022-10-18 Oracle International Corporation Query and change propagation scheduling for heterogeneous database systems
US10698882B2 (en) * 2017-03-17 2020-06-30 International Business Machines Corporation Data compartments for read/write activity in a standby database
US10691722B2 (en) 2017-05-31 2020-06-23 Oracle International Corporation Consistent query execution for big data analytics in a hybrid database
US11010267B2 (en) * 2017-09-22 2021-05-18 Oracle International Corporation Method and system for automatic maintenance of standby databases for non-logged workloads
US10949413B2 (en) * 2017-09-29 2021-03-16 Oracle International Corporation Method and system for supporting data consistency on an active standby database after DML redirection to a primary database
US20190354470A1 (en) * 2018-05-16 2019-11-21 Sap Se Reduced Database Backup Memory Usage
US11468060B2 (en) 2018-06-25 2022-10-11 Oracle International Corporation Automatic query offloading to a standby database
US11886390B2 (en) * 2019-04-30 2024-01-30 JFrog Ltd. Data file partition and replication
US11386233B2 (en) 2019-04-30 2022-07-12 JFrog, Ltd. Data bundle generation and deployment
US11340894B2 (en) 2019-04-30 2022-05-24 JFrog, Ltd. Data file partition and replication
US11106554B2 (en) 2019-04-30 2021-08-31 JFrog, Ltd. Active-active environment control
WO2021014326A2 (en) 2019-07-19 2021-01-28 JFrog Ltd. Software release verification
US10999314B2 (en) 2019-07-19 2021-05-04 JFrog Ltd. Software release tracking and logging
US11461192B1 (en) * 2019-11-27 2022-10-04 Amazon Technologies, Inc. Automatic recovery from detected data errors in database systems
US11695829B2 (en) 2020-01-09 2023-07-04 JFrog Ltd. Peer-to-peer (P2P) downloading
US11567924B2 (en) * 2020-03-26 2023-01-31 International Business Machines Corporation Product usage discovery signature based on database table content changes
US11860680B2 (en) 2020-11-24 2024-01-02 JFrog Ltd. Software pipeline and release validation
US20230293245A1 (en) 2022-03-18 2023-09-21 Northern Digital Inc. Field generator orientation for magnetic tracking in planar field generating assemblies

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060200497A1 (en) * 2005-03-03 2006-09-07 Hu Wei M Lost write detection and repair
CN102202087A (zh) * 2011-04-25 2011-09-28 中兴通讯股份有限公司 一种标识存储设备的方法及系统
US20120022974A1 (en) * 2010-07-23 2012-01-26 Shuster Scott L Multi-user works-of-art registry management
CN102934114A (zh) * 2010-06-15 2013-02-13 微软公司 用于文件系统的检查点
CN103348325A (zh) * 2010-10-29 2013-10-09 赛门铁克公司 部分数据流的数据丢失监控
US8560879B1 (en) * 2009-04-22 2013-10-15 Netapp Inc. Data recovery for failed memory device of memory device array

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4507751A (en) 1982-06-21 1985-03-26 International Business Machines Corporation Method and apparatus for logging journal data using a log write ahead data set
JPS5981940A (ja) 1982-11-01 1984-05-11 Hitachi Ltd デ−タ転送方式
US4710926A (en) 1985-12-27 1987-12-01 American Telephone And Telegraph Company, At&T Bell Laboratories Fault recovery in a distributed processing system
US5146571A (en) 1988-03-28 1992-09-08 Emc Corporation Remapping defects in a storage system through the use of a tree structure
US4945474A (en) 1988-04-08 1990-07-31 Internatinal Business Machines Corporation Method for restoring a database after I/O error employing write-ahead logging protocols
JPH02189663A (ja) 1989-01-18 1990-07-25 Fuji Electric Co Ltd 入出力データ転送方式
EP0389151A3 (en) 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
JP3222125B2 (ja) 1990-01-29 2001-10-22 株式会社日立製作所 システム間データベース共用方式
US5233618A (en) 1990-03-02 1993-08-03 Micro Technology, Inc. Data correcting applicable to redundant arrays of independent disks
US5182752A (en) 1990-06-29 1993-01-26 Digital Equipment Corporation Method and apparatus for transferring data between a data bus and a data storage device
JPH0827755B2 (ja) 1991-02-15 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション データの単位を高速度でアクセスする方法
US5289478A (en) 1991-03-11 1994-02-22 Fujitsu Limited Method and means for verification of write data
JP2855019B2 (ja) 1992-02-10 1999-02-10 富士通株式会社 外部記憶装置のデータ保証方法及び外部記憶装置
US5418940A (en) 1993-08-04 1995-05-23 International Business Machines Corporation Method and means for detecting partial page writes and avoiding initializing new pages on DASD in a transaction management system environment
JP2507235B2 (ja) 1994-06-24 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法
US5696775A (en) 1994-09-23 1997-12-09 Cirrus Logic, Inc. Method and apparatus for detecting the transfer of a wrong sector
US5581754A (en) 1994-12-07 1996-12-03 Xerox Corporation Methodology for managing weakly consistent replicated databases
JPH08235032A (ja) 1995-02-22 1996-09-13 Nec Software Kansai Ltd データベース更新論理チェック方式
US5805799A (en) 1995-12-01 1998-09-08 Quantum Corporation Data integrity and cross-check code with logical block address
US5893930A (en) 1996-07-12 1999-04-13 International Business Machines Corporation Predictive translation of a data address utilizing sets of associative entries stored consecutively in a translation lookaside buffer
JPH1040122A (ja) 1996-07-19 1998-02-13 Fujitsu Ltd 計算機
FR2754926B1 (fr) 1996-10-23 1998-11-20 Schlumberger Ind Sa Procede de gestion de defauts d'integrite de donnees dans une memoire reinscriptible
JPH10171681A (ja) 1996-12-10 1998-06-26 Fujitsu Ltd オブジェクト指向装置管理システム
JPH10240575A (ja) 1997-02-26 1998-09-11 Hitachi Software Eng Co Ltd 大量データファイル一括更新処理プログラムの検査方法
US5870763A (en) 1997-03-10 1999-02-09 Microsoft Corporation Database computer system with application recovery and dependency handling read cache
US6067550A (en) 1997-03-10 2000-05-23 Microsoft Corporation Database computer system with application recovery and dependency handling write cache
US6094708A (en) 1997-05-06 2000-07-25 Cisco Technology, Inc. Secondary cache write-through blocking mechanism
US5960436A (en) 1997-08-29 1999-09-28 International Business Machines Corp. Transaction compaction for replay of transactions from client to server
US6237124B1 (en) 1998-03-16 2001-05-22 Actel Corporation Methods for errors checking the configuration SRAM and user assignable SRAM data in a field programmable gate array
US6009542A (en) 1998-03-31 1999-12-28 Quantum Corporation Method for preventing transfer of data to corrupt addresses
US6098190A (en) 1998-08-04 2000-08-01 Hewlett-Packard Co. Method and apparatus for use of a host address to validate accessed data
US6449623B1 (en) 1998-09-04 2002-09-10 Lucent Technologies Inc, Method and apparatus for detecting and recovering from data corruption of a database via read logging
US6298425B1 (en) 1999-01-12 2001-10-02 Compaq Computer Corp. Computer disk management system using doublet A-B logging
US6438724B1 (en) 1999-03-16 2002-08-20 International Business Machines Corporation Method and apparatus for deterministically altering cyclic redundancy check information for data storage
US6446234B1 (en) 1999-03-16 2002-09-03 International Business Machines Corporation Method and apparatus for updating cyclic redundancy check information for data storage
US6535869B1 (en) 1999-03-23 2003-03-18 International Business Machines Corporation Increasing efficiency of indexing random-access files composed of fixed-length data blocks by embedding a file index therein
US6728879B1 (en) 1999-06-02 2004-04-27 Microsoft Corporation Transactional log with multi-sector log block validation
US6732125B1 (en) 2000-09-08 2004-05-04 Storage Technology Corporation Self archiving log structured volume with intrinsic data protection
US6928607B2 (en) 2000-10-19 2005-08-09 Oracle International Corporation Data integrity verification mechanism
US7020835B2 (en) 2000-10-19 2006-03-28 Oracle International Corporation Enhancements to data integrity verification mechanism
US7305421B2 (en) 2001-07-16 2007-12-04 Sap Ag Parallelized redo-only logging and recovery for highly available main memory database systems
CA2497305A1 (en) 2002-09-10 2004-03-25 Exagrid Systems, Inc. Primary and remote data backup with nodal failover
US7149858B1 (en) 2003-10-31 2006-12-12 Veritas Operating Corporation Synchronous replication for system and data security
US7257689B1 (en) 2004-10-15 2007-08-14 Veritas Operating Corporation System and method for loosely coupled temporal storage management
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060200497A1 (en) * 2005-03-03 2006-09-07 Hu Wei M Lost write detection and repair
US8560879B1 (en) * 2009-04-22 2013-10-15 Netapp Inc. Data recovery for failed memory device of memory device array
CN102934114A (zh) * 2010-06-15 2013-02-13 微软公司 用于文件系统的检查点
US20120022974A1 (en) * 2010-07-23 2012-01-26 Shuster Scott L Multi-user works-of-art registry management
CN103348325A (zh) * 2010-10-29 2013-10-09 赛门铁克公司 部分数据流的数据丢失监控
CN102202087A (zh) * 2011-04-25 2011-09-28 中兴通讯股份有限公司 一种标识存储设备的方法及系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542682A (zh) * 2018-11-16 2019-03-29 上海达梦数据库有限公司 一种数据备份方法、装置、设备和存储介质
CN109542682B (zh) * 2018-11-16 2021-03-30 上海达梦数据库有限公司 一种数据备份方法、装置、设备和存储介质
CN110737719A (zh) * 2019-09-06 2020-01-31 深圳平安通信科技有限公司 数据同步方法、装置、设备及计算机可读存储介质
CN110737719B (zh) * 2019-09-06 2023-11-28 深圳平安通信科技有限公司 数据同步方法、装置、设备及计算机可读存储介质
CN111475493A (zh) * 2020-06-19 2020-07-31 阿里云计算有限公司 数据读取方法及装置
WO2022111731A1 (en) * 2020-11-30 2022-06-02 Huawei Cloud Computing Technologies Co., Ltd. Method, apparatus and medium for data synchronization between cloud database nodes
US11657066B2 (en) 2020-11-30 2023-05-23 Huawei Cloud Computing Technologies Co., Ltd. Method, apparatus and medium for data synchronization between cloud database nodes
CN112965858A (zh) * 2021-03-04 2021-06-15 电信科学技术第五研究所有限公司 一种组网分布式存储数据冲突处理的实现方法

Also Published As

Publication number Publication date
US20160179867A1 (en) 2016-06-23
CN107209704B (zh) 2020-09-11
EP3234780A1 (en) 2017-10-25
US9892153B2 (en) 2018-02-13
EP3234780B1 (en) 2019-10-30
WO2016099797A1 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
CN107209704A (zh) 检测丢失的写入
US9684566B2 (en) Techniques for backup restore and recovery of a pluggable database
US11537482B2 (en) Method and apparatus for reading and writing committed data
Chandra BASE analysis of NoSQL database
US20130110873A1 (en) Method and system for data storage and management
KR100926880B1 (ko) Dbms에서의 데이터 복제 방법 및 시스템
Baker et al. Megastore: Providing scalable, highly available storage for interactive services.
US10031935B1 (en) Customer-requested partitioning of journal-based storage systems
CN104813276B (zh) 从备份系统流式恢复数据库
JP2023546249A (ja) トランザクション処理方法、装置、コンピュータ機器及びコンピュータプログラム
EP2380090B1 (en) Data integrity in a database environment through background synchronization
CN107122360A (zh) 数据迁移系统和方法
US10331657B1 (en) Contention analysis for journal-based databases
CN101187888A (zh) 一种异构环境中复制数据库数据的方法
US10133767B1 (en) Materialization strategies in journal-based databases
US11386078B2 (en) Distributed trust data storage system
US10235407B1 (en) Distributed storage system journal forking
Maymala PostgreSQL for data architects
CN110362590A (zh) 数据管理方法、装置、系统、电子设备及计算机可读介质
US11531595B2 (en) Non-blocking secondary reads
US20220121523A1 (en) Identifying database backup copy chaining
Fjällid A comparative study of databases for storing sensor data
Rothsberg Evaluation of using NoSQL databases in an event sourcing system
Donselaar Low latency asynchronous database synchronization and data transformation using the replication log.
Tomášek Design and implementation of Archival Storage component of OAIS Reference Model

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant