CN102323930B - 对数据库系统中的数据变更进行镜像 - Google Patents

对数据库系统中的数据变更进行镜像 Download PDF

Info

Publication number
CN102323930B
CN102323930B CN201110246456.2A CN201110246456A CN102323930B CN 102323930 B CN102323930 B CN 102323930B CN 201110246456 A CN201110246456 A CN 201110246456A CN 102323930 B CN102323930 B CN 102323930B
Authority
CN
China
Prior art keywords
data
database
change
chunk
log recording
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110246456.2A
Other languages
English (en)
Other versions
CN102323930A (zh
Inventor
V·卡姆拉
P·马德哈瓦拉普
C·迪亚科努
P·波尔沃尔
J·方
S·阿查里雅
A·基里卡
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102323930A publication Critical patent/CN102323930A/zh
Application granted granted Critical
Publication of CN102323930B publication Critical patent/CN102323930B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F16/273Asynchronous replication or reconciliation
    • 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/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
    • G06F16/275Synchronous replication

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及对数据库系统中的数据变更进行镜像。一种用于将来自第一数据库服务器的一个或多个数据变更镜像到一个或多个第二数据库服务器的方法。该方法包括截取对第一数据库服务器上的一个或多个数据作出一个或多个变更的一个或多个操作。在截取了这些操作之后,该方法将各操作归并成一个或多个组块,将具有这些组块的一个或多个日志记录添加到数据库日志。数据库日志包括一个或多个数据库日志块。该方法随后写入这些数据库日志块。

Description

对数据库系统中的数据变更进行镜像
技术领域
本发明涉及对数据库系统中的数据变更进行镜像。
背景技术
当前,数据库系统配备有高可用性和灾难恢复(HADRON)特征,使得即使主数据库服务器变得临时或永久不可用,存储在该主数据库服务器上的数据和元数据也仍然可被访问。在这些数据库系统中,主数据库服务器通常包括由用户访问并修改的数据和元数据的原始版本。辅数据库服务器随后被用来对存储在主数据库服务器上的数据和元数据上所发生的全部活动进行镜像,使得已变更数据和元数据的副本被存储在该辅数据库服务器上。结果,在主数据库服务器变得临时不可用的情况下,将使包括严密地类似于主数据库服务器的数据和元数据的辅数据库服务器对用户可用。这一特征被称为高可用性。
在某些情况下,主数据库服务器和辅数据库服务器可位于不同的地理位置,使得在主数据库服务器因自然灾害等而被破坏的情况下,辅数据库服务器会被保存下来。在这样的灾难的情况下,因为主数据库服务器不再可用,所以可以提供辅数据库服务器来接管主数据库服务器的任务。这一特征被称为灾难恢复。对于高可用性和灾难恢复这两个特征,数据库系统将对主数据库服务器执行的变更镜像到辅数据库服务器上,以确保存储在主数据库服务器中的数据和元数据对请求它的用户可用。
对主服务器执行的变更可以是对数据库文件的元数据和/或文件系统文件的数据作出的。元数据存储在数据库文件的各行中,数据库文件存储在文件系统中。文件系统文件位于与数据库文件相同的文件系统或不同的文件系统中。当前,对元数据作出的变更被记录在数据库日志文件中,但对文件系统文件中的数据作出的变更未被记录在任何位置。为了镜像对主数据库服务器上的元数据作出的变更,一计算机应用程序将数据库日志文件发送到辅数据库服务器,使得该辅数据库服务器对该数据库日志文件中指示的变更进行镜像。然而,由于该数据库日志文件不包括与对主数据库服务器上的文件系统文件中的数据作出的变更有关的任何信息,该辅数据库服务器不能镜像对主数据库服务器上的数据作出的变更,因为它不知道什么数据已被变更。如此,辅数据库服务器复制整个文件系统文件以确保已变更数据被镜像到该辅数据库上。这种用于在辅服务器上更新对文件中的数据的变更的方法是更新对数据的变更的低效方法。
发明内容
本文描述了用于对数据库系统中的数据进行镜像的各种技术的实现。在一个实现中,存储在主数据库服务器上的计算机应用程序可以使用文件系统过滤器驱动器来截取对主数据库服务器上的文件系统文件中的数据作出变更的所有操作。文件系统过滤器驱动器可以将文件系统文件中的数据变更发生的位置记录在包括偏移位置和长度的列表中。偏移位置可指示文件系统文件中的数据变更的起始位置和文件系统文件中的数据变更的长度。该计算机应用程序随后可以从文件系统过滤器驱动器接收偏移位置和长度的列表,使得它可以输出向辅数据库服务发送器数据块的高效序列。
在接收到偏移位置和长度的列表之后,该计算机应用程序可以将与具有邻近偏移位置和长度的各数据变更有关的信息归并成组块(chunk)。该计算机应用程序随后可以将该组块作为日志记录添加到数据库日志的数据库日志块中。在将各组块添加到数据库日志块之后,该计算机应用程序可以读取数据库日志中的每一数据库日志块来确定对应的数据库日志块中是否存在任何组块。对于每一所标识的组块,该计算机应用程序可以打开与该组块相关联的文件系统文件,从文件系统文件中读取与该组块的数据相对应的数据,该数据在偏移位置处开始且长度是数据变更的长度。在读取了与该组块相对应的数据之后,该计算机应用程序可以将所读取的数据和数据库日志块发送到辅数据库服务器。
存储在辅数据库服务器上的第二计算机应用程序随后可以从主数据库服务器接收该数据和数据库日志块。该第二计算机应用程序可以用接收到的数据替换存储在辅数据库的服务器上的数据,使得辅数据库服务器上的数据与主数据库服务器上的数据相同。该第二计算机应用程序随后可以接收数据库日志块,它可指示对主服务器上的元数据作出的变更。该第二计算机应用程序随后可以对辅数据库服务器上的对应元数据作出相同变更。
提供以上引用的发明内容章节以便以简化形式介绍将在以下具体实施方式章节中进一步描述的一些概念。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中提及的任何或所有缺点的各实现。
附图说明
图1示出其中可结合和实践此处所描述的各种技术的计算系统的示意图。
图2示出其中可结合和实践此处所描述的各种技术的数据库系统的示意图。
图3示出根据本文描述的各种技术的一个或多个实现的用于跟踪和记录在主数据库系统中作出的数据变更的方法的流程图。
图4示出根据本文描述的各种技术的一个或多个实现的用于将在主数据库系统中作出的数据变更发送到辅数据库系统的方法的流程图。
图5示出根据本文描述的各种技术的一个或多个实现的用于在辅数据库系统上作出数据变更以对主数据库系统中作出的数据变更进行镜像的方法的流程图。
具体实施方式
一般而言,本文描述的一个或多个实现涉及对数据库系统中的数据变更进行镜像。通过将主数据库系统中的数据变更和元数据变更镜像到辅数据库系统上,存储在主数据库系统上的数据和元数据可用于高可用性和灾难恢复(HADRON)目的。将参考图1-5更详细地描述用于对数据库系统中的数据变更进行镜像的各种技术。
此处所描述的各种技术的实现可以用众多通用或专用计算系统环境或配置来操作。适用于此处所描述的各种技术的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型机、大型计算机、包括上述系统或设备中的任一个的分布式计算环境等。
此处所描述的各种技术可以在诸如程序模块等由计算机执行的计算机可执行指令的一般上下文中实现。一般而言,程序模块包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等。此处所描述的各种技术还可在其中任务由通过例如硬连线链路、无线链路或其组合等通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
图1示出其中可结合和实践此处所描述的各种技术的计算系统100的示意图。虽然计算系统100可以是如上所述的常规台式或服务器计算机,但可以使用其他计算机系统配置。
计算系统100可包括中央处理单元(CPU)21、系统存储器22和将包括系统存储器22在内的各种系统组件耦合到CPU 21的系统总线23。虽然图1中只示出了一个CPU,但应当理解,在一些实现中计算系统100可包括超过一个CPU。系统总线23可以是几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线,以及也称为背板总线的外围部件互连(PCI)总线。系统存储器22可包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统(“BIOS”)26可以被存储在ROM 24中,它包含有助于例如在启动期间在计算机系统100内的各个元件之间传送信息的基本例程。
计算系统100还可包括用于对硬盘进行读写的硬盘驱动器27、用于对可移动磁盘29进行读写的磁盘驱动器28、以及用于对诸如CD-ROM或其他光介质等可移动光盘31进行读写的光盘驱动器30。硬盘驱动器27、磁盘驱动器28以及光盘驱动器30可分别通过硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34连接至系统总线23。驱动器及其关联的计算机可读介质可以向计算系统100提供对计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。
虽然此处将计算系统100描述为具有硬盘、可移动磁盘29和可移动光盘31,但本领域技术人员应当理解,计算系统100还可以包括可由计算机访问的其他类型的计算机可读介质。例如,这种计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、以及可移动和不可移动介质。计算机存储介质还可包括,RAM、ROM、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存或其他固态存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算系统100访问的任何其他介质。通信介质能以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传递介质。术语“已调制数据信号”可指的是以在信号中编码信息的方式设定或更改其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、射频、红外线和其他无线介质。上述的任意组合也可以包含在计算机可读介质的范围内。
多个程序模块能存储在硬盘27、磁盘29、光盘31、ROM 24或RAM 25上,包括操作系统35、一个或多个应用程序36、HADRON应用程序60、HADRON应用程序65、日志读取器245、程序数据38、以及数据库系统55。操作系统35可以是能控制联网的个人或服务器计算机的操作的任何合适的操作系统,如XP、MacX、Unix变型(例如)等。HADRON应用程序60、HADRON应用程序65、以及日志读取器245可被配置成管理用于分别对主数据库服务器和辅数据库服务器上的数据变更进行镜像的方法。将参考图2-5在以下段落中更详细地描述HADRON应用程序60、HADRON应用程序65、以及日志读取器245。
用户可通过诸如键盘40和定点设备42等输入设备向计算系统100中输入命令和信息。其他输入设备可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些和其他输入设备可通过耦合到系统总线23的串行端口接口46连接到CPU 21,但是可以通过诸如并行端口、游戏端口或通用串行总线(USB)等其他接口连接。监视器47或其他类型的显示设备也可经由接口,诸如视频适配器48,连接至系统总线23。除监视器47之外,计算系统100还可包括其他外围输出设备,如扬声器和打印机。
此外,计算系统100可以使用到一个或多个远程计算机49的逻辑连接在联网环境中工作。逻辑连接可以是办公室、企业范围计算机网络、内联网和因特网中常见的任何连接,如局域网(LAN)51和广域网(WAN)52。远程计算机49可各自包括与计算机动作功能60的应用程序相类似的应用程序36。
当在LAN联网环境中使用时,计算系统100可通过网络接口或适配器53连接到局域网51。当在WAN联网环境中使用时,计算系统100可包括调制解调器54、无线路由器或用于通过诸如因特网等广域网52来建立通信的其他装置。或为内置或为外置的调制解调器54可经由串行端口接口46连接到系统总线23。在联网环境中,就计算系统100所描绘的程序模块或各其部分可被储存在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他手段。
应该理解,此处描述的各种技术可以结合硬件、软件或两者的组合来实现。因此,各种技术或其某些方面或部分,可以采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其他机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中,当程序代码被加载至诸如计算机等机器并由其运行时,该机器成为用于实现该各种技术的装置。在程序代码在可编程计算机上执行的情况下,计算设备可包括处理器、该处理器可读的存储介质(包括易失性和非易失性的存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。可以实现或利用此处所描述的各种技术的一个或多个程序可以使用应用程序编程接口(API)、可重用控件等。这样的程序可以用高级过程语言或面向对象编程语言来实现,以与计算机系统通信。然而,如果需要,程序可以用汇编语言或机器语言来实现。在任一情况下,语言都可以是编译的或解释的语言,并与硬件实现相结合。
图2示出其中可结合和实践此处所描述的各种技术的数据库系统200的示意图。参考图1的计算系统100进行数据库系统200的以下描述。数据库系统200包括数据信息,如数据库命令205和文件系统命令215。数据库命令205可包括可插入或更新存储在文件系统文件上的数据的数据库命令。在一个实现中,数据库命令可包括事务结构化查询语言(T-SQL)服务器命令。类似地,文件系统命令215可包括打开、写入、以及关闭存储在文件系统文件上的数据的文件系统命令。在一个实现中,文件系统命令可包括对数据作出变更并且已被打开和关闭的Win32写入命令。
数据库系统200还包括用于执行与对数据库系统中的数据变更进行镜像有关的过程的各部分的各个模块。这些模块可包括文件流管理器210、文件系统过滤器驱动器220、文件流名字空间所有者(NSO)225、文件表名字空间所有者(NSO)230、组块器(chunker)235、以及日志读取器245。在一个实现中,这些模块全部可以是如在计算机系统100中所示出的HADRON应用程序60的一部分。
在一个实现中,文件流管理器210可以截取来自数据库栈的数据库命令205。数据库命令205可以插入或更新存储在文件系统文件中的数据。类似地,文件系统过滤器驱动器220可以截取来自文件系统栈的文件系统命令215。文件系统命令215可以对存储在文件系统文件中的数据进行写入。文件系统文件过滤器驱动器220可以是可被用来检测对数据作出的变更的内核模块驱动器。除检测是否对数据作出变更之外,文件流管理器210和文件系统过滤器驱动器220可以检测文件系统文件中的每一数据变更的偏移位置和长度。虽然文件流管理器210和文件系统过滤器驱动器220被描述为用来检测与数据何时被变更有关的信息,但应当注意,文件流管理器210和文件系统过滤器驱动器220还可被配置成执行其他数据库和文件系统功能。
文件流NSO 225和文件表NSO 230可以是可与文件系统过滤器驱动器220进行交互的数据库系统组件,如SQL服务器组件。文件流NSO 225和文件表NSO 230还可经由文件系统过滤器驱动器220来提供文件系统功能。在一个实现中,文件流NSO 225可被用来将数据存储在数据库系统200外部,文件表NSO 230可被用来提供扩展的文件系统功能。如果文件系统命令215包括经由文件流或事务访问来访问的数据变更,则文件系统过滤器驱动器220可以将与它所截取的数据变更有关的通知发送给文件流NSO 225。或者,如果文件系统命令215包括经由文件系统应用程序(例如,Win32应用程序)来访问的数据变更,则文件系统过滤器驱动器220可以将与该数据变更有关的通知发送给文件表NSO 225。
文件流管理器210、文件流NSO 225、以及文件表NSO 230可以将与数据变更有关的信息发送给组块器235。组块器235可以分析所有数据变更并将这些数据变更接合或归并成单个组块。在将数据变更归并成单个组块之后,组块器235可以将日志记录插入数据库日志240中以指示特定文件系统文件中的数据发生了更新。该日志记录可包括该更新在文件系统文件中的偏移位置以及与该更新对应的长度。以此方式,在文件系统文件中发生的所有数据变更和更新可以表示在数据库日志240中。在一个实现中,数据库日志240还可包括与发生在数据库系统200中的数据库文件上的任何元数据变更有关的信息。
在日志记录被添加到数据库日志240之后,日志读取器245可以读取数据库日志240中的每一日志块来确定该日志块是否包含具有组块的日志记录。对于每一所标识的组块,日志读取器245可以打开与该所标识的组块相关联的文件系统文件。日志读取器245随后可以读取文件系统文件中的从偏移位置开始并且具有在日志记录中定义的长度的数据。在读取了数据之后,日志读取器245可以将所读取的数据发送到一个或多个辅数据库服务器250。辅数据库服务器250随后可以在它对应的文件系统文件中替换与从日志读取器245发送的数据相对应的数据。以此方式,辅数据库服务器250可被用来对数据库系统200进行镜像以提供数据来用于高可用性和灾难恢复目的。
在一个实现中,数据库系统200可对应于计算机系统100。数据库系统200可被称为主数据库服务器。以此方式,对存储在主数据库服务器上的文件系统文件作出的数据变更可被镜像到辅数据库服务器250上。虽然未在数据库系统200中示出,但文件系统文件可被存储在数据库系统200中。类似地,对应的文件系统文件可被存储在辅数据库服务器250中。
图3示出根据本文描述的各种技术的一个或多个实现的用于跟踪和记录在主数据库系统中作出的数据变更的方法的流程图。参考图1的计算系统100和图2的数据库系统200来进行对方法300的以下描述。应当理解,尽管方法300指示了操作执行的特定次序,但在某些实现中这些操作的特定部分可按照不同的次序执行。在一个实现中,方法300可由HADRON应用程序60来执行。
在步骤310,HADRON应用程序60可以截取变更文件系统文件数据的所有操作。在一个实现中,HADRON应用程序60可以使用文件流管理器210来截取数据库命令,如变更文件系统文件中的数据的T-SQL插入和更新。类似地,HADRON应用程序60可以使用文件系统过滤器驱动器220来截取打开、写入、以及关闭文件系统文件中的数据的文件系统命令。
在一个实现中,在HADRON应用程序60截取对文件系统文件中的数据作出变更的操作时,HADRON应用程序60可以通过维护每一数据变更的偏移位置和长度的列表来跟踪该变更。例如,文件系统文件中的数据变更可以发生在偏移1000处,长度为100。
在步骤320,HADRON应用程序60可以将对数据作出变更的每一操作的偏移位置和长度归并成组块。通过对偏移位置和长度进行归并,HADRON应用程序60可以将在相邻近或相重叠的数据上发生的数据变更组合成单个数据变更。例如,如果第一数据变更发生在偏移1000处且长度为500,并且第二数据变更发生在偏移1500处且长度为500,则HADRON应用程序60可以将这两个数据变更归并成由偏移为1000而长度为1000来表示的单个数据变更。类似地,HADRON应用程序60可以归并所接收到的乱序的相邻近的数据变更。例如,第一数据变更可由偏移为1000而长度为500来表示,第二数据变更可由偏移为2000而长度为500来表示,并且第三数据变更可由偏移为1500而长度为500来表示。HADRON应用程序60可以将这三个脱节的数据变更操作归并成偏移为1000而长度为1500的单个数据变更。在另一示例中,HADRON应用程序60可以归并相重叠的数据变更。例如,第一数据变更可由偏移为1000而长度为500来表示并且第二数据变更可由偏移为1200而长度为800表示。HADRON应用程序60可以将这三个脱节的数据变更操作归并成偏移为1000而长度为1000的单个数据变更。通过将各数据变更归并成单个数据变更,HADRON应用程序60可以最小化可向辅数据库服务器发送数据的次数。
在一个实现中,HADRON应用程序60可以在归并数据变更之前等待预定时间量或预定数据量。以此方式,HADRON应用程序60可以归并在预定时间量期间或在预定数据量期间发生的所有数据变更。上述步骤320-330由图2中描述的文件流NSO 225、文件表NSO 230、以及文件流管理器210执行。
在步骤330,HADRON应用程序60可以将包含所归并的偏移位置和长度的组块添加到数据库日志作为日志记录。在步骤340,HADRON应用程序60可以通过写入数据库日志块来对数据库日志进行写入。数据库日志块可包括一组连续地添加的日志记录。在一个实现中,在写入数据库日志块之后,HADRON应用程序60将数据库日志块发送到日志读取器245。步骤330-340可由图2中描述的组块器235来执行。
图4示出根据本文描述的各种技术的一个或多个实现的用于将在主数据库系统中作出的数据变更发送到辅数据库系统的方法的流程图。参考图1的计算系统100和图2的数据库系统200来进行对方法400的以下描述。应当理解,尽管方法400指示了操作执行的特定次序,但在某些实现中这些操作的特定部分可按照不同的次序执行。在一个实现中,方法400可由日志读取器245来执行。
在步骤410,日志读取器245可以从HADRON应用程序60读取数据库日志块。在一个实现中,HADRON应用程序60可以从组块器235接收数据库日志块。在读取了数据库日志块之后,在步骤420,日志读取器245可以确定数据库日志块是否存在与组块相关的日志记录。如果数据库日志块包括组块日志记录,则日志读取器245可前进至步骤440。然而,如果数据库日志块不包括组块日志记录,则日志读取器245可前进至步骤470。
在步骤440,日志读取器245可以读取文件系统文件中与在组块日志记录中描述的数据相对应的数据。例如,如果组块日志记录指示偏移1000处长度为500的数据已被变更,则日志读取器245可以读取文件系统文件中与组块日志记录相对应的在偏移1000处且长度为500的数据。
在步骤450,日志读取器245可以将所读取的数据发送给辅数据库服务器250。在步骤460,日志读取器245可以确定数据库日志块中是否存在另一组块日志记录。如果数据库日志块中存在另一组块日志记录,则日志读取器245可以返回步骤440。然而,如果数据库日志块中不存在另一组块日志记录,则日志读取器245可前进至步骤470。在步骤470,日志读取器245可以将数据库日志块发送给辅数据库服务器250。
图5示出根据本文描述的各种技术的一个或多个实现的用于在辅数据库系统上作出数据变更以对主数据库系统中的数据变更进行镜像的方法的流程图。参考图1的计算系统100和图2的数据库系统200来进行对方法500的以下描述。应当理解,尽管方法500指示了操作执行的特定次序,但在某些实现中这些操作的特定部分可按照不同的次序执行。在一个实现中,方法400可由存储在辅数据库服务器250上的HADRON应用程序65来执行。
在步骤510,HADRON应用程序65可以接收如在步骤450所描述的从日志读取器245发送的数据。在步骤520,HADRON应用程序65可以搜索与接收到的数据相对应的数据,并用接收到的数据来替换辅数据库服务器250上的该数据。以此方式,与组块日志记录(即,偏移位置和长度)相关联的数据可以替换辅数据库服务器250中的对应数据。
在步骤530,HADRON应用程序65可以接收来自日志读取器245的数据库日志块。在步骤540,HADRON应用程序65可以解释数据库日志块以确定是否对主数据库服务器上存储的元数据作出了任何变更。如果作出了对元数据的变更,则数据库日志块可指示这些变更是什么并且HADRON应用程序65可以对辅数据库服务器250中的对应元数据作出这些相同的变更。
在一个实现中,方法300、400、以及500可以在同步模式中执行,使得数据变更操作可在所有适当的辅数据库服务器更新了它的数据来镜像数据变更操作时才完成。以此方式,可以强大地保证在灾难恢复事件期间极少有或没有数据丢失。
或者,方法300、400、以及500可以在异步模式中执行,使得数据变更操作在主数据库服务器上提交的时间与对应的数据变更在辅数据库服务器上提交的时间之间可以存在延迟。操作的异步模式可以允许更好的性能,这可在正常操作期间造成数据的更高的可用性。
在任何情况下,方法300、400、以及500允许数据变更被更高效地镜像到辅数据库服务器250上,因为与发送整个文件系统文件相反,只有存储在主数据库服务器上的文件系统文件中被变更了的数据才被发送到辅数据库服务器250。通过只发送相关数据,可以更好地配备数据库系统来提供数据以用于高可用性和灾难恢复目的。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但是可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (18)

1.一种用于跟踪和记录在第一数据库服务器中作出的数据变更的方法,包括:
截取对所述第一数据库服务器上的一个或多个数据作出一个或多个数据变更的一个或多个操作;
将所述操作归并成一个或多个组块;
将所述组块添加到数据库日志作为日志记录,所述数据库日志具有一个或多个数据库日志块;以及
将所述日志记录写入所述数据库日志块;
其中,截取所述操作包括:
检测作出所述数据变更的操作;
确定每一数据变更的偏移位置和长度;以及
将每一数据变更的偏移位置和长度发送到组块器;
其中,将所述操作归并成一个或多个组块包括:通过对所述偏移位置和长度进行归并,将在相邻近或相重叠的数据上发生的数据变更组合成单个数据变更。
2.如权利要求1所述的方法,其特征在于,所述操作被过滤器驱动器截取。
3.如权利要求2所述的方法,其特征在于,所述过滤器驱动器是被配置成检测所述数据变更的内核模式驱动器。
4.如权利要求1所述的方法,其特征在于,所述操作来自文件系统栈。
5.如权利要求4所述的方法,其特征在于,所述操作包括对所述数据的打开、写入、以及关闭操作。
6.如权利要求1所述的方法,其特征在于,所述操作来自数据库栈。
7.如权利要求6所述的方法,其特征在于,所述操作包括对所述数据的插入和更新操作。
8.如权利要求1所述的方法,其特征在于,所述操作被所述组块器归并。
9.如权利要求1所述的方法,其特征在于,归并所述操作包括组合所述操作的子集,其中所述操作的所述子集包括两个或更多个数据变更,其中所述子集中的每一数据变更发生在彼此的邻近。
10.如权利要求1所述的方法,其特征在于,所归并的操作由一偏移位置和一长度来表示。
11.如权利要求1所述的方法,其特征在于,所述操作是在预定时间量之后被归并的。
12.如权利要求1所述的方法,其特征在于,所述操作是在预定数据量之后被归并的。
13.如权利要求1所述的方法,其特征在于,还包括将所述数据库日志块发送到第二数据库服务器。
14.如权利要求13所述的方法,其特征在于,发送所述数据库日志块包括:
(a)确定所述数据库日志块之一是否包括具有所述组块的日志记录之一;以及
(b)如果所述数据库日志块之一包括所述日志记录中的一个日志记录,则将与所述日志记录中的所述一个日志记录相对应的数据发送给所述第二数据库服务器。
15.如权利要求14所述的方法,其特征在于,还包括对每一数据库日志块重复步骤(a)–(b)。
16.如权利要求13所述的方法,还包括:
从所述第一数据库服务器接收所述数据库日志块,其中所述数据库日志块的第一部分指的是所述第一数据库服务器中已被变更的数据;
接收与所述数据库日志块的所述第一部分相对应的数据;以及
用所接收的数据来替换存储在所述第二数据库服务器上的数据。
17.一种数据库管理系统,包括:
文件系统过滤器驱动器,它被配置成截取对第一数据库服务器上的一个或多个数据作出一个或多个数据变更的一个或多个文件系统操作;
文件流管理器,它被配置成截取对所述数据作出一个或多个数据变更的一个或多个数据库操作;
组块器,它被配置成:
将所述文件系统操作和所述数据库操作归并成一个或多个组块;
将所述组块添加到数据库日志作为日志记录;以及
将所述日志记录写入所述数据库日志的一个或多个数据库日志块;
日志读取器,它被配置成:
读取所述数据库日志块;
确定所述数据库日志中的数据库日志块之一是否包括具有所述组块的日志记录之一;以及
如果所述数据库日志块之一包括所述日志记录中的一个日志记录,则将与所述日志记录中的所述一个日志记录相对应的数据发送给一个或多个第二数据库管理系统;
其中,所述组块器被配置成:
确定由每一文件系统操作和每一数据库操作所作出的每一数据变更的偏移位置和长度;以及
归并两个或更多个偏移位置和两个或更多个长度,其中所述两个或更多个偏移位置和所述两个或更多个长度彼此相邻或重叠。
18.如权利要求17所述的数据库管理系统,其特征在于,还包括:
一个或多个数据库组件,它们被配置成:
接收与所截取的文件系统操作相关的一个或多个通知;以及
将所述通知发送给所述组块器,其中所述通知包括与所述文件系统操作和所述数据库操作相关的信息。
CN201110246456.2A 2010-08-16 2011-08-15 对数据库系统中的数据变更进行镜像 Active CN102323930B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/856,688 US8655847B2 (en) 2010-08-16 2010-08-16 Mirroring data changes in a database system
US12/856,688 2010-08-16

Publications (2)

Publication Number Publication Date
CN102323930A CN102323930A (zh) 2012-01-18
CN102323930B true CN102323930B (zh) 2015-02-04

Family

ID=45451673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110246456.2A Active CN102323930B (zh) 2010-08-16 2011-08-15 对数据库系统中的数据变更进行镜像

Country Status (2)

Country Link
US (1) US8655847B2 (zh)
CN (1) CN102323930B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9183239B2 (en) * 2012-12-04 2015-11-10 Linkedin Corporation Optimizing a content index for target audience queries
US9535941B2 (en) * 2012-12-18 2017-01-03 Salesforce.Com, Inc. Systems and methods for data object change history
US9805052B2 (en) * 2013-01-28 2017-10-31 Netapp, Inc. Coalescing metadata for mirroring to a remote storage node in a cluster storage system
US9563376B2 (en) 2015-05-01 2017-02-07 International Business Machines Corporation Low power storage array with metadata access
WO2017069773A1 (en) * 2015-10-23 2017-04-27 Hewlett-Packard Development Company, L.P. Write commands filtering
US9852202B1 (en) 2016-09-23 2017-12-26 International Business Machines Corporation Bandwidth-reduced coherency communication
CN108304430B (zh) * 2017-06-02 2021-09-07 深圳三诺信息科技有限公司 一种修改数据库的方法
US10922283B2 (en) * 2019-02-22 2021-02-16 Rackware, Inc. File synchronization
CN112783860B (zh) * 2021-01-11 2023-08-08 网易(杭州)网络有限公司 构造镜像数据库的方法、装置、存储介质及计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101036121A (zh) * 2004-10-28 2007-09-12 英特尔公司 软件的递增供应
CN101535968A (zh) * 2006-11-02 2009-09-16 微软公司 合并的文件系统目录中的虚拟删除
US7651593B2 (en) * 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555388A (en) 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
US7480653B2 (en) 1996-10-22 2009-01-20 International Business Machines Corporation System and method for selective partition locking
US6023706A (en) 1997-07-11 2000-02-08 International Business Machines Corporation Parallel file system and method for multiple node file access
GB2390713B (en) 2000-10-18 2005-03-23 Chasseral Ltd Concurrent file access
US7788335B2 (en) 2001-01-11 2010-08-31 F5 Networks, Inc. Aggregated opportunistic lock and aggregated implicit lock management for locking aggregated files in a switched file system
US7457880B1 (en) 2003-09-26 2008-11-25 Ximeta Technology, Inc. System using a single host to receive and redirect all file access commands for shared data storage device from other hosts on a network
US7606844B2 (en) * 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
US20110282850A1 (en) 2010-05-11 2011-11-17 Microsoft Corporation Concurrently Accessing Data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101036121A (zh) * 2004-10-28 2007-09-12 英特尔公司 软件的递增供应
US7651593B2 (en) * 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
CN101535968A (zh) * 2006-11-02 2009-09-16 微软公司 合并的文件系统目录中的虚拟删除

Also Published As

Publication number Publication date
CN102323930A (zh) 2012-01-18
US20120041928A1 (en) 2012-02-16
US8655847B2 (en) 2014-02-18

Similar Documents

Publication Publication Date Title
CN102323930B (zh) 对数据库系统中的数据变更进行镜像
US9984006B2 (en) Data storage systems and methods
US11443061B2 (en) Data protection within an unsecured storage environment
US8868858B2 (en) Method and apparatus of continuous data backup and access using virtual machines
EP2788876B1 (en) System and method for restoring application data
CN101809566B (zh) 高效的文件散列标识符计算
US9251017B2 (en) Handling failed cluster members when replicating a database between clusters
CN101777062B (zh) 场境感知的实时计算机保护系统和方法
US20200358621A1 (en) Use of data block signatures for monitoring in an information management system
US7987325B1 (en) Method and apparatus for implementing a storage lifecycle based on a hierarchy of storage destinations
CN101361048A (zh) 在信息生命周期管理环境中将文件恢复到其适当的存储级
CN101361047A (zh) 存储系统中的数据保护
US8135928B2 (en) Self-adjusting change tracking for fast resynchronization
CN101785239B (zh) 基于密钥的隐藏分区系统
US9251020B1 (en) Systems and methods for file-level replication
EP1933236A1 (en) Branch Office and remote server smart archiving based on mirroring and replication software
US20230259640A1 (en) Data storage systems and methods of an enforceable non-fungible token having linked custodial chain of property transfers prior to minting using a token-based encryption determination process
US20140046905A1 (en) Organized Data Removal or Redirection from a Cloning Process to Enable Cloning a Larger System to a Smaller System
US8595271B1 (en) Systems and methods for performing file system checks
CN105760456A (zh) 一种保持数据一致性的方法和装置
US11630742B2 (en) System and method of performing recovery using a backup image
US7949632B2 (en) Database-rearranging program, database-rearranging method, and database-rearranging apparatus
CN108573049A (zh) 数据处理方法和分布式存储装置
CN114064361A (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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150727

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150727

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.