《Oracle 12C 新特性“可插拔数据库”功能体验》
简介:本文是好友~Oracle专家【高强】所著,此友拥有多年Oracle工作经验,从9i -> 12C都有所涉猎,功力深厚可想而知,对Oracle有着一种无以比拟的热爱,是一位技术大牛,下面转发一篇刚刚草拟的技术文章,附交流方式
微博:高强_游手好弦
邮箱: gaoqiangdba@163.com
QQ: 1253771276
#########################我是分隔符#############################
新年新群招募: 中国Oracle精英联盟 170513055
群介绍:本群是大家的一个技术分享社区,在这里可以领略大师级的技术讲座,还有机会参加Oracle举办的技术沙龙,与兴趣相投的小伙伴一起笑谈风云起,感悟职场情!
#########################我是分隔符#############################
前言:Oracle 12C加入了一个非常有新意的功能“可插拔数据库”特性,实现了数据库(PDB)在“容器”(CDB)上的拔功能,既能提高系统资源的利用率,也简化大面积数据库的管理和迁移工作。
原理图
下面我们体验一下可插拔数据库的CDB和PDB的操作:
基本信息:
根容器(CDB):CUP
可插拔数据库(PDB):TEA
启动根容器:
[oracle@eric ~]$ export ORACLE_SID=cup
[oracle@eric ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Wed Jan 21 16:00:06 2015
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup -----不会直接启动所有可插拔数据库,如需启动所有可插拔数据库,执行命令:alter pluggable database all open
ORACLE instance started.
Total System Global Area 767557632 bytes
Fixed Size 2929112 bytes
Variable Size 574623272 bytes
Database Buffers 184549376 bytes
Redo Buffers 5455872 bytes
Database mounted.
Database opened.
停止根容器:
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
查看是否创建了CDB,如果有显示名字:
SQL> select name,cdb from v$database;
NAME CDB
--------- ---
CUP YES
SQL> show parameter service;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string cup
查看容器名字,其中有3个容器:根容器、种子容器和自己创建的容器:
注:12C中除了容器DB,就是非容器DB
SQL> select con_id,name from v$containers;
CON_ID NAME
---------- ------------------------------
1 CDB$ROOT ---根容器
2 PDB$SEED ---种子容器,只可读
3 TEA ---自己创建的可插拔数据库
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/oracle/app/oradata/CUP/datafile/o1_mf_system_bch07kvz_.dbf
/oracle/app/oradata/CUP/datafile/o1_mf_sysaux_bch020oo_.dbf
/oracle/app/oradata/CUP/datafile/o1_mf_undotbs1_bch0d2on_.dbf
/oracle/app/oradata/CUP/datafile/o1_mf_users_bch0d15n_.dbf
SQL> select file_name from cdb_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/oracle/app/oradata/CUP/datafile/o1_mf_system_bch07kvz_.dbf
/oracle/app/oradata/CUP/datafile/o1_mf_sysaux_bch020oo_.dbf
/oracle/app/oradata/CUP/datafile/o1_mf_undotbs1_bch0d2on_.dbf
/oracle/app/oradata/CUP/datafile/o1_mf_users_bch0d15n_.dbf
创建公共用户:
SQL> create user c##eric identified by gao;
User created.
SQL> conn c##eric/gao
ERROR:
ORA-01045: user C##ERIC lacks CREATE SESSION privilege; logon denied ----没有权限,我们可以单独给其赋予权限,也可以给其指定角色。
Warning: You are no longer connected to ORACLE.
SQL> conn / as sysdba
Connected.
SQL> grant dba to c##eric container=all; ---给其DBA角色,角色范围覆盖所有的容器
Grant succeeded.
SQL> conn c##eric/gao
Connected. ---连接成功
切换容器:
首先启动自己创建的容器数据库:
SQL> alter pluggable database tea open; ---首先启动PDB数据库
SQL> alter session set container = tea;
Session altered.
SQL> show con_name ---查看当前所在的容器名
CON_NAME
------------------------------
TEA
关闭可插拔数据库:
SQL> alter pluggable database tea close immediate;
Pluggable database altered.
小结:本篇简单讲述了CDB、PDB、NON CDB的含义,实验部分给大家演示了启动容器、切换容器、关闭PDB等操作,请大家一起交流与探讨。
如果喜欢我的文章就请扫下面二维码吧!关注微信号:leonarding_public
在这里你能得到技术、实事、热点消息等新兴事物的思考和观点,别的地方可能没有的东西。我将为大家提供最新技术与资讯动态,传递正能量。