容器数据库的制作方法_3

文档序号:8460738阅读:来源:国知局
符可以是可插拔数据库的名称。在另一种实施例中,数据库标识符可以是与可插拔数据库相关联的数据库服务。
[0061]在320,确定数据库连接请求是对可插拔数据库的数据库会话请求。这种确定可以通过例如确定数据库标识符识别可插拔数据库PDA而做出。
[0062]在330,响应于确定数据库连接请求是对可插拔数据库的请求,为可插拔数据库建立数据库会话。为可插拔数据库建立数据库会话包括附加可插拔数据库的数据库字典。在当前的例子中,数据库字典221,即,用于可插拔数据库PDA 220的数据库字典,被建立为用于数据库会话的数据库字典。
[0063]为用户建立数据库会话需要比图3中具体绘出的更多的操作。这些操作包括,但不限于,对发出连接请求的用户的认证以及会话状态的初始化。
[0064]管理的隔离
[0065]在容器DBMS 200中,用户的管理权限可以被隔离到特定的可插拔数据库或隔离到容器DBMS 200中的一组可插拔数据库。可插拔数据库的数据库字典定义了用户和用户的相应用户权限。在可插拔数据库中为用户定义管理权限只授予用于该可插拔数据库的管理权限,而不是用于其它的可插拔数据库或根数据库。为了在可插拔数据库上执行管理功能,管理用户建立用于该可插拔数据库的数据库会话。管理用户必须具有在可插拔数据库的数据库字典中定义的管理权限。管理员可以只为所附数据库字典的数据库对象添加定义,或改变已由所附数据库字典定义的数据库对象的定义。因此,容器数据库中的每个可插拔数据库都可以由可能不能访问或甚至不知道容器数据库中其它可插拔数据库的单独的一组管理用户进行管理。
[0066]容器DBMS 200的管理需要由根数据库定义的管理权限。这种管理权限包括(I)创建可插拔数据库,或将可插拔数据库插入到容器DBMS中,及(2)在可插拔数据库之间分配容器DBMS的资源。
[0067]在本发明的实施例中,“公共用户”可以在根数据库中定义。授予公共用户的权限适用于所有且只有可插拔数据库。可以通过针对根数据库发出命令来创建公共用户、给公共用户分配或取消权限。没有必要针对每个可插拔数据库发出命令。在实施例中,管理用户授予的、限定于可插拔数据库的权限被限制修改或限定公共用户的权限,并且实际上,可以被限制查看关于公共用户的任何信息。
[0068]移植可插拔数据库
[0069]容器DBMS的体系架构极大地帮助了在数据库服务器和/或DBMS之间移植数据库。表空间文件和字典存储库可以利用很容易得到的用于复制和移动文件的机制在容器DBMS的环境之间进行移动。表空间文件,连同一个或多个字典文件,在本文中统称为可移植数据库包。
[0070]一旦可插拔数据库的可移植数据库包被移动到目标容器DBMS的环境,可插拔数据库就可以被插入到目标容器DBMS中。在实施例中,响应于接收到插入可插拨数据库的DDL命令,执行插入可插拨数据库,DDL命令还识别可移植数据库包。响应于接收到DDL命令,容器DBMS插入可插拨数据库。插入可插拔数据库需要诸如更新根数据库字典以定义该可插拔数据库的操作,这种更新包括,例如,向Database_sys 203添加记录。还执行错误检查。例如,执行检查以确保可插拔数据库的名称在容器DBMS中是唯一的,并且表空间文件还没有被容器DBMS中的其它表空间使用。
[0071]容器DBMS的优点
[0072]容器DBMS提供了数据库整合的优点。这些优点之一是提供了高度的隔离,同时具有高度的资源共享。多个可插拔数据库可以运行在同一数据库服务器和/或数据库服务器实例上,从而允许单个数据库服务器或实例的计算资源在多个可插拔数据库之间共享。
[0073]由容器DBMS提供的隔离是在存在(existential)级别的。为可插拔数据库建立的数据库会话的用户只可以访问或以其它方式查看经所附可插拔数据库字典定义的数据库对象。其它可插拔数据库的数据库对象不能被访问或查看。这种隔离程度被扩展到管理员。
[0074]隔离还扩展到命名空间。每个可插拔数据库都有自己的命名空间用于更多类型的数据库对象。至于数据库服务器上托管的容器DBMS中的每个可插拔数据库,表空间和模式的名称唯一性要求也只局限于可插拔数据库。因此,单个DBMS或数据库服务器可以在多个可插拔数据库上具有相同名称的表空间或模式。这种较高程度的命名空间隔离有助于数据库的移植,因为可插拔数据库之间名称冲突的可能性如果没有被消除的话也被降低了。
[0075]另一个重要的优点是数据库的快速供给。种子可插拔数据库的可移植数据库包可以被复制以快速地创建新的可插拔数据库。现有的可插拔数据库的可移植数据库包可以被复制以快速地创建可插拔数据库的克隆。数据库的供给主要受复制可移植数据库包的文件和处理一个或多个DDL命令所需要的时间限制,其中一个或多个DDL命令,如前面所解释的,需要相对较少的元数据的更新或其它类型的处理。对于支持“改变中复制(copy onchange) ”的某些文件系统,供给甚至可以更快并且接近瞬间。
[0076]通过将容器DBMS与数据库整合的其它方法进行比较,这些优点以及其它优点得以进一步解释和认可。
[0077]一种这样的方法是行级别划分。在行级别划分下,所有的用户将数据存储在同一数据库对象中。隔离部分地通过限制用户对行的访问来完成。通过重写由用户发出的查询以包含限定对适当行的访问的谓词条件,使得能够进行这种隔离。
[0078]在行级别划分下,所有的用户必须使用同一数据库对象。这种限制对在容器数据库中实现数据库整合是不需要的。也没有任何需要来重写查询以实现隔离。
[0079]另一种数据库整合的方法是模式方法。在模式方法中,隔离是通过将“多模式数据库”中的模式当作单独的“虚拟数据库”来实现的。用户被限制到多模式数据库中的一个或多个模式。用于模式和表空间的命名空间扩展到多模式数据库中所有的“虚拟数据库”上。此外,管理权限不能被隔离到特定的模式。
[0080]在模式方法下,数据库从源DBMS移植到目标DBMS需要从源多模式数据库的数据库字典中提取源元数据和利用提取的元数据更新目标多模式数据库的数据库字典。这种更新会跨很长一段时间。容器DBMS避免了这种长时间的更新。
[0081]用于数据库整合的另一种方法是服务器级别的划分。在这种方法下,数据库由单独的数据库服务器托管。这种方法需要单独的一组服务器资源用于每个数据库。利用容器数据库,多个可插拔数据库能够共享单个数据库服务器的资源。
[0082]硬件概述
[0083]根据一种实施例,本文所描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行所述技术,或者可以包括诸如被永久性地编程以执行所述技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)的数字电子设备,或者可以包括编程为按照固件、存储器、其它储存器或者其组合中的程序指令执行所述技术的一个或多个通用硬件处理器。这种专用计算设备还可以合并定制的硬连线逻辑、ASIC或FPGA与定制的编程来实现所述技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持式设备、联网设备或者结合硬连线和/或程序逻辑来实现所述技术的任何其它设备。
[0084]例如,图4是说明本发明的实施例可以在其上实现的计算机系统400的框图。计算机系统400包括总线402或者用于传送信息的其它通信机制,以及与总线402耦合用于处理信息的硬件处理器404。硬件处理器404可以是例如通用微处理器。
[0085]计算机系统400还包括耦合到总线402用于存储信息和要由处理器404执行的指令的主存储器406,诸如随机存取存储器(RAM)或其它动态存储设备。主存储器406还可以用于在要由处理器404执行的指令执行期间存储临时变量或其它中间信息。当存储在处理器404可访问的非暂时性存储介质中时,这种指令使计算机系统400变成为执行指令中所规定的操作而定制的专用机器。
[0086]计算机系统400还包括只读存储器(ROM) 408或者耦合到总线402的其它静态存储设备,用于为处理器404存储静态信息和指令。提供了存储设备410,诸如磁盘或光盘,并且耦合到总线402,用于存储信息和指令。
[0087]计算机系统400可以经总线402耦合到显示器412,诸如阴极射线管(CRT),用于向计算机用户显示信息。输入设备414,包括字母数字和其它键,耦合到总线402,用于向处理器404传送信息和命令选择。另一种类型的用户输入设备是游标控制416,诸如鼠标、轨迹球或者游标方向键,用于向处理器404传送方向信息和命令选择并且用于控制显示器412上的游标运动。这种输入设备通常具有在两个轴,第一个轴(例如,X)和第二个轴(例如,y),中的两个自由度,以允许设备在平面内规定位置。
[0088]计算机系统400可以利用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文所述的技术,这些与计算机系统相结合,使计算机系统400或者把计算机系统400编程为专用机器。根据一种实施例,本文的技术由计算机系统400响应于
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1