ITPub博客

首页 > 数据库 > Oracle > Oracle 基础实践3-1:容器数据库的三个特性

Oracle 基础实践3-1:容器数据库的三个特性

原创 Oracle 作者:云小虫2019 时间:2019-04-12 11:40:49 0 删除 编辑

1956 年,马尔科姆 · 麦克莱恩完成了集装箱的首航。 从此,集装箱开始改变世界。

2008年, Linux Container 容器技术诞生 ,也就是 IT 世界里“集装箱”,从此, 集装箱 开始改变着 IT 世界。

2013 年, Oralce 12C 发布,引入容器数据库,“集装箱”的概念开始渗入数据库内部。

Container ,不论翻译成集装箱还是容器,都有着(不仅限于)下面几个特性:

 (1)      隔离

(2)      轻量

(3)      便捷,易于迁移和部署

所以,Oracle 12C容器数据库,也同样有着这几个特性。

     首先,最显而易见的是隔离。

在12C之前,如果一台服务器只装一个数据库,那么多用户管理通过schema(模式)来实现。当然,一台服务器上可以装多个数据库,但如果8G内存的服务器,同时启几个数据库那就有点吃力了。

在12C中,有了插接式数据库,就可以在一台服务器上,只装一套数据库,启动一个数据库实例,但却能实现数据库级别的隔离。

如图,安装的时候,指定 创建为容器数据库,即创建了一个容器数据库,里面包含了一个PDB数据库,后面可以继续创建更多的PDB数据库。如果不选择,那就没有这个特性,如果11g一样。

下面两幅图,显示了两者的区别:

    非CDB

CDB



 

如图, CDB(Container Database),即容器数据库。里面可以包含多个PDB(Pluggable Database),即插拔数据库。PDB也就是我们通常的业务数据库,存放业务用户和用户对象以及业务数据的地方。所以PDB 之间是通过数据库级别隔离的,数据库之间的访问需要通过DBLINK实现,而不能仅通过用户之间的授权访问。

其中,seed是种子数据库,可以通过它快速创建一个PDB数据库。

另一个层面的隔离,即元数据库的隔离。即系统元数据和用户元数据隔离开。

其次,轻量,即占用少量资源。

如果部署10个应用,分别部署在10个虚拟机中,那么需要安装10个操作系统,光操作系统对资源的开销就不小。如果将10个引用安装在一台虚拟机中,又没有办法解决隔离的问题,所以容器技术很好的解决了这个问题。即将引用部署在容器中,容器在一台虚拟机中实现隔离。当然容器的好处不仅于此。

那么到Oracle 12C呢?10个PDB在一个CDB中,共享一个实例instance,彼此之间通过con_id为唯一标识,并实现有效隔离。如果是10个实例,资源占用肯定不容小觑。容器是操作系统层面的资源共享,容器数据库就是在数据库实例层面的资源共享。思路都是共享资源,节省开销,当然前提还是能够实现隔离,不然一团乱麻。

相关操作如下:

查询CDB实例:

查询所有容器数据库:

查询种子数据库和插拔数据库:

关闭插拔数据库:

打开插拔数据库:

最后,第三个特性,易于迁移和部署。

创建,直接从种子数据库创建PDB,快速,单,一个命令即可完成。也可以从已有PDB直接拷贝一个新的PDB,同样快捷方便,对于测试环境的搭建,可是意义重大的。

可插拔,顾名思义,可插,可拔。便于迁移。

后面将用单篇具体演示一下插拔数据库的来去自如,潇洒如风。当然,可以都写成工具,一个工具搞定插拔数据库的新建,copy,迁移等,也将提供命令工具的布局和脚本。

 


 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69915315/viewspace-2641147/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
数据库,DevOps,Python

注册时间:2019-04-02

  • 博文量
    34
  • 访问量
    68617