YH9:Oracle Multitenant 知识库
Oracle 12c的多租户特性是Oracle Database历史上最重要的革新之一,在云时代这一特性展现出强大的整合威力。
插接式数据库由一个使用 CDB(Container Database)选项创建的容器数据库和一个或多个 PDB(Pluggable Database)组成,CDB 作为容器容纳 PDB,而 PDB 彼此隔离,就像一个独立的数据库般在 CDB 中存在。
1、CDB和PDB的管理
上图中,以 USB 移动硬盘的方式表现 PDB,正是突出了 PDB 的 plug 和 unplug 特点,由图中可以直观的了解到插接式数据库的主要特性:
可以通过现有数据库快速配置和部署新的环境;
通过 unplug 和 plug 可以快速进行数据库迁移和整合;
集中的部署可以加快升级迁移的过程,缩减维护成本;
方便的整合和拆分方式便于集中部署或在压力过大时迅速拆分部署;
分离管理员的职责,强化安全管理;
如上所述,插接式数据库的一个巨大便利是,可以简化数据库的整合迁移,降低管理成本。在一个大型企业中,可能存在几百上千个数据库实例,而随着硬件性能的提升,这些数据库的资源利用率可能很低,不仅浪费硬件资源,也加重了管理负担,按照以前版本的功能进行整合或拆分,通常要进行导出导入(Expdp / Impdp 等),不仅复杂,而且涉及很多变更,通常让人望而生畏。
而如果使用插接式数据库,则可以轻松的将数据库整合,当负载过高时,又可以迁移至独立的服务器,整个过程对应用完全透明,主要通过文件复制即可完成,这对于数据库的分分合合将是一个福音。
关于CDB和PDB的环境搭建及管理请参考
Oracle 12c多租户特性详解:从Schema到PDB的变化与隔离
Oracle 12c多租户特性详解:PDB 的创建、克隆与维护
3、PDB的备份与恢复
由于 PDB 的引入,Oracle 数据库的备份和恢复也发生了很多变化,基于 PDB 级别的表空间、库备份同时被支持。具体如何实现呢?请参考
Oracle 12c多租户特性详解:PDB 的备份与恢复
4、PDB的出与入
在12c中,将一个非 CDB插入到CDB中,需要CDB处于read-only模式,新增加的包 DBMS_PDB 可以用于进行迁移。在 CDB 中执行 PLUG,就可以将这个 NON-CDB 插入到 CDB 中,指定 COPY 参数,将文件复制到 CDB 的相应目录下,如果已经复制到特定目录,则可以指定 NOCOPY 选项,就无需再复制一次。这也是对以前版本中传输表空间技术的增强。同理,unplug一个PDB,也是可以简单通过命令实现,会在后台生成对应的文件。
随着 CDB、PDB 的引入一系列的视图对应引入 ,用于数据库信息的查询和展现。如在 CDB 层面的用户信息查询,可以通过新的视图 CDB_USERS 进行,通过这个视图可以直观的看到一个用户在哪些容器中存在:
查询临时文件可以通过视图 CDB_TEMP_FILES 进行:
更多内容请参考
Oracle 12c多租户特性详解:PDB 的出与入 InAndOut
5、多租户的用户管理
无论在 CDB 和 Non-CDB 数据库中,用户都拥有一个 Schema,拥有一系列的 Schema 对象,在 CDB 中由于 PDB 的引入,用户范畴有所不同。
在 CDB 模式下,公用用户(Common User)和本地用户(Local User)两个概念被引入进来,公用用户可以在 CDB 和 PDB中同时存在,能够连接 ROOT 和 PDB 进行操作;而本地用户则只在特定的 PDB 中存在,也只能在特定的 PDB 中执行操作;在 PDB 中不能创建公用用户,而在 CDB 中(CDB$ROOT 中)同样不能创建本地用户。
全局用户和本地用户的区别如下:
在拥有了 CREATE SESSION 权限后,公用用户能够登陆包括 Root 在内的任何 Container。公用用户一般在每个 PDB 中都存在对应的用户信息,在 PDB 中不能存在与公用用户重名的用户,如初始的 SYS 和 SYSTEM 用户都属于公用用户。也只有公用用户能够授权或被授权相应的公用角色和权限。
公用权限是指对所有 Container 都有效的系统或者对象权限,例如一个公用用户被授予了公用权限 CREATE ANY TABLEWITH ADMIN OPTION 可以将这个权限转授给其他公用用户。公用用户之外的权限被称为本地权限(Local Privilege).
公用角色是指在所有 Container 中都可见的角色,这些角色可能包含全局和本地权限。本地角色只能包含本地权限。授予公用角色的公用权限,对于具有该角色的用户在任何可以连接的 Container 中都将具有该权限。
在多租户环境下,用户管理至关重要。只有明确地掌握不同用户的权限及操作范围,才能合理控制操作,防范数据库内部隐患。
关于多租户环境的用户管理请参考
Oracle 12c多租户特性详解:全局用户与本地用户的原理与维护
随着12.2的发布,多租户环境的管理和维护也更加完善和成熟。
1、权限管理
在Oracle Database 12.2 中引入了lockdown profile的新特性,可以用于限制PDB中的某些操作,增强某些操作的安全性。
LOCKDOWN PROFILE除了常规的限定,还可以实现如下的细粒度的权限限制:
除了特定的权限,还可以对某些数据库功能特点进行限制,比如调用和执行UTL_HTTP 和 UTL_TCP 包可能是高风险的,那么以下的PROFILE设置可以禁用这些特性:
安全第一,防范内部隐患,从合理授权开始。更多关于12.2中多租户的权限控制请参考:【动手实践】:Lockdown Profile 的多租户权限控制
2、数据文件管理
假设一个场景,在数据库中意外丢失了一个数据文件,你知道在10g和11g中,Oracle分别会做怎么样的默认处理吗?这样处理会带来哪些问题呢?
在多租户环境中,还能做同样的处理吗?
接下来这篇文章将为你一一解答!
回答了这四个问题,少踩12c 多租户的好多坑
3、安全管理
用Oracle多租户选件时,由于Container容器和PDB融合共存,则权限控制必将更加重要,Oracle 12.2 的 lockdown profile就是为了实现PDB中更为全面的权限控制。如果权限控制不当,就可能遭遇到的数据库安全风险。前段时间披露的风险,通过SQL注入可能影响数据库的安全,有些问题影响到多租户的12.1.0.2.0最新版本。
作为资深的DBA来说,我们应当知道EXECUTE_CATALOG_ROLE这一角色权限是非常危险的,要严格控制这一权限的授予。这一注入,实际上是利用了 CDBView 包的校验漏洞,进行了注入提权。
在云和恩墨的Bethune自动化巡检平台上,我们已经向着用户发出这一警示,强烈推荐大家通过Bethune ( https://bethune.enmotech.com )平台检测数据库的安全风险及性能状况,目前该平台完全免费:
【安全警告】Oracle 12c 多租户的SQL注入高危风险防范
4、用户权限管理
在多租户环境中,权限可以全局授予整个CDB,一个应用容器数据库(application container),或者单个的PDB。在多租户环境下,往往牵一发而动全身,因此合理授权就显得格外重要。在多租户环境下,common user和local user之间可以互相授权。他们本身的权限既不属于公共权限也不属于本地权限。那么他们的权限如何起作用,这取决于权限是被全局授予还是本地授予的。在12.2中,关于权限,又有哪些新的变化呢?
一起来学习Oracle12.2 多租户环境下的授权管理。
多租户技术已经被广大用户广泛应用,而云和恩墨作为数据服务行业的引领者,通过zData解决方案与Oracle 多租户的结合,帮助用户实现了互联网+时代的系统云化转型。
典型案例:
青海移动业务发展迅速,尤其是近几年的电渠业务,目前有包括网上营业厅、手机营业厅等在内的多类电渠业务,这些业务最初是独立运营的,但数据量的剧增和用户需求的提高使得独立运营面临很多问题,复杂的系统和传统的SAN架构缺乏对性能及大数据数据处理的灵活性,同时运维和部署的成本非常高。因此青海移动领导人希望采用资源池和云化部署,将这些电渠业务融合到统一的电子渠道支撑平台,实现统一的认证登录、统一业务管理、统一地分析接口和运营支撑。
在云和恩墨的帮助下,青海移动逐步将运行于小型机和集中式存储的Oracle数据库迁移到基于x86服务器和分布式存储zData上,并通过Oracle 12c多租户实现了数据库整合,成功地迈出了云化的第一步。
zData 方案与12c多租户的完美结合
zData以其高计算能力、高 I/O 能力、高可用能力、高可伸缩能力且极具稳健性的分布式存储架构,是具有高并发高IO需求的系统的最佳选择。
Oracle 12c多租户的特性,能够有效简化并增强数据库整合,既可保障各租户之间所需的独立性与安全性,又能实现对多个数据库的合一管理,从而提高服务器的资源利用率,在减少成本的同时,降低管理的复杂度。
12c+zData架构在青海移动的云化转型中表现出了绝对的优势,而该架构具有很高的可推广性,适用于分散的中小系统数据库整合、对I/O要求很高的分析统计类数据库、峰谷时段不同,资源可共享的库整合、快速建设,适时回收的临时性数据库等。
更多内容请点击:
云和恩墨zData多租户整合,青海移动数据库云化起航
云和恩墨,致力于做您最值得信赖的数据管家。
加入"云和恩墨大讲堂"微信群,参与讨论学习
搜索 盖国强(Eygle)微信号:eyygle,或者扫描下面二维码,备注:云和恩墨大讲堂,即可入群。每周与千人共享免费技术分享,与讲师在线讨论。