
Oracle 12c数据库的新特性——多租户容器数据库
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
本篇介绍Oracle 12c版本中的关键创新功能——多租户容器数据库(CDB),探讨其架构优势及管理方法。
多租户容器数据库是Oracle数据库管理模型的一项革新,它通过引入容器数据库(CDB)和租户数据库(PDB)的概念来实现这一创新。这种架构允许在一个单一的数据库实例中同时管理和隔离多个独立的数据库,并共享系统级别的资源。
### Oracle 12c 多租户容器数据库
#### 一、多租户容器数据库概述
##### 1.1 定义与说明
Oracle 12c引入了多租户容器数据库(MTCDB)的概念,通过CDB和PDB的模型实现了这一创新。具体来说:
- **容器数据库(CDB)**:这是全局性的数据库环境,能够容纳一个或多个独立的租户数据库(PDB)。每个CDB都有自己的系统表空间,并且可以共享某些系统资源如SGA和PGA。
- **租户数据库(PDB)**:作为CDB的一部分,每一个PDB都是一个独立的数据单元。它们拥有各自的数据文件、用户权限等资源,在逻辑上彼此隔离。
通过这种架构设计,多租户容器数据库能够在云环境中高效地为多个用户提供服务,从而提高硬件和软件的利用率,并降低运营成本。
##### 1.2 多租户容器数据库的优势
- **减少服务器与存储开支**:由于能够共享基础设施资源,因此减少了对额外物理设备的需求。
- **更低的实例开销**:所有PDB可以共用一个CDB实例,从而降低了每个独立数据库所需的维护成本和计算资源消耗。
- **简化补丁更新流程**:只需要在单一的容器环境中执行一次操作即可完成整个环境下的补丁或升级工作。
- **保障数据安全与隐私**:每一个PDB都有其独特的隔离空间,有助于保护敏感信息的安全性。
#### 二、多租户容器数据库架构
##### 2.1 非多租户模型
传统的Oracle数据库设计中每个数据库都是独立运行的,需要各自的硬件支持和管理资源。
##### 2.2 多租户模型体系结构
从**Oracle 12cR2版本**开始,PDB可以使用单独的undo表空间。主要组件包括:
- **根容器CDB (CDB$ROOT)**:这是在创建多租户数据库时自动生成的第一个容器,负责提供核心服务和管理功能。
- **可插拔数据库(PDB)**:这些是应用数据存储单元,可以被添加、复制或者移动。特别的PDB如`PDB$SEED`提供了模板以简化新数据库的创建。
#### 三、多租户容器中的用户
##### 3.1 用户类型
在多租户环境中存在两种类型的用户:公用用户(common user)和本地用户(local user)。
- **公用用户**:这些用户的定义存在于整个CDB及其所有的PDB中,可以在任何地方访问。创建于CDB中的新账户默认为这种类型。
- **本地用户**:这类账号仅限在特定的PDB内有效,并且不能跨不同的数据库使用相同的用户名。
##### 3.2 创建用户的方法
可以通过指定容器参数来控制用户的范围:
- `container=all`:表示创建一个全局访问的公用账户;
- `container=current`:则意味着生成的是当前PDB内的本地账号,仅在此范围内可用。
#### 四、连接到多租户数据库
在CDB中创建公共用户示例:
```sql
[oracle@db19c ~]$ sqlplus as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Oct 16 19:30:39 2023
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SYS@cdb1>
SYS@cdb1> create user lzy identified by lzy container=all;
```
综上所述,多租户容器数据库提供了一种灵活且高效的管理方案,并在云环境中展示了其独特的优势。
全部评论 (0)


