对oracle存储器中数据库的存储器中快照存储的多版本并行控制的制作方法_6

文档序号:9794055阅读:来源:国知局
哪个部分将最提高系统的整体性能。通常,镜像频繁被使用的数据将比镜像较不频繁被使用的数据提供更多的益处。因此,如果一个表、表的一列、或表的一个分区比数据库中的其它数据更频繁地被访问,则那个表、列或分区可以被选择在易失性存储器102中镜像。选择数据库的哪些部分要镜像可以在任何粒度级别做出。例如,选择可以基于每个表、每列、每扩展区、每段、每个表分区,等等。
[0271]自我验证
[0272]在除了PF数据之外还维护MF数据的系统中,同一数据的多个来源对处理一些查询可用。在前述部分中,已经解释当同一数据的多个来源可用时,数据库服务器可以基于哪个来源将产生所请求数据库操作的最高效处理从可能的来源中选择。
[0273]但是,不是选择可能的来源之一,而是数据库服务器可以可替代地针对两个或更多个来源中的每一个平行地执行数据库操作。例如,从表200的列Cl中选择数据的查询可以利用来自列向量220的MF数据来回答,或者利用来自PF数据结构108的PF数据来回答。不是选择一个或另一个,而是数据库服务器可以针对两个来源单独地和独立地执行操作。一旦完成,由各种来源产生的结果可以相互比较。如果结果集合不匹配,则在至少一个操作的处理期间发生了错误。
[0274]当检测到错误时,数据库服务器可以采取任意数量的可能的行动。例如,在一种实施例中,产生警报,以指示错误的发生。该警告可以指示在两个结果集合之间的差异是什么。作为产生警报的替代或附加,数据库服务器可以执行附加的调试操作,包括但不限于,重新执行关闭或打开不同数据库特征的操作,以确定其的使用导致产生错误的特征。
[0275]当结果集合匹配时,用户对于操作的结果是准确的会具有更大程度的信心。因此,通过同一数据库实例针对相同数据(MF数据和PF数据)的多个来源并行执行相同操作提供了即时的“双重检查”来验证操作的结果结合。
[0276]典型地,针对两个来源执行数据库操作可以被并行进行,使得执行自我验证相对于只在PF数据上执行操作具有对操作较小的性能影响。根据一种实施例,自我验证可以在高粒度级别被启用。例如,自我验证可以基于每会话被启用。因此,通过自我验证导致的附加开销会只在那些用户希望“测试”准确性的会话中产生。
[0277]自我验证操作也可以由系统自身发起。例如,不是从应用接收执行数据库命令的请求,而是数据库系统可以被配置为从那些已被数据库系统执行的数据库命令中识别并选择“关键”数据库命令。在低使用时间段期间,数据库服务器可以在后台执行那些选定的数据库命令中的一个或多个。选定的数据库命令在自我验证模式下执行,以并行地生成结果集合的多个拷贝,一个基于MF数据和一个基于PF数据。结果集合被比较,以确保结果集合是完全相同的。如果不完全相同,则错误消息可以发送给用户和/或记录在日志中。如果完全相同,则数据可以被存储,以指示选定的数据库命令通过了自我验证测试。在通过阈值数量的测试之后(其中阈值可以是I),数据库服务器可以被配置为停止选择用于自动后台自我验证的数据库命令。
[0278]在一种实施例中,当自我验证测试失败时,不是简单地产生警报,而是该数据库命令在不同条件下被反复重新测试。为了确保操作的重复尽可能与产生自我验证错误的原始操作相似,同一数据库操作可以利用与在遇到错误的会话期间使用的快照时间相同的快照时间被执行。
[0279]在许多数据库系统中,许多高级查询处理特征可以具有虚拟的“打开-关闭”开关,其中,默认状态是“打开”。在重复先前失败的自我验证测试期间,那些特征可以被选择性地打开和关闭。如果当特定特征被关闭时自我验证通过,并且当同一特征被打开时失败,则存在错误与那个特征有关的可能性。
[0280]在已确定使用特定的特征导致与特定数据库操作的自我验证问题之后,可以强制执行隔离。隔离的范围可以不同。例如,数据库服务器可以自动地为所有将来的数据库命令、为针对与遇到错误的数据库操作相同数据的所有将来的数据库命令、或者只为遇到错误的特定数据库命令的将来执行关闭特定特征。
[0281 ] 硬件概述
[0282]根据一种实施例,本文所描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行所述技术,或者可以包括诸如被永久性地编程以执行所述技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)的数字电子设备,或者可以包括编程为按照固件、存储器、其它存储装置或者其组合中的程序指令执行所述技术的一个或多个通用硬件处理器。这种专用计算设备还可以合并定制的硬连线逻辑、ASIC或FPGA与定制的编程来实现所述技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持式设备、联网设备或者结合硬连线和/或程序逻辑来实现所述技术的任何其它设备。
[0283]例如,图9是说明本发明的实施例可以在其上实现的计算机系统900的框图。计算机系统900包括总线902或者用于传送信息的其它通信机制,以及与总线902耦合用于处理信息的硬件处理器904。硬件处理器904可以是例如通用微处理器。
[0284]计算机系统900还包括耦合到总线902用于存储信息和要由处理器904执行的指令的主存储器906,诸如随机存取存储器(RAM)或其它动态存储设备。主存储器906还可以用于在要由处理器904执行的指令执行期间存储临时变量或其它中间信息。当存储在处理器904可访问的非暂时性存储介质中时,这种指令使计算机系统900变成为执行指令中所规定的操作而定制的专用机器。
[0285]计算机系统900还包括只读存储器(R0M)908或者耦合到总线902的其它静态存储设备,用于为处理器904存储静态信息和指令。提供了存储设备910,诸如磁盘、光盘或固态驱动器,并且耦合到总线902,用于存储信息和指令。
[0286]计算机系统900可以经总线902耦合到显示器912,诸如阴极射线管(CRT),用于向计算机用户显示信息。输入设备914,包括字母数字和其它键,耦合到总线902,用于向处理器904传送信息和命令选择。另一种类型的用户输入设备是游标控制916,诸如鼠标、轨迹球或者游标方向键,用于向处理器904传送方向信息和命令选择并且用于控制显示器912上的游标运动。这种输入设备通常具有在两个轴,第一个轴(例如,X)和第二个轴(例如,y),中的两个自由度,以允许设备在平面内规定位置。
[0287]计算机系统900可以利用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文所述的技术,这些与计算机系统相结合,使计算机系统900或者把计算机系统900编程为专用机器。根据一种实施例,本文的技术由计算机系统900响应于执行包含在主存储器906中的一条或多条指令的一个或多个序列的处理器904而执行。这种指令可以从另一存储介质,诸如存储设备910,读到主存储器906中。包含在主存储器906中的指令序列的执行使处理器904执行本文所述的过程步骤。在备选实施例中,硬连线的电路系统可以代替软件指令或者与其结合使用。
[0288]如在本文所使用的,术语“存储介质”指存储使机器以特定方式操作的数据和/或指令的任何非暂时性介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘、磁盘,或固态驱动器,诸如存储设备910。易失性介质包括动态存储器,诸如主存储器906。存储介质的常见形式包括,例如,软盘、柔性盘、硬盘、固态驱动器、磁带,或者任何其它磁性数据存储介质,CD-ROM,任何其它光学数据存储介质,任何具有孔模式的物理介质,RAM、PR0M和EPR0M、FLASH-EPR0M、NVRAM,任何其它存储器芯片或盒式磁带。
[0289]存储介质与传输介质截然不同但是可以与其结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线902的配线。传输介质还可以采取声或光波的形式,诸如在无线电波和红外线数据通信中产生的那些。
[0290]各种形式的介质可以参与把一条或多条指令的一个或多个序列携带到处理器904供执行。例如,指令最初可以在远端计算机的磁盘或固态驱动器上携带。远端计算机可以把指令加载到其动态存储器中并且利用调制解调器经电话线发送指令。位于计算机系统900本地的调制解调器可以在电话线上接收数据并且使用红外线发送器把数据转换成红外线信号。红外线检测器可以接收在红外线信号中携带的数据并且适当的电路系统可以把数据放在总线902上。总线902把数据携带到主存储器906,处理器904从该主存储器906检索并执行指令。由主存储器906接收的指令可以可选地在被处理器904执行之前或之后存储在存储设备910上。
[0291]计算机系统900还包括耦合到总线902的通信接口918。通信接口 918提供耦合到网络链路920的双向数据通信,其中网络链路920连接到本地网络922。例如,通信接口 918可以是综合业务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器,或者提供到对应类型的电话线的数据通信连接的调制解调器。作为另一个例子,通信接口 918可以是提供到兼容的局域网(LAN)的数据通信连接的LAN卡。无线链路也可以实现。在任何此类实现中,通信接口918都发送和接收携带表示各种类型信息的数字信号流的电、电磁或光信号。
[0292]网络链路920通常通过一个或多个网络向其它数据设备提供数据通信。例如。网络链路920可以通过本地网络922提供到主计算机924或者到由因特网服务提供商(ISP)926操作的数据设备的连接。ISP 926又通过现在通常称为“因特网”928的全局分组数据通信网络提供数据通信服务。本地网络922和因特网928都使用携带数字数据流的电、电磁或光信号。通过各种网络的信号以及在网络链路920上并通过通信接口 918的信号是传输介质的示例形式,其中信号把数字数据带到计算机系统900或者携带来自计算机系统900的数字数据。
[0293]计算机系统900可以通过网络、网络链路920和通信接口918发送消息和接收数据,包括程序代码。在因特网例子中,服务器930可以通过因特网928、ISP 926、本地网络922和通信接口 918发送对应于程序的所请求代码。
[0294]所接收的代码可以在其被接收时由处理器904执行,和/或存储在存储设备910或其它非易失性存储装置中,供随后执行。
[0295]在前面的说明书中,本发明的实施例已经参考众多的具体细节进行了描述,这些细节可以从一种实现到另一种实现不同。因此,说明书和附图应当在说明性而不是限制性的意义上考虑。本发明范围的唯一且排他指示,以及申请人预期作为本发明范围的内容,是由本申请产生的权利要求集合的字面和等效范围,以这种权利要求产生的具体形式,包括任何后续的校正。
【主权项】
1.一种方法,包括: 在持久性存储装置中维护数据库服务器可访问的数据库; 其中数据库包括第一数据集合; 在数据库服务器可访问的易失性存储器中维护第二数据集合; 其中在第二数据集合中的每个数据项是在第一数据集合中的对应数据项的拷贝; 其中第一数据集合和第二数据集合二者都具有特定数据项的拷贝; 维护指示第二数据集合中的哪些数据项不再有效的位图; 其中维护位图包括通过以下步骤对所述特定数据项的更新做出响应: 更新所述特定数据项在所述第一数据集合中的拷贝; 在不更新所述特定数据项在所述第二数据集合中的拷贝的情况下,在所述位图中设置与所述特定数据项对应的特定位,以指示所述特定数据项在所述第二数据集合中的拷贝无效。2.如权利要求1所述的方法,其中: 第一数据集合是持久性格式的; 第二数据集合是镜像格式的; 所述镜像格式不同于持久性格式并且独立于持久性格式以及; 第二数据集合是通过将第一数据集合转换成镜像格式而生成的。3.如权利要求1所述的方法,还包括:通过生成指示所述特定位在特定时间被改变的记录来对所述特定数据项的更新做出响应。4.如权利要求1所述的方法,其中: 所述特定数据项的更新是由在特定时间提交的事务做出的; 所述方法还包括: 在所述特定数据项的更新之后,通过确定特定事务的快照时间来确定与所述特定事务相关联的特定查询是否被允许使用所述特定数据项在第二数据集合中的拷贝; 响应于所述快照时间在所述特定时间之前,允许所述特定事务使用所述特定数据项在第二数据集合中的拷贝;以及 响应于所述快照时间在所述特定时间之后,不允许所述特定事务使用所述特定数据项在第二数据集合中的拷贝,并且从除了所述第二数据集合之外的源获取所述特定数据项的拷贝。5.如权利要求4所述的方法,其中除了所述第二数据集合之外的所述源是所述第一数据集合。6.如权利要求4所述的方法,其中除了所述第二数据集合之外的所述源是存储器中日志中的具有所述特定数据项的更新的拷贝的条目。7.如权利要求4所述的方法,还包括: 基于所述位图和指示所述位图的位何时被改变的一组记录来为所述特定查询生成删除向量; 其中为所述特定查询生成的所述删除向量指示所述第二数据集合中的哪些数据项截止到所述特定事务的快照时间是无效的;以及 使用所述删除向量来确定所述特定查询被允许访问所述第二数据集合中的哪些数据项。8.如权利要求7所述的方法,还包括通过以下步骤来生成所述删除向量: 做出所述位图的拷贝; 在所述位图的拷贝内重置在所述特定事务的快照时间之后被设置的所有位。9.如权利要求1所述的方法,其中: 所述第二数据集合截止到第一时间点是当前的; 所述位图是指示所述第二数据集合中的哪些数据项在所述第一时间点之后并且在第二时间点之前被更新的第一位图; 所述方法还包括: 在所述第二时间点时,通过将在所述第一时间点和所述第二时间点之间对所述第二数据集合中的数据项做出的那些更新合并到所述第二数据集合中,来产生更新的第二数据集合; 维护指示自所述第二时间点起所述第二数据集合中的哪些数据项已被更新的第二位图。10.如权利要求9所述的方法,还包括:在产生所述更新的第二数据集合之后,确定第二特定查询是否被允许使用所述特定数据项在所述更新的第二数据集合中的拷贝; 其中所述第二特定查询与在所述第一时间点之后且在所述第二时间点之前的第二快照时间相关联; 其中确定第二特定查询是否被允许使用所述特定数据项在所述更新的第二数据集合中的拷贝包括: 使用所述第一位图的改变的记录来识别在所述第二快照时间和所述第二时间点之间哪些数据项没有改变;以及 允许所述第二特定查询访问在所述更新的第二数据集合内的、在所述第二快照时间和所述第二时间点之间没有改变的那些数据项。11.一种或多种非暂态计算机可读介质,其存储用于执行如权利要求1-10中任何一项所述的方法的指令。
【专利摘要】提供了用于以一种格式持久性地维护数据,但是使该数据以多于一种的格式让数据库服务器可用的技术。例如,其中使数据可用于查询处理的格式之一是基于盘上格式,而其中使数据可用于查询处理的另一种格式独立于盘上格式。处于独立于盘格式的格式的数据可以专门在易失性存储器中进行维护,以减少使数据与数据的盘上格式拷贝保持同步相关联的开销。
【IPC分类】G06F17/30
【公开号】CN105556519
【申请号】CN201480051441
【发明人】V·拉贾, S·哈塞, A·加内什, V·玛瓦, 苏爽, A·穆里克, S·潘德森
【申请人】甲骨文国际公司
【公开日】2016年5月4日
【申请日】2014年9月15日
【公告号】EP3047400A1, US9128972, US20150088822, US20150339343, WO2015041968A1
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1