iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >浅谈oracle 12C的新特性-CDB和PDB
  • 930
分享到

浅谈oracle 12C的新特性-CDB和PDB

2024-04-02 19:04:59 930人浏览 薄情痞子
摘要

最近看到好多人都在尝试oracle中的12C新特性-容器数据库,今年3月orcle推出了Release2版本,可以算是一个稳定版本了。下午着手尝试了一下,还是蛮不错得1.前言CDB与PDB是Oracle&n

最近看到好多人都在尝试oracle中的12C新特性-容器数据库,今年3月orcle推出了Release2版本,可以算是一个稳定版本了。下午着手尝试了一下,还是蛮不错得

1.前言

CDB与PDB是Oracle 12C引入的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为ContainerDatabase,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。

关于CDB与PDB的关系图

浅谈oracle 12C的新特性-CDB和PDB 

 

其实大家如果对SQL Server比较熟悉的话,这种CDB与PDB是不是感觉和sql SERVER的单实例多数据库架构是一回事呢。像PDB$SEED可以看成是master、msdb等系统数据库,PDBS可以看成用户创建的数据库。而可插拔的概念与SQL SERVER中的用户数据库的分离、附加其实就是那么一回事。

 

 

二、CDB组件(Components of a CDB)

 

一个CDB数据库容器包含了下面一些组件:

 

-ROOT组件

 

ROOT又叫CDB$ROOT, 存储着ORACLE提供的元数据和Common User,元数据的一个例子是ORACLE提供的PL/SQL包的源代码,Common User 是指在每个容器中都存在的用户。

 

-SEED组件

 

  Seed又叫PDB$SEED,这个是你创建PDBS数据库的模板,你不能在Seed中添加或修改一个对象。一个CDB中有且只能有一个Seed. 这个感念,个人感觉非常类似SQL SERVER中的model数据库。

 

-PDBS

 

    CDB中可以有一个或多个PDBS,PDBS向后兼容,可以像以前在数据库中那样操作PDBS,这里指大多数常规操作。

 

这些组件中的每一个都可以被称为一个容器。因此,ROOT(根)是一个容器,Seed(种子)是一个容器,每个PDB是一个容器。每个容器在CDB中都有一个独一无二的的ID和名称。


三、具体操作 

1.查看数据库是否为CDB

sqlplus登录数据库

[oracle@oracle12C-R2 ~]$ sqlplus / as sysdba
 
SQL*Plus: Release 12.2.0.1.0 Production on 星期三 6月 14 15:37:13 2017
 
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
 
 
连接到: 
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
 
select name,cdb,open_mode,con_id from v$database;
SYSTEM@ORCL>select name,cdb,open_mode,con_id from v$database;
 
NAME  CDB OPEN_MODE        CON_ID
--------- --- -------------------- ----------
ORCL  YES READ WRITE    0


 

2.查看当前容器

show con_name

 

SYS@orcl>show con_name;
 
CON_NAME
------------------------------
CDB$ROOT


3.创建一个新PDB

create pluggable database pdb1 admin user pdb1 identified by pdb1 file_name_convert=('/u01/app/oracle/oradata/orcl/pdbseed/','/u01/app/oracle/oradata/orcl/pdb1/');


4.查看所创建的PDB;

show pdbs;

 

SYS@orcl>show pdbs;
 
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
 2 PDB$SEED  READ ONLY  NO
 3 ORCLPDB  MOUNTED
 4 PDB1   MOUNTED
 5 PDB2   MOUNTED


 

5.启动一个创建好的PDB

alter pluggable database pdb1 open;


 

再次查看

SYS@orcl>show pdbs;
 
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
 2 PDB$SEED  READ ONLY  NO
 3 ORCLPDB  MOUNTED
 4 PDB1   READ WRITE NO
 5 PDB2   READ WRITE NO


 

6.关闭PDB

SYS@orcl>alter pluggable database pdb2 close;
 
插接式数据库已变更。
 
SYS@orcl>show pdbs;
 
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
 2 PDB$SEED  READ ONLY  NO
 3 ORCLPDB  MOUNTED
 4 PDB1   READ WRITE NO
 5 PDB2   MOUNTED


7.也可以通过sqlplus使用传统的startup和shutdown命令来启动和关闭PDB

 

SYS@orcl>alter session set container=pdb2;
 
会话已更改。
SYS@orcl>show pdbs;
 
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
 5 PDB2   MOUNTED
SYS@orcl>startup;
插接式数据库已打开。
SYS@orcl>show pdbs;
 
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
 5 PDB2   READ WRITE NO
SYS@orcl>shutdown immediate;
插接式数据库已关闭。
SYS@orcl>show pdbs;
 
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
 5 PDB2   MOUNTED
SYS@orcl>alter session set container=CDB$ROOT;


 

会话已更改。

 

8.配置监听文件

监听文件目录在$ORACLE_HOME/network/admin

[oracle@oracle12C-R2 admin]$ cat listener.ora 
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC=
     (GLOBAL_DBNAME = ORCL)
     (SID_NAME = ORCL)
    )
    (SID_DESC=
     (GLOBAL_DBNAME = PDB1)
     (SID_NAME = PDB1)
    )
  )
 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = tcp)(HOST = 192.168.221.165)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
 
[oracle@oracle12C-R2 admin]$ cat tnsnames.ora 
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
 
LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.221.165)(PORT = 1521))
 
 
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.221.165)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
PDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.221.165)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PDB1)
    )
  )


 

测试登录

 

[oracle@oracle12C-R2 admin]$ tnsping pdb1
 
TNS Ping Utility for linux: Version 12.2.0.1.0 - Production on 14-6月 -2017 16:02:05
 
Copyright (c) 1997, 2016, Oracle.  All rights reserved.
 
已使用的参数文件:
/u01/app/oracle/product/11.2.0/db_1/network/admin/sqlnet.ora
 
 
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.221.165)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = PDB1)))
OK (10 毫秒)
[oracle@oracle12C-R2 admin]$ sqlplus pdb1/pdb1@pdb1
 
SQL*Plus: Release 12.2.0.1.0 Production on 星期三 6月 14 16:02:28 2017
 
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
 
上次成功登录时间: 星期三 6月  14 2017 15:51:38 +08:00
 
连接到: 
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
 
PDB1@pdb1> select name from v$datafile where con_id=4 ;
 
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/pdb1/system01.dbf
/u01/app/oracle/oradata/orcl/pdb1/sysaux01.dbf
/u01/app/oracle/oradata/orcl/pdb1/undotbs01.dbf
 
PDB1@pdb1>


 

9.oracle12C中在启动数据库的时候,PDB并不会随着CDB而启动。不过我们可以通过创建一个触发器让PDB能够随CDB启动。如下:

 

SQL> SHOW CON_NAME  
CON_NAME  
------------------------------  
CDB$ROOT  
SQL> CREATE OR REPLACE TRIGGER open_pdbs  
AFTER STARTUP ON DATABASE   
BEGIN  
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';   
END open_pdbs;  
触发器已创建  
SQL> SHUTDOWN IMMEDIATE  
数据库已经关闭。  
已经卸载数据库。  
ORACLE 例程已经关闭。  
SQL> STARTUP  
ORACLE 例程已经启动。  
Total System Global Area  754974720 bytes  
Fixed Size          2928968 bytes  
Variable Size         524291768 bytes  
Database Buffers      222298112 bytes  
Redo Buffers            5455872 bytes  
数据库装载完毕。  
数据库已经打开。  
SYS@orcl>show pdbs;
 
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
 2 PDB$SEED  READ ONLY  NO
 3 ORCLPDB  READ WRITE NO
 4 PDB1   READ WRITE NO
 5 PDB2   READ WRITE NO


 


您可能感兴趣的文档:

--结束END--

本文标题: 浅谈oracle 12C的新特性-CDB和PDB

本文链接: https://www.lsjlt.com/news/35866.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle 12c RMAN新特性
    Oracle 12c RMAN新特性 SYSBACKUP This privilege allows a user to perform backup and recovery operations e...
    99+
    2024-04-02
  • oracle 12c PDB随CDB启动以及链接PDB的方式是什么
    今天就跟大家聊聊有关oracle 12c PDB随CDB启动以及链接PDB的方式是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。本来不知道有这个...
    99+
    2024-04-02
  • Oracle 12c 两个新特性
    1. ALTER DATABASE MOVE DATAFILE 可以在线迁移数据文件到新路径,system表空间也可以move。 SYS@czh29c > alter&nb...
    99+
    2024-04-02
  • 12C关于CDB、PDB创建AWR的方法和总结
    官方文档 http://docs.oracle.com/database/122/TGDBA/gathering-database-statistics.htm#TGDBA-GUID-D64AEB01-18...
    99+
    2024-04-02
  • Oracle 12C新特性是什么
    这篇文章主要讲解了“Oracle 12C新特性是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle 12C新特性是什么”吧!在12c里,推出了H...
    99+
    2024-04-02
  • Oracle 12c新特性有哪些
    本篇内容介绍了“Oracle 12c新特性有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1. 自...
    99+
    2024-04-02
  • 浅谈Java8新特性Predicate接口
    目录一、前言二、test(T t)三、and(Predicate<? super T> other)四、or(Predicate<? super T...
    99+
    2024-04-02
  • Oracle 12c的ASM新特性是什么
    这篇文章主要讲解了“Oracle 12c的ASM新特性是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle 12c的ASM新特性是什么”吧!or...
    99+
    2024-04-02
  • Oracle 12C新特性-RMAN恢复表
    Oracle 12C 新特性 -RMAN 恢复表 oracle 如何恢复单张表数据? 场景一:处理简单,恢复速度快 1 如果表被 delete 、 update 、 ...
    99+
    2024-04-02
  • Oracle 数据库12c新特性总结
    本篇内容介绍了“Oracle 数据库12c新特性总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1....
    99+
    2024-04-02
  • Oracle数据库12c的新特性有哪些
    这篇“Oracle数据库12c的新特性有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
    99+
    2024-04-02
  • Oracle 数据库12c新特性有哪些
    这篇文章将为大家详细讲解有关Oracle 数据库12c新特性有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  1. 在线重命名和重新定位活跃数据文件   不同于以...
    99+
    2024-04-02
  • 浅谈TypeScript3.7中值得注意的3个新特性
    目录前言Optional ChainingNullish CoalescingUncalled Function Checks其他前言 距typescript 3.7正式发布已经有一...
    99+
    2024-04-02
  • 浅谈 filter伪协议的特性
    前言: 对我来说,我以前对filter伪协议不甚了解,这次接触了这一题,就得主动去更加深入地了解一下filter伪协议了。以前呢就知道php://filter/read=convert.base64-encode/resource=[文件名...
    99+
    2023-09-15
    php web安全 安全
  • ORACLE 12C 优化器的一些新特性总结(二)
    Oracle 12c 数据库在优化器方面确实做出了很大进步。在 Oracle 12c 数据库众多特性中,自适应查询优化是较大的功能变化了。它使优化器能够对执行计划进行实时调整。当现有的统...
    99+
    2024-04-02
  • Oracle 18c新特性-PDB快照轮播的示例分析
    这篇文章给大家分享的是有关Oracle 18c新特性-PDB快照轮播的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Oracle 18c推出的一个新功能就是PDB快照轮播...
    99+
    2024-04-02
  • 浅谈JDK9的特性之JVM的xlog
    目录简介xlog的使用selectionsoutputdecorators简介 JVM是java程序运行的基础,JVM中各种事件比如:GC,class loading,JPMS,he...
    99+
    2024-04-02
  • oracle 12c新特性之在线移动数据文件
    11g时是无法在线移动数据文件的,12c增强了移动数据文件的功能,不仅可以更改路径,还可以给数据文件改名。 oracle 12c在线移动或更名数据文件语法案例: alter database mo...
    99+
    2024-04-02
  • Oracle 12c新特性维护表分区Global Index不失效
    1.新特性官方文档说明 ...
    99+
    2024-04-02
  • Oracle 12c新特性之多线程数据库的示例分析
    这篇文章将为大家详细讲解有关Oracle 12c新特性之多线程数据库的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。有一个概念,叫多进程和多线程。在Unix/Li...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作