在不同数据库服务器之间划分一个数据库所有权以控制访问数据库制造技术

技术编号:2871450 阅读:201 留言:0更新日期:2012-04-11 18:40
至少一部分数据库(250)被划分成所有权组(230,232,234,236),其中每一个都被指派了一个或多个数据库服务器(208,210,212)作为所有者。指派为所有者(s208,s210,s121)的数据库服务器(208,210,212)被看作是这个所有权组中全部数据项的拥有者。就是说它们被允许在所有权组中直接访问数据项,而其他数据库服务器则不准许直接访问这些数据项。一个数据库系统中包括一个或多个保存了数据库(250)的永久存储设备(214,216),以及运行在多个可以直接访问永久存储设备(214,216)的节点(202,204,206)上的多个数据库服务器(208,210,212)。至少一部分数据库(250)被划分成了多个所有权组(230,232,234,236),其中每个所有权组都被指派了一个所有者集合。只有在归属于一个所有者集合的数据库服务器上运行的进程才准许直接访问这个所有权组内部的数据。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及数据库系统,尤其涉及一种在不同数据库服务器之间对数据库所有权进行划分以控制访问数据库。
技术介绍
多处理计算机系统是那些包括多个处理单元的系统,这些处理单元能够相对于彼此而并行执行指令。为了使用并行处理能力,一个任务的不同方面可以指派给不同的处理单元。在这里,一个任务的不同方面称为工作区组(work granule),而负责在可用处理单元之间分配工作区组的进程则称为协调器进程。多处理计算机系统通常分为三种共享一切的系统(sharedeverything system)、共享磁盘的系统(shared disk system)以及无共享的系统(shared nothing system)。在将工作分配给执行工作区组的进程时所放置的约束条件是根据所涉及的多处理系统类型而变化的。在共享一切的系统中,所有处理器上的进程都可以直接访问系统中所有的动态存储设备(下文中通称为“存储器”)以及所有的静态存储设备(下文中通称为“磁盘”)。因此在一个共享一切的系统中,对于如何指派工作区组而言几乎是没有约束条件的。然而需要在不同计算机组件之间进行高度布线以提供共享一切的功能。另外,对共享一切的架构来说,还存在着可伸缩性的限制。在共享磁盘的系统中,处理器和存储器归合成节点。共享磁盘系统的每个节点自身即可构成一个共享一切的系统,其中包含了多个处理器和多个存储器。所有处理器上的进程都可以访问该系统的所有磁盘,但是只有属于某个特定节点的处理器上的进程可以直接访问该特定节点的存储器。共享磁盘系统所需要的布线通常少于共享一切的系统。然而,共享磁盘系统更易受到不均衡工作负载条件的影响。举例来说,如果节点具有一个进程,该进程作用于一个需要大量动态存储器的工作区组,那么,属于该节点的存储器可能不足以同时保存所有需要的数据。因此,即使其他节点保持大量可用和未使用存储器,该进程也还是要与节点的本地存储器交换数据。共享磁盘系统提供了造成存储器毁损的软件故障划分。唯一的例外是那些由节点间的锁定管理器所使用的控制块,实际上,这些控制块在所有节点都得到了复制。在无共享系统中,所有处理器、存储器以及磁盘都将归合成节点。与共享磁盘系统一样,在无共享系统中,每个节点自身都可构成一个共享一切的系统或是一个共享磁盘的系统。只有那些运行在某个特定节点上的进程可以直接访问该节点内部的存储器和磁盘。在这三种常规的多处理系统中,无共享系统通常在不同系统组件之间需要最少的布线。然而,无共享系统最易受到不均衡工作负载条件的影响。举例来说,在某个工作区组中所要访问的全部数据都可保存在某个特定节点的磁盘上。因此只有运行在该节点内部的进程可用于执行该工作区组,即使是在其它节点上的进程都保持空闲的情况下。无共享系统提供了导致存储器和/或磁盘毁损的软件故障划分。唯一的例外就是对依据不同节点的数据子集“所有权”加以控制的控制块。与共享磁盘锁定管理信息相比,对所有权很少进行修改。因此,所有权技术要比共享磁盘锁定管理技术更加简单可靠,因为它们并不具有对于高性能的需要。运行在多处理系统上的数据库通常分为两种共享磁盘的数据库和无共享数据库。在共享磁盘的数据库系统中,多个数据库服务器(通常运行在不同节点上)能够读取和写入数据库的任何部分。共享磁盘架构中的数据访问是借助一个分布式锁定管理器来协调的。共享磁盘的数据库既可运行在无共享的计算机系统上,也可运行在共享磁盘的计算机系统上。要想在一个无共享计算机系统中运行一个共享磁盘的数据库,那么可以向操作系统添加软件支持,也可以提供附加硬件而使得进程能够直接访问远程磁盘。无共享数据库假设只有当数据包含在一个与进程同属一个节点的磁盘上的时候,该进程才能直接访问数据。具体地说,数据库数据是在可用数据库服务器之间细分的。每个数据库服务器只能直接读写该数据库服务器拥有的那部分数据。如果第一服务器试图访问第二服务器拥有的数据,那么第一数据库服务器必须向第二数据库服务器发送消息,以使第二数据库服务器代表它来执行数据访问。无共享数据库既可以运行在共享磁盘的多处理系统上,也可以运行在无共享的多处理系统上。为了在共享磁盘的机器上运行一个无共享数据库,可以提供一种软件机制来对数据库进行逻辑划分并将每个分区的所有权指派给某个特定节点。无共享系统和共享磁盘的系统各自都具有与其特定架构相关的便利优点。举例来说,如果存在对于数据的频繁写访问(写热点),那么无共享数据库提供了更好性能。如果存在频繁的读访问(读热点),那么共享磁盘的数据库提供了更好的性能。并且如上所述,在出现软件故障的情况下,无共享系统提供了更好的容错性。根据上文,较为理想的是提供一个单独的数据库系统,该系统能够提供这两种数据库架构的性能优势。然而,这两种架构通常是相互排斥的。
技术实现思路
在这里提供了一个数据库系统,其中将数据库或数据库的某个部分划分成所有权组。每个所有权组都被指派了一个或多个数据库服务器,使之作为所有权组的所有者。指派为所有权组的所有者的数据库服务器被看作是属于该所有权组的所有数据项的所有者。也就是说,这些数据库服务器准许直接访问该所有权组中的数据项,而其他数据库服务器则不准许直接访问这些数据项。根据本专利技术的一个方面,提供了一个数据库系统,该系统包括一个或多个持久存储设备,其上保存了一个数据库,该系统还包括运行在多个节点上的多个数据库服务器。每个节点都能够直接访问持久存储设备。至少一部分数据库划分为多个所有权组。每个所有权组都指派了一个所有者集合。只有那些作为所有权组所有者集合中的成员并在数据库服务器上运行的进程才准许直接访问所有权组内部的数据。每个所有权组都标记为无共享所有权组或是共享磁盘所有权组。每个无共享所有权组都从数据库服务器中指派了一个所有者。只有每个无共享所有权组的所有者才准许直接访问无共享所有权组内部的数据。每个数据库服务器都准许直接访问所有权组内部的数据,而这些所有权组则标记为共享磁盘所有权组。附图说明本专利技术是借助实例来描述的,但这并不作为限制,在附图的图形中,相同的附图标记代表相同的部件,其中图1是可以执行本专利技术一个实施例的计算机系统的框图;图2是根据本专利技术一个实施例而使用所有权组的分布式数据库系统的框图;图3是一个描述对支持所有权组的系统的数据项执行操作的步骤的流程图;图4是一个对根据本专利技术实施例来改变所有权组的所有者集合的步骤加以描述的流程图;以及图5是一个描述根据一个本专利技术实施例来进行原子变化的技术的框图。具体实施例方式在这里描述了一种方法,用于在不同的数据库服务器之间对一个数据库的所有权进行划分,以便对数据库访问加以控制。在以下描述中,为了说明的目的,对许多细节进行了阐述,以便提供关于本专利技术的全面理解。然而对本领域技术人员来说,本专利技术显然可以在不具备这些特定细节的情况下实施。为了避免不必要地使本专利技术不清楚,其他实例、公知结构和设备是以框图形式显示的。硬件综述图1是描述可以执行本专利技术一个实施例的计算机系统100的框图。计算机系统100包括一条总线102或是用于传递信息的其他通信结构,并且包括一个与总线102耦合并用于处理信息的处理器104。计算机系统100还包含一个主存储器106,例如随机访问存储器(RAM)或是其它动态存储器,该存储器与总线102耦合,本文档来自技高网
...

【技术保护点】
一种数据库系统,包括:一个或多个永久存储设备,其上保存了一个数据库;运行在多个节点上的多个数据库服务器;其中所述多个节点中的每一个节点都可以直接访问所述一个或多个永久存储设备;其中至少一部分所述数据库划分为多 个所有权组;其中所述多个所有权组中的每个所有权组都被指派了一个所有者集合;其中只有那些运行在作为一个所有权组的所有者集合成员的数据库服务器上的进程才准许直接访问所述所有权组内部的数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:詹弗兰科普措卢
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1