您的当前位置:首页多租户Lesson 02. Basics of Multitenant Container Database and Pluggable Databases

多租户Lesson 02. Basics of Multitenant Container Database and Pluggable Databases

来源:锐游网

1. 和传统的非容器数据库相比,容器数据库能够给数据库应用和管理带来哪些好处? 2-6 2-8

优点:
    以更低成本在集中管理的平台中操作多个数据库: 
        实例开销较低
        存储成本较低
    降低 DBA 资源成本并维护安全性
        无应用程序更改
        快速且易于预配
        节约打补丁和升级的时间
        将以下各项的职责分离开来:
            不同的应用程序管理员
            应用程序管理员和 DBA
            应用程序中的用户
    提供隔离
其他好处:
    确保与非CDB的完全向后兼容性
    完全使用RAC操作(使用RAC和 Data Guard进行完全操作受到Enterprise Manager支持)
    与企业管理器和资源管理器集成
    允许集中管理和管理多个数据库
        备份或灾难恢复
        打补丁和升级

2. 容器数据库支持哪几种类型的实例/数据库的配置? 2-10

三种
多租户配置:通常每个 CDB 有多个 PDB,但是任何时候可以一次存放零个、一个或许多 PDB,从而利用新体系结构的全部功能,这需要授权的 Oracle 多租户选项
单租户配置:新体系结构的特殊案例,这不需要授权的选项
非 CDB:旧的 Oracle Database 11g 体系结构

3. 系统元数据和用户元数据库在容器数据库是如何隔离和访问的? 2-14 2-15

隔离:
    在 Oracle 12c 中,引入了容器的概念来将 Oracle 提供的对象和用户数据(包括元数据)分离到不同容器中可将其视为水平分区。
    在存放数据字典的每个容器中有一个 SYSTEM 表空间。
        在仅 Oracle 元数据容器(其包含 Oracle 提供的对象的元数据)中有一个字典。
        在存放用户元数据的用户容器中有一个字典。
访问:
提供从用户容器到 Oracle 提供的对象的指针,从而允许访问这些“系统”对象而不需要在用户容器中复制这些对象。用户容器具有成为数据库应用程序的完整
环境所需的数据。应用程序可以像在非 CDB 中那样在容器中运行。

4. 配置可插入数据库的方法有几种? 2-17

1)从 PDB$SEED 可插入数据库创建 PDB  | 针对全新的应用程序实施
2)插入非 CDB  | 作为移植策略来使用
3)将非 CDB 克隆到 CDB 中,或者将 PDB 克隆到同一或其他 CDB 中 | 用于应用程序测试
4)将移走的 PDB 插入 CDB 中 | 用于数据库升级或迁移

5. 请给出根容器和种子可插入数据库的概念和功能的解释。

概念:
    根容器:Oracle 提供的容器 CDB$ROOT
    种子可插入数据库:PDB$SEED
功能:
    根容器:
        在创建CDB时创建的第一个必需容器
        Oracle系统提供的公用对象和元数据
        Oracle系统提供的公用用户和角色
    种子可插入数据库:
        PDB 是水平分区的数据字典的较低部分加上用户的限额使用数据
        PDB$SEED 提供新 PDB 的快速预配

6. 在 12c 数据库中,一个容器可以包含的 PDB 和服务的上限是多少? 2-17

253(包括种子) 512(1024中文)

7. 在数据库体系结构组件中,哪些是属于 ROOT 但不属于特定的 PDB? 2-21 2-19

共享UNDO和默认数据库临时表空间(RAC 数据库的每个实例的 UNDO 表空间)
Oracle 提供的元数据
共享的 Oracle 提供的数据
提供 PDB 中的信息的 CDB 视图
CDB 资源管理器计划,允许在 CDB 内的 PDB 之间进行资源管理

8. 请解释共用用户和本地用户、公用角色和本地角色、公用权限和本地权限的概念及区别。 2-24 2-25

本地用户
    非 CDB 中的用户映射到非 PDB 中的本地用户。
        在 PDB 自己的数据字典中定义本地用户,所以在该 PDB 之外不知道该用户。
        本地用户仅可连接到在其中定义该用户的 PDB。 
        本地用户特定于特定 PDB,在该 PDB 中拥有方案。
        根据授予的权限,用户可以处理 PDB 内的应用程序数据或者使用数据库链接处理其他 PDB 的应用程序。而且,不能在根中定义任何本地用户。
公用用户
    公用用户在 root 的数据字典中定义。
    仅可以在根中定义公用用户:通过创建公用用户,CDB 管理员可以一次创建将在每个 PDB 中复制的用户。
    公用用户不仅在根中其定义的位置而且在属于 CDB 的每个 PDB 中为已知。
    公用用户可以执行特定于根或 PDB 的管理任务,例如插入和移走 PDB、启动 CDB 或在授予正确权限时打开 PDB。
本地角色
    非 CDB 中的角色映射到 PDB 中的本地角色。本地角色在 PDB 自己的数据字典中定义,
    所以在该 PDB 之外不知道该角色,并且只能在其 PDB 内使用该角色。
公用角色
    除了本地角色,还可以创建公用角色,将在每个容器中定义该角色。这样,很容易一次创
    建将在所有 PDB 中复制的角色。在创建时指定角色的性质:本地或公用。公用角色以及
    公用用户仅可在根中由公用用户创建。而且,不能在根中定义任何本地角色。所有
    Oracle 提供的预定义的角色都是公用角色。
本地与公用权限
    权限通常称为本地或公用权限,但是更准确地说,使用 CONTAINER=CURRENT 子句在本
    地授予权限或者使用 CONTAINER=ALL 子句普遍授予权限。这一规则也适用于角色:可
    以普遍或者在本地将公用角色授予公用用户或角色。公用角色可以包含在 CDB 中应用的
    权限,即为所有容器普遍授予的权限,还可以包含本地授予的权限,其仅应用于单个
    PDB,而本地角色不包含任何普遍授予的权限。

9. 请举例说明什么是共享和非共享对象? 2-27

ROOT容器中的对象在其他容器可以看到

10. 在 12c 中,数据字典视图 CDB_、DBA_、ALL_、USER_在使用上有什么区别? 2-28

所有 PDB 中多租户容器数据库中的所有对象
容器或可插入数据库中的所有对象
可由当前用户访问的对象
当前用户拥有的对象

因篇幅问题不能全部显示,请点此查看更多更全内容

Top