CN102667711B - 虚拟数据库系统 - Google Patents
虚拟数据库系统 Download PDFInfo
- Publication number
- CN102667711B CN102667711B CN201080058431.3A CN201080058431A CN102667711B CN 102667711 B CN102667711 B CN 102667711B CN 201080058431 A CN201080058431 A CN 201080058431A CN 102667711 B CN102667711 B CN 102667711B
- Authority
- CN
- China
- Prior art keywords
- database
- block
- data
- copy
- data base
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/954—Navigation, e.g. using categorised browsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Abstract
取回并且在数据库存储系统上存储来自多个数据库的信息。为每个数据库获得多个时间点拷贝。时间点拷贝取回数据库中的自从取回先前时间点拷贝起改变的数据。通过在数据存储系统中创建文件集来创建虚拟数据库(VDB)。为VDB创建的文件集中的每个文件链接到数据库存储系统上的、与源数据库的时间点拷贝相关联的数据库块。在数据库服务器上装配与VDB相关联的文件集,从而允许数据库服务器从文件集读取和向文件集写入。基于VDB的工作流允许高效地实施基于数据库的各种使用场景,例如,测试和开发、备份和恢复以及数据仓库构建。
Description
技术领域
本发明总体涉及数据库,并且特别地涉及用于管理数据库和基于数据库的生命周期工作流的存储高效系统。
背景技术
数据库存储对于组织而言关键的数据,并且因此形成组织的信息技术基础设施的重要部分。随着组织中可用的信息增长,为了管理存储信息的数据库而需要的基础设施的复杂性也增长。基础设施的增加的复杂性增加了为管理数据库和依赖于数据库的应用而需要的资源。这些增加的成本可以包括与用于管理数据库的硬件相关联的成本以及与为了维护硬件而需要的附加人员相关联的成本。基础设施的增加的复杂性还影响到与数据库相关联的维护操作,例如,使备份和恢复操作花费明显更长时间。
在典型组织的基础设施环境中,生产数据库服务器运行对组织的日常事务进行管理的应用。对数据库的拷贝测试对生产数据库或者对依赖于生产数据库的应用的改变,以保护生产环境。生产数据库的拷贝可能是对于与生产数据库和依赖于生产数据库的应用相关联的工作流的生命周期中的若干阶段所需要的。例如,在生产数据库中并入的改变的生命周期中的阶段可以包括开发阶段、调试阶段、测试阶段、质量保证阶段、认证阶段、训练阶段和分段传输(staging)阶段。针对每个阶段制作生产数据库的拷贝需要冗余和昂贵的硬件基础设施以及为了拷贝数据而需要的可能花费数天或者数周的时间开销。附加的硬件还需要与物理上存储硬件相关联的附加成本(诸如与电力和冷却有关的地面空间要求和成本)。另外,冗余硬件通常引起可用资源的低效使用。
生命周期工作流可能是复杂的,并且经常涉及跨多个团队的协调。因此,使数据库可用于具体目的(诸如用于支持生命周期中的特定阶段)可能需要与数据库相关联的进一步处理。例如,数据库经常包含关键机密信息,从而使安全性和完整性成为环境管理数据库中的重要考虑。因而,从事于不同阶段的不同团队所需要的访问权限经常不同。例如,管理生产数据库服务器的人员可以访问的数据经常不同于在生命周期的测试阶段中工作的个人可以访问的数据。这导致与跨与数据库有关的任何工作流的生命周期的各种阶段的权限监管有关的进一步的复杂性。
发明内容
为了解决现有数据库技术未满足的需要,本发明的实施例实现了高效使用储存器和其它计算资源的虚拟数据库。创建虚拟数据库(VDB)的方法读取源数据库的不同时间点拷贝。在这些实施例中,“源数据库”包括企业中的如下数据库的物理拷贝,该数据库包括生产数据库、备用数据库和任何其它生命周期数据库。在发明的下文具体描述中,“生产数据库”和“源数据库”互换地用来意指相同数据库。从源数据库读取并且在存储系统上存储多个数据库块。数据库块是数据库使用的数据单元,并且包括储存器中存储的特定数目的字节。数据库块也可以称为页面。数据库块的部分存储与数据库块相关联的元数据。可以在数据库块的元数据中存储的信息的示例包括与数据库块中存储的数据有关的信息、与数据库对象(数据块为该对象的部分)有关的信息、或者指示数据库块中的数据何时被更新的信息。指示数据块何时被更新的信息可以用作数据库块的基于它们的更新时间的相对排序。从源数据库取回并且存储于存储系统上的数据库块对应于源数据库的不同时间点拷贝,并且至少一些数据库块与源数据库的多个时间点拷贝相关联。为虚拟数据库创建文件集。为VDB创建的文件集中的每个文件链接到存储系统上的与源数据库的时间点拷贝相关联的数据库块。与VDB相关联的文件集装配于数据库服务器上,从而允许数据库服务器从文件集读取和向文件集写入。在一个实施例中,虚拟数据库可以基于另一虚拟数据库的时间点拷贝来创建。
在实施例中,可以基于与源数据库的相同时间点拷贝相关联的数据库块创建多个VDB。备选地,所创建的两个VDB可以与源数据库的不同时间点拷贝相关联。可以在与不同VDB相关联的文件集之间共享存储系统上存储的数据库块。共享存储系统上存储的数据库块可以出现于与源数据库的相同时间点拷贝相关联的VDB之间,或者与源数据库的不同时间点拷贝相关联的VDB之间。在一个实施例中,可以在链接、加载或者供给(provision)操作之前执行前记(pre-script)操作。前记操作允许执行用户指定的操作,例如,处理可能未存储于源数据库中的信息。类似地,可以在链接、加载或者供给操作之后执行后记(post-script)操作。后记操作可以与前记操作相关联,并且对前记操作中处理的信息执行进一步处理。
在实施例中,可以从数据库服务器接收对读取VDB中存储的数据的请求。响应于读取请求而访问来自数据库块的请求的数据并且向数据库服务器发送该数据。在另一实施例中,可以从数据库服务器接收对向VDB写入数据的请求。标识与和VDB相关联的文件集中的文件相关联的数据库块,以用于写入在写入请求中发送的数据。如果所标识的数据库块也与第二VDB相关联,则制作数据库块的拷贝。拷贝的数据块链接到文件,并且向拷贝的数据库块写入该写入请求中的数据。拷贝的原数据库块保持与第二VDB相关联,从而允许第二VDB查看写入操作未改变的数据。
在本发明内容和下文具体描述中描述的特征和优点并非囊括性的。本领域普通技术人员鉴于附图、说明书和权利要求书将清楚许多附加特征和优点。
附图说明
图1是图示了根据本发明的实施例的、如何从生产数据库向数据库存储系统拷贝信息,以及使用文件共享系统供给该信息作为虚拟数据库的图。
图2a是示出了根据本发明的实施例的、虚拟数据库系统如何可以运行数据库服务器的、与数据库服务器在如下生产数据库系统上的版本相比的不同版本的图,该生产数据库系统是被虚拟化的数据库的源。
图2b是根据本发明的实施例的、示出了虚拟数据库系统如何可以使用在与如下操作系统相比的不同操作系统上执行的数据库服务器来运行的图,该操作系统执行如下生产数据库系统的数据库服务器,该生产数据库系统是虚拟化的数据库的源。
图3是根据本发明的实施例的如下系统的架构的示意图,该系统制作来自生产数据库的信息的存储高效拷贝并且供给虚拟数据库。
图4图示了根据本发明的实施例的、在数据库存储系统的部件与生产数据库系统的部件之间的如下交互,该交互用于在数据库存储系统上制作生产数据库的存储高效拷贝。
图5是根据本发明的实施例的如下过程的流程图,该过程用于处理数据库存储系统从生产数据库系统接收的数据流以按存储高效方式保存数据。
图6是根据本发明的实施例的如下过程的流程图,该过程用于从生产数据库系统向数据库存储系统拷贝事务日志文件以使得能够在给定时间点供给虚拟数据库。
图7是根据本发明的实施例的、用于在与生产数据库系统相比的数据库存储系统中存储事务日志的文件的图。
图8是图示了根据本发明的实施例的、如何在数据库存储系统中在不同时间点维护数据库的数据的图。
图9是根据本发明的实施例的、用于在给定时间点创建虚拟数据库的过程的流程图。
图10图示了根据本发明的实施例的、创建数据库在给定时间点的读-写拷贝以供给虚拟数据库。
图11图示了根据本发明的实施例的、创建数据库在与图10相比的不同时间点的读-写拷贝以供给虚拟数据库。
图12图示了根据本发明的实施例的、为不同VDB创建的文件结构可以如何共享存储系统数据存储库上存储的数据库块。
图13图示了根据本发明的实施例的、创建数据库的读-写拷贝以用于基于从生产数据库系统拷贝的事务日志来供给虚拟数据库。
图14图示了数据库在示例环境中用于对数据库或者对依赖于数据库的应用做出改变的工作流中的生命周期。
图15图示了用于使用常规方法来实施如下工作流的系统环境,该工作流用于测试和开发与数据库和数据库应用有关的程序代码。
图16图示了根据本发明的实施例的、用于使用VDB来实施如下工作流的系统环境,该工作流用于测试和开发与数据库和数据库应用有关的程序代码。
图17图示了根据本发明的实施例的、用于使用VDB来实施如下工作流的系统环境,该工作流用于多点测试和开发与数据库和数据库应用有关的程序代码。
图18a图示了用于使用常规方法来实施用于备份和恢复数据库的工作流的系统环境。
图18b图示了根据本发明的实施例的、用于使用VDB来实施用于备份和恢复数据库的工作流的系统环境。
图19图示了用于使用常规方法来实施用于如下通用场景的工作流的系统环境,该通用场景需要从一个机器向另一机器拷贝数据库中的信息。
图20图示了根据本发明的实施例的、用于基于VDB实施用于如下通用场景的工作流的系统环境,该通用场景需要从一个机器向另一机器拷贝数据库中的信息。
图21图示了根据本发明的另一实施例的、用于基于VDB实施用于如下场景的工作流的系统环境,该场景需要从一个机器向另一机器拷贝数据库中的信息。
图22图示了根据本发明的实施例的、用于基于VDB实施用于如下通用场景的工作流的系统环境,该通用场景需要从与生产数据库系统不同的机器向另一机器拷贝数据库中的信息。
图23图示了使用常规方法来实施用于如下场景的工作流的系统环境,该场景用于从数据库创建数据仓库和数据集市。
图24图示了根据本发明的实施例的、用于实施用于如下场景的工作流的基于VDB的系统环境,该场景用于从数据库创建数据仓库和数据集市。
图25图示了可以从机器可读介质读取指令并且在处理器或者控制器中执行指令的计算机器的实施例。
附图仅出于示例的目的而描绘本发明的各种实施例。本领域技术人员将从下文讨论中容易认识到可以运用这里举例说明的结果和方法的备选实施例而不脱离这里描述的本发明的原理。
具体实施方式
虚拟数据库系统
在本发明的某些实施例中,基于生产数据库或者虚拟数据库在特定时间点的状态创建一个或者多个虚拟数据库,并且继而可以根据需要个别访问和修改虚拟数据库。数据库包括存储于计算机中以由计算机实施的应用使用的数据。数据库服务器是可以与数据库交互并且提供数据库服务(例如,对数据库中存储的数据的访问)的计算机程序。数据库服务器包括可商购的程序(例如与ORACLE、SYBASE、MICROSOFTSQLSERVER、IBM的DB2、MYSQL等提供的数据库管理系统一起包括的数据库服务器)。可以使用数据库模型(例如,关系模型、对象模型、分集模型或者网络模型)来实施数据库。术语“生产数据库”在具体示例中用来举例说明该技术的有用应用;然而,可以理解,公开的技术可以用于任何数据库而无论该数据库是否用作生产数据库。另外,实施例可以使用生产数据库的存储级快照或者生产数据库的克隆而不是在使用的生产数据库来创建虚拟数据库。虚拟数据库在数据库文件的物理实施从数据库服务器对数据库文件的逻辑使用去耦合的意义上为“虚拟”。
在一个实施例中,在各种时间(诸如定期)向存储系统拷贝来自生产数据库的信息。这使得能够为这些不同时间点重建与生产数据库相关联的数据库文件。可以用高效方式在存储系统中管理信息,从而使得仅如果必需才制作信息拷贝。例如,如果数据库的部分相对于先前拷贝的版本不变,则无需拷贝该不变部分。为时间点创建的虚拟数据库存储为如下文件集,该文件集包含数据库的如在该时间点可用的信息。每个文件包括数据库块集和用于引用数据库块的数据结构。在一些实施例中,可以压缩数据库块以便高效存储它们。在一些实施例中,数据库块可以以加密形式存储于存储系统数据存储库390中以增加存储数据的安全性。可以如数据库服务器需要的那样通过为生产数据库创建对应于生产数据库在先前时间点的状态的数据库文件来在数据库服务器上创建虚拟数据库。可以使用如下文件共享机制来使对应于虚拟数据库的文件可用于数据库服务器,该机制将虚拟数据库链接到存储系统上存储的适当数据库块。使虚拟数据库可用于数据库服务器的过程称为“供给”虚拟数据库。在一些实施例中,供给虚拟数据库包括基于虚拟数据库管理对运行数据库服务器进行创建的过程。可以基于生产数据库在相同时间点的状态供给多个VDB。另一方面,不同VDB可以基于相同生产数据库或者不同生产数据库的不同时间点状态。在一些实施例中,针对健康和用户动作监视供给的数据库。向数据库存储系统100通知这些事件。数据库存储系统100基于内置或者用户指定的规则操纵这些事件。例如,如果用户动作影响虚拟数据库的可用性,则可以在监视控制台上显示或者经由电子邮件向用户发送警告消息。已经在其上供给虚拟数据库的数据库服务器继而可以从存储系统上存储的文件读取和向这些文件写入。可以在不同文件之间共享数据库块,每个文件与不同VDB相关联。具体而言,如果对应的虚拟数据库系统130仅读取数据库块中的信息而未向数据库块写入,则共享数据库块。在一个实施例中,仅如果必需虚拟数据库管理器375才制作数据库块的拷贝。例如,特定数据库块可以由从相同数据库块读取的多个VDB共享。但是,如果虚拟数据库系统130之一尝试向数据库块写入,则制作数据库块的单独拷贝,因为写入操作使该数据库块对于与该虚拟数据库系统130对应的VDB而言与它对其它VDB而言有所不同。
图1图示了可以如何从生产数据库向数据库存储系统拷贝信息并且使用文件共享系统供给该信息作为虚拟数据库的一个实施例。生产数据库系统110管理组织的数据。在一些实施例中,可以从生产数据库的存储级快照或者生产数据库的克隆而不是在使用的生产数据库拷贝信息。下文进一步描述数据库存储系统100从一个或者多个生产数据库系统110取回与数据库相关联的数据并且以高效方式存储数据。数据库管理员用户接口140允许数据库管理员执行由数据库存储系统100支持的各种动作。
响应于来自管理员系统140的请求或者基于预定义时间表,数据库存储系统100可以向生产数据库系统110发送针对数据的请求150。生产数据库系统110通过发送生产数据库中存储的信息作为数据流160来做出响应。定期发送请求150,并且生产数据库系统110通过发送如下信息来做出响应,该信息代表生产数据库中存储的数据自从生产数据库系统110发送的最后响应160起的改变。数据库存储系统100接收生产数据库系统100发送的数据160并且存储数据。数据库存储系统100可以分析所接收的数据160以确定是否存储信息,或者如果信息对于重建在先前时间点的数据库而言无用则省略信息。数据库存储系统100例如通过保持已经改变的数据库块的版本并且重用尚未改变的数据库块来高效存储信息。在实施例中,数据库存储系统100运用分级高速缓存系统,其中高速固态驱动器(SSD)或者等效存储设备被配置用于高速缓存读取操作并且用于留存用于向磁盘的写入操作的日志。
为了创建虚拟数据库,数据库存储系统100创建如下文件,这些文件代表与在给定时间点的生产数据库系统110对应的信息。数据库存储系统100使用文件共享系统120向虚拟数据库系统130暴露(170)对应的文件。虚拟数据库系统130运行可以用数据库存储系统100暴露(170)的文件操作的数据库服务器。因此,以存储高效方式针对给定时间点为虚拟数据库系统130创建生产数据库的虚拟拷贝。
图2示出了虚拟数据库系统130可以运行与生产数据库系统110相比的数据库服务器的不同版本和/或不同操作系统,该生产数据库系统110是虚拟化的数据库的源。适当修改数据库存储系统100中存储的虚拟数据库文件,从而使得即使数据库服务器230具有与数据库服务器205相比的不同版本和/或与操作系统210相比的不同操作系统240,虚拟数据库130仍然可以用文件操作。如图2(a)中所示,在虚拟数据库系统130上运行的数据库服务器230具有与在生产数据库系统110上运行的数据库服务器205的版本Vx不同的版本Vy。类似地,如图2(b)中所示,在虚拟数据库系统130上运行的操作系统240是与在生产数据库系统110上运行的操作系统OSx不同的OSy。在一个实施例中,服务器230和205可以运行相异数据库软件程序。这提供用于尝试用于运行数据库的不同操作系统或者数据库服务器版本的能力。在数据库和/或应用更新、打补丁或者迁移的情况下,这一能力使得易于进行测试操作而对生产系统无任何影响。继而可以在向生产系统中部署之前在隔离环境中认证操作。在一些实施例中,数据库存储系统100可以在由允许多个操作系统在主机计算机上并行运行的平台虚拟化软件或者服务器虚拟化软件提供的虚拟机上执行。
系统架构
图3示出了图示出如下系统环境的高级框图,该系统环境适合制作来自生产数据库的信息的存储高效拷贝并且使用该信息来供给一个或者多个虚拟数据库。系统环境包括一个或者多个生产数据库系统110、数据库存储系统100、管理系统140和一个或者多个虚拟数据库系统130。图3中所示系统如果必需则可以经由网络相互通信。
组织通常使用生产数据库系统110来用于维护它的日常事务。例如,在线书店可以在生产系统110中保存与购书、还书或者库存控制有关的所有进行中事务。生产系统110包括数据库服务器345、生产DB数据存储库350、供应商接口模块335和生产系统库385。在备选配置中,可以在生产数据库系统110中包括不同和/或附加模块。
生产DB数据存储库350存储与可以例如代表如下信息的数据库相关联的数据,该信息代表企业的日常事务。数据库服务器345是如下计算机程序,该计算机程序提供用于管理生产DB数据存储库350上的数据的数据库服务和应用编程接口(API)。生产系统库385提供具有从生产数据库系统110提取信息的用途的API。供应商接口模块335代表由供应商提供的用于定制由数据库服务器345提供的功能的API,例如,用于取回自从先前时间点起改变的数据库块的API。供应商接口模块的示例是供应商ORACLE提供的实施RMANAPI的数据库服务器的程序代码。其它供应商(例如,MICROSOFT的SQLSERVER或者IBM的DB2)提供的数据库服务器具有类似的API。在一个实施例中,供应商接口模块335使用与文件共享系统120类似的文件共享系统在数据库存储系统100上装配生产数据库系统110的生产DB数据存储库350。在数据库存储系统100上装配生产DB数据存储库350允许向数据库存储系统100传送生产数据库系统110上存储的信息。
可以根据供应商接口模块335的要求以不同方式实施生产系统库385。在实施例中,供应商接口模块335加载生产系统库385以便回调生产系统库385中实施的函数。例如,生产系统库385可以是具有“.so”或者“.DLL”文件扩展名的如下共享对象文件,该文件包含可以由C/C++可执行程序或者由如下JAVA程序调用的可执行程序代码,该JAVA程序将JAVANATIVEINTERFACE用于与C/C++程序生成的二进制代码交互。备选地,生产系统库385可以使用JAVA编程语言来实施并且安装于生产数据库系统110中作为具有“.jar”扩展名的文件。java程序需要在生产数据库系统110上运行的JAVA虚拟机(VIRTUALMACHINE)以用于执行。在另一实施例中,生产系统库385的部分可以实施为可执行“.so”共享对象文件,并且生产系统库385的另一部分可以实施为作为“.jar”文件安装的JAVA程序。
供应商接口模块335对来自数据库存储系统100的请求做出响应,并且响应于该请求而从生产DB数据存储库350收集请求的信息并且向数据库存储系统100返回收集的信息。供应商接口模块335可以向数据库服务器345发送用于从生产DB数据存储库350取回信息的请求。供应商接口模块335加载生产系统库385中的程序代码,并且调用它以向数据库存储系统100发送数据流以用于进一步处理。在一些实施例中,供应商接口模块335可以与生产DB数据存储库350直接交互,而不是向数据库服务器345发送请求以取回必需数据库块。在其它实施例中,供应商接口模块335可以从生产数据库的存储级快照或者生产数据库的克隆而不是使用的生产数据库取回必需的数据库块。
数据库存储系统100取回生产数据库系统110中可用的信息并且将其存储。所取回的信息包括数据库块(这些数据库块包括数据库中存储的信息)、事务日志信息、与数据库有关的元数据信息、与数据库的用户有关的信息等。所取回的信息也可以包括与数据库相关联的配置文件。例如,数据库可以使用供应商特有的配置文件以指定包括与数据库相关联的初始化参数的各种配置参数。拷贝配置文件允许用类似于源生产数据库的配置参数来创建VDB。在一些实施例中,数据库管理员可以使用用户接口395来修改配置参数文件以定制具体使用场景的VDB配置。例如,数据库服务器345可以使用特定高速缓存大小来访问生产数据库,而数据库服务器360可以使用不同高速缓存大小来访问对应的VDB。
所取回的信息还可以包括与使用数据库的应用(例如,企业资源规划(ERP)应用可以使用数据库并且可以具有特定于ERP应用的数据)相关联的信息。取回ERP应用数据允许用基于生产数据库系统创建的VDB执行相似ERP应用。这有益于如下使用场景,其中为类似于生产环境的环境创建VDB,以例如用于测试和开发。数据库管理员可以使用用户接口395以指定用于拷贝特定于生产环境的信息的逻辑,以及用于将信息与VDB一起适当安装以用于由虚拟数据库系统130使用的逻辑。
在一些实施例中,可以通过使用具体API或者通过在生产数据库上运行具体脚本来获得关于生产数据库的用户(例如,具有管理特权的用户)的信息。关于用户的信息可以用来有助于系统中的VDB的生命周期管理。在实施例中,允许数据库管理员使用用户接口395以便指定关于待创建的用户账户及其访问权限的信息。例如,如果针对测试目的创建VDB,则可以针对测试组织在VDB上创建测试用户,而如果将VDB创建为生产数据库的备用,则仅具有生产支持角色的用户应当具有访问权。在一些实施例中,访问权限可以指定用户是否可以供给特许VDB。特许VDB的一个示例是具有对非公共信息(非特许用户不可以访问的信息)(例如,社会安全号码或者信用卡信息)的完全访问权的VDB。对应的无特许VDB是具有被屏蔽或者加扰的非公共信息的VDB。特许VDB的另一示例是具有可透明访问的敏感数据的VDB。对应的无特许VDB是具有经加密的敏感信息的VDB。
在一些实施例中,访问权特权被简化成三级:管理员、所有者和审计者。管理员具有对包括数据库和主机的所有受管理对象的完全控制。对管理员可用的控制包括策略管理。所有者有权使用资源(例如,所有者可以供给VDB)。审计者可以查看日志、但是不可以具有消耗系统资源的权利。
可以向虚拟数据库系统130暴露存储系统数据存储库390中存储的数据,从而允许虚拟数据库系统130将数据视为生产数据库系统110中存储的生产数据库的拷贝。数据库存储系统110包括时间点拷贝管理器310、事务日志管理器320、接口管理器330、系统配置管理器315、存储分配管理器365、文件共享管理器370、虚拟数据库管理器375以及存储系统数据存储库390。在备选配置中,可以在数据库存储系统100中包括不同和/或附加模块。
时间点拷贝管理器310通过向供应商接口模块335发送对取回如下信息的请求来与生产数据库系统110交互,该信息代表生产DB数据存储库350中存储的数据库的时间点拷贝(也称为“PIT拷贝”)。时间点拷贝管理器310在存储系统数据存储库390中存储从生产数据库系统110获得的数据。时间点拷贝管理器310取回的数据对应于从生产DB数据存储库350拷贝的数据库的数据库块(或者页面)。在对从生产DB数据存储库350取回信息的第一个PIT拷贝请求之后,后续PIT拷贝请求可以仅需取回数据库中的自从先前请求起改变的数据。在第一个请求中收集的数据可以与在第二个请求中收集的数据进行组合以重建数据库的、与针对第二个请求从生产DB数据存储库350取回数据的时间点对应的拷贝。
事务日志管理器320向生产数据库系统110发送针对取回生产数据库系统110中存储的事务日志的部分的请求。在一些实施例中,向供应商接口模块335发送来自事务日志管理器320的请求。在存储系统数据存储库390中存储事务日志管理器320从供应商接口模块335获得的数据。在一个实施例中,针对事务日志的请求仅取回生产数据库系统110中的事务日志自从处理针对事务日志的先前请求起的改变。与事务日志数据库320取回的事务日志组合的、由时间点拷贝管理器310取回的数据库块可以用来重构生产系统110中的数据库的、与在制作时间点拷贝的时间之间的以往时间对应的拷贝。
存储分配管理器365提供保存从生产数据库系统110取回的数据的功能。例如,时间点拷贝管理器310可以调用存储分配管理器的API以保存从生产数据库系统110取回的数据块。存储分配管理器365追踪可以从生产数据库系统110获得的每个数据块的各种版本。对于给定时间点,可以请求存储分配管理器365提供在给定时间点之前获得的数据块的最新版本。存储分配管理器365还可以用于制作数据块的拷贝。如果出于只读的目的而拷贝数据块,则存储分配管理器365仅分配足以保持对退出数据块的引用指针的储存器。然而,如果做出对向拷贝的数据块写入的尝试,则存储分配管理器365分配足以制作数据块的实际拷贝的储存器以避免更新原数据块。
文件共享管理器370允许跨可以通过网络来与数据库存储系统100连接的计算机共享存储系统数据存储库390中存储的文件。文件共享管理器370将文件共享系统120用于共享文件。用于共享文件的系统的示例是网络文件系统(NFS)。用于共享文件的系统可以利用光纤信道存储区域网络(FC-SAN)或者网络附接储存器(NAS)或者其组合和变形。用于共享文件的系统可以基于小型计算机系统接口(SCSI)协议、因特网小型计算机系统接口(iSCSI)协议、光纤信道协议或者其它相似和有关协议。在一些实施例中,数据库存储系统100可以利用逻辑卷管理器。使用文件共享系统370来共享存储系统数据存储库390中存储的文件允许远程计算机(例如,虚拟数据库系统130)访问共享文件中的数据。远程系统可以能够从/向存储系统数据存储库390共享的文件读取和写入。在实施例中,以仿真给定文件系统盘布局(诸如WINDOWS操作系统的文件系统(称为NTFS或者UNIX文件系统(UFS))的格式组织文件。
虚拟数据库管理器375接收针对为虚拟数据库系统130创建虚拟数据库的请求。针对创建虚拟数据库的请求可以由使用管理系统140的数据库管理员发送,并且该请求标识生产数据库系统110、虚拟数据库系统130并包括对应于其需要创建虚拟数据库的以往时间点。虚拟数据库管理器375创建对应于所创建的虚拟数据库的必需文件并且与虚拟数据库系统130共享文件。虚拟数据库系统130的数据库管理员可以不同于生产数据库系统110的数据库管理员。
接口管理器330使用管理系统140来表现对于显示而言所必需的显示信息。数据库管理员用户可以看到存储系统数据存储库390中可用的信息以及采取由数据库存储系统执行的动作。例如,数据库管理员可以看到从不同生产数据库系统110获得的、在存储系统数据存储库390中存储的不同生产数据库。作为另一示例,数据库管理员可以请求数据库存储系统100制作生产数据库系统110上存储的数据库在特定时间点的PIT拷贝。在实施例中,接口管理器330允许外部应用访问数据库存储系统100的信息。例如,数据库存储系统可以提供用编程接口(API)以允许第三方供应商写入基于数据库存储系统100的应用。在实施例中,接口管理器330提供如下web服务,这些服务允许web应用访问数据库存储系统100中可用的信息。例如,数据库存储系统可以是云计算环境的部分。第三方供应商可以使用web服务以实施基于VDB的各种工作流场景(例如,这里描述的各种工作流场景)。这允许基于VDB的工作流场景的自动化。
系统配置管理器315允许使用管理系统140的数据库管理员来设置或者改变数据库存储系统100的配置。例如,当初始或者在后期阶段设置数据库存储系统时,系统配置管理器315允许数据库管理员用户或者代理指定待连接到的生产数据库系统110和虚拟数据库系统130。系统配置管理器315还允许具有适当角色和特权的用户设置如下策略,这些策略指定时间点拷贝管理器310用来取回生产数据库系统110中的数据库的PIT拷贝的时间表以及事务日志管理器320从生产数据库系统110取回对在线事务日志的更新的频率和时间。在实施例中,时间表可以指定PIT和日志取回动作的频率和在当天期间的时间,或者它可以是指定相同动作何时应当发生的日历日的周期性时间表。
在实施例中,策略可以由数据库管理员限定并且存储于系统配置管理器315中以用于与从生产数据库系统110加载时间点拷贝、从生产数据库系统110加载事务日志、从数据库存储系统100清除信息(该信息包括数据库的时间点拷贝和事务日志信息)以及供给虚拟数据库系统相关联的各种操作。策略指定用于执行具体操作的规则。例如,策略可以指定将基于预定时间表执行的操作。策略可以基于已经为生产数据库积累的PIT拷贝数目来确定何时清除数据库存储系统100中存储的PIT拷贝。策略可以测量储存器的可用性以确定何时清除信息。例如,如果可用储存器量达到阈值水平以下,则可以清除所选数据库的旧PIT拷贝。策略还可以指定将在清除信息之前被使用的生产数据库的优先级(例如,在清除高优先级数据库信息之前清除低优先级数据库信息)。在特定工作流场景中,策略可以确定何时从生产数据库获得新信息并且基于该新信息自动更新VDB信息以及供给经更新的VDB。
虚拟数据库系统130包括数据库服务器360和VDB系统库380。数据库服务器360在功能上类似于数据库服务器345并且是如下计算机程序,该计算机程序提供用于管理数据存储库350上存储的数据的数据库服务和应用编程接口(API)。数据库服务器360管理的数据可以存储于由数据库存储系统100使用文件共享系统120来共享的存储系统数据存储库390上。VDB系统库380包含用于处理由数据库存储系统100发送的请求的程序代码。在备选配置中,可以在虚拟数据库系统130中包括不同和/或附加模块。
图4示出了数据库存储系统100与生产数据库系统110之间的如下交互,该交互用于制作生产数据库110中的数据库中存储的数据的时间点拷贝。时间点拷贝管理器310向生产数据库系统110的供应商接口模块335发送(405)针对取回与生产数据库系统110的数据库相关联的数据的请求。在实施例中,使用允许在两个联网设备之间交换数据的安全shell或者SSH网络协议来发送请求405。可以响应于来自管理系统140的请求而发送请求405或者可以将请求配置作为周期性调度的动作。例如,数据库存储系统100可以被配置成在每天预定时间向生产数据库系统110发送(405)请求。图4中所示的系统环境不要求在生产数据库系统480上不断执行数据库存储系统100专用的过程。这有益于生产数据库系统480,因为专用于向数据库存储系统100发送信息的过程可能消耗生产系统的极大资源并且可能是不希望的。因此,数据库存储系统无论它何时需要来自生产数据库系统480的信息都发送请求405、450。
生产数据库系统480向时间点拷贝管理器310发送所请求的数据。如果请求405是针对与生产数据库系统110上存储的数据库相关联的数据的第一请求,则生产数据库系统480发送整个数据库的数据作为答复。响应于后续请求405,生产数据库系统480仅发送自从上次响应于先前请求405而发送(430)答复起改变的数据库块的数据。
在实施例中,供应商接口模块335向数据库服务器345发送(410)对收集答复430所需要的信息的请求。供应商接口模块335还加载生产系统库385中可用的程序代码。数据库服务器向数据存储库350发送(415)针对必需数据的请求,并且作为响应420接收所请求的数据。数据库服务器345响应于请求410向供应商接口模块335发送(425)所请求的数据。供应商接口模块335调用(470)生产系统库385以将从数据库服务器接收(425)的数据封装成时间点拷贝管理器310可以处理的格式。生产系统库385向时间点拷贝管理器310发送(430)恰当格式化的请求的数据流。生产系统库385向时间点拷贝管理器310发送(430)由数据库服务器发送(425)的信息。供应商接口模块335与生产系统库385的程序代码结合构建数据流以用于由数据库存储系统100处理。
在其它实施例中,供应商接口模块335与生产系统库385结合从数据存储库350直接获得所需数据,并且向时间点拷贝管理器310发送(430)数据。通常,这些实施例在数据库服务器345确实支持用于提取必需信息的适当API时有益。在这些实施例中,生产系统库385包括用于分析数据存储库350中存储的数据库的文件结构的代码,并且还包括用于处理与数据存储库350中存储的数据库块相关联的元数据,以发现自从先前时间点起改变的数据库块的代码。
答复430是如下数据流,该数据流包括可以在数据存储库350中的多个文件中存储的数据库块。对应于答复430的数据流可以交织与不同数据库块相关联的信息(例如,可以交织从不同文件获得的数据库块)。因此,时间点拷贝管理器310的程序代码处理数据流而未假设在数据流中接收的数据库块的任何特定顺序。这些数据库块也可以属于不同数据库。
图5示出了如下过程的流程图,该流程图图示了处理时间点拷贝管理器310从生产数据库系统110接收到的数据流。时间点拷贝管理器310接收(510)包括自从最后PIT拷贝起改变的块的数据流。时间点拷贝管理器310处理数据流以标识(515)数据流中的数据库块。每个数据库块包括如下元数据,该元数据包含关于数据库块的信息(例如,该块所属的数据库对象、数据库块的大小、从其获得数据库块的文件、文件内存储数据库块的偏移、以及对在生产数据库系统110中的数据库中更新数据库块的顺序进行指定的日志序列号)。
时间点拷贝管理器310分析(520)每个数据库块的元数据,以确定数据库块是否需要存储于存储系统数据存储库390中或者可以将其清除。例如,在数据库块的元数据中的日志序列号可以指示:即使生产系统块385将数据库块与数据流一起发送(430),自从从生产系统库385接收的最后答复430起也仍然从未更新数据库块。因此,块无需存储于存储系统数据存储库390中并且可以被略过。无需存储的数据库块的其它示例包括暂时数据库块、会话专用数据库块和如下空数据库块,这些数据库块没有写入它们中的数据。无需存储的数据库块的另一示例包括对于数据库软件而言无意义或者不可访问的数据库块。另一示例包括已经由数据库软件标记为删除、清空或者无效的数据库块。
在上述实施例中,生产数据库系统480发送(430)的信息包括在数据库存储系统100接收数据流之后清除的非必需块。在其它实施例中,可以清除一些或者全部非必需块而数据流由生产系统库385构建。在这一实施例中,在尺寸上减少生产数据库系统480向数据库存储系统100发送(430)的数据流从而带来在两个系统之间的高效通信。
通过略过无需存储的数据库块以及通过使用对存储的数据库块的压缩,数据库存储系统可以针对对应于相同数据库的数据实现与生产数据库系统相比在数据库文件所需要的储存器方面的明显节省。例如,对应于生产数据库的数据在存储系统数据存储库390中占用的存储空间可以是生产数据库在生产DB数据存储库350中占用的空间的四分之一。注意到,通过第一PIT拷贝获得对应于生产数据库系统的全部信息。后续PIT拷贝仅获得生产DB中的改变的信息并且可以比第一PIT拷贝中包含的信息小得多。
如果时间点拷贝管理器310确定(525)可以略过数据流中的数据库块,则时间点拷贝管理器310继续标识(515)下一数据库块以用于处理。在实施例中,时间点拷贝管理器310使用流元数据中可用的数据库块大小来标识数据流中的数据库块边界。继而相应地处理每个块。
如果时间点拷贝管理器310确定数据流中的数据库块需要存储于数据存储系统数据存储库390中,则时间点拷贝管理器310分析数据库块元数据,以将数据库块(530)映射到数据库文件和在文件内的位置。时间点拷贝管理器310向存储分配管理器365发送(435)对保存(535)数据库块的请求。存储分配管理器365在存储系统数据存储库390中存储与数据库块相关联的适当文件中的数据库块。时间点拷贝管理器310校验(540)是否完全处理数据流。如果在数据流中留有未处理的数据,则时间点拷贝管理器310继续标识下一数据块以用于处理。
如果在不同时间点更新数据库块中的数据,则存储分配管理器365可以在存储系统数据存储库390中保持数据库块的对应于该数据的若干不同版本。数据库块保存于其中的文件包括文件标头(该文件标头包括与文件相关联的元数据)和数据库块序列。每个供应商特有的数据库服务器345将数据库信息组织为数据库服务器345能够处理的文件集。针对数据库使用文件集来组织信息可以是供应商特有的,并且数据库存储系统并入用于在供应商特有的文件组织中组织数据库信息的程序逻辑。时间点拷贝管理器310创建可以类似于数据存储库350中的数据库的文件集的文件集结构。然而,存储系统数据存储库390中的信息可以包括数据库块的多个版本,每个版本对应于在不同时间点的更新的信息。在实施例中,存储分配管理器365以高效方式存储与文件相关联的数据库块,从而只有在针对时间点更新数据库块时制作数据库的拷贝。例如,如果在时间T1、但是未在时间T2更新块B1,而在时间T1和T2这二者更新块B2,则存储系统数据存储库390的数据结构未保持数据库块B1的针对时间T2的拷贝,而它保持数据库块B2的针对时间T2的版本。
图4还图示了事务日志管理器320与生产系统库385的交互。事务日志管理器320取回自从先前时间点起对生产数据库系统110中的数据库中的事务日志做出的递增改变。在实施例中,使用安全外壳(secureshell)或者SSH网络协议来发送请求445。请求445可以标识针对其需要信息的数据库,并且提供对应于接收事务日志信息的先前时间点的时间值。生产系统库385响应于请求445向事务日志管理器320发送(450)请求的信息。如上文描述的那样,供应商接口模块335可以通过调用数据库服务器345的API或者通过与数据存储库350直接交互来获得请求的信息。事务日志管理器320通过向在存储系统数据存储库390中存储(440)信息的存储分配管理器365发送请求460来保存对从生产数据库系统110获得的数据库日志的递增改变。
图6示出了用于从生产数据库系统110向数据库存储系统100拷贝事务日志文件的过程。事务日志管理器320向生产数据库系统110发送(600)用于取回自从从事务日志管理器320接收最后更新起对事务日志的更新的请求。事务日志管理器320从生产数据库系统110接收(610)响应作为数据流。事务日志管理器320分析所接收的数据流以确定(620)事务日志数据需要写入到的日志文件。有可能需要向多个日志文件写入在数据流中接收的数据。事务日志管理器320向适当日志文件写入(630)来自数据流的在线事务日志数据。
在实施例中,事务日志管理器320在日志文件更新之间等待(640)预定时间间隔,并且向生产数据库系统110发送(650)下一请求以校验对事务日志更新的新更新是否可用。如果在这一时间间隔期间对生产数据库未做出更新,则生产数据库系统110相应地通知事务日志管理器320。如果针对这一时间间隔对事务日志的新更新不可用,则事务日志管理器320等待(640)另一时间间隔。如果来自生产数据库系统110的响应指示对事务日志的更新可用,则事务日志管理器320向生产数据库系统110发送(600)针对取回对事务日志的下一更新的下一请求。
与时间点拷贝管理器310制作的时间点拷贝相比,事务日志管理器320可以更频繁得多地获得对事务日志的递增的改变。例如,时间点拷贝管理器可以一天一次地制作生产数据库系统110中存储的数据库的时间点拷贝,而事务日志管理器320可以每五分钟获得对事务日志的递增改变。高频率获得对事务日志的递增改变提供用于重建来自生产数据库系统110的数据库在时间段拷贝管理器310制作时间点拷贝的时间之间的时间点的拷贝的能力。
生产数据库系统110可以以循环方式重用事务日志文件、由此改写先前日志文件。然而,每当数据库存储系统100确定关闭数据当前写入到的日志文件以开始向不同日志文件写入时其创建新日志文件。图7比较生产数据库系统110的日志文件与数据库存储系统100的日志文件。生产数据库系统的日志文件710代表在线事务日志文件。通常分配有限数目的文件以用于存储在线事务日志。例如,图7示出了生产数据库系统110分配的用于存储在线事务日志的三个文件710(a)、710(b)和710(c)。
如图7中所示,箭头730指示生产数据库系统110将事务日志写入到的事务日志文件在给定时间点Ti(假设时间T1、T2、T3单调增加)的改变。例如,在时间T1,生产数据库系统110停止向文件710(a)写入事务日志,并且开始向文件710(b)写入事务日志。类似地,在时间T2,生产数据库系统110停止向文件710(b)写入事务日志,并且开始向文件710(c)写入事务日志。在时间T3,生产数据库系统110停止向文件710(c)写入事务日志,并且决定重用事务日志文件710(a)。在重用事务日志文件之前,生产数据库系统110确保事务日志文件中可用的事务日志应用到适当数据库。在时间T4、T5、T6的日志文件改变类似于上文描述的改变。因此,生产数据库系统可以通常以循环方式使用事务日志文件以重用储存器。
数据库存储系统并不针对日志文件数据使用循环重用策略,因为数据库存储系统基于事务日志保持历史信息持续比日志保留策略确定的更久得多。基于事务日志保持历史信息提供用于为以往时间点创建VDB的能力。只要为了重建对应于以往时间点的数据库快照而必需的事务日志可用,就可以针对以往时间点创建VDB。基于事务日志文件循环使用的策略造成改写更早事务日志。因此,将循环重用策略用于日志文件的数据库系统可以仅针对事务日志尚未被改写的最近时间点来基于事务日志重建数据库快照。
数据库存储系统100中存储的日志文件720是保留的日志文件。箭头740代表从生产数据库系统110的事务日志文件710向数据库存储系统100的保留的日志文件720传送信息。每个箭头740可以对应于从事务日志管理器320向生产数据库系统110发送的若干请求445,以及生产数据库系统110发送(450)的、由事务日志管理器320处理和存储的若干响应。
例如,箭头740(a)指示在时间区间T1至T2期间从日志文件710(a)向720(a)拷贝信息。在时间T2,生产数据库系统开始向文件710(b)写入事务日志。数据库存储系统创建新日志文件720(b),并且箭头740(b)指示从文件710(b)向日志文件720(b)传送事务日志信息。上述过程继续,但是在时间T3,即使生产数据库系统重用日志文件710(a),数据库存储系统也仍然创建新日志文件720(b)。箭头740(d)指示向日志文件720(d)拷贝事务日志信息。因而,可以在不同时间向数据库存储系统100中的多个日志文件拷贝来自生产数据库系统110的相同事务日志文件的事务日志信息。例如,在T0与T1之间向日志文件720(a)、在T3与T4之间向日志文件720(d)以及在时间T6与T7之间向日志文件720(g)拷贝事务日志文件710(a)中的信息。数据库存储系统100避免重用日志文件以保持事务日志信息持续尽可能如日志保留策略确定的那样久。这允许用户重建数据库在事务日志信息可用的先前时间点的快照。
图8图示了数据库存储系统390在不同时间点从存储系统数据存储库390中存储的各种生产数据库系统110获得的信息。图8示出了与从生产数据库系统110获得的两个数据库DB1和DB2有关的信息。信息850对应于为数据库DB1获得的数据,而信息860对应于为数据库DB2获得的数据。信息850或者860包括数据库块集和事务日志集。信息850(a)代表从生产数据库系统110获得的数据库DB1的第一PIT拷贝。信息850(b)代表自从第一PIT拷贝起数据库DB1的第一事务日志更新,并且信息850(c)代表自从第一PIT拷贝起数据库DB1的第二事务日志更新。信息850(d)代表数据库DB1的第二PIT拷贝。信息850(d)仅存储数据库DB1中自从制作第一PIT拷贝起改变的数据库块。信息850(e)代表自从第二PIT拷贝起数据库DB1的第一事务日志更新。类似地,信息860对应于数据库DB2。在信息850旁边指示的时间Ti对应于在结构中拷贝该信息的时间。对于PIT拷贝管理器310制作的PIT拷贝(无日志更新(例如,850(a)或者850(d))),时间Ti代表在制作PIT拷贝之前对数据库块做出的最后更新的时间。对于与日志更新对应的信息(例如,850(b)、850(c)或者850(e)),时间Ti代表存储的对应事务日志集中的最后事务日志的时间。
图8中所示箭头810代表由虚拟数据库管理器375执行的如下步骤,该步骤基于信息850创建代表数据库的读/写拷贝的文件。箭头830代表以下步骤,该步骤经由文件共享系统120使文件870对虚拟数据库系统130可用。图9是用于创建虚拟数据库的过程的流程图。虚拟数据库管理器375接收(905)对为虚拟数据库系统130创建虚拟数据库的请求。可以从管理系统140接收对创建VDB的请求。对创建VDB的请求可以包括生产数据库系统110和需要变得可用作VDB的对应的数据库、需要为其创建VDB的虚拟数据库系统130以及需要为其创建数据库快照作为VDB的以往时间点Tn的细节。
虚拟数据库管理器375标识(910)与时间Tj相关联的最近PIT拷贝以使得Tj<Tn。虚拟数据库管理器375还针对从Tj到Tn的时间段标识(915)日志文件更新的部分。通过制作标识的PIT拷贝中的数据块和日志文件的适当部分的存储高效拷贝来创建(920)读/写文件结构870。适当事务日志可以应用于基于PIT拷贝创建的VDB,以便针对在制作PIT拷贝之后出现的时间点创建源数据库的快照。因而,即使可以定期(例如,每天)制作PIT拷贝,也仍然可以通过将事务日志适当应用于先前PIT拷贝来为任何时间点创建VDB。例如,可以已经在特定日期的午夜从生产数据库制作PIT拷贝。然而,即使在该天期间的特定时间(例如,上午10:25)没有制作任何PIT拷贝,也可以基于生产数据库在该特定时间的状态创建VDB。从事务日志获得生产数据库从午夜到特定时间的改变。
这里进一步描述制作文件结构的存储高效拷贝的机制。虚拟数据库管理器375向相关联的虚拟数据库系统130发送(935)(由图8中的箭头830所示)指向读/写文件结构的句柄。在一些实施例中,虚拟数据库管理器375通过向文件共享管理器370发送请求来使文件结构可用于虚拟数据库系统130。文件共享管理器370作为响应而使用文件共享系统120来与虚拟数据库系统130共享适当文件。虚拟数据库管理器375还向虚拟数据库系统130发送(930)对通过将适当保留的日志应用于数据库块来执行新虚拟数据库的恢复930的请求。在一些实施例中,数据库在数据库服务器在虚拟数据库系统130中启动时自动执行数据库的恢复。
图10指示如何制作存储高效拷贝以创建代表VDB的读/写文件结构。如图10中所示,结构1010代表与生产数据库系统110上的数据库对应的文件。文件Fi和Gi分别代表文件1010中存储的数据库块(Fi指代F1、F2、F3、…,并且类似地,Gi指代G1、G2、G3、…)。箭头1015代表在不同时间点Ti制作PIT拷贝的过程。在时间T0制作的第一PIT拷贝1030需要拷贝数据块的所有必需数据库块。例如,F1i代表块Fi的拷贝,并且块G1i代表块Gi的拷贝。在时间T1制作的PIT拷贝1035仅拷贝自从最后PIT拷贝起改变的块并且可以拷贝与第一PIT拷贝相比的少得多的数据。类似地,在时间T2制作另一PIT拷贝1040从拷贝自从先前PIT拷贝1035起改变的数据库块。
假设PIT拷贝1040是针对图10中所示配置而制作的最后PIT拷贝,为时间点T2创建VDB文件结构1050。当创建结构1050时,块V11、V12、…、V25可以实施为如下指针,这些指针指向存储数据的实际数据库块。例如,V11代表块F1中的信息,并且由于在时间T1和T2制作的拷贝期间从未更新块F1,所以V11指向F11。V12代表块F2中的信息,并且由于在时间T1更新了F2,所以V12指向块F22。类似地,V13对应于在时间T2更新的块F3并且指向块F33。
图11图示了为时间点T1创建的文件结构1150。注意到,对应于块F3的U13指向F13,因为针对时间点T1从未更新块F3。U14还指向对应于在时间T1拷贝的块F4的块F24。1150中的结构均不指向PIT拷贝1040,因为在时间点T1之后制作PIT拷贝1040。
图12图示了为不同VDB创建的文件结构如何可以共享存储系统数据存储库390上存储的数据库块。图12示出了对应于如图10和图11中所示为VDB创建的生产系统数据库110的文件1005的文件结构。如图12中所示,文件结构C50的块V13和V14指向未与用于时间T1的VDB文件1150共享的块F33和F34的最新拷贝。然而,在T2的VDB文件1050的块V11与在T1的VDB文件1150的块U11共享块F11。类似地,1050的块V12与1150的块U12共享数据库块F22。跨多个VDB共享块带来了高效利用存储系统数据存储库390中存储的数据。在VDB之一尝试向共享数据库块写入的情况下,为尝试写入的VDB制作共享的数据库块的拷贝。共享数据库块的剩余VDB继续共享原数据库块。因而,对拷贝的数据库块的任何改变对于剩余VDB而言不可见,因为改变是特定于向数据库数据库写入的VDB的。
VDB可以使用另一VDB的时间点拷贝作为源来创建。例如,假设创建并且向虚拟数据库系统130供给VDB1。当虚拟数据库系统130向数据库块第一次写入时拷贝与VDB相关联的数据库块。还基于预定义时间表制作VDB1的时间点拷贝。这允许用户基于VDB1的时间点拷贝创建第二虚拟数据库VDB2。也存储VDB1的事务日志从而允许用户基于VDB1的可以在VDB1的时间点拷贝之间的任何先前状态创建第二虚拟数据库VDB2。
图13还图示了对应于用于在T2之前出现的时间点T1+t2的数据库快照的在VDB文件结构1350中的日志文件并入。如图13中所示,事务日志管理器320在时间T1+t1拷贝日志文件数据L1并且在时间T1+t2拷贝日志文件数据L2。未示出向数据库存储系统拷贝生产数据库系统110中写入的附加日志数据L3并且可以在时间T1+t2之后的时间拷贝该日志数据。为VDB创建的文件结构1350包括指向如下适当日志文件数据的结构VL11,该日志文件数据代表在时间T1与T1+t2之间拷贝的日志信息(由L1和L2代表)。当在虚拟数据库系统130的数据库服务器启动时,可以使用数据库恢复过程将结构V11指向的日志应用于数据库块1035。
由于图10中所示结构1050、图11中所示结构1150或者图13中所示结构1350为读/写结构,所以允许虚拟数据库系统130从这些结构读取以及向它们写入。当虚拟数据库系统130向块Vij写入时,为数据库分配空间并且向分配的空间拷贝对应数据库块的数据。例如,如果虚拟数据库系统130向块V11写入,则分配空间并且向分配的块拷贝块F11。因此,维持块F11的原拷贝作为只读拷贝并且允许虚拟数据库系统130向适当数据库的具体为虚拟数据库系统130创建的拷贝写入。这可以视为如下惰性(lazy)机制,该惰性机制只有当对应虚拟数据库系统130向数据库写入才创建拷贝数据库块的数据库拷贝。由于虚拟数据库系统130写入到的块数目可以是与VDB相关联的块总数的小部分,所以上述结构以高度存储高效方式存储与VDB相关联的数据。虚拟数据库系统130未写入到的数据库块可以由若干虚拟数据库系统共享而不针对具体虚拟数据库系统130拷贝该数据库块。
VDB操作
图14图示了用于对数据库或者对依赖于数据库的应用做出改变的工作流中的数据库的生命周期的示例。如图14中所示,可以出于若干目的(包括开发、调试、测试、质量保证、认证、训练和分段传输)制作生产数据库1405的拷贝。常规手段制作大型数据库的拷贝可能是缓慢过程。另外,在不同机器上运行数据库的不同拷贝造成硬件的低效使用。可以通过创建虚拟数据库而不是制作数据库的物理拷贝来简化与数据库相关联的各种过程流程场景并且使这些场景高度高效。可以在数据库存储系统100中存储多个虚拟数据库并且可以高效利用系统的可用资源。
在基于VDB的工作流场景中执行的步骤可以明显不同于针对使用常规系统的相同工作流场景而执行的操作。这些步骤可以由数据库存储系统100的数据库管理员执行或者使用脚本来自动执行。下文描述与虚拟数据库相关联的各种操作。
链接操作向数据库存储系统100的系统配置管理器315提供用于访问生产数据库系统110上的数据库而必需的信息。用于访问数据库而必需的信息使数据库存储系统100能够从生产数据库系统110取回数据。信息可以包括数据库的名称、托管数据库的生产数据库系统110的网络地址和访问控制信息。作为链接操作的部分,数据库存储系统可以与生产数据库系统110通信以验证数据库的信息。数据库存储系统100可以从生产数据库系统110中的链接的数据库取回数据库块并且将其存储在存储系统数据存储库390中。存储系统数据存储库390中存储的数据库块可以用来创建虚拟数据库。在一些实施例中,链接可以指定仅需拷贝源数据库的部分而不是整个源数据库。例如,在关系数据库中,源数据库的部分可以是表空间、一个或者多个表的集合、表子集或者表子集的集合。在一个实施例中,用户可以指定用于计算数据库的部分的脚本。
加载操作从生产数据库系统110的数据库取回数据以用于存储于数据库存储系统100中。数据库需要在可以加载数据库之前链接到数据库存储系统100。如果加载操作第一次取回数据库的数据,则取回数据库中可用的全部数据。因而,第一次加载操作可能缓慢,并且根据数据库的尺寸和基于现有技术的硬件的网络带宽可以需要若干小时或者天。后续加载操作可能需要明显更少时间,因为它们仅取回数据库自从先前加载操作起的改变。定期执行加载操作以持续不断地获得对数据库的改变。加载操作可以获得数据库的数据库块和/或代表自从先前时间点起对数据库的更新的事务日志。加载操作所需要的输入包括标识先前链接的数据库的信息。如果在链接时仅指定源数据库的部分,则将仅加载该部分。
加载操作还可以递增地更新VDB中可用的信息。可以定期更新数据库存储系统100从生产数据库系统110获得的信息。在更新数据库存储系统中可用的、从生产数据库系统110获得的信息时,还可以更新向虚拟数据库系统130供给的信息。有可能由虚拟数据库系统130更新VDB中的数据。在这一情况下,递增加载标识由虚拟数据库系统130做出的更新并且比较它们与从生产数据库系统110取回的改变。如果在两个更新集中不存在冲突,则加载操作可以通过将生产数据库系统110的改变应用于VDB来继续。如果存在冲突,则可以向数据库管理员呈现冲突的报告并且请求来自数据库管理员的输入以帮助化解冲突。在一个实施例中,通过标识受来自两个源的更新影响的数据库块来检测在两个更新之间的冲突。如果在两个更新集的数据库块之间不存在重叠,则数据库存储系统100确定不存在冲突。如果在链接时仅指定源数据库的部分,则将仅加载对该部分的改变。
供给操作在数据库存储系统100中创建虚拟数据库并且使它对虚拟数据库系统130可用。可以基于源数据库的时间点拷贝或者另一虚拟数据库的时间点拷贝来创建虚拟数据库。可以针对VDB创建一个或者多个读/写文件并且使用文件共享系统120来与虚拟数据库系统130共享该文件。读/写文件包括如下结构,这些结构指向存储系统数据存储库390中存储的数据库块。供给操作所需要的输入包括标识先前链接和加载的数据库或者现有VDB的信息、对应于数据库的所需状态的先前时间点和标识为其供给虚拟数据库的虚拟数据库系统130的信息。在一些实施例中,可以供给VDB的部分。类似地,可以一起供给来自不同VDB的部分以形成新VDB。在其它实施例中,可以使用专用协调方案来一起供给若干VDB作为组。这些面向组的供给可以涉及供给或者协调对应用逻辑的供给或者配置。
书签设定操作标记一个或者多个虚拟数据库中的应用有效时间点。所得“书签”可以用来指引供给操作。通常该操作由用户或者外部程序通过管理系统140触发。数据库存储系统100在作为结果的“书签”存储于数据库存储系统100中时返回令牌。以后,用户或者外部程序可以使用返回的令牌向相同应用有效时间点供给VDB或者VDB组。例如,外部程序可以希望在某一状态中(诸如恰好在大规模批处理运行之后)捕获生产数据库。用户可以经由管理系统140调用书签设定操作并且保存返回的令牌。以后,用户可以通过供应保存的令牌向相同状态供给VDB。在一些实施例中,令牌处于串的形式。
刷新操作对应于数据库存储系统100基于来自源数据库系统110的最新信息定期更新VDB。例如,VDB可以用于如下报告系统,该系统生成报告以供用户查看。刷新操作自动从生产数据库系统110定期(例如,每天)加载最新信息。关闭被刷新的VDB。用生产数据库系统110的最新时间点拷贝更新VDB并且重启VDB。因而,对应的虚拟数据库系统130的用户看到基于生产数据库系统110中的数据的最新时间点拷贝的最新报告。在实施例中,还可以基于在从生产数据库系统110获得的时间点拷贝之间获得的事务日志刷新VDB。刷新操作所需要的输入包括标识待刷新的VDB的信息和用于刷新数据的时间表。
前记操作对应于在执行另一数据库存储系统100的操作之前执行如下专用指令,这些指令执行具体任务。例如,可以在供给VDB或者从生产数据库服务器110加载数据库之前执行前记操作。数据库可以与如下应用一起使用,这些应用需要在数据库外存储的专用数据。当刷新或者加载数据库时,可以执行前记操作以向数据库存储系统100加载应用专用数据。向前记操作的输入可以包括如下可执行脚本,该脚本指定待执行的操作和数据库存储系统100的操作(在该操作之前执行前记操作)的细节。
后记操作对应于在执行数据库存储系统100的操作之后执行如下专用指令,这些指令执行具体任务。例如,可以在向虚拟数据库系统130供给VDB之后执行前记操作。可以通过使用测试或者开发虚拟数据库系统130运行相似应用来执行使用在生产数据库系统110中的数据库测试和开发应用。在这一场景中,可能需要向运行对应的应用的虚拟数据库系统130进一步拷贝由前记操作从生产数据库服务器110拷贝的专用数据。在供给操作之后执行用于从数据库存储系统100拷贝专用数据数据的指令作为后记操作。对后记操作的输入包括指定待执行的操作的可执行脚本和数据库存储系统100的操作(在该操作之后执行后记操作)的细节。
前记和后记操作可以与各种VDB操作相关联。例如,可以在刷新操作之前执行前记操作并且可以在刷新操作之后执行对应的后记操作以允许在刷新操作之前/之后拷贝/安装具体信息。类似地,前记/后记操作可以与包括链接、加载、供给和导出以及其它操作的其它VDB操作相关联。例如,在从源数据库链接或者加载数据期间,前记/后记操作允许通过使用压缩、屏蔽或者去除如下数据来擦除(scrub)数据,该数据包括数据库表的列或者行。前记和后记允许处置(dealwith)与使用源数据库和/或VDB的应用相关联的应用数据。前记和后记允许管理与供给VDB相关联的系统环境问题并且允许在供给VDB之前/之后开始/停止活动。
共享操作对应于向另一用户批准权限以便允许用户访问VDB。在实施例中,共享操作可以包括创建新VDB并且将其供给用于与新用户或者用户集共享的步骤。例如,在测试和开发环境中,在达到使用VDB的特定开发阶段之后,可以与测试用户共享VDB。共享操作所需要的输入可以包括标识待共享的VDB的信息、标识与其共享VDB的用户的信息以及标识向用户批准的权限级别的访问控制信息。
导出操作从一个计算机向另一计算机拷贝数据库中可用的信息。通常向目标计算机拷贝信息用于组装为数据库。阶段操作对应于向分段传输服务器拷贝数据库信息的导出操作。分段传输服务器通常用于在声场环境中使用对数据库或者对数据库应用做出的改变之前执行数据库的系统级测试。对导出操作的输入包括标识待导出的VDB的信息和标识目标机器(需要向该机器导出来自VDB的数据)的信息。
屏蔽操作对应于在拷贝数据库省略的具体信息时变更或者略过数据库中的信息。例如,当制作数据库的拷贝时,可以未向目标拷贝源中的敏感性信息。另一示例是当供给数据库时加扰数据。敏感信息的示例包括信用卡信息或者社会安全号码。其中数据库信息被屏蔽的示例场景包括出于测试目的而屏蔽生产数据库的拷贝。数据库的、使用VDB来执行测试的用户可以无需生产数据库系统110中存储的敏感信息。可以变换从源数据库拷贝的数据的其它操作包括压缩和加密。压缩操作通过保留原信息、但是转换数据的格式来变换数据,从而使得它在被存储时占用更少空间。加密操作将数据变换成如下应用不能读取的格式,这些应用具有用于对加密信息进行解码的逻辑。对屏蔽、压缩或者加密操作的输入包括标识源VDB和目标数据库的信息。目标数据库可以本身为VDB或者可以向常规系统导出数据。
清除操作从VDB删除不需要的信息。通常在信息占用大量空间并且不再被需要时清除它。例如,数据库可以在长时间段内存储与在系统中出现的事件相关联的事件数据。可以从数据库清除不再需要的旧数据或者已经存档的数据。可以在拷贝数据库信息时通过从拷贝操作略过待清除的信息来执行清除操作。清除操作的输入可以包括标识源VDB和目标数据库的信息。目标数据库可以是VDB或者它可以是常规数据库。
提取、变换和加载(ETL)操作指代在数据入仓库项目中执行的典型操作。提取步骤从源取回数据,变换步骤基于某些操作需要来修改数据,而加载操作向目标系统加载数据。ETL操作所需要的输入包括标识源数据库的信息、标识目标数据库的信息和为了变换数据而执行的操作。ETL操作的输入可以包括标识源VDB和目标数据库的信息。目标数据库可以是VDB或者它可以是常规数据库。
复制(replicate)操作从源存储系统中保存的数据向目标存储系统传送改变。复制的数据可以是VDB或者是存储系统数据存储库390中存储的、对应于从一个或者多个生产数据库系统110获得的数据库块的数据。需要为复制操作适当设置源和目标存储系统。用于在源存储系统上复制的程序代码可以定期标识源存储系统中存储的数据的改变并且向目标存储系统发送改变。类似地,目标存储系统上的源代码可以从源存储系统接收改变,并且适当处理它们以并入该改变。可以通过从源存储系统向目标存储系统镜像数据来使用复制以求高可用性。目标存储系统可用于在源存储系统出于某一原因而变得不可用的情况下使用。复制操作的输入可以包括标识源系统和目标系统的信息。
备份操作创建存储系统中可用的数据的拷贝,从而使得存储系统的备份拷贝可以用来在原数据丢失的情况下重建原存储系统的信息。恢复操作恢复备份拷贝中可用的信息并且重建信息。注意到,除非以某一格式保存更新信息,否则原存储系统中的自从创建备份起的任何改变可能丢失。在一些实施例中,备份信息存储于具有可能很慢的取回速度的大型存储系统(例如,带式备份系统)上。
可以定义基于这里定义的概念的其它VDB操作并且将这些操作用于数据中心工作流自动化。也可以通过组合现有VDB操作来创建VDB操作。下文描述基于VDB或者数据库存储系统100的利用上述操作的不同工作流场景。对于每个工作流场景,比较基于常规系统的场景的简述与基于虚拟数据库的场景。
测试和开发工作流
图15图示了用于使用常规数据库的基于生产环境的测试和开发工作流的场景。如图15中所示,生产数据库系统1505包括在生产环境中使用的数据库1500。常规系统测试和开发在生产环境中使用的软件可能需要数据库1500中存储的数据的多个拷贝。如图15中所示,向开发系统1510的数据存储库1515拷贝(1550)数据库1500。可以在开发系统1510上执行开发活动持续某一时间段。向用于执行软件和/或数据库测试的测试系统1520中的数据存储库1525进一步定期拷贝数据存储库1515中的数据库。在测试系统1520中发现的问题可以提供如下反馈1575,该反馈可能需要进一步的开发活动。可以多次充分开发和测试过程。在某一阶段,可以从测试系统1520向用于质量保证(QA)(该质量保证可以包括性能测试、系统集成、认证和用户接受)的质量保证系统1530的数据存储库1535拷贝数据库。基于QA系统1530的反馈1570可能需要使用开发系统1510的进一步开发。可以多次重复开发、测试和QA的整个过程。当执行令人满意的QA测试时,可以向分段传输系统1540的数据存储库1545进一步拷贝数据库。例如,经由升级过程向生产数据库系统1505传播软件或者数据库的最终改变。
图16图示了用于基于虚拟数据库的测试和开发工作流的场景。由于使用虚拟数据库而消除若干如下步骤,这些步骤需要图15中描述的工作流制作的数据库拷贝。向数据库存储系统100链接和加载1665来自生产数据库系统1505的数据库1500。向开发系统1610供给(1640)对应于数据库1500的虚拟数据库。可以基于时间表多次刷新(1670)为开发系统1610创建的虚拟数据库。当对VDB的开发活动达到特定阶段时,与测试系统1615共享VDB、由此向测试系统1615的用户提供适当访问权。与测试VDB共享开发VDB可以涉及基于开发VDB的时间点拷贝创建测试VDB。测试系统1615提供的反馈1575可能需要重复的供给1640、刷新1670和共享1645操作。当开发和测试达到特定阶段时,进一步与QA系统1630共享(1650)并且在数据存储库1635中存储VDB。与QA系统共享测试或者开发VDB可能需要基于对应的测试/开发VDB的时间点拷贝创建QAVDB。备选地,向QA系统导出开发VDB,还可以向分段传输系统1640的数据存储库1645直接分段传输(1655)VDB。
在一些组织中,可以按照不同物理位置执行在工作流程中涉及的不同活动。例如,生产服务器可以位于组织的一个地点,而可以在组织的另一地点执行开发和测试。执行开发和测试的其它地点可以在境外,从而造成在两个地点之间的慢速网络通信。在这一场景中,图15中所示的开发系统1510和测试系统1520可以在一个地点可用,而包括生产系统1500、QA系统1530和分段传输系统1540的剩余系统在不同地点可用。
图17示出了用于这一场景的在各种系统之间的交互。如图17中所示,地点命名为第一地点1765和第二地点1760。数据库存储系统1715在第一地点1765可用,而第二数据存储系统1705在第二地点1760可用。向在第一地点1765的数据库存储系统1715链接和加载(1775)生产数据库系统1505中存储的数据库。从数据库存储系统1715向数据库存储系统1705复制(1725)对应于数据库的数据。复制操作1725也可以与包括屏蔽、清除、压缩和加密的其它操作组合。可能必须屏蔽和清除信息,因为开发/测试可能在境外并且在第二地点1760的用户可能无权访问生产数据库中可用的具体信息。也可以压缩信息以减少为了通过网络传送而需要的时间并且加密信息以避免数据被窃。如必需的那样为开发系统1610供给(1740)和刷新(1770)数据库并且与测试系统1615共享(1745)数据库。可以向数据库存储系统1715传播回由于测试和开发而对存储系统数据存储库1710中存储的数据库做出的改变并且在存储系统数据存储库1720中存储这些改变。可以经由可以与压缩和加密组合的复制(1730)操作执行这些改变的传播。向QA系统1630导出(1750)和/或向分段传输系统1640导出(1755)数据库存储系统1715中的更新的数据库。
备份和恢复
图18(a)图示了用于数据库备份和恢复的场景。可以在企业中存在向备份系统1815的数据存储库1820拷贝(1825)的多个数据库系统1810。备份系统1815可以在持久存储器(例如,大型盘存储单元)中存储备份数据和/或使用带备份单元。在常规系统中,操作拷贝1825对应于拷贝数据库1810中的数据库块或者向一个或者多个文件导出数据库1810中的数据、向备份系统1815拷贝待存储于数据存储库1820中的文件。一些数据库系统1810可以存储系统上的也需要备份的数据库的快照。数据库系统1810可以使用另一数据库系统来镜像数据库并且同步镜像的数据库的改变与原数据库1810。可能需要向备份系统1815中备份镜像数据库。在一些系统中,附加备用数据库可以与数据库1810一起用来保护数据免于故障和灾难。也可以使用备份系统1815来备份备用数据库。帮助数据库备份的供应商特有实用程序的示例是用于与ORACLE数据库一起使用的RMAN。
图18(b)图示了用于使用数据库存储系统1890来恢复数据库从而取代对传统备份和恢复的需要的场景。在这一实施例中,数据库存储系统1890本身充当用于数据库系统1865中的数据库1860的拷贝的储存器。链接和加载操作1830回避拷贝操作1825。使用由数据库存储系统1890支持的链接和加载操作的优点在于它从数据库1860向数据库存储系统1890传送与完全和递增备份相比的数量小得多的数据。另外,使用链接和加载(1830)操作来执行的数据库1860的后续更新仅不断地传送在数据库1860中出现的改变而无需重复完全加载。因而,从数据库1860向存储系统数据存储库1840传送的数据量比在备份解决方案中明显更小。因此,存储系统数据存储库1840中的数据占用少得多的存储空间,并且从数据库1860向存储系统数据存储库1840传送数据需要少得多的时间。
在另一实施例中,使用备份系统1845来备份(1855)存储系统数据存储库1840中可用的数据。备份操作1855可以起初拷贝存储系统数据存储库1840中可用的全部数据并且后续拷贝(1855)存储系统数据存储库1840中存储的数据的递增改变。存储系统数据存储库1840中存储的数据量可以明显少于备份系统1815的数据存储库1820存储的数据量,因为在存储系统数据存储库1840中仅存储对数据库1860做出的改变。因此,尤其在从源数据库需要的加载和时间方面,为了向存储系统数据存储库1840链接/加载数据库1860中的数据而需要的时间与为了备份(1855)存储系统数据存储库1840的数据而需要的时间合计可以明显小于大型企业中的备份操作1825所花费的时间。
维护数据库复本(replica)
在若干工作流场景中,向目标数据库定期拷贝源数据库中的信息。例如,可以从源数据库向用于在源数据库在灾难中受损的情况下恢复信息(该过程称为灾难恢复)的目标数据库拷贝信息。也可以向一个或者多个数据库拷贝信息以增加数据对用户的可用性。例如,如果源数据库为了维护或者出于其它原因而停用,则可以使目标数据库可用于其他用户。在一些使用场景中,从源数据库向用于报告目的的目标数据库拷贝信息。在生产数据库系统上执行报告可能在数据库上引起明显负荷。由于生产数据库系统用于事务处理,所以优选的是将与生产数据库系统上的数据库同步的不同服务器用于生成报告。频繁更新目标数据库以使用报告基础设施来提供最新报告。需要从源数据库向目标数据库拷贝信息的另一场景是从一个机器向另一机器迁移数据库。当企业将软件升级至更新版本(例如,升级至操作系统的更加新的版本、数据库管理系统的更加新的版本、应用程序的更加新的版本或者升级至新硬件)时可能需要迁移数据库。也可能需要从一个物理位置到另一物理位置(例如,当公司被另一公司收购时)迁移数据库。
图19图示了用于从一个或者多个源数据库系统1905向目标数据库系统1905拷贝信息的系统环境。图19图示了从源数据库系统1905中的源数据存储库1935向目标数据库系统1910中的目标数据存储库1940拷贝或者传送(1950)信息。在其它实施例中,可以向多个目标数据存储库1940传送来自一个源数据存储库1935的信息。备选地,可以向单个目标数据存储库1940传送(1950)不止一个源数据存储库1935中的信息。
与拷贝(1950)操作有关的各种参数(包括传送速率、传送频率、所传送的信息类型)可以取决于具体场景。源数据库系统1905和目标数据库1910可以处于不同物理位置(例如,图示为第一地点1955和第二地点1960的在地理上分离的位置)。处于不同物理位置的机器通常具有与处于相同物理位置的机器相比的慢速网络通信。这里描述的实施例适用于处于相同物理位置以及不同位置的源和目标数据库系统。
图20图示了用于实施如图19中所示常规实施的工作流场景的、基于数据库存储系统100中存储的虚拟数据库的系统环境。如图20中所示,向源数据库存储系统2005的存储系统数据存储库2025链接和加载(2020)源数据存储库1935中存储的数据库中的数据。操作2020可以包括为了基于源数据库系统1905中的更新来更新存储系统数据存储库2025中的数据而执行的后续加载操作。向目标数据库存储系统2010的存储系统数据存储库2030发送(2015)源数据库存储系统2005的存储系统数据存储库2025中的数据。操作2015可以是拷贝存储系统数据存储库中的全部信息的拷贝操作、备份操作或者向存储系统数据存储库2030递增地拷贝存储系统数据存储库2025中的更新的复制操作。
在迁移数据库的场景中,操作2015可以拷贝存储系统数据存储库2025中的全部数据。在复制的场景中,可以向存储系统数据存储库2030定期拷贝存储系统数据存储库2025中的改变。可以使用刷新操作将对存储系统数据存储库2030的改变应用于向目标数据库系统1910供给的VDB。如果目标数据库系统1910对VDB做出任何改变,则可以向存储系统数据存储库2025传播回改变。
操作2030使存储系统数据存储库2030中存储的数据库对目标数据库系统1910可用。在高可用性系统的场景中,操作2030可以对应于从存储系统数据存储库2030向目标数据库系统1910供给VDB。在灾难恢复的场景中,操作2030可以对应于向目标数据库系统1910导出数据库。如图20中所示,可以存在由源数据库存储系统2005向VDB系统2040供给(2035)的VDB。可以使用目标数据库存储系统2010中的数据来创建等效VDB并且将其供给(2045)给VDB系统2050。对源数据库存储系统2005中的VDB做出的任何改变自动保存于存储系统数据存储库2025中,并且得以通过传送操作2015向目标数据库存储系统2010传播。
在一个实施例中,目标数据库存储系统2010可以在操作2015之前具有图3中所示的所有模块。在另一实施例中,可以提供如下机器以用作目标数据库存储系统2010,该机器不具有图3中所示的数据库存储系统的模块。例如,用户可以提供如下新机器,该机器并未在其上安装所有的必需软件以充当数据库存储系统100。在这一实施例中,操作2015将实施数据库存储系统的模块的程序代码与存储系统数据存储库2025中存储的数据一起向目标机器拷贝。安装和预备向目标机器拷贝的程序代码以用于执行。因而,预备为了用作目标数据库存储系统2010而提供的机器以执行数据库存储系统100的模块。在向存储系统数据存储库2030拷贝与存储系统数据存储库2025中存储的数据库相关联的数据之后,目标数据库存储系统2010可以执行与VDB有关的操作(例如,创建虚拟数据库或者向VDB系统2050供给(2045)虚拟数据库)。
图21图示了用于实施如图19中所示常规实施的工作流场景的、基于数据库存储系统100的系统环境的另一实施例。向数据库存储系统2105中直接链接和加载(2110)源数据库系统1905。如图21中所示,数据库存储系统2105可以在与存储源数据库的地点1955不同的地点1960或者物理位置可用,或者两个系统可以在相同地点可用。向数据库存储系统2105定期加载(2110)对源数据库系统1905的源数据存储库1935的改变。数据库存储系统2105充当源数据存储库1935中的数据库的可以用于灾难恢复的拷贝。可以在数据库存储系统2105中创建虚拟数据库,并且供给虚拟数据库以便可用于VDB系统2150。
在实施例中,还可以在高可用性场景中使用数据库存储系统2105,其中它充当可以在源数据库系统1905停用时使用的备用系统。数据库存储系统2105通过创建VDB并且向VDB系统2150供给(2115)所创建的VDB来充当备用数据库。在源数据库系统1905停用时由源数据库系统1905处理的数据库请求可以由VDB系统2150处理。当源数据库系统1905准备好处理请求时,向源存储系统暴露VDB系统2150对VDB做出的改变。在从VDB系统2150向源数据库系统1935应用改变之后,可以向源数据库系统1905转移回数据库请求。
图22图示了用于实施图19中所示常规实施的工作流场景的、基于数据存储系统的系统环境的另一实施例。在一些企业中,可以存在从源数据库系统1905向目标数据库系统1910复制数据的现有系统。因而,可以不必如图21中所示的直接从源数据库系统1905向数据库存储系统2200链接和加载数据。如图22中所示,可以使用在来自源数据库系统1905的信息被拷贝到的目标数据库系统1910中可用的信息来执行链接加载(2265)操作。从数据库存储系统链接和加载数据可能在源数据库系统1905上造成可以通过从镜像系统(例如,目标数据库系统1910)取回适当信息来避免的负荷。这在向数据库存储系统2200提供必需信息时让源存储系统1905不受扰动。
用于管理数据仓库的工作流
图23图示了用于使用数据库中可用的数据来创建数据仓库和数据集市的系统环境。生产数据库系统2305包含基于数据存储库2330中存储的一个或者多个数据库中的事务的最新信息。可以出于分析目的向操作数据存储库2310的数据存储库2340中吸收(2380)来自一个或者多个生产数据库系统2305的信息。操作数据存储库2310中的数据由提取、变换和加载(ETL)系统2355进一步处理(2385)。向数据仓库系统2315发送(2375)由ETL系统2355处理的数据。ETL系统2355可以暂时存储数据以用于处理。ETL系统2355执行的处理允许数据以特定于数据仓库系统2315的、用于报告和分析操作的具体格式存储于数据仓库系统2315的数据存储库2360中。可以计算(2370)数据存储库2360中存储的数据的子集以用于存储于如下数据集市系统2320的数据存储库2365中,这些数据集市系统用于出于具体目的而分析数据子集。由于数据存储于上文描述的若干系统的数据存储库中,所以可以使用备份系统2325来备份(2350)并且在备份数据存储库2335中存储数据。即使数据可能尚未改变,上述过程也仍然可以维护相同数据在不同系统中的多个拷贝。此外,若干不同计算机系统用于存储数据、由此造成资源的低效利用。
图24图示了用于实施如图23中所示常规实施的工作流场景基于数据库存储系统100的系统环境的实施例。向数据库存储系统2400链接和加载(2450)生产数据库系统2305的数据存储库2330中的数据库。在初始加载操作2450之后,后续加载2450仅传送数据存储库2330中的对应的数据库中已经改变的数据。可以创建和供给(2455)虚拟数据库以用作操作数据存储库2310。ETL系统2355处理(2385)从与操作数据存储库2310相关联的VDB获得的数据,并且向数据仓库系统2315发送(2375)经处理的数据。向数据库存储系统2400链接和加载(2460)数据仓库2315的数据存储库2360中存储的数据。数据库存储系统2400可以创建VDB并且将其供给(2470)以用于由数据集市系统2340使用。包括操作数据存储库2310、ETL系统2355和数据集市系统2320的系统可以无需本地存储对应的数据库,并且可以将存储系统数据存储库2490用于存储数据库。另外,通过向备份系统2325的数据存储库2335备份(2465)存储系统数据存储库2490来实现上述工作流中的备份各种数据库的过程。如在图18中的备份工作流场景中描述的那样,与如图23中所示各种系统执行的个别备份相比,如图24中所示使用数据库存储系统2400来执行的备份可以更高效。存储系统数据存储库2490的备份高效是因为由于存储系统数据存储库2490高效存储数据拷贝,备份的数据量可以明显更少,以及还因为从单个系统传送数据可以比从多个系统传送数据更高效。
计算机器架构
图25是图示了能够从机器可读介质读取指令,并且在处理器(或者控制器)中执行它们的示例机器的部件的框图。具体而言,图25示出了采取如下计算机系统2500这一示例形式的机器的图示表示,在该计算机系统内可以执行用于使机器执行这里讨论的方法中的任何一种或者多种方法的指令2524(例如,软件)。在备选实施例中,机器作为独立设备来操作或者可以连接(例如,联网)到其它机器。在联网部署中,机器可以在服务器-客户端网络环境中以服务器机器或者客户端机器的身份或者在对等(或者分布式)网络环境中作为对等机器操作。
机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板电脑、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、智能电话、web应用、网络路由器、交换机或者桥接器或者是能够执行如下指令2524(顺序或者以别的方式)的任何机器,这些指令指定将由该机器采取的动作。另外,尽管仅图示了单个机器,但是术语“机器”也应当解释为包括如下机器的任何汇集,这些机器单独或者共同执行指令2524以执行这里描述的方法中的一种或者多种方法。
示例计算机系统2500包括配置成经由总线2508相互通信的处理器2502(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、一个或者多个专用集成电路(ASIC)、一个或者多个射频集成电路(RFIC)或者这些处理器的任何组合)、主存储器2504以及静态存储器2506。计算机系统2500还可以包括图形显示单元2510(例如,等离子体显示面板(PDP)、液晶显示器(LCD)、投影仪或者阴极射线管(CRT))。计算机系统2500还可以包括也配置成经由总线2508通信的文字数字输入设备2512(例如,键盘)、光标控制设备2514(例如,鼠标、跟踪球、操纵杆、运动传感器或者其它指点工具)、存储单元2516、信号生成设备2518(例如,扬声器)和网络接口设备2520。
存储单元2516包括如下指令2524(例如,软件)存储于其上的机器可读介质2522,这些指令具体化这里描述的方法或者功能中的任何一种或者多种方法或者功能。指令2524(例如,软件)还可以在其由计算机系统2500执行期间完全或者至少部分地驻留于主存储器2504内或者处理器2502内(例如,处理器的高速缓存存储器内),主存储器2504和处理器2502也构成机器可读介质。可以经由网络接口设备2520通过网络2526发送或者接收指令2524(例如,软件)。
尽管在一个示例实施例中将机器可读介质2522示出为单个介质,但是术语“机器可读介质”应当解释为包括能够存储指令(例如,指令2524)的单个介质或者多个介质(例如,集中式或者分布式数据库或者相关联的高速缓存和服务器)。术语“机器可读介质”还应当解释为包括能够存储如下指令(例如,指令2524)的任何介质,这些指令用于由机器执行并且使机器执行这里公开的方法中的任何一种或者多种方法。术语“机器可读介质”包括但不限于形式为固态存储器、光学介质和磁介质的数据贮存库。
附加配置考虑
在本说明书全文中,多个实例可以实施描述为单个实例的部件、操作或者结构。虽然将一种或者多种方法的个别操作图示和描述为单独操作,但是可以并行执行一个或者多个个别操作并且并不要求按所示顺序执行操作。在示例配置中呈现为单独部件的结构和功能可以实施为组合结构或者部件。类似地,呈现为单个部件的结构和功能可以实施为单独部件。这些和其它变化、修改、添加和改进落入这里的主题内容的范围内。
这里将某些实施例描述为包括逻辑或者多个部件、模块或者机制。模块可以构成软件模块(例如,在机器可读介质中或者在传输信号中体现的代码)或者硬件模块。硬件模块是能够执行某些操作的有形单元并且可以按某一方式来配置或者布置。在示例实施例中,一个或者多个计算机系统(例如,独立计算机系统、客户端计算机系统或者服务器计算机系统)或者计算机系统的一个或者多个硬件模块(例如,处理器或者处理器组)可以由软件(例如,应用程序或者应用程序部分)配置为如下硬件模块,该硬件模块操作以执行如这里描述的某些操作。
在各种实施例中,可以机械地或者电子地实施硬件模块。例如,硬件模块可以包括持久配置(例如,作为专用处理器(诸如现场可编程门阵列(FPGA)或者专用集成电路(ASIC)))成执行某些操作的专用电路或者逻辑。硬件模块还可以包括由软件暂时配置成执行某些操作的可编程逻辑或者电路(例如,作为包含于通用处理器或者其它可编程处理器内)。将理解可以按照成本和时间考虑来驱动用于机械地、在专用和持久配置的电路中或者在暂时配置的电路(例如,由软件配置)中实施硬件模块的决策。
因而术语“硬件模块”应当理解为包含有形实体(即物理上构造、持久配置(例如,硬接线)或者暂时配置(例如,编程)为以某一方式操作或者执行这里描述的某些操作的实体)。如这里所用,“硬件实施的模块”指代硬件模块。考虑其中暂时配置(例如,编程)硬件模块的实施例,无需在任何一个时间实例配置或者实例化每个硬件模块。例如,当硬件模块包括使用软件来配置的通用处理器时,通用处理器可以在不同时间配置为相应不同硬件模块。软件因而可以配置例如处理器以在一个时间实例构成特定硬件模块并且在不同时间实例构成不同硬件模块。
硬件模块可以向其它硬件模块提供信息和从其它硬件模块接收信息。因而描述的硬件模块可以视为连通地耦合。当多个这样的硬件模块同时存在时,可以通过连接硬件模块的信号传输(例如,通过适当电路和总线)实现通信。在其中在不同时间配置或者实例化多个硬件模块的实施例中,可以例如通过在这样的硬件模块有权访问的存储器结构中存储和取回信息来实现在多个硬件模块之间的通信。例如,一个硬件模块可以执行操作并且在它连通地耦合到的存储器设备中存储该操作的输出。又一硬件模块然后可以在以后时间访问存储器设备以取回和处理存储的输出。硬件模块还可以发起与输入或者输出设备的通信,并且可以对资源(例如,信息汇集)操作。
这里描述的示例方法的各种操作可以至少部分地由暂时配置(例如,由软件配置)或者持久配置成执行相关操作的一个或者多个处理器执行。无论暂时还是持久配置,这样的处理器可以构成操作以执行一个或者多个操作或者功能的处理器实施的模块。这里指代的模块在一些示例实施例中可以包括处理器实施的模块。
类似地,这里描述的方法可以至少部分地由处理器实施。例如,方法的至少一些操作可以由一个或者多个处理器或者处理器实施的硬件模块执行。某些操作的执行可以分布于一个或者多个处理器之中(而非仅驻留于单个机器内),但是跨多个机器来部署。在一些示例实施例中,一个或者多个处理器可以位于单个位置(例如,家用环境内、办公室环境内或者作为服务器群),而在其它实施例中,处理器可以跨多个位置分布。
一个或者多个处理器还可以操作以支持在“云计算”环境中作为“作为服务的软件”(SaaS)执行相关操作。例如,至少一些操作可以由计算机组(作为包括处理器的机器的示例)执行,经由网络(例如,因特网)和经由一个或者多个适当接口(例如,应用程序接口(API))可访问这些操作。
某些操作的执行可以分布于一个或者多个处理器之中(而并非仅驻留于单个机器内),但是跨多个机器来部署。在一些示例实施例中,一个或者多个处理器或者处理器实施的模块可以位于单个地理位置(例如,家用环境内、办公室环境或者服务器群内)。在其它示例实施例中,一个或者多个处理器或者处理器实施的模块可以跨多个地理位置分布。
在对机器存储器(例如,计算机存储器)内存储为比特或者二进制数字信号的数据的操作的算法或者符号表示方面呈现该说明书的一些部分。这些算法或者符号表示是由本领域普通技术人员用来向本领域其他技术人员传达他们的工作实质的技术的示例。如这里所用,“算法”是产生所需结果的操作或者相似处理的自一致序列。在该上下文中,算法和操作涉及对物理量的物理操控。通常但是并非必需,这样的数量可以采用能够由机器存储、访问、传送、组合、比较或者操控的电、磁或者光学信号。主要出于普遍用法的原因而使用诸如“数据”、“内容”、“位”、“值”、“要素”、“符号”、“字符”、“项”、“数”、“数值”等字眼来指代这些信号有时是便利的。然而这些字眼仅为便利标记并且将与适当物理量相关联。
除非另有明示,否则这里使用诸如“处理”、“计算”、“运算”、“确定”、“呈现”、“显示”等词汇的讨论可以指代如下机器(例如,计算机)的动作或者过程,该机器操控或者变换在一个或者多个存储器(例如,易失性存储器、非易失性存储器或者其组合)、寄存器或者接收、存储、发送或者显示信息的其它机器部件内表示为物理(例如,电子、磁或者光学)量的数据。
如这里所用,任何对“一个实施例”或者“实施例”的引用都意味着结合该实施例描述的特定要素、特征、结构或者特性包含于至少一个实施例中。在说明书中的各处出现的短语“在一个实施例中”未必都指代相同实施例。
可以使用表达“耦合”和“连接”及其衍生表达来描述一些实施例。应当理解这些术语并非旨在于作为用于彼此的同义词。例如,可以使用术语“连接”来描述一些实施例以指示两个或者更多要素相互直接物理或者电接触。在另一示例中,可以使用术语“耦合”来描述一些实施例以指示两个或者更多要素直接物理或者电接触。然而术语“耦合”也可以意味着两个或者更多要素未相互直接接触、但是仍然相互配合或者交互。实施例在该上下文中不受限制。
如这里所用,术语“包括”、“包含”、“具有”或者其任何其它变化旨在于覆盖非穷举性包括。例如,包括要素列表的过程、方法、物品或者装置未必仅限于那些要素、而是可以包括未明确列举的或者这样的过程、方法、物品或者装置固有的其它要素。另外除非相反明示,否则“或者”指代包括意义的或者而不是穷举意义的或者。例如,通过以下各项中的任一项来满足条件“A或者B”:A为真(或者存在)并且B为假(或者不存在)、A为假(或者不存在)并且B为真(或者存在),以及A和B这二者均为真(或者存在)。
此外,“一个/一种”的用法用来描述这里的实施例的要素和部件。这样做仅为了便利并且给出本发明的一般意义。这一描述应当解读为包括一个或者至少一个,并且单数除非明显的是它另有含义则也包括多个。
在阅读本公开内容时,本领域技术人员将理解用于如下系统和过程的更多附加备选结构和功能设计,该系统和过程用于根据存储管理器中存储的生产数据库的时间点拷贝来创建虚拟数据库。因此尽管已经图示和描述特定实施例和应用,但是将理解所公开的实施例并不限于这里公开的精确构造和部件。可以在这里公开的方法和装置的布置、操作和细节上做出本领域技术人员将清楚的各种修改、改变和变化而不脱离在所附权利要求中限定的精神实质和范围。
Claims (56)
1.一种用于创建虚拟数据库系统的方法,所述方法包括:
接收源数据库的不同时间点拷贝,所述源数据库包括多个数据库块;
在存储系统上存储所述源数据库的多个不同时间点拷贝的数据库块,其中所述存储的数据库块中的至少一些数据库块与所述源数据库的多个时间点拷贝相关联;
创建虚拟数据库的文件集,所述文件集中的每个文件链接到所述存储系统上的、与所述源数据库的时间点拷贝相关联的所述数据库块,其中所述虚拟数据库中的一个或多个数据块与另一虚拟数据库共享;以及
在数据库服务器上装配与所述虚拟数据库相关联的所述文件集,从而允许所述数据库服务器从所述文件集读取和向所述文件集写入。
2.根据权利要求1所述的方法,还包括:
从所述数据库服务器接收针对与所述虚拟数据库相关联的所述文件集中的数据的读取请求;
访问与所述文件集中的文件相关联的至少一个数据库块中的数据;以及
响应于所述读取请求,发送所述数据。
3.根据权利要求1所述的方法,还包括:
发送对接收源数据库的时间点拷贝的请求。
4.根据权利要求1所述的方法,其中所述源数据库是生产数据库的存储级快照。
5.根据权利要求1所述的方法,其中所述源数据库是复制生产数据库的备用数据库。
6.根据权利要求1所述的方法,其中所述虚拟数据库为第一虚拟数据库,并且所述源数据库为第二虚拟数据库。
7.根据权利要求1所述的方法,还包括:
将所述源数据库与用于管理所述源数据库的时间点拷贝的预定策略进行关联。
8.根据权利要求7所述的方法,其中所述预定策略指定用于接收所述源数据库的时间点拷贝的时间表。
9.根据权利要求8所述的方法,其中所述时间表指定用于接收所述源数据库的时间点拷贝的日历日。
10.根据权利要求7所述的方法,其中所述预定策略指定用于在保留时段之后清除所述时间点拷贝的时间表。
11.根据权利要求7所述的方法,其中所述预定策略指定基于所述存储系统上的空间可用性来清除所述时间点拷贝。
12.根据权利要求1所述的方法,其中所述存储系统在虚拟机上运行。
13.根据权利要求1所述的方法,还包括:
向与所述源数据库相关联的生产数据库系统发送程序代码,其中所述程序代码被配置成发送所述源数据库的时间点拷贝。
14.根据权利要求1所述的方法,还包括:
从所述源数据库接收描述事务日志的信息,
其中所述事务日志代表自从接收到先前时间点拷贝起对所述源数据库的改变。
15.根据权利要求1所述的方法,还包括:
从所述源数据库接收描述事务日志的信息,
其中描述事务日志的信息代表自从先前接收到描述事务日志的信息起对所述源数据库的改变。
16.根据权利要求15所述的方法,还包括:
基于预定策略管理与所述源数据库相关联的事务日志。
17.根据权利要求16所述的方法,其中所述预定策略指定用于接收所述源数据库的事务日志的时间表。
18.根据权利要求17所述的方法,其中所述时间表指定用于接收所述源数据库的事务日志的日历日。
19.根据权利要求16所述的方法,其中所述预定策略指定用于在保留时段之后清除所述事务日志的时间表。
20.根据权利要求16所述的方法,其中所述预定策略指定基于所述存储系统上的空间可用性来清除所述事务日志。
21.根据权利要求1所述的方法,其中所述数据库服务器为第一数据库服务器,并且所述源数据库用于第二数据库服务器,并且所述第一数据库的版本不同于所述第二数据库服务器的版本。
22.根据权利要求1所述的方法,其中所述数据库服务器为第一数据库服务器,并且所述源数据库用于第二数据库服务器,并且所述第一数据库服务器在与所述第二数据库服务器在其上运行的操作系统不同的操作系统上运行。
23.根据权利要求1所述的方法,其中所述文件集为第一文件集,所述虚拟数据库为第一虚拟数据库,并且所述数据库服务器为第一数据库服务器,所述方法还包括:
创建第二虚拟数据库的第二文件集,所述第二文件集中的每个文件链接到所述存储系统上的、与所述源数据库的所述时间点拷贝相关联的所述数据库块;以及
在第二数据库服务器上装配与所述第二虚拟数据库相关联的所述第二文件集,从而允许所述第二数据库服务器从所述第二文件集读取和向所述第二文件集写入。
24.根据权利要求23所述的方法,其中与所述第一文件集相关联的所述存储的数据库块中的至少一些数据库块也与所述第二文件集相关联。
25.根据权利要求23所述的方法,还包括:
从所述第一数据库服务器接收对向所述第一虚拟数据库写入数据的请求;以及
标识与和所述第一虚拟数据库相关联的所述第一文件集中的文件相关联的数据库块。
26.根据权利要求1所述的方法,其中所述文件集为第一文件集,所述虚拟数据库为第一虚拟数据库,所述数据库服务器为第一数据库服务器,并且所述时间点拷贝为第一时间点拷贝,所述方法还包括:
创建第二虚拟数据库的第二文件集,所述第二文件集中的每个文件链接到所述存储系统上的、与所述源数据库的第二时间点拷贝相关联的所述数据库块;以及
在第二数据库服务器上装配与所述第二虚拟数据库相关联的所述第二文件集,从而允许所述第二数据库服务器从所述第二文件集读取和向所述第二文件集写入。
27.根据权利要求25所述的方法,其中与所述第一文件集相关联的所述存储的数据库块中的至少一些数据库块也与所述第二文件集相关联,
响应于所述数据库块也与和所述第二虚拟数据库相关联的所述第二文件集相关联,拷贝所述数据库块;以及
将所述拷贝的数据库块与所述文件进行链接,并且向所述拷贝的数据库块写入所述数据。
28.根据权利要求1所述的方法,其中接收时间点拷贝包括接收与所述时间点拷贝对应的数据流,其中每个数据流包括来自与所述源数据库相关联的数据库块的数据。
29.根据权利要求28所述的方法,还包括:
分析接收的所述数据流以标识数据库块;以及
存储所述标识的数据库块。
30.根据权利要求28所述的方法,其中与第一时间点拷贝对应的数据流包括所述源数据库中的、自从接收到先前时间点拷贝起改变的数据库块。
31.根据权利要求28所述的方法,还包括:
分析接收的所述数据流以标识数据库块,以及分析数据库块的元数据以确定所述数据库块的长度以用于处理所述数据流。
32.根据权利要求28所述的方法,还包括:
分析接收的所述数据流以标识数据库块,以及分析数据库块的元数据以确定是否需要存储所述数据库块。
33.根据权利要求28所述的方法,还包括:
分析接收的所述数据流以标识数据库块,以及确定不存储作为暂时数据库块、空数据库块或者自从先前取回所述源数据库的时间点拷贝起未改变的数据库块中的一个的所述数据库块。
34.根据权利要求15所述的方法,还包括:
在分级存储器存储设备中存储描述所述事务日志的所述信息。
35.根据权利要求1所述的方法,其中装配所述文件集独立于存储协议。
36.根据权利要求1所述的方法,还包括:
在所述存储系统上存储之前压缩所述数据库块。
37.根据权利要求1所述的方法,其中所述源数据库为生产数据库的部分。
38.根据权利要求37所述的方法,其中所述生产数据库的所述部分包括表空间。
39.根据权利要求37所述的方法,其中所述生产数据库的所述部分至少包括数据库表。
40.根据权利要求1所述的方法,其中与所述文件集链接的所述数据库块包括所述源数据库的部分。
41.根据权利要求1所述的方法,其中与所述文件集链接的所述数据库块至少包括与所述源数据库相关联的数据库表。
42.根据权利要求1所述的方法,其中所述虚拟数据库是允许访问所有信息的特许虚拟数据库。
43.根据权利要求1所述的方法,其中所述虚拟数据库是允许访问被视为非敏感信息的信息子集的非特许虚拟数据库。
44.根据权利要求43所述的方法,其中所述虚拟数据库是屏蔽了敏感信息的非特许虚拟数据库。
45.根据权利要求1所述的方法,还包括:
将时间点拷贝与书签令牌进行关联;以及
指定所述书签令牌以指定用于在创建虚拟数据库时使用的所述源数据库的所述时间点拷贝。
46.根据权利要求45所述的方法,还包括:
存储所述书签令牌。
47.根据权利要求1所述的方法,还包括:
将所述虚拟数据库与一个或者多个特权进行关联,所述特权指定信息对具有给定特权的用户的可访问性。
48.根据权利要求47所述的方法,其中特权为以下特权之一:
允许策略管理的管理员特权;
允许供给VDB的所有者特权;以及
允许查看与VDB相关联的信息的审计者特权。
49.一种用于创建虚拟数据库的计算机实施的系统,所述系统包括:
时间点拷贝管理器模块,配置成:
接收源数据库的不同时间点拷贝,所述源数据库包括多个数据库块;
存储分配管理器模块,配置成:
在存储系统上存储所述源数据库的多个不同时间点拷贝的数据库块,其中所述存储的数据库块中的至少一些数据库块与所述源数据库的多个时间点拷贝相关联;
虚拟数据库管理器模块,配置成:
创建虚拟数据库的文件集,所述文件集中的每个文件链接到所述存储系统上的、与所述源数据库的时间点拷贝相关联的所述数据库块,其中所述虚拟数据库中的一个或多个数据块与另一虚拟数据库共享;以及
文件共享管理器模块,配置成:
在数据库服务器上装配与所述虚拟数据库相关联的所述文件集,从而允许所述数据库服务器从所述文件集读取和向所述文件集写入。
50.根据权利要求49所述的系统,其中所述虚拟数据库管理器模块还被配置成:
从所述数据库服务器接收针对与所述虚拟数据库相关联的所述文件集中的数据的读取请求;
访问与所述文件集中的文件相关联的至少一个数据库块中的数据;以及
响应于所述读取请求,发送所述数据。
51.根据权利要求49所述的系统,其中所述虚拟数据库是第一虚拟数据库,所述文件集是第一文件集,并且其中所述虚拟数据库管理器模块还被配置成:
从所述数据库服务器接收对向所述第一虚拟数据库写入数据的请求;
标识与和所述第一虚拟数据库相关联的所述第一文件集中的文件相关联的数据库块;
响应于所述数据库块也与和第二虚拟数据库相关联的第二文件集相关联,拷贝所述数据库块;以及
将所述拷贝的数据库块与所述文件进行关联,并且向所述拷贝的数据库块写入所述数据。
52.根据权利要求49所述的系统,其中所述时间点拷贝管理器模块还被配置成:
发送对接收源数据库的时间点拷贝的请求。
53.根据权利要求49所述的系统,其中所述时间点拷贝管理器模块接收包括数据流的时间点拷贝,其中数据流包括来自所述源数据库的数据库块的数据。
54.根据权利要求49所述的系统,其中所述时间点拷贝管理器模块还被配置成:
分析接收的所述数据流以标识待存储的数据库块。
55.根据权利要求49所述的系统,其中所述数据流包括所述源数据库中的、自从接收到先前时间点拷贝起改变的数据库块。
56.一种用于创建虚拟数据库系统的方法,所述方法包括:
接收多个源数据库的时间点拷贝,每个源数据库包括多个数据库块;
在存储系统上存储所述多个源数据库的所述时间点拷贝的数据库块,其中所述存储的数据库块中的至少一些数据库块与来自所述多个源数据库的源数据库的多个时间点拷贝相关联;
创建虚拟数据库的文件集,所述文件集链接到所述存储系统上的、与所述多个源数据库的时间点拷贝相关联的所述数据库块,其中所述虚拟数据库中的一个或多个数据块与另一虚拟数据库共享;以及
在数据库服务器上装配与所述虚拟数据库相关联的所述文件集,从而允许所述数据库服务器从所述文件集读取和向所述文件集写入。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/603,541 US8150808B2 (en) | 2009-10-21 | 2009-10-21 | Virtual database system |
US12/603,541 | 2009-10-21 | ||
PCT/US2010/052960 WO2011049839A1 (en) | 2009-10-21 | 2010-10-15 | Virtual database system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102667711A CN102667711A (zh) | 2012-09-12 |
CN102667711B true CN102667711B (zh) | 2015-12-16 |
Family
ID=43880069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080058431.3A Active CN102667711B (zh) | 2009-10-21 | 2010-10-15 | 虚拟数据库系统 |
Country Status (8)
Country | Link |
---|---|
US (4) | US8150808B2 (zh) |
EP (1) | EP2491485B1 (zh) |
JP (2) | JP5591938B2 (zh) |
KR (1) | KR101617339B1 (zh) |
CN (1) | CN102667711B (zh) |
AU (1) | AU2010310827B2 (zh) |
CA (1) | CA2778415C (zh) |
WO (1) | WO2011049839A1 (zh) |
Families Citing this family (136)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10152692B2 (en) | 2008-12-03 | 2018-12-11 | International Business Machines Corporation | Governing exposing services in a service model |
US8307003B1 (en) | 2009-03-31 | 2012-11-06 | Amazon Technologies, Inc. | Self-service control environment |
US9705888B2 (en) | 2009-03-31 | 2017-07-11 | Amazon Technologies, Inc. | Managing security groups for data instances |
US8713060B2 (en) | 2009-03-31 | 2014-04-29 | Amazon Technologies, Inc. | Control service for relational data management |
US8060792B2 (en) | 2009-03-31 | 2011-11-15 | Amazon Technologies, Inc. | Monitoring and automated recovery of data instances |
US8332365B2 (en) | 2009-03-31 | 2012-12-11 | Amazon Technologies, Inc. | Cloning and recovery of data volumes |
US9207984B2 (en) * | 2009-03-31 | 2015-12-08 | Amazon Technologies, Inc. | Monitoring and automatic scaling of data volumes |
US10120767B2 (en) * | 2009-07-15 | 2018-11-06 | Idera, Inc. | System, method, and computer program product for creating a virtual database |
US9135283B2 (en) | 2009-10-07 | 2015-09-15 | Amazon Technologies, Inc. | Self-service configuration for data environment |
US8150808B2 (en) | 2009-10-21 | 2012-04-03 | Delphix Corp. | Virtual database system |
US8161077B2 (en) | 2009-10-21 | 2012-04-17 | Delphix Corp. | Datacenter workflow automation scenarios using virtual databases |
US8676753B2 (en) | 2009-10-26 | 2014-03-18 | Amazon Technologies, Inc. | Monitoring of replicated data instances |
US8335765B2 (en) * | 2009-10-26 | 2012-12-18 | Amazon Technologies, Inc. | Provisioning and managing replicated data instances |
US8074107B2 (en) | 2009-10-26 | 2011-12-06 | Amazon Technologies, Inc. | Failover and recovery for replicated data instances |
US9110919B2 (en) * | 2009-10-30 | 2015-08-18 | Symantec Corporation | Method for quickly identifying data residing on a volume in a multivolume file system |
US8315977B2 (en) * | 2010-02-22 | 2012-11-20 | Netflix, Inc. | Data synchronization between a data center environment and a cloud computing environment |
US8548944B2 (en) | 2010-07-15 | 2013-10-01 | Delphix Corp. | De-duplication based backup of file systems |
US8769483B2 (en) | 2010-09-15 | 2014-07-01 | International Business Machines Corporation | Automating a governance process of optimizing a portfolio of services in a governed SOA |
US20120066146A1 (en) * | 2010-09-15 | 2012-03-15 | International Business Machines Corporation | Automating A Governance Process Of Investigating Service Reuse In A Governed SOA |
US8380845B2 (en) * | 2010-10-08 | 2013-02-19 | Microsoft Corporation | Providing a monitoring service in a cloud-based computing environment |
US8959219B2 (en) | 2010-10-18 | 2015-02-17 | Microsoft Technology Licensing, Llc | Dynamic rerouting of service requests between service endpoints for web services in a composite service |
US8874787B2 (en) | 2010-10-20 | 2014-10-28 | Microsoft Corporation | Optimized consumption of third-party web services in a composite service |
US20120116840A1 (en) * | 2010-11-10 | 2012-05-10 | Omer Alon | Method and apparatus for marketing management |
US8904126B2 (en) | 2010-11-16 | 2014-12-02 | Actifio, Inc. | System and method for performing a plurality of prescribed data management functions in a manner that reduces redundant access operations to primary storage |
US8402004B2 (en) | 2010-11-16 | 2013-03-19 | Actifio, Inc. | System and method for creating deduplicated copies of data by tracking temporal relationships among copies and by ingesting difference data |
US8417674B2 (en) | 2010-11-16 | 2013-04-09 | Actifio, Inc. | System and method for creating deduplicated copies of data by sending difference data between near-neighbor temporal states |
US9858155B2 (en) | 2010-11-16 | 2018-01-02 | Actifio, Inc. | System and method for managing data with service level agreements that may specify non-uniform copying of data |
US8843489B2 (en) | 2010-11-16 | 2014-09-23 | Actifio, Inc. | System and method for managing deduplicated copies of data using temporal relationships among copies |
US8689181B2 (en) * | 2010-11-23 | 2014-04-01 | Axeda Corporation | Scripting web services |
US8468174B1 (en) * | 2010-11-30 | 2013-06-18 | Jedidiah Yueh | Interfacing with a virtual database system |
US9104803B2 (en) * | 2011-01-03 | 2015-08-11 | Paypal, Inc. | On-demand software test environment generation |
US9053184B2 (en) * | 2011-04-14 | 2015-06-09 | International Business Machines Corporation | On-demand generation of correlated collections of mashable data from distributed, non-homogeneous data sources |
US9137250B2 (en) | 2011-04-29 | 2015-09-15 | Stephen Lesavich | Method and system for electronic content storage and retrieval using galois fields and information entropy on cloud computing networks |
US9361479B2 (en) | 2011-04-29 | 2016-06-07 | Stephen Lesavich | Method and system for electronic content storage and retrieval using Galois fields and geometric shapes on cloud computing networks |
US9569771B2 (en) | 2011-04-29 | 2017-02-14 | Stephen Lesavich | Method and system for storage and retrieval of blockchain blocks using galois fields |
US9037564B2 (en) | 2011-04-29 | 2015-05-19 | Stephen Lesavich | Method and system for electronic content storage and retrieval with galois fields on cloud computing networks |
US8671308B2 (en) | 2011-05-02 | 2014-03-11 | International Business Machines Corporation | Optimizing disaster recovery systems during takeover operations |
US8522068B2 (en) * | 2011-05-02 | 2013-08-27 | International Business Machines Corporation | Coordinated disaster recovery production takeover operations |
US8452723B2 (en) * | 2011-05-05 | 2013-05-28 | Business Objects Software Ltd. | Dataset previews for ETL transforms |
WO2013019869A2 (en) | 2011-08-01 | 2013-02-07 | Actifio, Inc. | Data fingerpringting for copy accuracy assurance |
US8949197B2 (en) | 2011-10-31 | 2015-02-03 | Oracle International Corporation | Virtual full backups |
CN102385628B (zh) * | 2011-11-14 | 2015-05-13 | 北京锐安科技有限公司 | 一种基于jdbc的数据分布式处理方法 |
US8738775B1 (en) | 2011-12-20 | 2014-05-27 | Amazon Technologies, Inc. | Managing resource dependent workflows |
US9152460B1 (en) | 2011-12-20 | 2015-10-06 | Amazon Technologies, Inc. | Management of computing devices processing workflow stages of a resource dependent workflow |
US9152461B1 (en) | 2011-12-20 | 2015-10-06 | Amazon Technologies, Inc. | Management of computing devices processing workflow stages of a resource dependent workflow |
US8788663B1 (en) | 2011-12-20 | 2014-07-22 | Amazon Technologies, Inc. | Managing resource dependent workflows |
US9128761B1 (en) | 2011-12-20 | 2015-09-08 | Amazon Technologies, Inc. | Management of computing devices processing workflow stages of resource dependent workflow |
US9158583B1 (en) | 2011-12-20 | 2015-10-13 | Amazon Technologies, Inc. | Management of computing devices processing workflow stages of a resource dependent workflow |
US8656002B1 (en) | 2011-12-20 | 2014-02-18 | Amazon Technologies, Inc. | Managing resource dependent workflows |
US8856082B2 (en) | 2012-05-23 | 2014-10-07 | International Business Machines Corporation | Policy based population of genealogical archive data |
CA2877284A1 (en) | 2012-06-18 | 2013-12-27 | Actifio, Inc. | Enhanced data management virtualization system |
US10915549B2 (en) * | 2012-09-28 | 2021-02-09 | Oracle International Corporation | Techniques for keeping a copy of a pluggable database up to date with its source pluggable database in read-write mode |
US10635674B2 (en) | 2012-09-28 | 2020-04-28 | Oracle International Corporation | Migrating a pluggable database between database server instances with minimal impact to performance |
US8788461B2 (en) * | 2012-10-04 | 2014-07-22 | Delphix Corp. | Creating validated database snapshots for provisioning virtual databases |
US10346369B2 (en) * | 2012-10-11 | 2019-07-09 | Delphix Corp. | Retrieving point-in-time copies of a source database for creating virtual databases |
US9026553B2 (en) * | 2012-11-29 | 2015-05-05 | Unisys Corporation | Data expanse viewer for database systems |
US9501501B2 (en) * | 2013-03-15 | 2016-11-22 | Amazon Technologies, Inc. | Log record management |
CN103226501B (zh) * | 2013-05-08 | 2015-11-18 | 中国工商银行股份有限公司 | 一种数据库的逻辑备份方法以及逻辑备份系统 |
AU2014265979A1 (en) | 2013-05-14 | 2015-12-10 | Actifio, Inc. | Efficient data replication and garbage collection predictions |
CN104166619B (zh) * | 2013-05-20 | 2017-12-15 | 腾讯科技(深圳)有限公司 | 应用程序的性能测试方法及终端 |
CN104252452B (zh) * | 2013-06-25 | 2019-03-15 | 腾讯科技(深圳)有限公司 | 数据管理的方法及装置 |
US9436556B2 (en) * | 2013-07-09 | 2016-09-06 | Delphix Corp. | Customizable storage system for virtual databases |
KR101693683B1 (ko) * | 2013-07-09 | 2017-01-06 | 델픽스 코퍼레이션 | 가상 데이터베이스 되감기 |
US9747311B2 (en) * | 2013-07-09 | 2017-08-29 | Oracle International Corporation | Solution to generate a scriptset for an automated database migration |
US10108685B2 (en) * | 2013-07-09 | 2018-10-23 | Delphix Corp. | Remote provisioning of virtual databases |
CN103617161A (zh) * | 2013-09-26 | 2014-03-05 | 金蝶软件(中国)有限公司 | 一种针对saas模式的数据存储方法和装置 |
US20150142748A1 (en) | 2013-11-18 | 2015-05-21 | Actifio, Inc. | Computerized methods and apparatus for data cloning |
US9436455B2 (en) * | 2014-01-06 | 2016-09-06 | Apple Inc. | Logging operating system updates of a secure element of an electronic device |
US9483249B2 (en) | 2014-01-06 | 2016-11-01 | Apple Inc. | On-board applet migration |
EP3097481B1 (en) | 2014-01-21 | 2022-11-30 | Oracle International Corporation | System and method for supporting multi-tenancy in an application server, cloud, or other environment |
US9720778B2 (en) | 2014-02-14 | 2017-08-01 | Actifio, Inc. | Local area network free data movement |
US8832027B1 (en) * | 2014-03-28 | 2014-09-09 | Storagecraft Technology Corporation | Change tracking between snapshots of a source storage |
US10037204B2 (en) * | 2014-04-22 | 2018-07-31 | Delphix Corp. | Version control of applications |
US9792187B2 (en) | 2014-05-06 | 2017-10-17 | Actifio, Inc. | Facilitating test failover using a thin provisioned virtual machine created from a snapshot |
US9772916B2 (en) | 2014-06-17 | 2017-09-26 | Actifio, Inc. | Resiliency director |
US9934014B2 (en) | 2014-08-22 | 2018-04-03 | Apple Inc. | Automatic purposed-application creation |
WO2016044403A1 (en) | 2014-09-16 | 2016-03-24 | Mutalik, Madhav | Copy data techniques |
US10379963B2 (en) | 2014-09-16 | 2019-08-13 | Actifio, Inc. | Methods and apparatus for managing a large-scale environment of copy data management appliances |
CN107077382B (zh) * | 2014-09-26 | 2021-07-16 | 甲骨文国际公司 | 在多租户应用服务器环境中进行事务恢复的系统和方法 |
US10445187B2 (en) | 2014-12-12 | 2019-10-15 | Actifio, Inc. | Searching and indexing of backup data sets |
WO2016115135A1 (en) | 2015-01-12 | 2016-07-21 | Xiangdong Zhang | Disk group based backup |
US10083196B2 (en) * | 2015-02-04 | 2018-09-25 | Delphix Corporation | Creating secure virtual databases storing masked data |
US9600193B2 (en) | 2015-02-04 | 2017-03-21 | Delphix Corporation | Replicating snapshots from a source storage system to a target storage system |
CN105991565B (zh) | 2015-02-05 | 2019-01-25 | 阿里巴巴集团控股有限公司 | 读写分离的方法、系统和数据库代理服务器 |
US10255302B1 (en) | 2015-02-27 | 2019-04-09 | Jasmin Cosic | Systems, methods, apparatuses, and/or interfaces for associative management of data and inference of electronic resources |
US9990366B2 (en) | 2015-03-13 | 2018-06-05 | Delphix Corporation | Virtual partitions in virtual databases |
US10884869B2 (en) * | 2015-04-16 | 2021-01-05 | Nuodb, Inc. | Backup and restore in a distributed database utilizing consistent database snapshots |
US9923908B2 (en) * | 2015-04-29 | 2018-03-20 | International Business Machines Corporation | Data protection in a networked computing environment |
US10282201B2 (en) | 2015-04-30 | 2019-05-07 | Actifo, Inc. | Data provisioning techniques |
US10180954B2 (en) | 2015-05-29 | 2019-01-15 | Nuodb, Inc. | Disconnected operation within distributed database systems |
US10691659B2 (en) | 2015-07-01 | 2020-06-23 | Actifio, Inc. | Integrating copy data tokens with source code repositories |
US10613938B2 (en) | 2015-07-01 | 2020-04-07 | Actifio, Inc. | Data virtualization using copy data tokens |
US10558480B2 (en) * | 2015-09-10 | 2020-02-11 | Veritas Technologies Llc | Optimizing access to production data |
CN106557469B (zh) * | 2015-09-24 | 2020-11-20 | 创新先进技术有限公司 | 一种处理数据仓库中数据的方法及装置 |
US10482004B2 (en) * | 2015-10-16 | 2019-11-19 | Successfactors, Inc. | Test data framework |
US11068437B2 (en) | 2015-10-23 | 2021-07-20 | Oracle Interntional Corporation | Periodic snapshots of a pluggable database in a container database |
US10430434B2 (en) | 2016-01-20 | 2019-10-01 | Delphix Corporation | Managing transformed snapshots in a storage system |
WO2017130305A1 (ja) * | 2016-01-27 | 2017-08-03 | 株式会社日立製作所 | コンピュータシステム及びデータ量削減方法 |
US10445298B2 (en) | 2016-05-18 | 2019-10-15 | Actifio, Inc. | Vault to object store |
US10476955B2 (en) | 2016-06-02 | 2019-11-12 | Actifio, Inc. | Streaming and sequential data replication |
US9864933B1 (en) | 2016-08-23 | 2018-01-09 | Jasmin Cosic | Artificially intelligent systems, devices, and methods for learning and/or using visual surrounding for autonomous object operation |
US10241896B2 (en) * | 2016-11-08 | 2019-03-26 | Salesforce, Inc. | Formation and manipulation of test data in a database system |
US10607134B1 (en) | 2016-12-19 | 2020-03-31 | Jasmin Cosic | Artificially intelligent systems, devices, and methods for learning and/or using an avatar's circumstances for autonomous avatar operation |
US10528586B2 (en) * | 2016-12-20 | 2020-01-07 | International Business Machines Corporation | Database process with virtual nodes |
US10171487B2 (en) | 2017-02-15 | 2019-01-01 | International Business Machines Corporation | Generating a virtual database to test data security of a real database |
US10922296B2 (en) * | 2017-03-01 | 2021-02-16 | Sap Se | In-memory row storage durability |
US10855554B2 (en) | 2017-04-28 | 2020-12-01 | Actifio, Inc. | Systems and methods for determining service level agreement compliance |
CN107193910A (zh) * | 2017-05-14 | 2017-09-22 | 四川盛世天成信息技术有限公司 | 一种应用于数据安全类产品的数据库防篡改方法及系统 |
US11157511B2 (en) * | 2017-07-19 | 2021-10-26 | Sap Se | Physical replication of database |
US11386058B2 (en) | 2017-09-29 | 2022-07-12 | Oracle International Corporation | Rule-based autonomous database cloud service framework |
US11403178B2 (en) * | 2017-09-29 | 2022-08-02 | Google Llc | Incremental vault to object store |
US11327932B2 (en) | 2017-09-30 | 2022-05-10 | Oracle International Corporation | Autonomous multitenant database cloud service framework |
US10564637B2 (en) | 2017-10-05 | 2020-02-18 | Honeywell International Inc. | Wireless e-signoff system |
US10402731B1 (en) | 2017-12-15 | 2019-09-03 | Jasmin Cosic | Machine learning for computer generated objects and/or applications |
CN108345651A (zh) * | 2018-01-22 | 2018-07-31 | 广州欧赛斯信息科技有限公司 | 一种实现互联互通的数据虚拟化的数据集成系统和方法 |
US11176001B2 (en) | 2018-06-08 | 2021-11-16 | Google Llc | Automated backup and restore of a disk group |
US11372991B1 (en) | 2018-11-27 | 2022-06-28 | Amazon Technologies, Inc. | Database operational continuity |
US11860743B1 (en) * | 2018-11-27 | 2024-01-02 | Amazon Technologies, Inc. | Database operational compatibility safeguards |
US11086840B2 (en) | 2018-12-07 | 2021-08-10 | Snowflake Inc. | Transactional streaming of change tracking data |
USD886143S1 (en) | 2018-12-14 | 2020-06-02 | Nutanix, Inc. | Display screen or portion thereof with a user interface for database time-machine |
US10817157B2 (en) | 2018-12-20 | 2020-10-27 | Nutanix, Inc. | User interface for database management services |
CN109656929B (zh) * | 2018-12-25 | 2023-06-02 | 四川效率源信息安全技术股份有限公司 | 一种雕复关系型数据库文件的方法及装置 |
US11010336B2 (en) | 2018-12-27 | 2021-05-18 | Nutanix, Inc. | System and method for provisioning databases in a hyperconverged infrastructure system |
US11816066B2 (en) | 2018-12-27 | 2023-11-14 | Nutanix, Inc. | System and method for protecting databases in a hyperconverged infrastructure system |
US11561999B2 (en) * | 2019-01-31 | 2023-01-24 | Rubrik, Inc. | Database recovery time objective optimization with synthetic snapshots |
CN112231324B (zh) * | 2019-06-26 | 2023-03-24 | 金篆信科有限责任公司 | 一种实现增量数据比对的系统及方法 |
CA3169635A1 (en) | 2020-02-04 | 2021-08-12 | Grav1Ty Inc. | Selective synchronization of database objects |
US11604705B2 (en) | 2020-08-14 | 2023-03-14 | Nutanix, Inc. | System and method for cloning as SQL server AG databases in a hyperconverged system |
US11907167B2 (en) | 2020-08-28 | 2024-02-20 | Nutanix, Inc. | Multi-cluster database management services |
US11640340B2 (en) | 2020-10-20 | 2023-05-02 | Nutanix, Inc. | System and method for backing up highly available source databases in a hyperconverged system |
CN112380058A (zh) * | 2020-11-12 | 2021-02-19 | 上海上讯信息技术股份有限公司 | 文件恢复方法及设备 |
US11604806B2 (en) | 2020-12-28 | 2023-03-14 | Nutanix, Inc. | System and method for highly available database service |
US11687564B2 (en) * | 2021-02-24 | 2023-06-27 | Delphix Corp. | Continuous real-time masked database replication |
US11892918B2 (en) | 2021-03-22 | 2024-02-06 | Nutanix, Inc. | System and method for availability group database patching |
US20220398232A1 (en) * | 2021-06-14 | 2022-12-15 | Microsoft Technology Licensing, Llc | Versioned metadata using virtual databases |
US11803368B2 (en) | 2021-10-01 | 2023-10-31 | Nutanix, Inc. | Network learning to control delivery of updates |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473309A (zh) * | 2006-03-20 | 2009-07-01 | 伊姆西公司 | 高效可传递存档器 |
Family Cites Families (115)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4853843A (en) | 1987-12-18 | 1989-08-01 | Tektronix, Inc. | System for merging virtual partitions of a distributed database |
US6970434B1 (en) * | 1995-06-07 | 2005-11-29 | Broadcom Corporation | Hierarchical communication system providing intelligent data, program and processing migration |
US5680618A (en) * | 1993-05-26 | 1997-10-21 | Borland International, Inc. | Driver query and substitution for format independent native data access |
JP3751018B2 (ja) | 1993-06-03 | 2006-03-01 | ネットワーク・アプライアンス・インコーポレイテッド | ライトエニウエアファイルシステムレイアウト |
US5680608A (en) | 1995-02-06 | 1997-10-21 | International Business Machines Corporation | Method and system for avoiding blocking in a data processing system having a sort-merge network |
US5634053A (en) * | 1995-08-29 | 1997-05-27 | Hughes Aircraft Company | Federated information management (FIM) system and method for providing data site filtering and translation for heterogeneous databases |
US5842222A (en) | 1996-10-04 | 1998-11-24 | Taiwan Semiconductor Manufacturing Company, Ltd. | Production information system enhanced for availability |
US6304882B1 (en) | 1998-05-05 | 2001-10-16 | Informix Software, Inc. | Data replication system and method |
JP2000047919A (ja) | 1998-07-30 | 2000-02-18 | Hitachi Ltd | 仮想データベースレプリケーションシステム |
ATE290743T1 (de) | 1998-07-31 | 2005-03-15 | Cit Alcatel | Verfahren, ablauffolgesteuerung, intelligenter pufferspeicher, prozessor und telekommunikationssystem zum verteilen verfügbahrer bandbreite |
US6771595B1 (en) | 1999-08-31 | 2004-08-03 | Intel Corporation | Apparatus and method for dynamic resource allocation in a network environment |
US7197491B1 (en) * | 1999-09-21 | 2007-03-27 | International Business Machines Corporation | Architecture and implementation of a dynamic RMI server configuration hierarchy to support federated search and update across heterogeneous datastores |
US6963910B1 (en) | 2000-03-03 | 2005-11-08 | International Business Machines Corporation | Graphical user interface for creating assets |
US7117259B1 (en) | 2000-03-03 | 2006-10-03 | International Business Machines Corporation | Server time window for multiple selectable servers in a graphical user interface |
US6557012B1 (en) | 2000-04-22 | 2003-04-29 | Oracle Corp | System and method of refreshing and posting data between versions of a database table |
US6523036B1 (en) | 2000-08-01 | 2003-02-18 | Dantz Development Corporation | Internet database system |
US7072916B1 (en) | 2000-08-18 | 2006-07-04 | Network Appliance, Inc. | Instant snapshot |
US7512673B2 (en) * | 2001-01-11 | 2009-03-31 | Attune Systems, Inc. | Rule based aggregation of files and transactions in a switched file system |
US7310653B2 (en) * | 2001-04-02 | 2007-12-18 | Siebel Systems, Inc. | Method, system, and product for maintaining software objects during database upgrade |
US20020143764A1 (en) * | 2001-04-03 | 2002-10-03 | Martin Andrew R. | Data management system and method for intercepting and changing database instructions between a database back end and an application front end |
DE50101548D1 (de) | 2001-05-17 | 2004-04-01 | Presmar Peter | Virtuelle Datenbank heterogener Datenstrukturen |
US6829617B2 (en) | 2002-02-15 | 2004-12-07 | International Business Machines Corporation | Providing a snapshot of a subset of a file system |
US7373364B1 (en) | 2002-03-05 | 2008-05-13 | Network Appliance, Inc. | System and method for creating a point-in-time restoration of a database file |
US7225204B2 (en) | 2002-03-19 | 2007-05-29 | Network Appliance, Inc. | System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping |
US7340489B2 (en) * | 2002-04-10 | 2008-03-04 | Emc Corporation | Virtual storage devices |
JP2003316522A (ja) * | 2002-04-26 | 2003-11-07 | Hitachi Ltd | 計算機システムおよび計算機システムの制御方法 |
US6857001B2 (en) | 2002-06-07 | 2005-02-15 | Network Appliance, Inc. | Multiple concurrent active file systems |
US7107385B2 (en) | 2002-08-09 | 2006-09-12 | Network Appliance, Inc. | Storage virtualization by layering virtual disk objects on a file system |
JP4124331B2 (ja) * | 2002-09-17 | 2008-07-23 | 株式会社日立製作所 | Dbms向け仮想ボリューム作成・管理方法 |
US6981114B1 (en) * | 2002-10-16 | 2005-12-27 | Veritas Operating Corporation | Snapshot reconstruction from an existing snapshot and one or more modification logs |
US7243093B2 (en) * | 2002-11-27 | 2007-07-10 | International Business Machines Corporation | Federated query management |
US6883083B1 (en) | 2002-12-20 | 2005-04-19 | Veritas Operating Corporation | System and method for maintaining and accessing information regarding virtual storage devices |
WO2004064441A1 (en) | 2003-01-14 | 2004-07-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Resource allocation management |
US7809693B2 (en) | 2003-02-10 | 2010-10-05 | Netapp, Inc. | System and method for restoring data on demand for instant volume restoration |
US7457982B2 (en) | 2003-04-11 | 2008-11-25 | Network Appliance, Inc. | Writable virtual disk of read-only snapshot file objects |
WO2004109425A2 (en) | 2003-05-14 | 2004-12-16 | Dharamdas Gautam Goradia | Interactive system for building, organising, and sharing one's own databank of questions and answers in a variety of questioning formats, on any subject in one or more languages |
US7539748B2 (en) | 2003-05-16 | 2009-05-26 | Time Warner Cable, A Division Of Time Warner Entertainment Company, L.P. | Data transfer application monitor and controller |
US7269607B2 (en) * | 2003-09-29 | 2007-09-11 | International Business Machines Coproartion | Method and information technology infrastructure for establishing a log point for automatic recovery of federated databases to a prior point in time |
US7346923B2 (en) * | 2003-11-21 | 2008-03-18 | International Business Machines Corporation | Federated identity management within a distributed portal server |
US7334094B2 (en) | 2004-04-30 | 2008-02-19 | Network Appliance, Inc. | Online clone volume splitting technique |
US7334095B1 (en) | 2004-04-30 | 2008-02-19 | Network Appliance, Inc. | Writable clone of read-only volume |
US7409511B2 (en) | 2004-04-30 | 2008-08-05 | Network Appliance, Inc. | Cloning technique for efficiently creating a copy of a volume in a storage system |
US7953749B2 (en) * | 2004-05-11 | 2011-05-31 | Oracel International Corporation | Providing the timing of the last committed change to a row in a database table |
US7653665B1 (en) * | 2004-09-13 | 2010-01-26 | Microsoft Corporation | Systems and methods for avoiding database anomalies when maintaining constraints and indexes in presence of snapshot isolation |
GB0428108D0 (en) | 2004-12-23 | 2005-01-26 | Ibm | Storage system with multiple copy targeting |
US7363444B2 (en) * | 2005-01-10 | 2008-04-22 | Hewlett-Packard Development Company, L.P. | Method for taking snapshots of data |
US7757056B1 (en) | 2005-03-16 | 2010-07-13 | Netapp, Inc. | System and method for efficiently calculating storage required to split a clone volume |
US7546431B2 (en) * | 2005-03-21 | 2009-06-09 | Emc Corporation | Distributed open writable snapshot copy facility using file migration policies |
US7631021B2 (en) | 2005-03-25 | 2009-12-08 | Netapp, Inc. | Apparatus and method for data replication at an intermediate node |
US7539836B1 (en) | 2005-04-18 | 2009-05-26 | Netapp, Inc. | Method and system for configuring a data storage object |
US9152823B2 (en) | 2005-04-22 | 2015-10-06 | Storagecraft Technology Corporation | Systems, methods, and computer readable media for computer data protection |
US7822758B1 (en) | 2005-04-22 | 2010-10-26 | Network Appliance, Inc. | Method and apparatus for restoring a data set |
CA2613419C (en) | 2005-06-24 | 2014-12-02 | Syncsort Incorporated | System and method for virtualizing backup images |
US20070028187A1 (en) | 2005-08-01 | 2007-02-01 | Goro Katsuyama | Apparatus and method for performing display processing, and computer program product |
US20070260628A1 (en) | 2006-05-02 | 2007-11-08 | Tele Atlas North America, Inc. | System and method for providing a virtual database environment and generating digital map information |
US20080037553A1 (en) | 2005-12-22 | 2008-02-14 | Bellsouth Intellectual Property Corporation | Systems and methods for allocating bandwidth to ports in a computer network |
US7552295B2 (en) * | 2006-01-03 | 2009-06-23 | International Business Machines Corporation | Maintaining consistency when mirroring data using different copy technologies |
JP4822889B2 (ja) * | 2006-03-20 | 2011-11-24 | 富士通株式会社 | データベース統合参照プログラム、データベース統合参照方法及びデータベース統合参照装置 |
US7590660B1 (en) | 2006-03-21 | 2009-09-15 | Network Appliance, Inc. | Method and system for efficient database cloning |
CA2648428C (en) | 2006-04-07 | 2017-11-21 | Data Storage Group | Data compression and storage techniques |
US7653794B2 (en) | 2006-05-08 | 2010-01-26 | Microsoft Corporation | Converting physical machines to virtual machines |
US7809769B2 (en) * | 2006-05-18 | 2010-10-05 | Google Inc. | Database partitioning by virtual partitions |
US7849114B2 (en) * | 2006-06-19 | 2010-12-07 | International Business Machines Corporation | Method, system, and program product for generating a virtual database |
US7921077B2 (en) | 2006-06-29 | 2011-04-05 | Netapp, Inc. | System and method for managing data deduplication of storage systems utilizing persistent consistency point images |
US7587563B1 (en) | 2006-07-11 | 2009-09-08 | Network Appliance, Inc. | Method and system to make a read-only file system appear to be writeable |
US8311988B2 (en) | 2006-08-04 | 2012-11-13 | Apple Inc. | Consistent back up of electronic information |
US7856424B2 (en) | 2006-08-04 | 2010-12-21 | Apple Inc. | User interface for backup management |
US7953704B2 (en) * | 2006-08-18 | 2011-05-31 | Emc Corporation | Systems and methods for a snapshot of data |
US7836267B1 (en) * | 2006-08-30 | 2010-11-16 | Barracuda Networks Inc | Open computer files snapshot |
JP5068062B2 (ja) * | 2006-10-30 | 2012-11-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データベースを統合するためのシステム、方法、およびプログラム |
US7827366B1 (en) | 2006-10-31 | 2010-11-02 | Network Appliance, Inc. | Method and system for providing continuous and long-term data protection for a dataset in a storage system |
US8255915B1 (en) | 2006-10-31 | 2012-08-28 | Hewlett-Packard Development Company, L.P. | Workload management for computer system with container hierarchy and workload-group policies |
US20080104146A1 (en) | 2006-10-31 | 2008-05-01 | Rebit, Inc. | System for automatically shadowing encrypted data and file directory structures for a plurality of network-connected computers using a network-attached memory with single instance storage |
US20080154989A1 (en) | 2006-12-21 | 2008-06-26 | Boxicom, Inc. (Dba 3X Systems) | Data backup system and method associated therewith |
US8935206B2 (en) | 2007-01-31 | 2015-01-13 | Hewlett-Packard Development Company, L.P. | Snapshots in distributed storage systems |
US7792802B1 (en) * | 2007-03-02 | 2010-09-07 | 3Par, Inc. | Archiving logs with snapshots for data recovery |
WO2008121873A1 (en) | 2007-03-29 | 2008-10-09 | Vmware, Inc. | Synchronization and customization of a clone computer |
US7760643B2 (en) | 2007-04-09 | 2010-07-20 | Telcordia Technologies, Inc. | Automatic policy change management scheme for DiffServ-enabled MPLS networks |
US7953946B2 (en) | 2007-04-16 | 2011-05-31 | Microsoft Corporation | Controlled anticipation in creating a shadow copy |
US8775663B1 (en) | 2007-04-25 | 2014-07-08 | Netapp, Inc. | Data replication network traffic compression |
US8010900B2 (en) | 2007-06-08 | 2011-08-30 | Apple Inc. | User interface for electronic backup |
US7669023B2 (en) | 2007-07-10 | 2010-02-23 | Hitachi, Ltd. | Power efficient storage with data de-duplication |
US7949692B2 (en) * | 2007-08-21 | 2011-05-24 | Emc Corporation | Systems and methods for portals into snapshot data |
WO2009032711A1 (en) * | 2007-08-29 | 2009-03-12 | Nirvanix, Inc. | Policy-based file management for a storage delivery network |
US7725440B2 (en) * | 2007-09-26 | 2010-05-25 | Yahoo! Inc. | Restoring a database using fuzzy snapshot techniques |
US20090132616A1 (en) | 2007-10-02 | 2009-05-21 | Richard Winter | Archival backup integration |
US7877357B1 (en) | 2007-10-12 | 2011-01-25 | Netapp, Inc. | Providing a simulated dynamic image of a file system |
US7996636B1 (en) | 2007-11-06 | 2011-08-09 | Netapp, Inc. | Uniquely identifying block context signatures in a storage volume hierarchy |
US8082234B2 (en) * | 2007-11-19 | 2011-12-20 | Teradata Us, Inc. | Closed-loop system management method and process capable of managing workloads in a multi-system database environment |
US7779051B2 (en) * | 2008-01-02 | 2010-08-17 | International Business Machines Corporation | System and method for optimizing federated and ETL'd databases with considerations of specialized data structures within an environment having multidimensional constraints |
US20090177697A1 (en) * | 2008-01-08 | 2009-07-09 | International Business Machines Corporation | Correlation and parallelism aware materialized view recommendation for heterogeneous, distributed database systems |
WO2009098909A1 (ja) | 2008-02-04 | 2009-08-13 | Nec Corporation | 仮想アプライアンス配備システム |
US8473594B2 (en) * | 2008-05-02 | 2013-06-25 | Skytap | Multitenant hosted virtual machine infrastructure |
US7937548B2 (en) | 2008-05-21 | 2011-05-03 | Hewlett-Packard Development Company, L.P. | System and method for improved snapclone performance in a virtualized storage system |
US8532973B1 (en) | 2008-06-27 | 2013-09-10 | Netapp, Inc. | Operating a storage server on a virtual machine |
US8037032B2 (en) | 2008-08-25 | 2011-10-11 | Vmware, Inc. | Managing backups using virtual machines |
US8311985B2 (en) | 2008-09-16 | 2012-11-13 | Quest Software, Inc. | Remote backup and restore system and method |
US8732417B1 (en) * | 2008-10-15 | 2014-05-20 | Symantec Corporation | Techniques for creating snapshots of a target system |
US9542222B2 (en) | 2008-11-14 | 2017-01-10 | Oracle International Corporation | Resource broker system for dynamically deploying and managing software services in a virtual environment based on resource usage and service level agreement |
US20100131959A1 (en) | 2008-11-26 | 2010-05-27 | Spiers Adam Z | Proactive application workload management |
EP2200230B1 (en) | 2008-12-16 | 2014-03-12 | Alcatel Lucent | Method and device for performing traffic control in telecommunication networks |
US8187191B2 (en) * | 2009-01-08 | 2012-05-29 | Volcano Corporation | System and method for equalizing received intravascular ultrasound echo signals |
US8452930B2 (en) | 2009-03-27 | 2013-05-28 | Hitachi, Ltd. | Methods and apparatus for backup and restore of thin provisioning volume |
US8195611B2 (en) | 2009-03-31 | 2012-06-05 | International Business Machines Corporation | Using a sparse file as a clone of a file |
US8478801B2 (en) * | 2009-05-20 | 2013-07-02 | Vmware, Inc. | Efficient reconstruction of virtual disk hierarchies across storage domains |
US8280858B2 (en) | 2009-06-29 | 2012-10-02 | Oracle America, Inc. | Storage pool scrubbing with concurrent snapshots |
US10120767B2 (en) * | 2009-07-15 | 2018-11-06 | Idera, Inc. | System, method, and computer program product for creating a virtual database |
US9633399B2 (en) | 2009-08-19 | 2017-04-25 | Oracle International Corporation | Method and system for implementing a cloud-based social media marketing method and system |
US8341119B1 (en) | 2009-09-14 | 2012-12-25 | Netapp, Inc. | Flexible copies having different sub-types |
US8161077B2 (en) | 2009-10-21 | 2012-04-17 | Delphix Corp. | Datacenter workflow automation scenarios using virtual databases |
US8150808B2 (en) | 2009-10-21 | 2012-04-03 | Delphix Corp. | Virtual database system |
US9106591B2 (en) | 2009-12-24 | 2015-08-11 | Delphix Corporation | Adaptive resource management using survival minimum resources for low priority consumers |
US8244685B2 (en) | 2010-02-24 | 2012-08-14 | Autonomy, Inc. | Data restoration utilizing forward and backward deltas |
US8417674B2 (en) | 2010-11-16 | 2013-04-09 | Actifio, Inc. | System and method for creating deduplicated copies of data by sending difference data between near-neighbor temporal states |
WO2012151257A1 (en) * | 2011-05-05 | 2012-11-08 | Boston Scientific Scimed, Inc. | Drug delivery device with sheath for improved drug delivery |
-
2009
- 2009-10-21 US US12/603,541 patent/US8150808B2/en active Active
-
2010
- 2010-10-15 AU AU2010310827A patent/AU2010310827B2/en active Active
- 2010-10-15 CA CA2778415A patent/CA2778415C/en active Active
- 2010-10-15 WO PCT/US2010/052960 patent/WO2011049839A1/en active Application Filing
- 2010-10-15 EP EP10825452.5A patent/EP2491485B1/en active Active
- 2010-10-15 KR KR1020127012816A patent/KR101617339B1/ko active IP Right Grant
- 2010-10-15 CN CN201080058431.3A patent/CN102667711B/zh active Active
- 2010-10-15 JP JP2012535259A patent/JP5591938B2/ja active Active
-
2011
- 2011-12-16 US US13/329,132 patent/US9037543B2/en active Active
-
2014
- 2014-07-30 JP JP2014155597A patent/JP5931973B2/ja active Active
-
2015
- 2015-05-18 US US14/715,323 patent/US9817836B2/en active Active
-
2017
- 2017-11-13 US US15/810,678 patent/US10762042B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473309A (zh) * | 2006-03-20 | 2009-07-01 | 伊姆西公司 | 高效可传递存档器 |
Also Published As
Publication number | Publication date |
---|---|
JP2014238864A (ja) | 2014-12-18 |
EP2491485B1 (en) | 2016-03-30 |
JP5931973B2 (ja) | 2016-06-08 |
JP5591938B2 (ja) | 2014-09-17 |
US20150248422A1 (en) | 2015-09-03 |
AU2010310827A1 (en) | 2012-06-14 |
KR101617339B1 (ko) | 2016-05-02 |
KR20120093296A (ko) | 2012-08-22 |
WO2011049839A1 (en) | 2011-04-28 |
US20180260403A1 (en) | 2018-09-13 |
CN102667711A (zh) | 2012-09-12 |
US20110093435A1 (en) | 2011-04-21 |
AU2010310827B2 (en) | 2015-02-05 |
US8150808B2 (en) | 2012-04-03 |
CA2778415C (en) | 2017-02-28 |
EP2491485A1 (en) | 2012-08-29 |
US10762042B2 (en) | 2020-09-01 |
CA2778415A1 (en) | 2011-04-28 |
US9817836B2 (en) | 2017-11-14 |
US20120089570A1 (en) | 2012-04-12 |
US9037543B2 (en) | 2015-05-19 |
JP2013508857A (ja) | 2013-03-07 |
EP2491485A4 (en) | 2013-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102667711B (zh) | 虚拟数据库系统 | |
KR101658964B1 (ko) | 가상 데이터베이스를 사용하는 데이터센터 작업흐름 자동화 시나리오를 위한 시스템 및 방법 | |
US11615147B2 (en) | Mobile storage manager control application for managing a storage manager of an information management system | |
Kang et al. | Complex service management in a hybrid cloud | |
Wufka et al. | Overview of Cloud Computing | |
Canonico et al. | Overview of Cloud Computing |
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 |