CN109906448A - 使用单独的逻辑时间戳服务促进可插拔数据库上的操作 - Google Patents

使用单独的逻辑时间戳服务促进可插拔数据库上的操作 Download PDF

Info

Publication number
CN109906448A
CN109906448A CN201780067593.5A CN201780067593A CN109906448A CN 109906448 A CN109906448 A CN 109906448A CN 201780067593 A CN201780067593 A CN 201780067593A CN 109906448 A CN109906448 A CN 109906448A
Authority
CN
China
Prior art keywords
database
pdb
privately owned
pluggable
clone
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201780067593.5A
Other languages
English (en)
Other versions
CN109906448B (zh
Inventor
李运睿
K·拉加玛尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN109906448A publication Critical patent/CN109906448A/zh
Application granted granted Critical
Publication of CN109906448B publication Critical patent/CN109906448B/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/23Updating
    • G06F16/2358Change logging, detection, and notification
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24549Run-time optimisation
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2477Temporal data queries
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • 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/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

可刷新PDB克隆与特定于PDB的逻辑时间戳(LT)服务相关联,该服务连续地反映在刷新操作期间在PDB克隆内完全提交的最新变更的LT。当PDB克隆正在进行刷新操作时,这种LT服务用于对PDB克隆中的变化的数据执行查询。此外,特定于PDB的LT服务可以促进备用CDB中的写入操作,其中备用CDB是源CDB的物理备用。具体而言,备用CDB配置有不复制来自源CDB的数据的私有读写PDB。这种私有PDB可以适应对备用CDB中的数据进行查询所需的写入操作。特定于PDB的LT服务为这种私有PDB提供LT,其中特定于PDB的LT服务提供LT以对在私有PDB内进行的变更进行排序。

Description

使用单独的逻辑时间戳服务促进可插拔数据库上的操作
对相关申请的交叉引用
本申请涉及以下申请/专利,其中每个申请/专利均通过引用并入本文,如同在本文中完全阐述一样:
·于2012年9月28日提交、于2016年1月19日发布的标题为“Container Database”的美国专利No.9,239,763;
·于2007年1月29日提交、于2010年6月8日发布的标题为“Readable PhysicalStorage Replica And Standby Database System”,referred to herein as the“Readable Physical Storage Replica Application”美国专利No.7,734,580,在本文称为“Readable Physical Storage Replica Application”;以及
·于2016年7月20日提交的标题为“Techniques For Keeping A Copy Of APluggable Database Up To Date With A Source Pluggable Database In Read-WriteMode”的申请No.15/215,443,在本文称为“Refreshable PDB Application”。
技术领域
本发明涉及查询可插拔数据库,并且更具体而言,涉及利用特定于可插拔数据库的系统变更号码服务(a)以促进对可刷新克隆可插拔数据库的最新查询,以及(b)以允许执行在物理备用容器数据库系统内的私有读写可插拔数据库中写入操作。
背景技术
数据库整合涉及在多个数据库之间分发和共享计算资源。可以使用容器数据库管理系统来整合数据库。经整合的数据库(诸如多租户容器数据库(CDB))包括一个或多个可插拔数据库(PDB)。
容器数据库包括数据字典,其包括定义容器数据库中的数据库对象的元数据。例如,用于给定CDB的数据字典将包括描述给定CDB中包含的每个PDB的元数据,包括每个PDB中包括的数据库对象。另外,每个可插拔数据库包括特定于PDB的数据库字典,其包括定义可插拔数据库中包含的数据库对象的元数据。
数据库对象包括表、表列、文件、表空间、数据类型、用户、用户权限以及用于存储数据库对象数据的存储结构。表空间包括一个或多个文件的集合,用于存储各种类型的数据库对象(诸如表)的数据。如果数据库对象存储在特定PDB的表空间中,那么存储在该特定PDB中的数据字典将数据库对象映射到保存该数据库对象数据的表空间。
可插拔数据库可以“插入”到容器数据库,并且可以在数据库服务器和/或数据库管理系统(DBMS)之间运输。容器数据库可以管理多个可插拔数据库,并且给定的数据库服务器实例可以从容器数据库服务于那些可插拔数据库。照此,给定的容器数据库允许多个可插拔数据库在同一数据库服务器和/或数据库服务器实例上运行,从而允许在多个可插拔数据库之间共享单个数据库服务器或实例的计算资源。在容器数据库管理系统中,每个可插拔数据库可以独立于其它可插拔数据库在容器数据库中打开或关闭。
应用可以通过在容器数据库管理系统上为可插拔数据库建立数据库会话来访问那个可插拔数据库,其中数据库会话表示应用和容器数据库管理系统之间用于访问可插拔数据库的连接。通过例如向容器数据库管理系统发送对新连接的请求,为可插拔数据库发起数据库会话,该请求指定可插拔数据库。响应于这种请求,容器数据库管理系统建立所请求的数据库会话。容器数据库管理系统可以托管多个数据库会话,每个数据库会话用于多个可插拔数据库之一。
用户可以创建源PDB的克隆,其中克隆表示源PDB的副本。克隆的PDB可以被配置为刷新,其中对克隆的PDB的刷新操作将对源PDB的改变结合到克隆的PDB中。但是,在刷新可刷新PDB克隆时,对PDB克隆内的数据的访问受到限制,因为在刷新操作停止之前,更新后的数据的任何部分都不可用于查询。在刷新期间PDB克隆对所有操作都关闭的情况下,一般仅周期性地刷新可刷新PDB克隆,以便平衡PDB克隆中的数据的可用性和数据的新鲜度。因此,有可能甚至很有可能在可刷新PDB克隆上执行的任何查询将返回滞后于源PDB中的数据的结果数据。
当PDB克隆正在进行刷新操作时允许在可刷新克隆PDB内更大地访问数据将是有益的,这将增加来自PDB源的最新数据的可用性。
此外,在DBMS复制的上下文中,容器数据库或者完全是主要容器数据库,或者完全是充当源容器数据库的物理备用的备用容器数据库。在主要容器数据库中,根数据库以读写模式打开,随后,在主要容器数据库中建立的任何可插拔数据库都可以以读写模式打开。对于容器数据库中所做的变更,将增长主要容器数据库的系统变更号码。因此,即使未对主要容器数据库内的给定PDB进行任何变更,仍基于对主要容器数据库中的其它数据所做的变更来增长用于PDB的逻辑时间戳(诸如系统变更号码(SCN))。
在充当源容器数据库的物理备用数据库的备用容器数据库中,根数据库以备用模式打开,随后,在备用容器数据库中建立的所有可插拔数据库都是只能以只读模式打开的复制品。备用容器数据库将对源主要容器数据库的数据块所做的变更复制到位于备用容器数据库内的数据块的复制品。(参见例如Oracle Active Data Guard(“ADG”),在“OracleActive Data Guard:Real-Time Data Protection and Availability”,Oracle白皮书,2015年10月中描述,其全部内容通过引用并入本文,就好像在本文完全阐述了一样。)
备用容器数据库维护最新可读的查询时间,该查询时间指示主要容器数据库的所有相关变更已在备用容器数据库中完全应用的时间(相对于源主要容器数据库)。使用由备用容器数据库维护的查询时间来运行对备用容器数据库中的数据计算的查询,这确保查询返回与源主要容器数据库上提交的事务一致的数据。
因为备用容器数据库仅复制来自源主数据库的数据,并且备用容器数据库中的所有备用PDB都以只读模式打开,所以没有数据可以被写入备用容器数据库。因此,在备用容器数据库上运行的任何查询都只能执行读取操作,而不能执行任何写入操作,即使那些写入操作是用于临时、中间目的,而不是在逻辑上编辑备用容器数据库中的复制数据。
为了促进需要写入操作的查询,用户可以将具有读写功能的数据库链接到备用容器数据库,并在链接数据库中执行写入操作。但是,通过单独数据库之间的数据库链接进行操作需要管理员设置数据库链接。而且,经由不同数据库之间的数据库链接(即,通过网络)检索信息不如在单个容器数据库内执行查询的所有所需功能那样高效。
照此,在备用容器数据库系统内适应写入操作而不需要通过具有单独数据库的网络建立链接将是有益的。
本节中描述的方法是可以追求的方法,但不一定是以前构想或追求的方法。因此,除非另有指示,否则不应当仅仅由于它们包括在本节中而假设本节中描述的任何方法是现有技术。
附图说明
在图纸中:
图1是描绘用于维护特定于PDB的系统变更号码服务的示例网络布置的框图。
图2描绘了详细说明数据库服务器实例和数据库的示例资源布置。
图3描绘了用于在PDB克隆经历刷新操作时对活动的可刷新PDB克隆执行读取操作的流程图。
图4A-4B描绘了详细说明数据库服务器实例以及主和备用容器数据库的示例资源布置。
图5描绘了利用备用CDB中的私有读写PDB以适应对备用CDB中的数据的查询所需的写操作的流程图。
图6是可以在其上实现实施例的计算机系统的框图。
具体实施方式
在下面的描述中,为了解释的目的,阐述了许多具体细节,以便提供对本发明的透彻理解。但是,显而易见的是,可以在没有这些具体细节的情况下实践本发明。在其它情况下,没有详细描述众所周知的结构和设备,以便避免不必要的模糊本发明。
总体概述
可刷新可插拔数据库克隆与特定于PDB的逻辑时间戳(LT)服务相关联,该服务自动且连续地反映在刷新操作期间在PDB克隆内完全提交的最新变更的LT。这个特定于PDB的LT服务不同于为CDB内的变更提供LT的共享LT服务,其包含可刷新PDB克隆,发生在与特定于PDB的LT服务无关的数据库中。
由于与可刷新PDB克隆相关联的特定于PD的BLT服务维护的当前LT连续反映了在PDB克隆内完全提交的最新变更的LT,因此可以使用特定于PDB的LT服务来对PDB克隆中的变更数据执行查询。这种特定于PD的BLT服务的使用允许可刷新PDB克隆在PDB克隆经历刷新操作时保持打开,这增加了对PDB克隆中最新数据的访问。
此外,可以利用另一种特定于PDB的LT服务来促进备用容器数据库中的写入操作,其中备用容器数据库是主(或源)容器数据库的物理备用数据库。具体而言,备用CDB配置有私有读写PDB,其不复制来自源CDB的数据。这个私有读写PDB可以适应对备用CDB中的数据的查询所需的写入操作。
特定于PDB的LT服务为这样的私有PDB提供LT,其中特定于PDB的LT服务提供LT以用于对私有PDB内的变化进行排序。这个特定于PDB的LT服务不同于备用系统的LT服务,备用系统跟踪来自源CDB的LT的查询LT,其中所有相关变更已在备用CDB内完全应用。因此,特定于PDB的LT服务有助于维护在私有PDB内运行的数据库事务的ACID属性。
特定于可插拔数据库的系统变更号码的体系架构
图1是描绘根据实施例的用于维护特定于PDB的系统变更号码服务的示例网络布置的框图。网络布置100包括客户端设备110和经由网络120通信地耦合的服务器设备140、150和180。根据实施例,示例网络布置100可以包括其它设备,包括客户端设备、服务器设备、存储设备和显示设备。
客户端设备110可以由通信地连接到网络120的任何类型的计算设备实现。客户端设备110的示例实现包括但不限于工作站、个人计算机、膝上型计算机、个人数字助理(PDA)、平板计算机、诸如智能电话之类的蜂窝电话设备,以及任何其它类型的计算设备。
在网络布置100中,客户端设备110配置有数据库客户端112。数据库客户端112可以以任何数量的方式实现,包括作为在客户端设备110上运行的独立应用,或作为在客户端设备110上运行的浏览器的插件等。数据库客户端112可以由一个或多个逻辑模块实现。取决于特定的实现,客户端设备110可以配置有其它机制、处理和功能。
网络120可以用促进客户端设备110与服务器设备140、150和180中的任何一个之间的信息交换的任何类型的介质和/或机制来实现。此外,网络120可以促进任何类型的通信协议的使用,并且取决于特定实施例的要求,可以是安全的或不安全的。
根据实施例,服务器设备140、150和180中的一个或多个均实现单服务器数据库管理系统(DBMS)。根据实施例,服务器设备140、150和180中的一个或多个是由多节点DBMS管理的一个或多个节点集群中的节点,例如,共享一切集群数据库环境(诸如Oracle RealApplication Clusters(“RAC”))。(参见“Oracle Real Application Clusters(RAC)”,Oracle白皮书,2013年6月,Oracle Database 12C文档。该文档通过引用并入本文,如同在本文完全阐述一样。)根据实施例,任何数量的节点可以是由多节点DBMS管理的节点集群的一部分。具体而言,可以分配来自多节点数据库系统中的多个节点的资源,以运行特定数据库服务器的软件。
服务器设备140、150和180由能够通过网络120与客户端设备110通信并且还能够运行数据库服务器实例的任何类型的计算设备实现。在网络布置100中,服务器设备140、150和180分别配置有数据库服务器实例142、152和182。
数据库服务器实例(或“实例”)是包括软件和来自节点的资源分配的组合的服务器。具体而言,诸如数据库服务器之类的服务器是集成的软件部件和计算资源(诸如存储器、节点(即,计算设备)、和/或节点上用于执行处理器上的集成的软件部件的进程)的分配的组合,软件和计算资源的组合专用于代表一个或多个客户端(诸如客户端设备110上的数据库客户端112)执行特定功能。
服务器设备140上的数据库服务器实例142维护对数据库160中的数据的访问和管理。服务器设备150上的数据库服务器实例152维护对数据库170中的数据的访问和管理。另外,服务器设备180上的数据库服务器实例182维护对数据库190中的数据的访问和管理。根据实施例,对给定数据库的访问包括访问(a)存储数据库的数据的盘驱动器的集合,以及(b)存储在其上的数据块。数据库160、170和190可以不同地驻留在任何类型的存储器中,包括易失性和非易失性存储器,例如随机存取存储器(RAM)、一个或多个硬盘、主存储器等。
如本文所述,归因于在服务器设备140、150和/或180上运行的进程的一个或多个功能可以由通信耦合到网络120的其它服务器设备上的服务来执行。此外,根据实施例,归因于数据库客户端112和数据库服务器实例142、152和182的任何功能可以由网络布置100的任何其它逻辑实体执行。而且,数据库服务器实例142、152和182均可以由一个或多个逻辑模块实现,并且在下面进一步详细描述。取决于特定实现,服务器设备140、150和180可以与其它机制、处理和功能不同地配置。
在实施例中,结合数据库客户端112、数据库服务器实例142、152和182和/或数据库160、170和190描述的每个处理和/或功能是自动执行的,并且可以使用一个或多个计算机程序、其它软件元素和/或数字逻辑在通用计算机或专用计算机中的任何一个中来实现,同时执行涉及与计算机的存储器的物理状态交互和变换的数据检索、变换和存储操作。
数据库系统
在数据库管理系统(DBMS)的上下文中使用本发明的实施例。因此,DBMS的描述是有用的。DBMS管理数据库。DBMS可以包括一个或多个数据库服务器。数据库包括存储在持久存储器机制(诸如硬盘的集合)上的数据库数据和数据库字典。数据库数据可以存储在一个或多个数据容器中。每个容器包含记录。每条记录中的数据被组织成一个或多个字段。在关系DBMS中,数据容器被称为表,记录被称为行,字段被称为列。在面向对象的数据库中,数据容器被称为对象类,记录被称为对象,字段被称为属性。其它数据库体系架构可能使用其它术语。
用户可以通过向数据库服务器实例提交使数据库服务器实例对存储在数据库中的数据执行操作的命令来与DBMS的数据库服务器的实例交互。例如,用户在客户端设备110处经由数据库客户端112向数据库服务器实例142提交数据库命令,数据库客户端112维护与数据库服务器实例142的连接。用户可以是在客户端设备110上运行的使数据库客户端112与数据库服务器实例142交互的一个或多个应用。多方可以通过给定的应用访问数据库资源。多方和/或用户在本文也可以统称为用户。
容器数据库和可插拔数据库体系架构
图2描绘了详细说明数据库服务器实例142和152以及数据库160和170的实施例的示例资源布置。具体而言,在图2中,数据库160包括表示用于CDB 210的数据的根数据库212。CDB 210是包含PDB 220和222的主要容器数据库。在图2中,数据库170包括表示用于CDB 230的数据的根数据库232。CDB 230是主要数据库,其包含活动的可刷新PDB克隆250和254,以及PDB 252(其不是PDB克隆)。CDB 210和230的描绘是非限制性的;根据实施例,容器数据库可以包括任何数量的不可刷新可插拔数据库和/或可刷新可插拔数据库。
根据实施例,PDB克隆是源PDB的副本。PDB克隆的源PDB可以位于与PDB克隆相同的CDB内,或者可以位于与PDB克隆不同的CDB中。可刷新PDB克隆被配置为在建立PDB克隆之后经历一个或多个刷新操作。根据实施例,刷新PDB克隆中的数据的刷新操作利用为源PDB记录的重做记录来结合对源PDB做出的、在PDB克隆中尚未反映的变更(结合到PDB克隆中)。可刷新PDB克隆的实施例在以上通过引用并入的Refreshable PDB Application中进一步详细描述。
主要容器数据库(诸如CDB 210)被配置为包含多个可插拔数据库并提供数据库内虚拟化以整合多个单独的可插拔数据库。例如,根数据库212是用于全局管理CDB 210并且存储管理对CDB 210中包含的PDB 220和222的访问所需的数据的数据库。虽然根数据库212在图2中被描绘为与其它数据库对象分开的不同数据库对象,但是用于存储容器数据库数据的任何体系架构实现都可以在实施例中使用。
根数据库(诸如根数据库212)包括CDB数据字典(诸如CDB字典214)。示例CDB 210还包括(一个或多个)重做日志270。给定数据库中的重做日志包括重做信息,该重做信息表示对对应数据库中的数据所做的变更。重做信息中记录对可插拔数据库所做变更的每个重做条目包括识别进行变更的可插拔数据库、是否已提交变更以及提交变更的时间(如果适用的话)的信息。重做条目可以包括任何类型的信息,这取决于特定实现。
系统变更号码和事务
DBMS使用内部逻辑时间戳来对数据库中发生的事件进行排序,这对于维护在数据库中操作的事务的ACID特性是必需的。这种内部时间戳基于逻辑时钟。在系统变更号码(SCN)系统的上下文中描述了实施例,该系统是产生逻辑时间戳(即,系统变更号码)的逻辑时钟的非限制性示例。在实施例中可以使用任何类型的逻辑时钟和任何格式的逻辑时间戳(LT)。根据实施例,LT可以具有任何格式或以任何方式与数据库事件相关联。
作为逻辑时间戳的功能的示例,SCN可以以单调递增的顺序发生。DBMS可以像时钟一样使用SCN,因为观察到的SCN指示逻辑时间点,并且重复的观察(其中观察是来自SCN服务的对SCN的请求)返回相等或更大的值。如果第一事件与比与另一个事件相关联的SCN更低的SCN相关联,那么第一事件相对于数据库在更早时间发生。几个事件可以共享相同的SCN,这意味着这几个事件同时相对于数据库发生。例如,作为已提交事务的一部分的事件都与同一提交SCN相关联。
事务是包含一个或多个数据库操作的逻辑原子工作单元。事务将数据库操作分组,以便它们或者全部提交,这意味着操作产生的变更将应用于数据库,或者全部回滚,这意味着操作产生的变更将从数据库中撤消。当事务提交时,事务与提交LT相关联。从提交LT开始,该事务被视为原子提交。
当事务由数据库系统提交时,数据库系统从一个事务一致状态过渡到另一个事务一致状态。事务一致状态是指数据库系统的数据库能够反映由已提交事务所做的所有变更而不是由未提交事务所做的变更。如上所述,DBMS记录用于提交的变更的提交LT,使得逻辑时间与每个一致状态相关联。
使用LT来标记对数据库所做的变更允许确定何时(相对于在数据库中进行的其它变更)发生的特定事件,以及对数据库内数据的哪些变更应应当在通过数据库发出的查询的结果中反映。
数据库查询
用户可以将数据库查询提交给将用户连接到可插拔数据库的数据库会话。此类数据库查询发起在可插拔数据库上运行的一个或多个事务。
数据库查询可以由符合数据库语言的数据库语句表示。数据库语言的示例包括符合美国国家标准协会(ANSI)标准的结构化查询语言(SQL),以及专有形式(例如PL/SQL、其它专有SQL标准等)。数据库命令可以是符合数据库语言的数据库语句的形式。用于表达数据库命令的说明性示例数据库语言是结构化查询语言(SQL)。向DBMS发出数据操作语言(DML)指令以管理存储在数据库结构中的数据,并且SELECT、INSERT、UPDATE和DELETE是SQL实现中的DML指令的常见示例。数据定义语言(DDL)语句是使得以下一个或多个执行的语句:create、alter和drop schema对象;授予和撤销特权和角色;分析关于表、索引或集群的信息;建立审计选择;以及向数据字典添加注释;等等。
当由数据库服务器实例计算查询时,相对于LT计算查询,LT在本文中被称为查询的LT或指派给查询的LT。计算出的结果反映了与查询的LT相关联的一致状态。根据实施例,使用一致的读取方案提供这种一致性。
一致的读取方案提供基于查询的LT的查询结果,其可以是过去的LT。例如,在主要CDB 210中,数据块可以包含对LT的变更,该变更发生在查询的LT之后(即,由具有较晚LT的事务产生),或者甚至是对未提交的事务的变更。为了确定查询的LT的数据块的先前状态,数据库服务器实例142通过应用撤销记录来撤消变更。查询的结果基于数据块的结果快照,即,由查询的LT标记的时间点的数据块的状态,并且必要的撤销应用于撤消到查询的LT为止尚未提交的事务的变更。
与重做记录一样,撤销记录记录由事务对数据块所做的变更,在变更之前的数据块的版本与从变更产生的数据块的后续版本之间。此外,撤销记录包含足够的信息以从后续版本的副本再现先前版本。使用撤销记录中的信息在由撤销记录记录的变更之前再现数据块的先前版本在本文被称为应用撤销记录的操作。因此,根据实施例,一致的读取涉及应用撤消在查询的LT之前对数据块做出的变更所需的撤销记录。
撤消记录存储在数据块中,根据实施例,数据块在其中进行了记录的变更的可插拔数据库内。通过重做记录来记录向数据块添加撤销记录,如对数据块的其它变更那样。
LT服务
根据实施例,DBMS使用一个或多个LT服务来管理LT。LT服务是一种服务,数据库服务器实例从这种服务获得LT以与数据库内发生的事件相关联。LT服务维护并提供适用于与LT服务相关联的数据库的当前LT,如下面进一步详细描述的。
数据库服务器实例可以在实例的系统全局区域内维护LT服务。另外,该实例可以在数据库服务器实例可访问的任何位置维持LT服务,诸如:在存储器中;在托管该实例的服务器设备的盘上;在存储在可访问数据库中的一个或多个数据库对象内;等等。
根据实施例,可以以任何方式实现LT服务。根据一个或多个实施例,LT服务是数据库服务器实例在系统全局区域内创建和维护的数据结构(例如,阵列的元素、散列表的桶、链接列表中的特定对象等)。用于LT服务的数据结构存储至少当前LT。在这个实施例中,从LT服务请求LT的数据库服务器实例的描述是指从用于LT服务的数据结构中检索所需LT的实例。管理LT服务的数据结构的数据库服务器实例根据需要递增存储在数据结构中的当前LT。根据其它实施例,LT服务是在计算设备上运行的进程(诸如守护进程)。
数据库服务器实例可以将LT服务与其它实例的LT服务协调,诸如当数据库服务器实例是管理特定CDB的节点集群的一部分时。以这种方式,由LT服务维护的当前LT可以基于其它节点上的活动而递增,从而允许在集群的节点之间采取的动作作为整体在逻辑上排序。
活动和非活动的可刷新可插拔数据库克隆
根据实施例,可刷新PDB克隆(活动或非活动的)仅以只读模式打开;照此,PDB克隆的内容或者被冻结,或者基于来自克隆的源PDB的数据被更新。如前所述,刷新PDB克隆在PDB克隆中结合对克隆源PDB的最新变更。
例如,当首次创建可刷新PDB克隆时,管理数据库服务器实例将用于PDB克隆的刷新参考时间戳初始化为(源PDB的)LT,其标记源PDB与PDB克隆处于相同状态的时间(例如,LT=850)。在创建PDB克隆之后,继续在源PDB内处理写入操作,即,源PDB以读写模式操作。管理可刷新PDB克隆的数据库服务器实例152对PDB克隆执行刷新操作,这导致PDB克隆处于源PDB处于LT=1000的状态(例如,LT=1000是与应用于PDB克隆的、来自源PDB的最新变更记录相关联时间戳)。每次刷新克隆时,都会更新用于PDB克隆的刷新参考时间戳。
根据实施例,非活动的可刷新PDB克隆不与任何特定于PDB的LT服务相关联,并且照此必须在PDB克隆上的刷新操作的持续时间内对所有其它操作(包括读取操作)关闭。对于在非活动的可刷新PDB克隆中更新后的数据,不可以运行任何查询,因为适用于PDB克隆的唯一LT是刷新参考时间戳(因为非活动的可刷新PDB克隆不与任何特定于PDB的LT服务相关联)。在刷新操作期间非活动的PDB克隆数据发生变更时,无法为查询维护ACID特性。这种关闭限制了非活动的可刷新PDB克隆中最新信息的可访问性。
为了说明查询非活动的可刷新PDB克隆,将非活动的PDB克隆的刷新参考时间戳设置为LT=500,用户对非活动PDB克隆发出查询。因为非活动的PDB克隆不与特定于PDB的LT服务相关联,所以从非活动的PDB克隆所驻留的CDB的共享LT服务向该查询指派LT。因为非活动的PDB克隆的刷新参考时间戳为LT=500,所以仅当设置为排除LT大于500的数据时,查询才能正常运行。因此,在这个示例中,管理共享LT服务的数据库服务器实例在将LT指派给查询之前将由共享LT服务维护的当前LT设置为至少LT=500,这确保查询将在非活动的PDB克隆内正确运行。
根据实施例,可刷新PDB克隆可以与特定于PDB的LT服务相关联,该服务促进在刷新操作期间查询可刷新PDB克隆。与特定于PDB的LT服务相关联的可刷新PDB克隆在本文中被称为活动的可刷新PDB克隆。
例如,在图2的上下文中,用户在CDB 230中产生活动的可刷新PDB克隆250,其中PDB克隆250是CDB 210中的源PDB 220的克隆。虽然PDB克隆250在图2中被描绘在与克隆的PDB的源不同的CDB内,但PDB克隆可以与源PDB位于同一个CDB中。
因为PDB克隆250是活动的可刷新PDB克隆,所以实例152建立特定于PDB的LT服务288以便为PDB克隆250提供LT服务。例如,当首次建立PDB克隆250时,数据库服务器实例152确定不存在可以向PDB克隆250提供特定于PDB的LT服务的特定于PDB的LT服务。作为响应,实例152建立LT服务288并将LT服务288与PDB克隆250相关联(例如,在由实例152维护的映射数据中等)。实例152确定PDB克隆250的刷新参考时间戳,并将由特定于PDB的LT服务288维护的当前LT(其是查询LT)初始化为刷新参考时间戳。根据实施例,活动的可刷新PDB克隆的刷新参考时间戳由服务于PDB克隆的特定于PDB的LT服务维持为当前(或查询)LT。
根据实施例,实例152在刷新操作期间基于来自源PDB 220的数据连续跟踪PDB克隆250已被更新的最新LT(或最近的刷新参考时间戳)。由LT服务288维护的当前LT反映了针对活动的可刷新PDB克隆250的这种持续更新后的LT。
在更新操作期间查询活动的可刷新PDB
将特定于PDB的LT服务与可刷新PDB克隆相关联促进对PDB克隆的变化的数据进行查询,因为由这种特定于PDB的LT服务维护的当前LT自动且连续地反映在活动的可刷新PDB克隆内已完全提交的最新变更的LT。使用这种连续更新后的查询LT,DBMS可以在克隆经历刷新操作时维持在活动的可刷新PDB克隆上运行的事务的ACID特性。图3描绘了用于在PDB克隆经历刷新操作时对活动的可刷新PDB克隆执行读取操作的非限制性流程图300。
在流程图300的步骤302处,至少部分地基于为源可插拔数据库记录的重做条目对克隆的可插拔数据库执行刷新操作。例如,实例152对PDB克隆250执行刷新操作,其中PDB克隆250的源PDB是如上所述的PDB 220。
根据实施例,结合发起刷新操作,实例152从实例142请求为PDB 220记录的那些尚未应用于PDB克隆250的重做条目。例如,实例152在来自实例142的针对重做条目的请求中包括PDB克隆250的刷新参考时间戳(其标记已经完全应用于PDB克隆250的PDB 220的最新变更)。响应于接收到这个请求,数据库服务器实例142从(一个或多个)重做日志270收集在PDB克隆250的刷新参考时间戳之后与LT相关联的那些重做条目,并且实例142将那些重做条目发送到实例152。
根据另外的实施例,数据库服务器实例142连续地将为PDB 220记录的重做条目发送到实例152,以促进实例152对PDB克隆250执行连续刷新操作。在这些实施例中,实例152不需要发起离散刷新操作来刷新PDB克隆250,因为实例142自动向实例152发送为PDB 220记录的所有重做条目,而不需要对此进行具体的请求。
当实例152从实例142接收到重做信息时,实例152将重做信息应用于PDB克隆250。具体而言,实例152将接收到的重做信息中指示的变更应用于PDB克隆250,从而使PDB克隆250与PDB 220中的数据保持同步。
根据实施例,将针对源PDB 220记录的重做信息应用于PDB克隆250需要基于由实例152存储的外部参考映射数据的引用翻译。这个映射数据将参考PDB 220的各方面的参考标识符映射到参考PDB克隆250的对应方面的参考标识符,其中这些方面包括以下当中的一个或多个:文件标识符/编号、数据块标识符、可插拔数据库标识符、数据库名称等。使用这种映射数据,实例152将检索到的重做条目中的参考信息从外部参考(相对于源PDB 220)转换为本地参考(相对于PDB克隆250)。使用翻译后的本地参考将重做信息应用于PDB克隆250。
当活动的可刷新PDB克隆250正在进行刷新操作时,由特定于PDB的LT服务288维护的当前LT被连续更新以反映来自源PDB 220的表示已完全应用于PDB克隆250的变更的最新重做条目的LT。例如,在将接收到的重做条目应用于PDB克隆250时,实例152确定在LT=1020处或之前记录的重做条目中的所有变更已经应用于PDB克隆250(并在其中提交)。响应于这个确定,实例152将在LT服务288处维持的当前LT更新为LT=1020。LT服务288内的当前LT的这种改变不影响由LT服务286维护的当前LT。
在将由LT服务288维持的当前LT更新为LT=1020之后,并且当在步骤302中发起的刷新操作仍在进行时,实例152确定来自PDB 220的重做条目中在或之前与LT相关联的所有变更已经将LT=1025应用于PDB克隆250(并在其中提交)。响应于这个确定,实例152再次将在LT服务288处维持的当前LT从LT=1020更新为LT=1025。在实施例内对相关联的PDB克隆的刷新操作期间,实例152可以在任何时间间隔(直到实时连续更新)更新在LT服务288处维护的当前LT。
返回到流程图300(图3),在步骤304处,在对克隆的可插拔数据库执行刷新操作的同时,接收对克隆的可插拔数据库的查询。例如,当在PDB克隆250上执行刷新操作时,实例152经由数据库会话接收从PDB克隆250读取特定数据的查询。
在步骤306处,基于为克隆的可插拔数据库维护的第一LT服务确定查询的LT;其中为克隆的可插拔数据库维护的第一LT服务不同于为包含该克隆的可插拔数据库的容器数据库维护的第二LT服务。例如,当实例152接收到对PDB克隆250的查询时,实例152识别查询的LT。由于PDB克隆250与特定于PDB的LT服务(即,LT服务288)相关联,因此实例152将在接收到查询时由LT服务288维护的当前LT与查询相关联(例如,LT=1025)。
图2描绘了示例配置,其中单个共享LT服务246由实例142维护,并且两个LT服务(共享的LT服务286和特定于PDB的LT服务288)由实例152维护。特定于PDB的LT服务288不同于共享的LT服务286,共享的LT服务286为不发生在与特定于PDB的LT服务相关联的PDB内的、CDB 230内的变更提供LT。
在图2的上下文中,共享的PDB服务与特定主CDB相关联,并且提供LT以与在特定CDB内的任何可插拔数据库中发生的、与特定于PDB的LT服务无关的事件相关联。由共享的LT服务维护的当前LT根据需要递增,以对在相关联的CDB内发生的事件进行排序,例如,将新的提交LT指派给在CDB中提交的事务的提交记录。在仅具有一个共享的LT服务的系统中,诸如图2中描绘的系统,例如142,指派给CDB 210中的数据库对象的所有LT由单个共享的LT服务提供。
根据实施例,(并且在针对流程图300描述的示例的上下文中)实例152使用PDB克隆250的标识符来请求LT指派给查询,PDB克隆250将实例152指向LT服务288,LT服务288是针对PDB克隆250的特定于PDB的LT服务。根据实施例,特定于PDB的LT服务被实现为散列表中的桶,其中散列表的键是PDB标识符。实例152通过散列PDB克隆250的PDB标识符来计算散列表的索引。实例152使用计算出的索引来访问散列表中与PDB克隆250相关联的桶(其是与LT服务288对应的桶)。
如果给定PDB的PDB标识符不散列到LT服务散列表的桶中,那么不存在与那个PDB相关联的特定于PDB的LT服务。在这种情况下,数据库服务器实例152使用诸如共享的LT服务286之类的默认LT服务,该服务为CDB 230中与特定于PDB的LT服务无关的所有数据库对象提供LT。
因为用于PDB克隆250的特定于PDB的LT服务288内的当前LT正在被连续更新,因此从LT服务288向查询指派LT将查询与指示最近完成的对PDB克隆250的更新后的LT相关联。这种关联将使得在PDB克隆250内到从源PDB 220应用的变更的最新LT为止是当前的所有数据上执行查询。
LT服务288在本文中被描述为为PDB克隆250提供LT。但是,根据实施例,LT服务288可以为一组PDB克隆(包括PDB克隆250和254)提供LT。根据进一步的实施例,不同的特定于PDB的LT服务(图2中未绘出)为PDB克隆254提供LT。
返回到流程图300,在步骤308处,至少部分地基于针对查询的LT在克隆的可插拔数据库上执行查询。例如,实例152在查询结果中包括已在查询LT(例如,LT=1025)处或之前提交的PDB克隆250中的任何数据。由于查询LT是在接收到查询时PDB克隆250的当前LT,因此在PDB克隆250内对逻辑上完整的数据执行查询,而不考虑在查询LT之后对PDB所做的变更。因此,查询的结果包括应用于PDB克隆250的最新变更,同时排除在PDB克隆250内进行的尚未完全应用的任何更新。
共享的LT服务功能
根据实施例,不是像使用特定于PDB的LT服务那样跟踪外来LT的进度,而是使用共享的LT服务来维护用于在相关联的CDB内执行读取和写入操作的事务的ACID特性,其方式类似于更传统的系统变更号码。例如,当在根数据库232内和PDB 252内进行与特定于PDB的LT服务不相关联的变更时,实例152利用并且将由共享的LT服务286维护的当前LT作为时钟递增,以对CDB 230内发生的变更进行排序,如上所述。
为了说明,用户通过PDB 252向数据库会话发出查询,该数据库会话促进通过PDB252进行查询。实例152从共享的LT服务286检索当前LT(LT=700)并将那个当前LT指派给查询。照此,实例152关于到LT=700为止提交的数据执行查询,并且在LT=700之后,从查询操作中排除由除了为该查询发起的一个或多个事务之外的事务更新的任何数据。由该查询发起的任何提交的事务都被指派了大于LT 700的提交LT。例如,为了检索由该查询发起的事务的提交LT,实例152从LT服务286请求递增的当前LT。实例152将来自共享的LT服务286的递增的当前LT指派为用于事务的提交LT。
服务于一组可插拔数据库的特定于PDB的LT服务
根据实施例,特定的特定于PDB的LT服务维护用于一组多个可插拔数据库的当前LT。例如,图2描绘了CDB 230中的第二活动的可刷新PDB克隆254,其是CDB 210中PDB 222的克隆。因此,在图2所绘出的实施例中,CDB 230中的两个活动的可刷新PDB克隆是同一CDB210内的源PDB的克隆。
由于PDB克隆250和254都从CDB 210从同一个重做流(在(一个或多个)重做日志270中指示)中刷新,因此,根据实施例,PDB克隆250和254被联合刷新。在此类实施例中,PDB克隆250和254的当前LT是相同的LT,其由单个特定于PDB的LT服务(诸如LT服务288)跟踪。当来自实例142的重做流的变更完全应用于PDB克隆250和254时,实例152更新特定于PDB的LT服务288的当前LT以反映来自PDB 220的这些最新完全应用的变更的LT。因而,在PDB克隆250和254中的任一个上运行的任何查询都被指派来自特定于PDB的LT服务288的查询LT。
根据实施例,实例152将PDB克隆250和254设置为由同一个LT服务服务的一组PDB。例如,在CDB 230内建立PDB克隆250(具有相关联的特定于PDB的LT服务288)之后,实例152确定在CDB 230内建立第二PDB克隆254。响应于确定在CDB 230内建立第二PDB克隆254,实例152基于与CDB 230内的另一个PDB克隆(即,PDB克隆250)相同的重做流来确定是否刷新PDB克隆254。响应于确定基于相同重做流刷新PDB克隆250和254,实例152自动将PDB克隆250和254建立为由特定于PDB的LT服务288服务的一组PDB克隆。
根据另一个实施例,在PDB克隆250和254都已在CDB 230内建立之后,实例152接收DDL语句,该语句指示PDB克隆250和254都应当被视为与单个特定于PDB的LT服务相关联的一组PDB。响应于接收DDL语句,实例152将PDB克隆250和254建立为由特定于PDB的LT服务288服务的一组PDB克隆。
根据实施例,实例152基于与PDB克隆250不同的重做流确定PDB克隆254被刷新。作为响应,实例152建立不同的特定于PDB的LT服务(图2中未绘出)以便为PDB克隆254提供LT服务。根据实施例,在没有指示PDB克隆250和254都应当被视为与单个特定于PDB的LT服务相关联的一组PDB的DDL语句的情况下,实例152建立不同的特定于PDB的LT服务(图2中未绘出),以便为PDB克隆254提供LT服务。
在这些实施例中,由服务于PDB克隆254的特定于PDB的LT服务维持的当前LT基于从其源PDB应用于PDB克隆254的最新变更的LT持续更新(如上所述)而不考虑实例152可访问的任何其它LT服务中的当前LT的。
主要和备用容器数据库
可以利用特定于PDB的LT服务的实施例来促进备用容器数据库中的查询,其中备用容器数据库是主要(或源)容器数据库的刷新复制品。图4A和4B图示了示例主要源CDB和物理备用CDB,其中描绘了数据库服务器实例142和182以及数据库160和190的示例配置。在图4A和4B中,数据库190中的备用CDB 430是数据库160中的主要CDB 410的物理复制品。
根据实施例,数据库服务器实例142以读写模式打开主要CDB 410的根数据库412。照此,包含在主要CDB 410中的可插拔数据库420和422可以以读写或只读模式打开。数据库服务器实例142维护共享的LT服务446,其与CDB 410内的所有数据库对象相关联并为其提供LT。因而,如上所述,由LT服务446维护的当前LT针对在CDB 410内的任何数据库对象内进行的任何改变而增长。
数据库服务器实例182在备用模式下打开备用CDB 430的根数据库432,并使CDB430复制主要CDB 410。由于主要CDB 410是备用CDB 430的源,因此备用CDB 430将对主要CDB 410中的数据块所做的变更复制到备用CDB 430中这些数据块的复制品。(参见例如Oracle Active Data Guard(“ADG”),在“Oracle Active Data Guard:Real-Time DataProtection and Availability”,Oracle白皮书,2015年10月中描述,通过引用并入本文。)备用CDB 430中的备用PDB 450和452分别复制主要CDB 410中的PDB 420和422。因为备用PDB 450和452处于以备用模式操作的CDB中,并且这些PDB是复制系统中的主要PDB的复制品,所以PDB 450和452仅以只读模式操作。以只读模式操作备用PDB可以确保备用PDB始终表示其各自源PDB中的数据。
使用重做记录更新备用CDB
作为物理备用系统,备用CDB 430与主要CDB 410中的数据和变更维持最新。根据实施例,为了使CDB 430维持最新,数据库服务器实例142向数据库服务器实例182提供来自(一个或多个)重做日志470的重做流,其包括关于对主要CDB 410所做的变更的信息。数据库服务器实例182接收这个重做记录流并将其中指示的变更应用于备用CDB 430的数据块。
数据库服务器实例182维护与备用CDB 430相关联的LT服务486。当数据库服务器实例182将重做流中的重做记录应用于备用CDB 430中的数据块时,实例182更新由LT服务486维护的当前(或查询)LT以反映来自主要CDB 410的重做流中的所有变更都已完全应用于备用CDB 430的主要CDB 410的LT。换句话说,当数据库服务器实例182已经确定在备用CDB 420内已经应用了直到特定LT的(来自源CDB 410的)记录时,实例182将最新可读LT(作为LT服务486的当前LT维持)增长到那个特定的LT。(参见例如http://www.oracle.com/technetwork/database/features/availability/maa-wp-11gr1-activedataguard-1-128199.pdf上的“Oracle Active Data Guard,Oracle Data Guard 11g”,an OracleMaximum Availability Architecture White Paper,2011年9月中所述的查询SCN,其全部内容通过引用并入本文,如同在本文完全阐述一样。还参见上文通过引用并入本文的Readable Physical Storage Replica Application。)
使用由LT服务486维护的当前LT,即使在数据被更新时,数据库服务器实例182也能够计算对CDB 430中的数据的查询。以这种方式,数据库服务器实例182能够计算在备用CDB 430上的查询,其结果反映不晚于由LT服务486的当前LT反映的最新可读查询时间的主要CDB 410的一致状态。
在备用容器数据库中创建私有读写PDB
即使物理备用系统被配置为另一个系统的一致复制品,在备用系统内执行写操作仍然是有帮助的,例如,允许在备用CDB内创建过渡表以存储中间数据以促进查询处理。照此,实施例允许在备用容器数据库内进行写入操作,而不会损害备用容器数据库内的只读数据库对象。具体而言,根据实施例,在备用容器数据库内建立私有读写可插拔数据库,其适应备用系统内的写入操作。
作为说明性示例,在图2A中,备用CDB 430被配置有私有读写PDB 454。为了配置具有私有PDB的备用CDB 430,定义私有PDB的数据库元数据存储在CDB字典414中(即,在主要CDB 410的根数据库412中)。如前面所指示的,数据库字典是数据库的DBMS管理的中心。数据库字典包含定义数据库中物理或逻辑上包含的数据库对象的元数据。根据为添加、修改或删除定义数据库对象的元数据而发出的DDL命令,修改数据库字典中的元数据。
例如,用户向数据库服务器实例142发出命令,以在主要CDB 410内添加私有可插拔数据库。响应于接收到命令,数据库服务器实例142将定义私有可插拔数据库的元数据添加到CDB字典414。定义私有可插拔数据库的元数据包括以下当中的一个或多个:注册信息、文件、文件号、表空间、表空间号、文件到表空间映射等。根据实施例,定义私有可插拔数据库的元数据还包括:将PDB标记为私有PDB的标志,其指示PDB是如本文所述的私有可插拔数据库。
私有PDB未被配置为从主要系统复制数据。照此,由于数据复制,存储在备用CDB中的私有PDB内的任何数据都不会被覆盖。由于备用CDB中的私有PDB的内容不受主要CDB中为私有PDB存储的内容的影响,因此可以从主要CDB完全省略用于私有PDB的资源分配。因此,根据实施例,因为新添加的PDB具有私有PDB类型,所以实例142不在CDB 410内分配任何资源来存储私有PDB的数据。
根据另一个实施例,实例142在主要CDB 410内分配资源以存储用于私有PDB的数据,其中存储到CDB 410内的私有PDB的数据不被复制到备用CDB 430。例如,将私有PDB标记为私有的元数据标志使实例142禁止将存储到私有PDB的数据复制到备用CDB 430。实例142可以通过从发送到备用CDB 430的重做条目中排除记录对主要CDB 410内的私有PDB中的数据所做的变更的那些重做条目来禁止复制存储到主要CDB 410中的私有PDB的数据。
作为另一个示例,将私有PDB标记为私有的元数据标志使得实例182禁止将对CDB410内的私有PDB进行的变更复制到备用CDB 430中的对应私有PDB。因此,备用系统内的私有PDB可以安全地偏离存储在源主要CDB中的任何对应私有PDB内的任何数据。
因为向CDB字典414添加数据库元数据构成对CDB 410的变更,所以数据库服务器实例142生成一个或多个重做条目,其反映向CDB字典414添加定义私有可插拔数据库的数据库元数据。实例142将那些重做条目存储到(一个或多个)重做日志470。当(一个或多个)重做日志470中的重做条目被应用于CDB 430时,记录对CDB字典414的变更的重做条目被应用于备用CDB 430的根数据库432,并且定义私有可插拔数据库的数据库元数据被复制到根数据库432中的CDB字典434。
为备用CDB内的私有PDB分配资源
根据实施例,响应于基于指示这样的元数据标志确定新定义的私有PDB是私有PDB,数据库服务器实例182在备用CDB 430内自动分配资源(基于复制的元数据中的私有PDB的细节)。例如,数据库服务器实例182分配存储器以存储用于私有PDB的数据,其在图4A中被描绘为私有PDB 454。
为了说明,实例182在定义私有PDB的复制的数据库元数据中检测将私有PDB标记为私有备用PDB的标志。响应于确定数据库元数据将定义的PDB标记为私有备用PDB,实例182在备用CDB 430内为读写私有PDB 454建立结构,如在定义私有PDB的数据库元数据中所定义的。换句话说,实例182自动为私有PDB 454分配存储器和其它资源,并且还基于定义私有PDB的数据库元数据自动建立私有PDB 454的结构。
根据另外的实施例,实例182为私有PDB分配存储器,并且还基于被应用于备用CDB的重做流中包括的特殊重做标记来建立私有PDB的结构。例如,关于将定义私有PDB的元数据添加到CDB字典414,实例142在(一个或多个)重做日志470中包括一个或多个特殊重做标记,这些标记对指令进行编码以分配资源并为所定义的私有PDB建立结构,如在定义私有PDB的数据库元数据中所指示的。根据实施例,可以使用特殊重做标记编码的指令包括:添加文件、删除文件、添加表空间、删除表空间、添加私有PDB或丢弃私有PDB等。
为了说明,定义私有PDB的新数据库元数据指示私有PDB包括两个表空间,其中每个表空间包括两个文件。实例142基于私有PDB的这个定义为新的私有PDB创建特殊重做标记的集合,使得在特殊重做标记中编码的指令的执行导致具有如元数据中指示的数据结构的私有PDB。
作为更具体的示例,实例142在(一个或多个)重做日志470内包括以下特殊重做标记的集合(以伪代码表示):
(1)添加私有PDB 454
(2)将表空间T1添加到私有PDB 454
(3)将文件F1添加到私有PDB 454中的表空间T1
(4)将文件F2添加到私有PDB 454中的表空间T1
(5)将表空间T2添加到私有PDB 454
(6)将文件F1添加到私有PDB 454中的表空间T2
(7)将文件F2添加到私有PDB 454中的表空间T2
实例142将(一个或多个)重做日志470内表示的重做流中的特殊重做标记集合插入流内在记录对添加定义私有PDB的数据库元数据的CDB字典414的(一个或多个)变更的一个或多个重做条目之后的位置。
实例182接收在(一个或多个)重做日志470中记录的重做流,该流包括特殊重做标记。实例182执行特殊重做标记中指示的指令以创建新的私有PDB(例如,图4的PDB 454),并且在这样做时,实例182分配资源并为特殊重做标记中编码的私有PDB建立结构。
实例182向备用CDB 430复制为主要CDB 410记录的复制重做日志480(即,在重做日志470内)。具体而言,数据库服务器实例142将为CDB 410记录的重做条目发送到实例182以进行复制,并且实例182将复制的重做条目存储到复制的重做日志480。除了复制的重做日志480之外,实例182还建立重做流(不同于任何复制的重做信息),在图4A-4B中表示为(一个或多个)重做日志460,以记录在备用CDB内的私有PDB(诸如PDB 454)中进行的变更。实例182在(一个或多个)重做日志460中存储重做记录,其记录在CDB 430中的私有PDB内进行的所有变更。
用于私有PDB的特定于PDB的LT服务
根据实施例,当私有PDB 454首先在CDB 430内建立时,实例182还发起特定于PDB的LT服务488并将服务与私有PDB 454相关联。为私有PDB 454服务的特定于PDB的LT服务488用于跟踪在私有PDB 454内进行的变更。照此,由LT服务488维护的当前LT根据需要递增,以便跟踪在私有PDB 454内发生的事件。根据实施例,实例182检索LT以从特定于PDB的LT服务488指派(一个或多个)重做日志460中的重做条目。LT服务488维持独立于指示由LT服务486维持的最新可读查询时间的当前LT的当前LT,(其中由LT服务486维护的当前LT由如上所述的主要CDB 410的LT指示)。
私有PDB 454需要特定于PDB的LT服务,因为私有PDB 454不与来自主要CDB 410的数据保持同步。因为与CDB 430相关联的LT服务486基于从CDB 430内的主要CDB 410应用的变更来反映最新可读查询时间,因此由LT服务486维护的当前LT不能递增并且根据需要用作逻辑时钟,以维护在CDB 430中的私有PDB内运行的事务的ACID特性。
向备用容器数据库内的私有可插拔数据库的写入操作
当备用容器数据库配置有私有读写可插拔数据库时,查询可以通过写入私有读写可插拔数据库而使得在备用容器数据库中执行写入操作。此类写入不会损害备用容器数据库中复制数据的完整性,因为存储复制数据的数据库对象不受写入操作的影响,并且因为私有PDB不包含或表示任何复制数据。图5描绘了用于利用备用CDB中的私有PDB以适应由对备用CDB中的只读备用PDB的查询引起的写入操作的流程图500。
在步骤502处,在备用容器数据库中的只读可插拔数据库上执行第一查询,该备用容器数据库从主要容器数据库复制数据,其中第一查询需要写入操作。例如,用户从数据库服务器实例182请求与备用PDB 450的连接(根据图4A中描绘的实施例并且如上所述)。响应于接收到连接请求,数据库服务器实例182建立允许用户访问备用PDB 450的数据库会话,即,包括将用于备用PDB 450的PDB字典附连到会话。
用户通过PDB 450向数据库会话发出查询。根据实施例,查询不明确要求写入操作。但是,数据库服务器实例182选择用于执行查询的执行计划,该执行计划需要写入操作(例如,写入由用户创建的过渡表)。因此,查询需要写入操作,因为被选择执行查询的执行计划需要写入操作。根据实施例,由于CDB 430内存在私有读写PDB,因此数据库服务器实例182产生和/或能够选择需要写入操作的执行计划。没有这样的私有读写PDB,就不能在备用CDB上执行写入操作。
当用户从备用CDB 430查询数据时,向查询指派由LT服务486维护的当前LT。因此,继续上述示例,来自用户的对备用PDB 450中的数据的查询被指派由LT服务486维护的当前LT。
根据实施例,流程图500的步骤504-508被执行,作为执行步骤502中所参考的查询的一部分。
在步骤504处,自动生成第二操作,其中第二操作在备用容器数据库中的私有可插拔数据库中执行写入操作。继续步骤502的示例,数据库服务器实例182在私有PDB 454内自动执行在执行计划中指示的写入操作。更具体而言,数据库服务器实例182通过私有PDB454自动制定递归操作(诸如DDL/DML操作)。递归操作在私有PDB 454内执行来自查询执行计划的写入操作(即使原始查询未参考私有PDB 454)。递归操作类似于经由dblink对单独的数据库/PDB(与发起dblink的查询在其上运行的数据库/PDB分开)执行的操作,其中单独的数据库/PDB是私有PDB 454,与备用PDB 450驻留在同一个CDB 430中。
根据一个实施例,私有PDB 454用于适应查询计划中包括的写入操作,因为私有PDB 454适应在备用CDB 430内执行的所有写入操作。根据另一个实施例,私有PDB 454用于适应查询在备用PDB 450上所需的写入操作,因为私有PDB 454是与备用PDB 450对应的私有PDB(如下面进一步详细描述的)。
在步骤506处,基于为私有可插拔数据库维护的第一LT服务确定用于第二操作的LT,其中为私有可插拔数据库维护的第一LT服务不同于为备用容器数据库维护的第二LT服务。继续上述示例,在通过私有PDB 454执行递归操作之前,实例182向递归操作指派由服务于私有PDB 454的特定于PDB的LT服务(488)维护的当前LT。这种LT指派允许实例182根据PDB 454内的潜在变化的数据来维持由私有读写PDB 454上的递归操作发起的事务的ACID特性。
在步骤508处,至少部分地基于为第二操作确定的LT执行第二操作。例如,数据库服务器实例182执行递归操作,该递归操作被生成以基于指派给递归操作的查询LT来执行包括写入操作的用户查询的执行计划的至少一部分。更具体而言,实例182从递归操作中排除在递归操作的LT之后更新的任何数据(通过除针对用户查询发起的一个或多个事务之外的事务),以及排除由其它事务做出的未提交的变更。
继续步骤506的示例,在PDB 454上执行写入操作的递归操作将从备用PDB 450检索到的一部分数据写入PDB 454内的表。为了说明,递归操作的执行使得实例182在为私有PDB 454分配的表空间内创建表,并使实例182将数据写入能。实例182创建重做记录,其记录对私有PDB 454所做的变更并将重做记录存储在(一个或多个)重做日志460内。
取决于查询执行计划的要求,写入私有PDB 454的数据可能需要与来自备用PDB450的数据组合,例如,经由连接操作。在这种情况下,如果在当前数据库会话期间尚未建立这样的链接,那么数据库服务器实例182透明地并且自动地在备用PDB 450和私有PDB 454之间创建链接。例如,在用户在PDB 454中创建过渡表T(如以上示例中所述)之后,用户提交将表T与PDB 450中的另一个表S连接的查询。为了执行查询,数据库服务器实例182将操作分以成分布式查询,该分布式查询表示PDB 450中的表S和PDB 454中的远程表T通过dblink的连接。(关于数据库链接(“dblinks”)的更多信息可在“Database Links”中找到,这是Oracle Database Online Documentation 11g第1版(11.1)中包括的Oracle文章,此时位于URL“docs.oracle.com/cd/B28359_01/server.111/b28310”下的“ds_concepts002.htm”,其全部内容通过引用并入本文,如同在本文完全阐述一样。)
经由备用PDB 450和私有PDB 454之间的数据库链接以类似于多个数据库上的分布式操作的方式执行所需的数据组合(分布式连接)。(参见例如“Accessing andModifying Information in Multiple Databases”,这是Oracle Database OnlineDocumentation11g第1版(11.1)中包括的Oracle文章,此时位于URL“docs.oracle.com/cd/B28359_01/server.111/b28324”下的“tdpii_distdbs.htm”,其全部内容通过引用并入本文,如同在本文完全阐述一样。)出于成本评估的目的,在同一CDB中的PDB之间连接数据类似于内部连接,因为在同一CDB内的PDB之间的内部连接和连接数据比通过网络跨不同数据库连接数据更高效。
用户查询中的显式写入操作
根据另外的实施例,用户查询需要写入操作,因为用户的查询本身在备用CDB 430内执行写入操作。在这些实施例中,数据库服务器实例182自动执行私有读写PDB(诸如私有PDB 454)内的任何写入操作(指示在备用PDB中执行)。以这种方式,备用CDB内的私有PDB适应用户查询据称在备用CDB中的备用可插拔数据库之一上执行的写入操作。
例如,查询请求在备用PDB 450上执行写入操作。实例182不是写入PDB 450,而是使写入操作在私有PDB 454中执行。在这些实施例中,实例182还从实际写入数据的私有PDB中检索据称在备用CDB内写入的任何数据。
根据另一个实施例,私有PDB 454可供用户直接在用户查询中参考查询中的写入操作。例如,对备用CDB 430的查询明确地包括对私有PDB 454的写入操作。
私有PDB镜像备用PDB的结构
根据实施例,为了适应写入备用PDB的用户查询,数据库服务器实例182为备用CDB内的每个备用PDB自动创建对应的私有读写PDB。这个实施例在图4B中绘出,其中备用PDB450与私有PDB 454对应,备用PDB 452与私有PDB 456(其是如上所述的私有PDB)对应。根据实施例,单独的LT服务(不同于LT服务488并且未在图4B中绘出)是用于私有PDB 456的特定于PDB的LT服务。根据实施例,私有PDB 454和456是都利用相同的特定于PDB的LT服务488的一组PDB,其中实例182递增由LT服务488维护的当前LT,以跟踪在私有PDB 454和456内进行的变更。
与备用PDB对应的私有PDB镜像备用PDB的结构。因此,在图4B的示例中,私有PDB454镜像备用PDB 450的结构,并且私有PDB 456镜像备用PDB 452的结构。以这种方式,用户可以在用户查询中包括写入备用PDB中的特定结构的写入操作,并且写入操作被重定向到对应私有PDB内的对应结构。
例如,用户查询需要在PDB 450的表空间“T2”中的文件“F1”内创建新表。实例182通过私有PDB 454自动创建递归查询,私有PDB 454与PDB 450对应,其将新表写入PDB 454的对应表空间“T2”中的对应文件“F1”内。下面进一步详细描述对对应的私有PDB执行递归查询。
根据实施例,使用可从对应备用PDB内的对应数据库对象的标识符导出的标识符来识别私有PDB内的数据库对象。例如,对应的备用和私有PDB内的对应数据库对象的标识符是相同的。根据这些实施例,实例182使用私有PDB内的数据库对象的标识符来形成对私有PDB的查询,该私有PDB中的数据库对象的标识符是从在对应的备用PDB上的用户查询中指示的标识符导出的。
自动创建私有PDB
根据实施例,对于主要CDB 410中的每个标准PDB,数据库服务器实例142自动在CDB字典414内创建对应私有PDB的记录(不需要来自用户的显式命令来创建这些私有PDB)。例如,用户配置实例142以自动为主要CDB 410中的PDB创建镜像私有PDB。因此,在图4B的示例配置中,实例142自动将定义两个私有PDB的数据库元数据添加到CDB字典414,分别有一个私有PDB与PDB 420和422中的每一个对应。如上所述,记录变更的重做流(以及有时特殊重做标记)以及关于这些私有PDB的信息到备用CDB 430内的CDB字典434的传播发起在CDB430内创建私有PDB 454和456。
根据实施例,私有PDB(与特定的主PDB对应)的结构镜像特定主PDB的结构。根据这种实施例,实例142使得在CDB字典414内定义私有PDB的元数据描述私有PDB的结构,其反映私有PDB所对应的特定主要PDB的结构。
为了说明,数据库服务器实例142产生定义与标准PDB 420对应的私有PDB的元数据,其中标准PDB 420包括两个表空间(“T1”和“T2”),每个表空间具有两个文件(“F1”和“F2”))。照此,实例142配置定义私有PDB的数据库元数据以包括两个表空间(“T1”和“T2”),每个表空间具有两个文件(“F1”和“F2”),使得在用于私有PDB 454的元数据内描述的结构反映PDB 420的结构。
当实例182创建与标准PDB 420对应(并且因此也与从PDB 420复制数据的备用PDB450对应)的私有PDB 454时,私有PDB 454的结构镜像备用CDB 430内的对应备用PDB 450的结构。
此外,必须对对应的私有PDB进行对主要PDB结构的任何变更。因此,实例142更新私有PDB的元数据(以及有时创建特殊重做标记的集合)以反映对与私有PDB对应的主PDB所做的任何变更。根据实施例,实例142在根数据库412或实例142可访问的其它存储装置内维护主要CDB 410内的PDB与其对应的私有PDB的标识符(该标识符在特殊重做标记内用于定向私有PDB)之间的映射。
例如,用户使实例142在PDB 420中的特定表空间T1内创建新文件F3。因为已知PDB420具有对应的私有PDB(其是CDB 430中的PDB 454),与改变PDB 420的结构有关,所以实例142还创建并向(一个或多个)重做日志470存储编码指令:“将文件F3添加到私有PDB 454中的表空间T1”的新的特殊重做标记。因此,PDB 420(和PDB 450)及其对应的私有PDB 454保持镜像结构。
根据实施例,数据库服务器实例182自动对备用CDB 430内的私有PDB进行变更,以使私有PDB的结构符合对应的备用PDB。在此类实施例中,当实例182确定实现对备用PDB的结构的变更时(即,基于为主要CDB 410记录的重做条目的应用),实例182自动地影响对与已变更的备用PDB对应的私有PDB的结构的类似变更。根据实施例,实例182在实例182可访问的存储装置内维持备用CDB 430内的备用PDB与其对应的私有PDB之间的映射。
例如,用户使实例142在PDB 420中的特定表空间T1内创建新文件F3。根据正常操作过程,实例142使重做条目存储在(一个或多个)重做日志470中,其中重做条目记录对PDB420的结构所做的变更。当数据库服务器实例182将这个重做条目应用于更新备用CDB 430时,实例182在PDB 450中的表空间T1内创建新文件F3,其中PDB 450是作为PDB 420的复制品的备用PDB。关于实现这种变更,并且因为PDB 450具有对应的私有PDB 454,所以实例182也造成在私有PDB 454中的表空间T1内创建新文件F3。
记录类似事件的重做条目的簿记(bookkeeping)
根据实施例,每个文件具有文件号,该文件号在给定CDB内必须是唯一的。由于这个要求,CDB内创建的每个文件的文件号一般从CDB的字典中分配。为了维持备用CDB中的私有PDB内的文件号的唯一性,在私有PDB内创建的新文件被指派来自主要CDB 410的唯一文件号。以这种方式,主要CDB 410管理主要系统和备用系统内的所有文件号,这防止了如果文件号被独立地选择用于私有PDB中的文件而可能发生的文件号冲突。
照此,数据库服务器实例142将唯一文件号指派给私有PDB 454内的新文件。例如,实例142包括特殊重做标记内的唯一文件号,该标记对在PDB 454内创建新文件的指令进行编码。私有PDB 454内的新文件被指派来自实例142的文件号。
在私有PDB上执行用户查询的部分
根据实施例,私有PDB 454用于适应针对备用PDB 450的写入操作,因为私有PDB454是与备用PDB 450对应的私有读写PDB。同样,针对备用PDB 452的任何写入操作将被透明地重定向(如本文所述)到与PDB 452对应的私有PDB 456。因此,代替响应于用户对只读备用PDB执行写入操作而发出错误,DBMS使得对相应的私有PDB执行写入操作。
为了说明,用户请求在备用PDB 450的表空间T1内创建特定对象。在执行查询之前,数据库服务器实例182从用户提交的查询中创建两个查询:(1)在备用PDB 450上执行第一分量查询,其执行在用户的查询中请求的读取操作;(2)在PDB 454的对应表空间T1内执行写入操作的对应私有PDB 454上的第二分量查询,PDB 454的对应表空间T1是私有PDB454内与PDB 450内的表空间T1对应的表空间。
根据实施例,通过私有PDB 454的第二分量查询还包括读取存储在私有PDB 454中(而不是备用PDB 450中)的信息的任何读取操作。例如,实例182自动检测用户查询所需的读取操作,该读取操作从写入私有PDB 454的对象读取,并且实例182自动包括针对私有PDB454的查询内的那些读取操作。为了说明,用户在备用PDB 450中的表S上运行以下查询:“create table T as select*from S”。数据库服务器实例182在内部将这个查询转换为(a)第一分量查询,其从PDB 450中的表S中选择*,以及(b)第二分量查询,其在私有PDB 454内创建表T并且还通过备用PDB 450和私有PDB 454之间的dblink填充表T的初始内容(即,来自表S的结果)。
硬件概述
根据一个实施例,本文描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行这些技术,或者可以包括数字电子设备(诸如被持久地编程为执行这些技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)),或者可以包括被编程为根据固件、存储器、其它存储装置或组合中的程序指令执行这些技术的一个或多个通用硬件处理器。这种专用计算设备还可以将定制的硬连线逻辑、ASIC或FPGA与定制编程相结合,以实现这些技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、联网设备或者结合硬连线和/或程序逻辑以实现这些技术的任何其它设备。
例如,图6是图示可以在其上实现本发明实施例的计算机系统600的框图。计算机系统600包括总线602或用于传送信息的其它通信机制,以及与总线602耦合以处理信息的硬件处理器604。硬件处理器604可以是例如通用微处理器。
计算机系统600还包括耦合到总线602的主存储器606,诸如随机存取存储器(RAM)或其它动态存储设备,用于存储将由处理器604执行的信息和指令。主存储器606还可以用于存储在执行由处理器604执行的指令期间的临时变量或其它中间信息。当存储在处理器604可访问的非瞬态存储介质中时,这些指令使计算机系统600成为被定制以执行指令中指定的操作的专用机器。
计算机系统600还包括耦合到总线602的只读存储器(ROM)608或其它静态存储设备,用于存储用于处理器604的静态信息和指令。提供存储设备610(诸如磁盘、光盘或固态驱动器)并耦合到总线602,用于存储信息和指令。
计算机系统600可以经由总线602耦合到显示器612(诸如阴极射线管(CRT)),用于向计算机用户显示信息。包括字母数字键和其它键的输入设备614耦合到总线602,用于将信息和命令选择传送到处理器604。另一种类型的用户输入设备是光标控件616(诸如鼠标、轨迹球或光标方向键),用于将方向信息和命令选择传送到处理器604并用于控制显示器612上的光标移动。这种输入设备通常在两个轴上具有两个自由度,第一轴(例如,x)和第二轴(例如,y),这允许设备指定平面中的位置。
计算机系统600可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑(它们与计算机系统相结合,使计算机系统600成为或将计算机系统600编程为专用机器)来实现本文所述的技术。根据一个实施例,响应于处理器604执行包含在主存储器606中的一个或多个指令的一个或多个序列,计算机系统600执行所述的技术。这些指令可以从另一个存储介质(诸如存储设备610)读入到主存储器606中。包含在主存储器606中的指令序列的执行使得处理器604执行本文所述的处理步骤。在替代实施例中,可以使用硬连线的电路系统代替软件指令或与软件指令组合。
如本文使用的术语“存储介质”是指存储使机器以特定方式操作的数据和/或指令的任何非瞬态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘、磁盘或固态驱动器,诸如存储设备610。易失性介质包括动态存储器,诸如主存储器606。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、CD-ROM、任何其它光学数据存储介质、任何具有孔图案的物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒式磁带。
存储介质不同于传输介质但可以与传输介质结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线602的导线。传输介质也可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的那些。
各种形式的介质可以参与将一个或多个指令的一个或多个序列传送到处理器604以供执行。例如,指令最初可以在远程计算机的磁盘或固态驱动器上携带。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统600本地的调制解调器可以在电话线上接收数据并使用红外发送器将数据转换成红外信号。红外检测器可以接收红外信号中携带的数据,并且适当的电路系统可以将数据放在总线602上。总线602将数据传送到主存储器606,处理器604从主存储器606检索并执行指令。由主存储器606接收的指令可以可选地在由处理器604执行之前或之后存储在存储设备610上。
计算机系统600还包括耦合到总线602的通信接口618。通信接口618提供耦合到网络链路620的双向数据通信,其中网络链路620连接到本地网络622。例如,通信接口618可以是集成服务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或者提供与对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口618可以是局域网(LAN)卡,以提供与兼容LAN的数据通信连接。还可以实现无线链路。在任何此类实现中,通信接口618都发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光信号。
网络链路620通常通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路620可以提供通过本地网络622到主计算机624或到由互联网服务提供商(ISP)626操作的数据设备的连接。ISP 626进而通过全球分组数据通信网络(现在通常称为“互联网”628)提供数据通信服务。本地网络622和互联网628都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及网络链路620上并通过通信接口618的信号(其将数字数据携带到计算机系统600和从计算机系统600携带数字数据)是传输介质的示例形式。
计算机系统600可以通过(一个或多个)网络、网络链路620和通信接口618发送消息和接收数据,包括程序代码。在互联网示例中,服务器630可以通过互联网628、ISP 626、本地网络622和通信接口618发送对应用程序的所请求代码。
接收到的代码可以在被接收到时由处理器604执行,和/或存储在存储设备610或其它非易失性存储器中以供稍后执行。
在前面的说明书中,已经参考众多具体细节描述了本发明的实施例,这些细节可以从实现到实现有所变化。因而,说明书和附图应被视为说明性而非限制性的。本发明范围的唯一和排他性指示,以及申请人意图作为本发明范围的内容,是以发布这种权利要求书的具体形式从本申请发布的权利要求书集合的字面和等同范围,包括任何后续更正。

Claims (13)

1.一种计算机执行的方法,包括:
至少部分地基于为源可插拔数据库记录的重做条目对克隆的可插拔数据库执行刷新操作;
在对克隆的可插拔数据库执行刷新操作时,接收在克隆的可插拔数据库上的查询;
基于为克隆的可插拔数据库维护的第一逻辑时间戳(LT)服务确定查询的LT;
其中为克隆的可插拔数据库维护的第一LT服务不同于为包含该克隆的可插拔数据库的容器数据库维护的第二LT服务;
至少部分地基于查询的LT在克隆的可插拔数据库上执行查询;
其中该方法由一个或多个计算设备执行。
2.如权利要求1所述的计算机执行的方法,还包括:
在执行刷新操作时:
从源可插拔数据库确定来自源可插拔数据库的所有变更已在克隆的可插拔数据库中提交的更新LT;以及
将由为克隆的可插拔数据库维护的第一LT服务维护的当前LT更新为所述更新LT。
3.如权利要求1所述的计算机执行的方法,还包括:
接收在由容器数据库包含的第二可插拔数据库上的第二查询;
基于为容器数据库维护的第二LT服务确定第二查询的第二LT;以及
至少部分地基于第二LT在第二可插拔数据库上执行第二查询。
4.如权利要求1所述的计算机执行的方法,其中:
确定查询的LT包括确定由第一LT服务维护的当前LT;以及
至少部分地基于查询的LT在克隆的可插拔数据库上执行查询包括从克隆的可插拔数据库中检索已用最多是查询的LT的LT来标记的数据。
5.如权利要求1所述的计算机执行的方法,其中:
第一LT服务和第二LT服务中的每一个识别当前LT;以及
由第一LT源识别出的当前LT与由第二LT服务识别出的当前LT是不同的LT。
6.一种计算机执行的方法,包括:
在从主要容器数据库复制数据的备用容器数据库中的只读可插拔数据库上执行第一查询;
其中第一查询需要写入操作;
其中执行第一查询还包括:
自动生成在备用容器数据库的私有可插拔数据库中执行写入操作的第二操作,
基于为私有可插拔数据库维护的第一LT服务确定第二操作的逻辑时间戳(LT),
其中为私有可插拔数据库维护的第一LT服务不同于为备用容器数据库维护的第二LT服务,以及
至少部分地基于为第二操作确定的LT执行第二操作;
其中该方法由一个或多个计算设备执行。
7.如权利要求6所述的计算机执行的方法,还包括:
在主要容器数据库的第一数据库字典中存储定义私有可插拔数据库的数据库元数据;
在从主要容器数据库向备用容器数据库复制数据时,在备用容器数据库的第二数据库字典中复制定义私有可插拔数据库的数据库元数据;以及
在备用容器数据库中分配用于存储私有可插拔数据库的数据的资源。
8.如权利要求7所述的计算机执行的方法,其中:
从主要容器数据库向备用容器数据库复制数据至少部分地基于在主要容器数据库中记录的重做条目集合;以及
在备用容器数据库中分配用于存储私有可插拔数据库的数据的资源是响应于在重做条目集合内检测到一个或多个特殊重做标记而执行的,所述一个或多个特殊重做标记对在备用容器数据库内建立私有可插拔数据库的一个或多个方面的指令进行编码。
9.如权利要求7所述的计算机执行的方法,其中:
在备用容器数据库中分配用于存储私有可插拔数据库的数据的资源包括:在备用容器数据库内为私有可插拔数据库建立一个或多个表空间;以及
执行第二操作包括在为私有可插拔数据库建立的所述一个或多个表空间中的一个或多个表空间中存储数据。
10.如权利要求6所述的计算机执行的方法,还包括:在用于私有可插拔数据库的重做日志中生成记录对私有可插拔数据库进行的一个或多个变更的重做条目。
11.如权利要求6所述的计算机执行的方法,还包括:
对于备用容器数据库中的每个可插拔数据库,在备用容器数据库中自动建立对应的私有可插拔数据库;
其中只读可插拔数据库与私有可插拔数据库对应。
12.如权利要求11所述的计算机执行的方法,还包括:
在私有可插拔数据库内创建一个或多个表空间和一个或多个文件;
其中在私有可插拔数据库中创建的所述一个或多个表空间中的每个表空间与只读可插拔数据库中的对应表空间对应;
其中在私有可插拔数据库中创建的所述一个或多个文件中的每个文件与只读可插拔数据库中的对应文件对应;以及
其中第一查询所需的写入操作写入只读可插拔数据库中的特定表空间;以及
其中第二操作对私有可插拔数据库内的与只读可插拔数据库中的特定表空间对应的表空间执行写入操作。
13.一种或多种计算机可读存储介质,存储一个或多个指令序列,所述一个或多个指令序列在由一个或多个处理器执行时使得执行权利要求1-12中任一项的方法。
CN201780067593.5A 2016-10-31 2017-10-17 用于促进可插拔数据库上的操作的方法、设备和介质 Active CN109906448B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/339,525 US10891291B2 (en) 2016-10-31 2016-10-31 Facilitating operations on pluggable databases using separate logical timestamp services
US15/339,525 2016-10-31
PCT/US2017/057033 WO2018080843A1 (en) 2016-10-31 2017-10-17 Facilitating operations on pluggable databases using separate logical timestamp services

Publications (2)

Publication Number Publication Date
CN109906448A true CN109906448A (zh) 2019-06-18
CN109906448B CN109906448B (zh) 2024-02-20

Family

ID=60191556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780067593.5A Active CN109906448B (zh) 2016-10-31 2017-10-17 用于促进可插拔数据库上的操作的方法、设备和介质

Country Status (4)

Country Link
US (1) US10891291B2 (zh)
EP (1) EP3532945A1 (zh)
CN (1) CN109906448B (zh)
WO (1) WO2018080843A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922331B2 (en) 2012-09-28 2021-02-16 Oracle International Corporation Cloning a pluggable database in read-write mode
US10152500B2 (en) 2013-03-14 2018-12-11 Oracle International Corporation Read mostly instances
US9767178B2 (en) * 2013-10-30 2017-09-19 Oracle International Corporation Multi-instance redo apply
US10747752B2 (en) 2015-10-23 2020-08-18 Oracle International Corporation Space management for transactional consistency of in-memory objects on a standby database
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
US10698771B2 (en) 2016-09-15 2020-06-30 Oracle International Corporation Zero-data-loss with asynchronous redo shipping to a standby database
US11475006B2 (en) 2016-12-02 2022-10-18 Oracle International Corporation Query and change propagation scheduling for heterogeneous database systems
US10698882B2 (en) * 2017-03-17 2020-06-30 International Business Machines Corporation Data compartments for read/write activity in a standby database
US10691722B2 (en) 2017-05-31 2020-06-23 Oracle International Corporation Consistent query execution for big data analytics in a hybrid database
US11615113B2 (en) * 2017-11-03 2023-03-28 International Business Machines Corporation Net change mirroring optimization across transactions in replication environment
US11263098B2 (en) * 2018-07-02 2022-03-01 Pivotal Software, Inc. Database segment load balancer
US10963484B2 (en) * 2018-07-24 2021-03-30 Mastercard International Incorporated Systems and methods for use in data access
US11163798B1 (en) 2021-03-21 2021-11-02 Snowflake Inc. Database replication to remote deployment with automated fulfillment
US11797536B2 (en) * 2021-04-09 2023-10-24 Thoughtspot, Inc. Just-in-time injection in a distributed database
US12008014B2 (en) * 2021-07-30 2024-06-11 Oracle International Corporation Data guard at PDB (pluggable database) level
US11791835B1 (en) * 2022-06-13 2023-10-17 International Business Machines Corporation Compression improvement in data replication

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901237A (zh) * 2009-12-04 2010-12-01 四川川大智胜软件股份有限公司 一种基于SQlite构建的类型-索引-内容方式分布式数据库
US20140164331A1 (en) * 2012-09-28 2014-06-12 Oracle International Corporation Techniques for backup restore and recovery of a pluggable database
CN104471585A (zh) * 2012-06-05 2015-03-25 甲骨文国际公司 用于数据访问控制实施的基于sql转换的优化技术
US20150254240A1 (en) * 2014-03-10 2015-09-10 Oracle International Corporation Instantaneous Unplug of Pluggable Database From One Container Database and Plug Into Another Container Database
US20150317212A1 (en) * 2014-05-05 2015-11-05 Oracle International Corporation Time-based checkpoint target for database media recovery

Family Cites Families (256)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1332631A (en) 1971-02-26 1973-10-03 Ibm Data processing system
DE3039062C2 (de) 1980-10-16 1983-05-11 Vaw-Leichtmetall Gmbh, 5300 Bonn Absorberzaunanlage als großflächiger Wärmetauscher
US4507751A (en) 1982-06-21 1985-03-26 International Business Machines Corporation Method and apparatus for logging journal data using a log write ahead data set
JPS5981940A (ja) 1982-11-01 1984-05-11 Hitachi Ltd デ−タ転送方式
SE8307228D0 (sv) 1983-12-30 1983-12-30 Grundstenen 16808 Ab Datakomprimering
US4710926A (en) 1985-12-27 1987-12-01 American Telephone And Telegraph Company, At&T Bell Laboratories Fault recovery in a distributed processing system
US5146571A (en) 1988-03-28 1992-09-08 Emc Corporation Remapping defects in a storage system through the use of a tree structure
US4945474A (en) 1988-04-08 1990-07-31 Internatinal Business Machines Corporation Method for restoring a database after I/O error employing write-ahead logging protocols
JPH02189663A (ja) 1989-01-18 1990-07-25 Fuji Electric Co Ltd 入出力データ転送方式
EP0389151A3 (en) 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
US5095421A (en) 1989-08-17 1992-03-10 International Business Machines Corporation Transaction processing facility within an operating system environment
JP3222125B2 (ja) 1990-01-29 2001-10-22 株式会社日立製作所 システム間データベース共用方式
US5233618A (en) 1990-03-02 1993-08-03 Micro Technology, Inc. Data correcting applicable to redundant arrays of independent disks
US5182752A (en) 1990-06-29 1993-01-26 Digital Equipment Corporation Method and apparatus for transferring data between a data bus and a data storage device
US5388196A (en) 1990-09-07 1995-02-07 Xerox Corporation Hierarchical shared books with database
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
JP3516344B2 (ja) 1990-10-22 2004-04-05 株式会社日立製作所 分散処理システムの多重データ処理方法
US5263156A (en) 1990-12-20 1993-11-16 Bell Communications Research, Inc. Parallel, distributed optimistic concurrency control certification using hardware filtering
JPH0827755B2 (ja) 1991-02-15 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション データの単位を高速度でアクセスする方法
US5287496A (en) 1991-02-25 1994-02-15 International Business Machines Corporation Dynamic, finite versioning for concurrent transaction and query processing
US5289478A (en) 1991-03-11 1994-02-22 Fujitsu Limited Method and means for verification of write data
US5369757A (en) 1991-06-18 1994-11-29 Digital Equipment Corporation Recovery logging in the presence of snapshot files by ordering of buffer pool flushing
US5333316A (en) 1991-08-16 1994-07-26 International Business Machines Corporation Locking and row by row modification of a database stored in a single master table and multiple virtual tables of a plurality of concurrent users
EP0541281B1 (en) 1991-11-04 1998-04-29 Commvault Systems, Inc. Incremental-computer-file backup using signatures
US5355477A (en) 1991-12-23 1994-10-11 International Business Machines Corporation Method for updating a block using record-level locks by committing the update if the block has not been updated by another process otherwise spinning
JP2855019B2 (ja) 1992-02-10 1999-02-10 富士通株式会社 外部記憶装置のデータ保証方法及び外部記憶装置
US5423037A (en) 1992-03-17 1995-06-06 Teleserve Transaction Technology As Continuously available database server having multiple groups of nodes, each group maintaining a database copy with fragments stored on multiple nodes
US5555404A (en) 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
US5241675A (en) 1992-04-09 1993-08-31 Bell Communications Research, Inc. Method for enforcing the serialization of global multidatabase transactions through committing only on consistent subtransaction serialization by the local database managers
US5454102A (en) 1993-01-19 1995-09-26 Canon Information Systems, Inc. Method and apparatus for transferring structured data using a self-generating node network
US5418940A (en) 1993-08-04 1995-05-23 International Business Machines Corporation Method and means for detecting partial page writes and avoiding initializing new pages on DASD in a transaction management system environment
US5487164A (en) 1993-09-14 1996-01-23 International Business Machines Corporation Distribution-based replacement selection sorting system
US5553279A (en) 1993-10-08 1996-09-03 International Business Machines Corporation Lossless distribution of time series data in a relational data base network
US5613113A (en) 1993-10-08 1997-03-18 International Business Machines Corporation Consistent recreation of events from activity logs
US5642503A (en) 1993-12-15 1997-06-24 Microsoft Corporation Method and computer system for implementing concurrent accesses of a database record by multiple users
JP2507235B2 (ja) 1994-06-24 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法
US5696775A (en) 1994-09-23 1997-12-09 Cirrus Logic, Inc. Method and apparatus for detecting the transfer of a wrong sector
US5581753A (en) 1994-09-28 1996-12-03 Xerox Corporation Method for providing session consistency guarantees
US5574906A (en) 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US5581754A (en) 1994-12-07 1996-12-03 Xerox Corporation Methodology for managing weakly consistent replicated databases
JPH08235032A (ja) 1995-02-22 1996-09-13 Nec Software Kansai Ltd データベース更新論理チェック方式
EP0839353B1 (en) 1995-07-20 2001-09-26 Novell, Inc. Transaction synchronization in a disconnectable computer and network
US5805799A (en) 1995-12-01 1998-09-08 Quantum Corporation Data integrity and cross-check code with logical block address
US5870758A (en) 1996-03-11 1999-02-09 Oracle Corporation Method and apparatus for providing isolation levels in a database system
US5778430A (en) 1996-04-19 1998-07-07 Eccs, Inc. Method and apparatus for computer disk cache management
US5893930A (en) 1996-07-12 1999-04-13 International Business Machines Corporation Predictive translation of a data address utilizing sets of associative entries stored consecutively in a translation lookaside buffer
JPH1040122A (ja) 1996-07-19 1998-02-13 Fujitsu Ltd 計算機
US6044367A (en) 1996-08-02 2000-03-28 Hewlett-Packard Company Distributed I/O store
US5870759A (en) 1996-10-09 1999-02-09 Oracle Corporation System for synchronizing data between computers using a before-image of data
FR2754926B1 (fr) 1996-10-23 1998-11-20 Schlumberger Ind Sa Procede de gestion de defauts d'integrite de donnees dans une memoire reinscriptible
US6321369B1 (en) 1996-10-28 2001-11-20 Altera Corporation Interface for compiling project variations in electronic design environments
US5806076A (en) 1996-10-29 1998-09-08 Oracle Corporation Tracking dependencies between transactions in a database
JPH10171681A (ja) 1996-12-10 1998-06-26 Fujitsu Ltd オブジェクト指向装置管理システム
JPH10240575A (ja) 1997-02-26 1998-09-11 Hitachi Software Eng Co Ltd 大量データファイル一括更新処理プログラムの検査方法
US6067550A (en) 1997-03-10 2000-05-23 Microsoft Corporation Database computer system with application recovery and dependency handling write cache
US5870763A (en) 1997-03-10 1999-02-09 Microsoft Corporation Database computer system with application recovery and dependency handling read cache
US5956731A (en) 1997-04-23 1999-09-21 Oracle Corporation Sharing snapshots for consistent reads
US6094708A (en) 1997-05-06 2000-07-25 Cisco Technology, Inc. Secondary cache write-through blocking mechanism
US6272503B1 (en) 1997-05-30 2001-08-07 Oracle Corporation Tablespace-relative database pointers
US6026406A (en) 1997-06-04 2000-02-15 Oracle Corporation Batch processing of updates to indexes
US5960436A (en) 1997-08-29 1999-09-28 International Business Machines Corp. Transaction compaction for replay of transactions from client to server
US6014669A (en) 1997-10-01 2000-01-11 Sun Microsystems, Inc. Highly-available distributed cluster configuration database
US5924096A (en) 1997-10-15 1999-07-13 Novell, Inc. Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand
US6237124B1 (en) 1998-03-16 2001-05-22 Actel Corporation Methods for errors checking the configuration SRAM and user assignable SRAM data in a field programmable gate array
US6009542A (en) 1998-03-31 1999-12-28 Quantum Corporation Method for preventing transfer of data to corrupt addresses
US6192377B1 (en) 1998-05-13 2001-02-20 Oracle Corporation Method and apparatus for determing whether a transaction can use a version of a data item
US6009432A (en) 1998-07-08 1999-12-28 Required Technologies, Inc. Value-instance-connectivity computer-implemented database
US6353835B1 (en) 1998-08-03 2002-03-05 Lucent Technologies Inc. Technique for effectively maintaining materialized views in a data warehouse
US6098190A (en) 1998-08-04 2000-08-01 Hewlett-Packard Co. Method and apparatus for use of a host address to validate accessed data
US6449623B1 (en) 1998-09-04 2002-09-10 Lucent Technologies Inc, Method and apparatus for detecting and recovering from data corruption of a database via read logging
US6226650B1 (en) 1998-09-17 2001-05-01 Synchrologic, Inc. Database synchronization and organization system and method
US6393485B1 (en) 1998-10-27 2002-05-21 International Business Machines Corporation Method and apparatus for managing clustered computer systems
US6516327B1 (en) 1998-12-24 2003-02-04 International Business Machines Corporation System and method for synchronizing data in multiple databases
US6298425B1 (en) 1999-01-12 2001-10-02 Compaq Computer Corp. Computer disk management system using doublet A-B logging
US6446234B1 (en) 1999-03-16 2002-09-03 International Business Machines Corporation Method and apparatus for updating cyclic redundancy check information for data storage
US6438724B1 (en) 1999-03-16 2002-08-20 International Business Machines Corporation Method and apparatus for deterministically altering cyclic redundancy check information for data storage
US6535869B1 (en) 1999-03-23 2003-03-18 International Business Machines Corporation Increasing efficiency of indexing random-access files composed of fixed-length data blocks by embedding a file index therein
US6728879B1 (en) 1999-06-02 2004-04-27 Microsoft Corporation Transactional log with multi-sector log block validation
US6839751B1 (en) 1999-06-30 2005-01-04 Hi/Fn, Inc. Re-using information from data transactions for maintaining statistics in network monitoring
US6401104B1 (en) 1999-07-03 2002-06-04 Starfish Software, Inc. System and methods for synchronizing datasets using cooperation among multiple synchronization engines
US7024656B1 (en) 1999-11-29 2006-04-04 Oracle International Corporation Persistent agents
KR100372582B1 (ko) 2000-02-23 2003-02-17 가부시키가이샤 히타치세이사쿠쇼 데이터처리방법 및 시스템 및 그 처리프로그램을 기록한계산기판독이 가능한 기록매체
US20030046396A1 (en) 2000-03-03 2003-03-06 Richter Roger K. Systems and methods for managing resource utilization in information management environments
US6523032B1 (en) 2000-05-12 2003-02-18 Oracle Corporation Servicing database requests using read-only database servers coupled to a master database server
US7062483B2 (en) 2000-05-18 2006-06-13 Endeca Technologies, Inc. Hierarchical data-driven search and navigation system and method for information retrieval
US6732125B1 (en) 2000-09-08 2004-05-04 Storage Technology Corporation Self archiving log structured volume with intrinsic data protection
US6928607B2 (en) 2000-10-19 2005-08-09 Oracle International Corporation Data integrity verification mechanism
US7020835B2 (en) 2000-10-19 2006-03-28 Oracle International Corporation Enhancements to data integrity verification mechanism
US7237027B1 (en) 2000-11-10 2007-06-26 Agami Systems, Inc. Scalable storage system
US6961728B2 (en) 2000-11-28 2005-11-01 Centerboard, Inc. System and methods for highly distributed wide-area data management of a network of data sources through a database interface
US6760826B2 (en) 2000-12-01 2004-07-06 Wind River Systems, Inc. Store data in the system memory of a computing device
US6868417B2 (en) 2000-12-18 2005-03-15 Spinnaker Networks, Inc. Mechanism for handling file level and block level remote file accesses using the same server
US6691139B2 (en) 2001-01-31 2004-02-10 Hewlett-Packard Development Co., Ltd. Recreation of archives at a disaster recovery site
US20020165724A1 (en) 2001-02-07 2002-11-07 Blankesteijn Bartus C. Method and system for propagating data changes through data objects
US6892205B1 (en) 2001-02-28 2005-05-10 Oracle International Corporation System and method for pre-compiling a source cursor into a target library cache
US7177866B2 (en) 2001-03-16 2007-02-13 Gravic, Inc. Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only
US7464113B1 (en) 2001-05-10 2008-12-09 Oracle International Corporations Disaster recovery with bounded data loss
US6574717B1 (en) 2001-05-31 2003-06-03 Oracle Corporation Techniques for time-based retention of a reusable resource
US7305421B2 (en) 2001-07-16 2007-12-04 Sap Ag Parallelized redo-only logging and recovery for highly available main memory database systems
US7155463B1 (en) 2001-09-20 2006-12-26 Emc Corporation System and method for replication of one or more databases
US7290017B1 (en) 2001-09-20 2007-10-30 Emc Corporation System and method for management of data replication
US6980988B1 (en) 2001-10-01 2005-12-27 Oracle International Corporation Method of applying changes to a standby database system
US7143080B2 (en) 2001-12-27 2006-11-28 Tedesco Michael A Method, system and apparatus for separately processing database queries
US6938045B2 (en) * 2002-01-18 2005-08-30 Seiko Epson Corporation Image server synchronization
US6775681B1 (en) 2002-02-26 2004-08-10 Oracle International Corporation Evaluation of grouping sets by reduction to group-by clause, with or without a rollup operator, using temporary tables
US7149769B2 (en) 2002-03-26 2006-12-12 Hewlett-Packard Development Company, L.P. System and method for multi-destination merge in a storage area network
US8738568B2 (en) 2011-05-05 2014-05-27 Oracle International Corporation User-defined parallelization in transactional replication of in-memory database
US8589346B2 (en) 2011-04-26 2013-11-19 Oracle International Corporation Techniques for combining statement level, procedural, and row level replication
US6898609B2 (en) 2002-05-10 2005-05-24 Douglas W. Kerwin Database scattering system
US6862593B2 (en) 2002-05-17 2005-03-01 Sun Microsystems, Inc. Separation of database transactions
US7003694B1 (en) 2002-05-22 2006-02-21 Oracle International Corporation Reliable standby database failover
US7222136B1 (en) 2002-05-23 2007-05-22 Oracle International Corporation Communicating data dictionary information of database objects through a redo stream
US7363538B1 (en) 2002-05-31 2008-04-22 Oracle International Corporation Cost/benefit based checkpointing while maintaining a logical standby database
US7228354B2 (en) 2002-06-28 2007-06-05 International Business Machines Corporation Method for improving performance in a computer storage system by regulating resource requests from clients
JP3977698B2 (ja) 2002-07-05 2007-09-19 株式会社日立製作所 記憶制御装置、記憶制御装置の制御方法、及びプログラム
US7076508B2 (en) 2002-08-12 2006-07-11 International Business Machines Corporation Method, system, and program for merging log entries from multiple recovery log files
US7370068B1 (en) 2002-09-04 2008-05-06 Teradata Us, Inc. Sorting of records with duplicate removal in a database system
JP2005538470A (ja) 2002-09-10 2005-12-15 イグザグリッド システムズ, インコーポレイテッド ノーダルフェイルオーバを用いるプライマリーデータバックアップおよびリモートデータバックアップ
US7203691B2 (en) 2002-09-27 2007-04-10 Ncr Corp. System and method for retrieving information from a database
US6983295B1 (en) 2002-10-24 2006-01-03 Unisys Corporation System and method for database recovery using a mirrored snapshot of an online database
JP4318914B2 (ja) 2002-12-26 2009-08-26 富士通株式会社 ストレージシステム及びその動的負荷管理方法
US7103603B2 (en) 2003-03-28 2006-09-05 International Business Machines Corporation Method, apparatus, and system for improved duplicate record processing in a sort utility
US7181476B2 (en) 2003-04-30 2007-02-20 Oracle International Corporation Flashback database
US7287034B2 (en) 2003-05-08 2007-10-23 Oracle International Corporation On-demand multi-version data dictionary to support distributed applications
US7447786B2 (en) 2003-05-09 2008-11-04 Oracle International Corporation Efficient locking of shared data that is accessed for reads in a cluster database
US7457829B2 (en) 2003-06-23 2008-11-25 Microsoft Corporation Resynchronization of multiple copies of a database after a divergence in transaction history
US7873684B2 (en) 2003-08-14 2011-01-18 Oracle International Corporation Automatic and dynamic provisioning of databases
US7555497B2 (en) 2003-08-21 2009-06-30 Microsoft Corporation Systems and methods for separating units of information manageable by a hardware/software interface system from their physical organization
EP1678645B1 (en) 2003-10-27 2019-10-02 Hitachi Vantara Corporation Policy-based management of a redundant array of independent nodes
US7149858B1 (en) 2003-10-31 2006-12-12 Veritas Operating Corporation Synchronous replication for system and data security
US7349925B2 (en) 2004-01-22 2008-03-25 International Business Machines Corporation Shared scans utilizing query monitor during query execution to improve buffer cache utilization across multi-stream query environments
US7490083B2 (en) 2004-02-27 2009-02-10 International Business Machines Corporation Parallel apply processing in data replication with preservation of transaction integrity and source ordering of dependent updates
US7966293B1 (en) 2004-03-09 2011-06-21 Netapp, Inc. System and method for indexing a backup using persistent consistency point images
US7996363B2 (en) 2004-05-19 2011-08-09 Oracle International Corporation Real-time apply mechanism in standby database environments
US7596571B2 (en) 2004-06-30 2009-09-29 Technorati, Inc. Ecosystem method of aggregation and search and related techniques
US7809690B2 (en) 2004-07-13 2010-10-05 Oracle International Corporation Performance metric-based selection of one or more database server instances to perform database recovery
US8078607B2 (en) 2006-03-30 2011-12-13 Google Inc. Generating website profiles based on queries from webistes and user activities on the search results
US20060047713A1 (en) 2004-08-03 2006-03-02 Wisdomforce Technologies, Inc. System and method for database replication by interception of in memory transactional change records
US20060064405A1 (en) 2004-09-21 2006-03-23 Xiaoye Jiang Hybrid client-server protocol for fast writes to a file
EP1800227A2 (en) 2004-10-04 2007-06-27 Clearpace Software Limited Method and system for implementing an enhanced database
US7519962B2 (en) 2004-10-07 2009-04-14 Thomson Financial Llc Command script parsing using local and extended storage for command lookup
US7257689B1 (en) 2004-10-15 2007-08-14 Veritas Operating Corporation System and method for loosely coupled temporal storage management
CA2485814A1 (en) 2004-11-24 2006-05-24 Auroral Zone Corporation Method and apparatus for range processing in an n-dimensional space
EP1684194A1 (en) 2005-01-25 2006-07-26 Sap Ag A central lock service for database applications
US7823150B2 (en) 2005-01-25 2010-10-26 International Business Machines Corporation Computer-implemented method, system and program product for establishing multiple read-only locks on a shared data object
US7499917B2 (en) 2005-01-28 2009-03-03 International Business Machines Corporation Processing cross-table non-Boolean term conditions in database queries
KR101172445B1 (ko) 2005-02-15 2012-08-07 엘지전자 주식회사 냉난방 동시형 멀티 에어컨
US7627614B2 (en) 2005-03-03 2009-12-01 Oracle International Corporation Lost write detection and repair
US7735089B2 (en) 2005-03-08 2010-06-08 Oracle International Corporation Method and system for deadlock detection in a distributed environment
US7546431B2 (en) 2005-03-21 2009-06-09 Emc Corporation Distributed open writable snapshot copy facility using file migration policies
US7512625B2 (en) 2005-04-01 2009-03-31 International Business Machines Corporation Method, system and program for joining source table rows with target table rows
JP4414381B2 (ja) 2005-08-03 2010-02-10 富士通株式会社 ファイル管理プログラム、ファイル管理装置、ファイル管理方法
US8615578B2 (en) 2005-10-07 2013-12-24 Oracle International Corporation Using a standby data storage system to detect the health of a cluster of data storage servers
EP1952283A4 (en) 2005-10-28 2010-01-06 Goldengate Software Inc DEVICE AND METHOD FOR GENERATING A REAL-TIME DATABASE DUPLICATE
US7734596B2 (en) 2005-11-30 2010-06-08 Stephen John Vivian Automatic failover configuration with redundant abservers
US7430553B2 (en) 2005-12-30 2008-09-30 Microsoft Corporation Managing states with delta pager
US7574560B2 (en) 2006-01-03 2009-08-11 Emc Corporation Methods, systems, and computer program products for dynamic mapping of logical units in a redundant array of inexpensive disks (RAID) environment
US7689538B2 (en) 2006-01-26 2010-03-30 International Business Machines Corporation Autonomic recommendation and placement of materialized query tables for load distribution
US7822717B2 (en) 2006-02-07 2010-10-26 Emc Corporation Point-in-time database restore
US9026679B1 (en) 2006-03-30 2015-05-05 Emc Corporation Methods and apparatus for persisting management information changes
US7636538B2 (en) 2006-04-27 2009-12-22 Seiko Epson Corporation Layer-thickness restriction member, developing device, method for manufacturing restriction blade, and blade-forming mold
US8060879B2 (en) 2006-05-30 2011-11-15 Oracle America, Inc. Predictive log synchronization
US20080059492A1 (en) 2006-08-31 2008-03-06 Tarin Stephen A Systems, methods, and storage structures for cached databases
US7600063B2 (en) 2006-09-15 2009-10-06 Oracle International Corporation Techniques for improved read-write concurrency
US7627612B2 (en) 2006-09-28 2009-12-01 Emc Israel Development Center, Ltd. Methods and apparatus for optimal journaling for continuous data replication
US7797468B2 (en) 2006-10-31 2010-09-14 Hewlett-Packard Development Company Method and system for achieving fair command processing in storage systems that implement command-associated priority queuing
US7849073B2 (en) 2006-12-18 2010-12-07 Ianywhere Solutions, Inc. Load balancing for complex database query plans
US20080162587A1 (en) * 2006-12-29 2008-07-03 Ulrich Auer Server synchronization for maintenance activities
US8706687B2 (en) 2007-01-24 2014-04-22 Hewlett-Packard Development Company, L.P. Log driven storage controller with network persistent memory
US7734580B2 (en) 2007-01-29 2010-06-08 Oracle International Corporation Readable physical storage replica and standby database system
US20080208820A1 (en) 2007-02-28 2008-08-28 Psydex Corporation Systems and methods for performing semantic analysis of information over time and space
US8868504B2 (en) 2007-03-07 2014-10-21 Oracle International Corporation Database system with active standby and nodes
US8892780B2 (en) 2007-03-08 2014-11-18 Oracle International Corporation Management of shared storage I/O resources
US7680795B2 (en) 2007-03-16 2010-03-16 International Business Machines Corporation Shared disk clones
US7599967B2 (en) 2007-03-20 2009-10-06 Oracle International Corporation No data loss system with reduced commit latency
US8099565B2 (en) 2007-03-27 2012-01-17 The Board Of Regents Of The University Of Texas System Methods and devices for determining quality of services of storage systems
US7761425B1 (en) 2007-03-29 2010-07-20 Symantec Corporation Low-overhead means of performing data backup
US8364648B1 (en) 2007-04-09 2013-01-29 Quest Software, Inc. Recovering a database to any point-in-time in the past with guaranteed data consistency
US7664866B2 (en) 2007-04-10 2010-02-16 Apertio Limited Sub-tree access control in network architectures
US8768895B2 (en) 2007-04-11 2014-07-01 Emc Corporation Subsegmenting for efficient storage, resemblance determination, and transmission
US8024396B2 (en) 2007-04-26 2011-09-20 Microsoft Corporation Distributed behavior controlled execution of modeled applications
US7882304B2 (en) 2007-04-27 2011-02-01 Netapp, Inc. System and method for efficient updates of sequential block storage
US8671076B2 (en) 2007-05-08 2014-03-11 Bmc Software, Inc. Database recovery using logs applied to consistent copies
US8782075B2 (en) 2007-05-08 2014-07-15 Paraccel Llc Query handling in databases with replicated data
US7698272B2 (en) 2007-08-30 2010-04-13 International Business Machines Corporation Apparatus, system, and method for deterministic file allocations for parallel operations
CN101425039A (zh) 2007-11-02 2009-05-06 鹏智科技(深圳)有限公司 控制存储装置文件拷贝的电子设备及方法
US7908257B2 (en) 2008-01-15 2011-03-15 Microsoft Corporation Read mostly database tables
US7949636B2 (en) 2008-03-27 2011-05-24 Emc Corporation Systems and methods for a read only mode for a portion of a storage system
US9395929B2 (en) 2008-04-25 2016-07-19 Netapp, Inc. Network storage server with integrated encryption, compression and deduplication capability
US8090917B2 (en) 2008-05-09 2012-01-03 International Business Machines Corporation Managing storage and migration of backup data
US7979399B2 (en) 2008-06-10 2011-07-12 International Business Machines Corporation Database journaling in a multi-node environment
US8468320B1 (en) 2008-06-30 2013-06-18 Symantec Operating Corporation Scalability of data deduplication through the use of a locality table
US7991775B2 (en) 2008-08-08 2011-08-02 Oracle International Corporation Global checkpoint SCN
EP2350879A1 (en) 2008-09-19 2011-08-03 Oracle International Corporation Hash join using collaborative parallel filtering in intelligent storage with offloaded bloom filters
US10430338B2 (en) 2008-09-19 2019-10-01 Oracle International Corporation Selectively reading data from cache and primary storage based on whether cache is overloaded
US8868831B2 (en) 2009-09-14 2014-10-21 Oracle International Corporation Caching data between a database server and a storage system
US20100082646A1 (en) 2008-09-26 2010-04-01 Microsoft Corporation Tracking constraints and dependencies across mapping layers
US8204859B2 (en) 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
JP4659888B2 (ja) 2009-02-13 2011-03-30 株式会社日立製作所 データベース処理システム、計算機及びデータベース処理方法
US10152504B2 (en) 2009-03-11 2018-12-11 Actian Netherlands B.V. Column-store database architecture utilizing positional delta tree update system and methods
US8401996B2 (en) 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
US8560879B1 (en) 2009-04-22 2013-10-15 Netapp Inc. Data recovery for failed memory device of memory device array
US8583692B2 (en) 2009-04-30 2013-11-12 Oracle International Corporation DDL and DML support for hybrid columnar compressed tables
US8868497B2 (en) 2009-06-12 2014-10-21 Sap Ag Correlation aware synchronization for near real-time decision support
US8549038B2 (en) 2009-06-15 2013-10-01 Oracle International Corporation Pluggable session context
US10120767B2 (en) 2009-07-15 2018-11-06 Idera, Inc. System, method, and computer program product for creating a virtual database
US8429134B2 (en) 2009-09-08 2013-04-23 Oracle International Corporation Distributed database recovery
EP2323047B1 (en) 2009-10-09 2020-02-19 Software AG Primary database system, replication database system and method for replicating data of a primary database system
US8538930B2 (en) 2009-10-09 2013-09-17 International Business Machines Corporation Method and system for database recovery
US8204892B2 (en) 2009-10-26 2012-06-19 Oracle International Corporation Performance boost for sort operations
US8832142B2 (en) 2010-08-30 2014-09-09 Oracle International Corporation Query and exadata support for hybrid columnar compressed data
US8868510B2 (en) 2009-12-03 2014-10-21 Sybase, Inc. Managing data storage as an in-memory database in a database management system
US9239843B2 (en) 2009-12-15 2016-01-19 Symantec Corporation Scalable de-duplication for storage systems
US8732133B2 (en) 2010-03-16 2014-05-20 Commvault Systems, Inc. Extensible data deduplication system and method
US8433684B2 (en) 2010-03-30 2013-04-30 Sybase, Inc. Managing data backup of an in-memory database in a database management system
US8386431B2 (en) 2010-06-14 2013-02-26 Sap Ag Method and system for determining database object associated with tenant-independent or tenant-specific data, configured to store data partition, current version of the respective convertor
US8473953B2 (en) 2010-07-21 2013-06-25 International Business Machines Corporation Batching transactions to apply to a database
US8806264B2 (en) 2010-08-30 2014-08-12 Oracle International Corporation Methods for detecting split brain in a distributed system
US8589361B2 (en) 2010-08-30 2013-11-19 Oracle International Corporation Reduced disk space standby
US8838919B2 (en) 2010-08-30 2014-09-16 Oracle International Corporation Controlling data lag in a replicated computer system
US9081837B2 (en) 2010-10-28 2015-07-14 Microsoft Technology Licensing, Llc Scoped database connections
US8478718B1 (en) 2010-11-16 2013-07-02 Symantec Corporation Systems and methods for replicating data in cluster environments
US8880508B2 (en) 2010-12-30 2014-11-04 Sap Se Processing database queries using format conversion
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
US8412690B2 (en) 2011-04-11 2013-04-02 Sap Ag In-memory processing for a data warehouse
US20120323971A1 (en) 2011-06-14 2012-12-20 Sybase, Inc. Optimizing data storage and access of an in-memory database
US8868492B2 (en) 2011-06-15 2014-10-21 Oracle International Corporation Method for maximizing throughput and minimizing transactions response times on the primary system in the presence of a zero data loss standby replica
US8880477B2 (en) 2011-10-04 2014-11-04 Nec Laboratories America, Inc. Latency-aware live migration for multitenant database platforms
US9058371B2 (en) 2011-11-07 2015-06-16 Sap Se Distributed database log recovery
US9122606B2 (en) 2011-11-21 2015-09-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for distributing tiered cache processing across multiple processors
US8918436B2 (en) 2011-12-22 2014-12-23 Sap Ag Hybrid database table stored as both row and column store
US8930312B1 (en) 2012-01-17 2015-01-06 Amazon Technologies, Inc. System and method for splitting a replicated data partition
KR101322401B1 (ko) 2012-01-31 2013-10-28 주식회사 알티베이스 동기적 이중화를 위한 데이터베이스 관리 시스템의 병렬 처리 장치 및 방법
US8527462B1 (en) 2012-02-09 2013-09-03 Microsoft Corporation Database point-in-time restore and as-of query
US9077579B1 (en) 2012-02-15 2015-07-07 Symantec Corporation Systems and methods for facilitating access to shared resources within computer clusters
US20140040218A1 (en) 2012-07-31 2014-02-06 Hideaki Kimura Methods and systems for an intent lock engine
US8856484B2 (en) 2012-08-14 2014-10-07 Infinidat Ltd. Mass storage system and methods of controlling resources thereof
GB2505185A (en) 2012-08-21 2014-02-26 Ibm Creating a backup image of a first memory space in a second memory space.
US20140075493A1 (en) 2012-09-12 2014-03-13 Avaya, Inc. System and method for location-based protection of mobile data
US10922331B2 (en) 2012-09-28 2021-02-16 Oracle International Corporation Cloning a pluggable database in read-write mode
US9563655B2 (en) 2013-03-08 2017-02-07 Oracle International Corporation Zero and near-zero data loss database backup and recovery
US10152500B2 (en) 2013-03-14 2018-12-11 Oracle International Corporation Read mostly instances
US9830372B2 (en) 2013-07-24 2017-11-28 Oracle International Corporation Scalable coordination aware static partitioning for database replication
US9378232B2 (en) 2013-09-21 2016-06-28 Oracle International Corporation Framework for numa affinitized parallel query on in-memory objects within the RDBMS
US9323799B2 (en) 2013-09-21 2016-04-26 Oracle International Corporation Mechanism to run OLTP workload on in-memory database under memory pressure
US9128972B2 (en) 2013-09-21 2015-09-08 Oracle International Corporation Multi-version concurrency control on in-memory snapshot store of oracle in-memory database
US9292564B2 (en) 2013-09-21 2016-03-22 Oracle International Corporation Mirroring, in memory, data from disk to improve query performance
US9767178B2 (en) 2013-10-30 2017-09-19 Oracle International Corporation Multi-instance redo apply
US9817994B2 (en) * 2013-10-30 2017-11-14 Oracle International Corporation System and method for integrating a database with a service deployed on a cloud platform
KR102206577B1 (ko) 2014-04-30 2021-01-25 오라클 인터내셔날 코포레이션 트랜잭셔널 미들웨어 머신 환경에서 분산 트랜잭션 락을 제공하는 시스템 및 방법
US9892153B2 (en) 2014-12-19 2018-02-13 Oracle International Corporation Detecting lost writes
US10585887B2 (en) 2015-03-30 2020-03-10 Oracle International Corporation Multi-system query execution plan
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
US10747752B2 (en) 2015-10-23 2020-08-18 Oracle International Corporation Space management for transactional consistency of in-memory objects on a standby database
US10698771B2 (en) 2016-09-15 2020-06-30 Oracle International Corporation Zero-data-loss with asynchronous redo shipping to a standby database
US10691722B2 (en) 2017-05-31 2020-06-23 Oracle International Corporation Consistent query execution for big data analytics in a hybrid database

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901237A (zh) * 2009-12-04 2010-12-01 四川川大智胜软件股份有限公司 一种基于SQlite构建的类型-索引-内容方式分布式数据库
CN104471585A (zh) * 2012-06-05 2015-03-25 甲骨文国际公司 用于数据访问控制实施的基于sql转换的优化技术
US20140164331A1 (en) * 2012-09-28 2014-06-12 Oracle International Corporation Techniques for backup restore and recovery of a pluggable database
US20150254240A1 (en) * 2014-03-10 2015-09-10 Oracle International Corporation Instantaneous Unplug of Pluggable Database From One Container Database and Plug Into Another Container Database
US20150317212A1 (en) * 2014-05-05 2015-11-05 Oracle International Corporation Time-based checkpoint target for database media recovery

Also Published As

Publication number Publication date
US10891291B2 (en) 2021-01-12
CN109906448B (zh) 2024-02-20
EP3532945A1 (en) 2019-09-04
US20180121511A1 (en) 2018-05-03
WO2018080843A1 (en) 2018-05-03

Similar Documents

Publication Publication Date Title
CN109906448A (zh) 使用单独的逻辑时间戳服务促进可插拔数据库上的操作
CN108475271B (zh) 容器数据库的应用容器
CN108932282B (zh) 一种数据库迁移方法、装置和存储介质
US9305070B2 (en) Continuous change data capture without disruption of DDL
CN106415536B (zh) 用于数据库管理系统间的可插拔数据库传输的方法及系统
US20190278856A9 (en) Asynchronous Shared Application Upgrade
US20170116334A1 (en) Application containers in container databases
US7801850B2 (en) System of and method for transparent management of data objects in containers across distributed heterogenous resources
US10324924B2 (en) Synchronizing query result between heterogeneous databases
CN110268380A (zh) 跨云数据存储库的文件系统层次结构镜像
US20090037395A1 (en) Persistent query system for automatic on-demand data subscriptions from mobile devices
US11314719B2 (en) Method for implementing change data capture in database management system
CN108369588A (zh) 数据库级别自动存储管理
CN109800234A (zh) 业务平台数据库系统、升级方法、设备及存储介质
AU2005310983A1 (en) Cache for an enterprise software system
CN105989049A (zh) 一种数据中间层实现方法及系统
US11789971B1 (en) Adding replicas to a multi-leader replica group for a data set
CN114817402A (zh) 分布式数据库于多region部署场景下的SQL执行优化方法
KR102214697B1 (ko) 데이터베이스 관리 시스템에서 데이터 저장을 위한 공간 관리를 제공하는 컴퓨터 프로그램
US10621198B1 (en) System and method for secure database replication
US10673984B1 (en) Directly modifying failed queued requests for an offline application using the backend type system
JP4923140B2 (ja) データベース並行編集方式
US20240232147A1 (en) Apparatus and method for managing virtual database
CN110471983A (zh) 一种业务操作方法、装置、计算机设备和存储介质
KR20240040262A (ko) 스태틱 데이터의 자동 등록 시스템 및 그 동작방법

Legal Events

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