博客
关于我
Oracle12C 新特性 —— CDB & PDB
阅读量:539 次
发布时间:2019-03-09

本文共 1962 字,大约阅读时间需要 6 分钟。

Oracle CDB 与 PDB 关系介绍

Oracle 12C 引入了容器数据库(CDB,即 Container Database)和可插拔数据库(PDB,Pluggable Database)这一颖新特性。在 ORACLE 12C 的多租用户环境(Multitenant Environment)中,一个 CDB 可以承载多个 PDB,每个 PDB 都可以像传统的数据库那样运行。

CDB 和 PDB 的核心关系

在 12C 之前,数据库实例与数据库是一对一或多对一的关系(RAC)。但在 12C 中,实例与数据库的关系可以变成一对多。一种常见的安装方式是,默认安装一个 CDB 和一个 PDB,例如 pdborcl。

重点

12C 引入了跨实例的服务 thereby ,允许多个实例同时访问同一个 CDB 的 PDB。

CDB 组成

CDB 包括以下几个关键组件:

  • ROOT(CDB$ROOT)

    ROOT 是 CDB 的根容器,存储 ORACLE 提供的元数据和通用用户。例如,ORACLE 提供的 PL/SQL 包代码,及每个容器中存在的默认用户。

  • SEED(PDB$SEED)

    SEED 是 PDB 模板,你不可以在 SEED 中添加或修改对象。CDB 中只允许一个 SEED,类似于 SQL Server 的 model 数据库。

  • PDB(可插拔数据库)

    CDB 可以包含多个 PDB。每个 PDB 都是独立的容器,可以像传统数据库那样操作。

  • 关键点

    ROOT、SEED 和 PDB 都被视为容器,每个容器都有独特的 ID 和名称。

    CDB 与 PDB 的架构与操作

  • CDB 操作

    • 连接到 CDB:
      $ sqlplus / as sysdba
    • 查看数据库类型:
      SELECT name, decode(cdb, 'YES', 'Multitenant Option enabled', 'Regular 12c Database: ') "Multitenant Option", open_mode, con_id  FROM v$database;
    • 查看当前容器:
      SHOW con_name;  SELECT sys_context('userenv', 'con_name') "Container DB" FROM dual;
  • PDB 操作

    • 查看 PDB 列表:
      SHOW pdbs;  SELECT con_id, dbid, guid, name, open_mode FROM v$pdbs;
    • 切换容器:
      ALTER SESSION SET container=PDB_NAME;
    • 启动或关闭 PDB:
      ALTER PLUGGABLE DATABASE PDB_NAME open;  ALTER PLUGGABLE DATABASE PDB_NAME close;
    • 停止或启动 CDB:
      shutdown immediate;  startup;
  • 常用操作示例

  • 创建新 PDB:

    CREATE PLUGGABLE DATABASE new_pdbadmin user admin identified by oracle;ALTER PLUGGABLE DATABASE new_pdb open;
  • 克隆 PDB:

    CREATE PLUGGABLE DATABASE cloned_pdb FROM original_pdb;ALTER PLUGGABLE DATABASE cloned_pdb open;
  • 删除 PDB:

    ALTER PLUGGABLE DATABASE old_pdb close;  DROP PLUGGABLE DATABASE old_pdb including datafiles;
  • 12C+架构扩展

    在 12.2 中,进一步增强了多租户功能。CDB 根容器可以创建一个叫做 Application Root 的容器,可在其内创建多个依赖于 Application Root 的 Application PDB。架构如下:

    CDB$ROOT  ├── Application Root  │   └── PDB1 (Application PDB)  │   └── PDB2 (Application PDB)  ├── PDBA (User Database)  └── PDBB (User Database)

    总结

    通过以上内容,可以清晰地理解 Oracle 12C 中的 CDB 和 PDB 关系。CDB 作为数据库容器,管理多个可插拔的 PDB。每个 PDB 都是独立的容器,可被单独管理和运作。这种架构使数据库管理员能够充分利用资源,实现多租户支持。

    转载地址:http://fzqiz.baihongyu.com/

    你可能感兴趣的文章
    python利用excel分析过杀漏失
    查看>>
    python判断汉字数目
    查看>>
    python判断文件是空的,如果是空的,就删除
    查看>>
    python判断密码是否正确_python密码判断是否符合要求的方法
    查看>>
    python判断字符串包含中文_Python 判断字符串是否包含中文
    查看>>
    python删除第一行_Python 乱码指北:一行删掉根目录
    查看>>
    Python删除列表元素的三种方法
    查看>>
    python初步学习-python数据类型-集合(set)
    查看>>
    python列表生成字典_Python中将字典转换为列表的方法
    查看>>
    python列表对应元素合并为列表及判断一个列表是几维
    查看>>
    python列表去重复后按照顺序_从包含不可共元素的Python列表中删除重复元素,同时保留顺序?...
    查看>>
    python列表前几个_python之列表
    查看>>
    python列表元组
    查看>>
    Python列表/元组/字典和集合使用
    查看>>
    python列表 行列选择_python_pandas_dataframe_行列选择_切片操作
    查看>>
    python列表
    查看>>
    python列出当前目录、子目录和文件的脚本
    查看>>
    python+flask计算机毕业设计骨科门诊患者档案管理系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校体测管理系统的设计与实现(程序+开题+论文)
    查看>>
    Python切片对象和__getitem__
    查看>>