ORACLE Multitenant专题--1 Multitenant简介

简介

         Multitenant翻译成中文为:多租户,是ORACLE公司为应对云计算发展潮流对ORACLE DB推出的新特性,于2013/06 12c版本正式发布(其中字母c为cloud含义),旨在实现数据库快速部署、即插即用、弹性扩展的优势,以上三点也即主流云计算的卖点。

在传统的ORACLE数据库(non-CDB)架构中,不同用户的数据通过schema区分,用户数据写入不同的表空间or默认USERS表空间,所有用户共享一个实例,也即共享一个SGA区;若需要进行隔离,往往通过部署多个oracle实例实现,这样管理起来存在诸多不变(如每次用sqlplus / as sysdba进入之前都要export ORACLE_SID=XXX);

在多租户架构中,一个ORACLE实例被视作一个容器数据库(container database--CDB),在CDB内部包括多个用户自定义的可插拔数据库(pluggable database--PDB),PDB对外单独服务,类似于一个完整的数据库。其大致架构图如下所示:

        

其中,CDB中包含6个用户PDB+1个种子PDB(PDB$SEED),种子PDB用户PDB的快速克隆。

主要原理

         前面已与大家分享过oracle TTS(可传输表空间)的概念,CDB即是TTS技术的深入扩展。在TTS使用中,用户数据存储于指定用户表空间中,用户数据的元数据metadata(如表结构,索引结构等)则存储于SYSTEM表空间中。CDB正是通过对元数据metedata的进一步下放(即下放到PDB中)实现。

         元数据的下放即使得CDB实例需要存储的数据大大减少,实现实例和数据库的松耦合;也使得数据迁移变得更加容易(因为几乎所有数据都在PDB中)。

使用CDB架构的优势

Cost reduction—降低成本

         CDB通过整合IT基础设施,可以实现计算资源、内存资源的充分利用。在RAC架构中,还可根据多实例的不同负载能力,指定PDB位于哪里实例中,以便最大限度的发挥各个实例的能力。

Easier and more rapid movement of data and code—快速的迁移能力

         这点就不多说了。上面的“主要原理”章节有提及;

Easier management and monitoring—简化管理

         以往non-CDB架构中DBA可能需要管理多个实例,现在只需要管理一个实例。

Separation of data and code—数据和代码的隔离

       在以往non-CDB架构中,尽管可以通过schema进行相关分离,但有些系统全局对象不能分离,如目录对象directory、数据库链接dblink等。

Ease of performance tuning—简化性能调优

         It is easier to collect performance metrics for a single database than for multiple databases. It is easier to size one SGA than 100 SGAs.

总结

         新特性的引入往往是顺应时代的发展与需求的变化,无论我们是否接受CDB架构都将会是ORACLE官方之后主推的特性。尽管non-CDB架构也还被支持,但想想便知,ORACLE对non-CDB的支持会越来越少,我们的使用也会越来越不便。以下是ORACLE官方的数据库版本维护图,从图可知,11g即将结束维护,后续的12c、18c、19c将逐步成为主流。

猜你喜欢

转载自blog.csdn.net/zhaogang1993/article/details/102991773