博客
关于我
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/

    你可能感兴趣的文章
    npm WARN deprecated core-js@2.6.12 core-js@<3.3 is no longer maintained and not recommended for usa
    查看>>
    npm和yarn的使用对比
    查看>>
    npm报错unable to access ‘https://github.com/sohee-lee7/Squire.git/‘
    查看>>
    npm的问题:config global `--global`, `--local` are deprecated. Use `--location=global` instead 的解决办法
    查看>>
    NR,NF,FNR
    查看>>
    nrf开发笔记一开发软件
    查看>>
    NSDateFormatter的替代方法
    查看>>
    NSOperation基本操作
    查看>>
    NSSet集合 无序的 不能重复的
    查看>>
    NT AUTHORITY\NETWORK SERVICE 权限问题
    查看>>
    ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
    查看>>
    nullnullHuge Pages
    查看>>
    numpy 用法
    查看>>
    Numpy如何使用np.umprod重写range函数中i的python
    查看>>
    oauth2-shiro 添加 redis 实现版本
    查看>>
    OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
    查看>>
    OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
    查看>>
    OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
    查看>>
    OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
    查看>>
    OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
    查看>>