ORACLE 12C新特性CDB及PDB一.CDB及PDB结构

CDB及PDB关系图

CDB和PDB是ORACLE 12C一个很亮的新特性,由于他们的引入导致传统的ORACLE数据库管理理念不少发生了改变。在ORACLE12C数据库引入多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,即数据库容器,PDB全称为Pluggable Database,即可插拔数据库。一个CDB数据库容器包含了下面一些组件:

l  ROOT组件:

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

l  SEED组件

Seed又叫PDB$SEED,这个是你创建PDBS数据库的模板,你不能在Seed中添加或修改一个对象。一个CDB中有且只能由一个Seed。

l  PDBS

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

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

Ø  如何确定是CDB还是PDB环境

SQL> show con_name

CON_NAME

------------------------------

CDB$ROOT

如显示CDB$ROOT则代表是CDB环境

SQL> show con_name

CON_NAME

------------------------------

PDORCL(PDB名称)

如显示PDB的某个名称,则处于PDB环境

Ø  如何切换CDB或PDB环境

切换至PDB环境

alter session set container=PDB(某个PDB的具体名称);

切换至CDB环境

alter session set container=CDB$ROOT

Ø  查看当前PDB启动状态及启动数据库

SQL> select con_id,dbid,name,open_mode fromv$pdbs;

CON_ID    DBID NAME                          OPEN_MODE

-------------------------------------------------------------------------

2 3918641363 PDB$SEED                          READ ONLY

3 2055325419 PDORCL                        MOUNTED

4 2055325420PDCATE                               MOUNTED

在CDB环境打开PDB数据库[指定某个PDB名称]

SQL> alter pluggable database PDORCL open;

Pluggable database altered.

在CDB环境下查看PDB状态

SQL> select con_id,dbid,name,open_mode fromv$pdbs;

CON_ID    DBID NAME                          OPEN_MODE

---------- ---------- -------------------------------------------------------------

2 3918641363 PDB$SEED                          READ ONLY

3 2055325419 PDORCL                         READWRITE

关闭PDB数据库

SQL> alter pluggable database PDORCL close;

Pluggable database altered.

在CDB环境下查看PDB状态

SQL> select con_id,dbid,name,open_mode fromv$pdbs;

CON_ID    DBID NAME                          OPEN_MODE

---------- ---------- -------------------------------------------------------------

2 3918641363 PDB$SEED                          READ ONLY

3 2055325419 PDORCL                         READWRITE

如果打开CDB容器下所有PDB数据库或者关闭CDB容器下所有PDB数据库,执行脚本如下:

SQL> alter pluggable database all open;

Pluggable database altered.

SQL> alter pluggable database all close;

Pluggable database altered.三.CDB及PDB下建立用户区别

查看当前属于CDB环境

SQL> show con_name

CON_NAME

------------------------------

CDB$ROOT

CDB环境只能创建公共用户,且用户名必须已C##或c##开头,用户建立后,CDB及PDB环境均有c##开头的用户,但授权不能级联授权,如CDB环境创建了C##SR的用户,在CDB环境授权该用户connect,dba权限,该用户只能在CDB环境下登陆,在PDB环境下登陆需要单独授权,不能级联授权。

SQL> create user sr identifiedby sr;

create user sr identified by sr

*

ERROR at line 1:

ORA-65096: invalid common user orrole name

查看错误原因[格式:!oerr ora错误号]

SQL> !oerr ora 65096

65096, 00000, "invalid commonuser or role name"

// *Cause:  An attempt was made to create a common useror role with a name

//          that was not valid for common usersor roles.  In addition to

//          the usual rules for user and rolenames, common user and role

//          names must start with C## or c## andconsist only of ASCII

//          characters.

// *Action: Specify a valid commonuser or role name.

在CDB环境创建公共用户

SQL> create user c##sridentified by sr;

User created.

如想创建正常的用户,需切换至pdb数据库后再创建,此时用户名不受限制

SQL> alter session setcontainer=pdorcl;

Session altered.

SQL> show con_name

CON_NAME

------------------------------

PDORCL

SQL> create user sr identifiedby sr;

User created.四.CDB及PDB环境下修改参数

l  这里可以看到在cdb中修改参数,pdb会继承进去。

CON_NAME

------------------------------

CDB$ROOT

查看参数

SQL> show parameter open_cursor

NAME                             TYPE    VALUE

----------------------------------------------- ------------------------------

open_cursors                        integer       300

修改参数

SQL> alter system setopen_cursors=500 container=all;

System altered.

再次查看参数

SQL> show parameter open_cursor

NAME                                  TYPE     VALUE

----------------------------------------------- ------------------------------

open_cursors                        integer       500

切换至pdb环境

SQL> alter session setcontainer=pdorcl;

Session altered.

查看参数仍然生效

SQL> show parameter open_cursor

NAME                             TYPE    VALUE

----------------------------------------------- ------------------------------

open_cursors                        integer       500

l  但是在PDB环境下修改参数,PDB下参数生效,但CDB不会生效[不继承]。如果在pdb中修改会覆盖pdb从cdb中继承的参数含义。

SQL>show con_name

CON_NAME

------------------------------

PDORCL

SQL> alter system setopen_cursors=100;

System altered.

SQL> show parameter open_cursors

NAME                             TYPE    VALUE

----------------------------------------------- ------------------------------

open_cursors                        integer       100

SQL> conn / as sysdba

Connected.

SQL> show parameter open_cursors

NAME                             TYPE    VALUE

----------------------------------------------- ------------------------------

open_cursors                        integer       500五.CDB及PDB的视图信息

在ORACLE 12C中引入了CDB和PDB的概念,实现了ORACLE数据库的可插拔,在一个CDB数据库中,有多个PDB,而每一个PDB又可以理解为一个独立的传统ORACLE 数据库,那为了能够通过一个sql查询获得整个CDB数据库的信息,ORALCE 引入了CDB_*开头的视图,该视图就是在传统的DBA_*视图基础之上增加了CON_ID,用来区分不同的PDB,从而实现了一个简单sql查询在有足够权限的情况下,可以查询所有PDB中信息

Ø 确定是否是CDB

SQL> SELECT CDB FROM V$DATABASE;

CDB

---------

YES

YES表示该数据库是CDB,如果是NO表示是NO-CDB(普通数据库)

Ø CDB中各容器信息

SQL> COLUMN NAME FORMAT A8

SQL> SELECT NAME, CON_ID, DBID, CON_UID, GUID FROMV$CONTAINERS ORDER BY CON_ID;

NAME            CON_ID   DBID      CON_UID GUID

-------- ---------- ---------- ------------------------------------------

CDB$ROOT        1 1448663787               1        FD9AC20F64D344D7E043B6A9E80A2F2F

PDB$SEED          2 3918641363     3918641363 3AFC7D541B65114AE05342F4A8C0AEE4

PDORCL              3 2055325419     2055325419 3AFC9AE739981448E05342F4A8C0E4F8

SQL> select CON_NAME_TO_ID('PDORCL') FROM DUAL;

CON_NAME_TO_ID('PDORCL')

------------------------

3

SQL> SELECT CON_DBID_TO_ID(2055325419) FROM DUAL;

CON_DBID_TO_ID(2055325419)

--------------------------

3

SQL> SELECT CON_UID_TO_ID(2055325419) FROM DUAL;

CON_UID_TO_ID(2055325419)

-------------------------

3

Ø 查询在CDB中的PDB数据/临时文件信息

SQL> COLUMN PDB_ID FORMAT 999

SQL> COLUMN PDB_NAME FORMAT A8

SQL> COLUMN FILE_ID FORMAT 9999

SQL>  COLUMNTABLESPACE_NAME FORMAT A10

SQL> COLUMN FILE_NAME FORMAT A45

SQL> SELECT p.PDB_ID, p.PDB_NAME, d.FILE_ID,d.TABLESPACE_NAME, d.FILE_NAME FROM DBA_PDBS p, CDB_DATA_FILES d WHERE p.PDB_ID= d.CON_ID ORDER BY p.PDB_ID;

PDB_ID PDB_NAME FILE_ID TABLESPACE FILE_NAME

------ -------- ------- -------------------------------------------------------

3 PDORCL            8 SYSTEM       +DATA/ORCL/3AFC9AE739981448E05342F4A8C0E4F8/D

ATAFILE/system.274.920883601

3 PDORCL           10 USERS          +DATA/ORCL/3AFC9AE739981448E05342F4A8C0E4F8/D

ATAFILE/users.277.920883611

3 PDORCL            9 SYSAUX        +DATA/ORCL/3AFC9AE739981448E05342F4A8C0E4F8/D

ATAFILE/sysaux.275.920883601

SQL> COLUMN CON_ID FORMAT 999

SQL> COLUMN FILE_ID FORMAT 9999

SQL> COLUMN TABLESPACE_NAME FORMAT A15

SQL> COLUMN FILE_NAME FORMAT A45

SQL> SELECT CON_ID, FILE_ID, TABLESPACE_NAME,FILE_NAME FROM CDB_TEMP_FILES ORDER BY CON_ID;

CON_ID FILE_ID TABLESPACE_NAME FILE_NAME

------ ------- ------------------------------------------------------------

1         1 TEMP         +DATA/ORCL/TEMPFILE/temp.269.920883057

3         3 TEMP        +DATA/ORCL/3AFC9AE739981448E05342F4A8C0E4F8/T

EMPFILE/temp.276.920883605六.CDB及PDB的物理结构

l  CDB名为ORCL,其内PDB名为PDORCL,数据文件存放于+DATA磁盘组里,已此环境为例:

CDB数据文件位置:+DATA/ORCL/DATAFILE/SYSTEM.256

+DATA/ORCL/DATAFILE/SYSAUX.257

+DATA/ORCL/DATAFILE/USERS.258

+DATA/ORCL/DATAFILE/TEMP.270

+DATA/ORCL/DATAFILE/UNDOTBS1.272

PDB数据文件位置:+DATA/ORCL/UUID1/DATAFILE/SYSTEM.259

+DATA/ORCL/UUID1/DATAFILE/SYSAUX.260

+DATA/ORCL/UUID1/DATAFILE/USERS.261

+DATA/ORCL/UUID1/DATAFILE/TEMP.271

PDB$SEED数据文件位置: +DATA/ORCL/UUID2/DATAFILE/SYSTEM.272

+DATA/ORCL/UUID2/DATAFILE/SYSAUX.273

+DATA/ORCL/UUID2/DATAFILE/pdbseed_temp012016-08-26

参数文件位置: +DATA/ORCL/PARAMETERFILE/spfile.273.920883461

公共表空间及文件独有表空间及文件

CDB&PDBUNDOTBS1(回滚表空间)

LOGFILE(日志文件)

参数文件(spfile)

控制文件(control)

CDBsystem,sysaux,users,temp表空间及数据文件

PDBsystem,sysaux,users,temp表空间及数据文件

PDB$SEEDsystem,sysaux,temp表空间及数据文件

l  独有的表空间及文件:

1)       CDB有单独的system,sysaux,users,temp表空间及对应的数据文件;

2)       PDB有单独的system,sysaux,users,temp表空间及对应的数据文件;

3)       PDB$SEED有单独的system,sysaux,temp[已pdbseed_temp开头命名]表空间及对应的数据文件;

l  共有的表空间及文件:

1)       CDB与PDB共同拥有UNDO表空间及对应数据文件

2)       CDB与PDB 共同拥有日志文件

3)       参数文件是共有的,参数文件范例如下:

orcl.__data_transfer_cache_size=0

orcl.__db_cache_size=587202560

orcl.__java_pool_size=16777216

orcl.__large_pool_size=33554432

orcl.__oracle_base='/u01/app/oracle'#ORACLE_BASEset from environment

orcl.__pga_aggregate_target=553648128

orcl.__sga_target=1056964608

orcl.__shared_io_pool_size=50331648

orcl.__shared_pool_size=352321536

orcl.__streams_pool_size=0

*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'

*.audit_trail='db'

*.compatible='12.1.0.2.0'

*.control_files='+DATA/ORCL/CONTROLFILE/current.262.920883051','+DATA/ORCL/CONTROLFILE/current.261.920883051'

*.db_block_size=8192

*.db_create_file_dest='+DATA'

*.db_domain=''

*.db_name='orcl'

*.db_recovery_file_dest='+DATA'

*.db_recovery_file_dest_size=4560m

*.diagnostic_dest='/u01/app/oracle'

*.dispatchers='(PROTOCOL=TCP)(SERVICE=orclXDB)'

*.enable_pluggable_database=true

*.memory_target=1526m

*.open_cursors=300

*.processes=300

*.remote_login_passwordfile='EXCLUSIVE'

*.undo_tablespace='UNDOTBS1'

4)       控制文件是共有的,控制文件范例如下:[示例包含重建控制文件脚本]

STARTUP NOMOUNT

CREATECONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  NOARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 1024

MAXINSTANCES 8

MAXLOGHISTORY 292

LOGFILE

GROUP 1 (

'+DATA/ORCL/ONLINELOG/group_1.263.920883053',

'+DATA/ORCL/ONLINELOG/group_1.264.920883053'

) SIZE 50M BLOCKSIZE 512,

GROUP 2 (

'+DATA/ORCL/ONLINELOG/group_2.265.920883053',

'+DATA/ORCL/ONLINELOG/group_2.266.920883053'

) SIZE 50M BLOCKSIZE 512,

GROUP 3 (

'+DATA/ORCL/ONLINELOG/group_3.267.920883055',

'+DATA/ORCL/ONLINELOG/group_3.268.920883055'

) SIZE 50M BLOCKSIZE 512

-- STANDBY LOGFILE

DATAFILE

'+DATA/ORCL/DATAFILE/system.258.920882955',

'+DATA/ORCL/DATAFILE/sysaux.257.920882909',

'+DATA/ORCL/DATAFILE/undotbs1.260.920883011',

'+DATA/ORCL/FD9AC20F64D244D7E043B6A9E80A2F2F/DATAFILE/system.271.920883059',

'+DATA/ORCL/DATAFILE/users.259.920883011','+DATA/ORCL/FD9AC20F64D244D7E043B6A9E80A2F2F/DATAFILE/sysaux.270.920883059',

'+DATA/ORCL/3AFC9AE739981448E05342F4A8C0E4F8/DATAFILE/system.274.920883601', '+DATA/ORCL/3AFC9AE739981448E05342F4A8C0E4F8/DATAFILE/sysaux.275.920883601','+DATA/ORCL/3AFC9AE739981448E05342F4A8C0E4F8/DATAFILE/users.277.920883611'

CHARACTER SET ZHS16GBK

;

RECOVER DATABASE

ALTER DATABASE OPEN;

ALTER PLUGGABLE DATABASE ALL OPEN;

ALTER TABLESPACE TEMP ADDTEMPFILE '+DATA/ORCL/TEMPFILE/temp.269.920883057'

SIZE 206569472  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;

ALTER SESSION SET CONTAINER = PDB$SEED;

ALTER TABLESPACE TEMP ADDTEMPFILE'+DATA/ORCL/FD9AC20F64D244D7E043B6A9E80A2F2F/DATAFILE/pdbseed_temp012016-08-26_08-51-37-am.dbf'SIZE 104857600  REUSE AUTOEXTEND ON NEXT655360  MAXSIZE 32767M;

ALTER SESSION SET CONTAINER = PDORCL;

ALTER TABLESPACE TEMP ADDTEMPFILE'+DATA/ORCL/3AFC9AE739981448E05342F4A8C0E4F8/TEMPFILE/temp.276.920883605' SIZE20971520  REUSE AUTOEXTEND ON NEXT655360  MAXSIZE 32767M;

ALTER SESSION SET CONTAINER = CDB$ROOT;七.CDB及PDB环境的备份

这种环境在RMAN环境执行backupdatabase的备份,会备份以下三种4种文件

1)        cdb下表空间的数据文件的备份集

2)       PDB下表空间的数据文件的备份集

3)       PDB$SEED下表空间的数据文件的备份集

4)       参数文件及控制文件的备份集

oracle12c cdb修改,ORACLE 12C 新特性CDB及PDB相关推荐

  1. oracle中pdb,Oracle 12C新特性-CDB和PDB 详解

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

  2. oracle12c启动apply,Oracle 12c 新特性 -- DG 默认使用 Real-Time Apply

    https://www.cndba.cn/dave/article/213 1    理论说明 在Oracle 12c 之前的Data Guard 环境中,默认情况下备库apply redo 是从备库 ...

  3. oracle12c生命周期,Oracle 12c 新特性之: ILM 数据生命周期管理

    张乐奕 云和恩墨副总经理,Oracle ACE总监,ACOUG 联合创始人 ILM 全称是 Information Lifecycle Management,意思是信息生命周期管理,听上去很高端洋气的 ...

  4. Oracle 12c新特性-多租户的维护管理

    云和恩墨技术专家 现就职于云和恩墨,为某省电信公司数据库运维服务:在IT行业拥有10年以上的工作经历.擅长 ORACLE 数据库运维管理.shell 脚本开发:长期服务于电信.金融,政府行业:具有丰富 ...

  5. Oracle 12c新特性--LREG进程专门负责注册实例服务

    Oracle 12c引入了一些大量的新特性,数据库隐藏参数12.2比11.2就多了2000多个, 同时对之前版本的结构也发生了一些变化,虽然不如有些特性像temporary undo\immemory ...

  6. Oracle 12C 新特性之扩展数据类型(extended data type)

    Oracle 12C 新特性-扩展数据类型,在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的大小会从4K以及2K字节扩展至32K字节.只要可能,扩展字 ...

  7. oracle 12c undo,Oracle 12c 新特性之临时Undo--temp_undo_enabled

    Oracle 12c 新特性之临时Undo--temp_undo_enabled 每个 Oracle 数据库包含一组与系统相关的表空间,例如 SYSTEM , SYSAUX , UNDO&TE ...

  8. 【云和恩墨大讲堂】高凯 | Oracle 12c 新特性-多租户的维护管理

    "云和恩墨大讲堂" 线上课程周四晚继续开讲.本期我们邀请的嘉宾是云和恩墨西北区技术专家 - 高凯,在这里跟大家分享一下 Oracle 12c 新特性方面的主题.课程以图文形式在微信 ...

  9. oracle12c 新增维护时间窗口,ORACLE 12C新特性-自动维护全局索引 | 信春哥,系统稳,闭眼上线不回滚!...

    今天在网上看了一篇关于12C新特性-自动维护全局索引的帖子,经测试,貌似根本不是那么回事呀.如果对分区表进行分区DDL操作,如果不加update index字句,全局索引就会失效,下面先看一下是11. ...

  10. oracle12c asmfd,Oracle 12c新特性--ASMFD(ASM Filter Driver)特性

    1 说明 ASMFD 是 12.1 中就引入的新特性,它可以不用手动配置 ASM 磁盘,更重要的是它可以保护磁盘被其他非 Oracle 操作复写,例如 dd , echo 等命令. 更为详尽的介绍,请 ...

最新文章

  1. 让程序员不再苦逼的四大神器
  2. JDK8新特性(二)之接口新增的两个方法
  3. webpack打包优化_如何提升 Webpack 打包速度
  4. ebay html描述模板,ebay产品描述模板
  5. 身为管理者 会讲的六十八个故事
  6. 【JDK】win 10 / win 11:jdk 8 下载、安装、配置、验证
  7. 使用360文件粉碎机卸载北信源软件
  8. 银河麒麟安装docker-compose体验
  9. Android 如何判断萤石云视频是否可以播放
  10. 《场景革命》读书笔记
  11. 笔记 黑马程序员C++教程从0到1入门编程——提高编程02
  12. 编写第一个JSP文件
  13. 算法总结(六)Isomap(Isometric mapping等度量映射)和LLE(Locally Linear Embedding)的理解
  14. python生成日期列表_PYTHON生成日期维度表
  15. android 模拟输入,Android开发中如何模拟输入
  16. flash模板 超级链接该如何加
  17. JAVA实现Excel照相机功能_Excel2010中的照相机功能如何使用?
  18. 郑州python培训机构排名
  19. WEB个人网页问题汇总及分享总结
  20. JSP课设:学生选课系统(附源码+调试)

热门文章

  1. 【vulnhub】---DC-6靶机
  2. html怎样使图片自动旋转,css怎么让图片旋转?
  3. 云编程那些事3 - Yahoo的烟斗
  4. 求职面试中如何做好自我介绍?
  5. 【旅行】2月17日 南京 - 日照 451公里自驾过年
  6. 【深度学习】梯度消失与梯度爆炸的原因分析与解决策略
  7. 基于变量推理的知识图路径推理分析
  8. Python爬取电影天堂指定电视剧或者电影
  9. 用360安全卫士检查计算机中是否有木马,你的电脑真的做好防护了吗?使用360安全卫士木马查杀一键扫描就知道...
  10. 15软件班安卓课程实训总结