CDB和PDB的创建、连接、启动、关闭
一、CDB和PDB基本管理
基本概念:
Multitenant Environment:多租户环境
CDB(Container Database):数据库容器
PD(Pluggable Database):可插拔数据库

二、创建
2.1创建CDB
PDB包含在CDB中,所以,要创建PDB,必须先创建CDB。一台机器上可以有多个CDB。Oracle软件安装完成后,就可以创建CDB
启动DBCA (C:\app\oracle\product\12.1.0\dbhome_1\BIN\dbca.bat)

2.2创建PDB
C:\app\oracle\product\12.1.0\dbhome_1\BIN\dbca.bat


三、连接
3.1连接CDB
Sqlplus默认连接CDB
sqlplus sys/oracle as sysdba

3.2连接PDB
pdb可以通过在CDB中alter session container
alter session set container=pdb1

也可以直接通过tns方式(如下)登录
sqlplus sys/oracle@pdb1 as sysdba
其中tnsnames.ora添加
PDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdb1)
)
)
四、启动与关闭
4.1启动关闭CDB
SQL> show con_name CON_NAME ------------------------------ CDB$ROOT SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup ORACLE 例程已经启动。 Total System Global Area 5044088832 bytes Fixed Size 2413072 bytes Variable Size 1040190960 bytes Database Buffers 3992977408 bytes Redo Buffers 8507392 bytes 数据库装载完毕。 数据库已经打开。 SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE ---------- ---------- ------------------------------ ---------- 2 4122484437 PDB$SEED READ ONLY 3 3387525155 PDB1 MOUNTED 4 3946119498 PDB2 MOUNTED SQL>
从上面的操作中可以看到数据库启动的时候所有的PDBs的状态为MOUNTED
4.2启动关闭PDB
pdb的管理可以在cdb中进行也可以在pdb中进行,如果是cdb中进行,需要PLUGGABLE关键字,如果是在pdb中直接和普通数据库一样
SQL> show con_name CON_NAME
------------------------------
CDB$ROOT
SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
2 4122484437 PDB$SEED READ ONLY
3 3387525155 PDB1 MOUNTED
4 3946119498 PDB2 MOUNTED SQL> alter pluggable database pdb1 open; 插接式数据库已变更。 SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
2 4122484437 PDB$SEED READ ONLY
3 3387525155 PDB1 READ WRITE
4 3946119498 PDB2 MOUNTED SQL> alter pluggable database pdb2 open; 插接式数据库已变更。 SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
2 4122484437 PDB$SEED READ ONLY
3 3387525155 PDB1 READ WRITE
4 3946119498 PDB2 READ WRITE SQL> alter pluggable database pdb1 close; 插接式数据库已变更。 SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
2 4122484437 PDB$SEED READ ONLY
3 3387525155 PDB1 MOUNTED
4 3946119498 PDB2 READ WRITE SQL> alter pluggable database pdb2 close; 插接式数据库已变更。 SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
2 4122484437 PDB$SEED READ ONLY
3 3387525155 PDB1 MOUNTED
4 3946119498 PDB2 MOUNTED SQL> alter pluggable database all open; 插接式数据库已变更。 SQL> alter pluggable database all close; 插接式数据库已变更。 SQL> alter session set container=pdb1 ; 会话已更改。 SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
3 3387525155 PDB1 MOUNTED SQL> startup
插接式数据库已打开。
SQL> shutdown
插接式数据库已关闭。
SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
3 3387525155 PDB1 MOUNTED SQL>
4.3自动启动所有PDB
从上面的操作中可以看到数据库启动的时候所有的PDBs的状态为MOUNTED,在实际应用可以考虑增加如下的触发器使所有的PDBs都处于打开状态。
create or replace trigger sys.after_startup after startup on database
begin
execute immediate 'alter pluggable database all open ' ;
end after_startup ;
验证过程
SQL> create or replace trigger sys.after_startup after startup on database 2 begin 3 execute immediate 'alter pluggable database all open ' ; 4 end after_startup ; 5 / 触发器已创建 SQL> shutdown 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup ORACLE 例程已经启动。 Total System Global Area 5044088832 bytes Fixed Size 2413072 bytes Variable Size 1040190960 bytes Database Buffers 3992977408 bytes Redo Buffers 8507392 bytes 数据库装载完毕。 数据库已经打开。 SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE ---------- ---------- ------------------------------ ---------- 2 4122484437 PDB$SEED READ ONLY 3 3387525155 PDB1 READ WRITE 4 3946119498 PDB2 READ WRITE SQL>
四、常用SQL
--查看ORACLE 12C版本
select * from v$version; --查看容器名称和ID
show con_name ; --查看状态
select name ,open_mode from v$pdbs ; --切换container
alter session set container=pdb1
参考
ORACLE-BASE - Multitenant : Overview of Container Databases (CDB) and Pluggable Databases (PDB)
【ORACLE】ORACLE 12c PDB 基础 - 临渊羡鱼 - 博客频道 - CSDN.NET
Oracle 12C 多租户(Oracle Multitenant)--基本概念-zerocool88888888-ChinaUnix博客
ORACLE 12C PDB 维护基础介绍 – 提供专业ORACLE技术咨询和支持@Phone:13429648788 - 惜分飞
Oracle 12c CDB PDB - 丁应思 - 博客园
Oracle 12c入门第三讲: Oracle 12c基本体系结构 (3) pdb,cdb元数据关系 ...,数据智能网,Oracle 12C
浅谈Oracle数据库12c PDB技术 - Oracle安装与升级 - TechTarget数据库
CDB和PDB的创建、连接、启动、关闭的更多相关文章
- 涂抹Oracle笔记2:数据库的连接-启动-关闭
一.数据库的连接sqlplus <username>[/<password>][@<connect_idertifier>]|/[as sysdba| as sys ...
- Oracle12c CDB和PDB数据库的启动与关闭说明
Oracle 12c中,增加了可插接数据库的概念,即PDB,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB). CDB全称为Container Database,中文翻译为数据库容器,PDB ...
- Oracle12c多租户如何启动关闭CDB或PDB (PDB自动启动)
Oracle 数据库 12 c 中介绍了多租户选项允许单个容器数据库 (CDB) 来承载多个单独的可插拔数据库 (PDB).下面我们一起来启动和关闭容器数据库 (CDB) 和可插拔数据库 (PDB). ...
- 转 12C 连接CDB和PDB
来源:David Dai -- Focus on Oracle 连接到CDB 和普通实例一样的连接. 指定ORACLE_SID 以后可以使用OS认证,也可以使用密码进行连接. [oracle@Ora1 ...
- 12c debug 转 12C 连接CDB和PDB
来源:David Dai -- Focus on Oracle 连接到CDB 12c debug 和普通实例一样的连接. 指定ORACLE_SID 以后可以使用OS认证,也可以使用密码进行连接. [o ...
- .NET HttpWebRequest(请求被中止: 未能创建 SSL/TLS 安全通道)和(基础连接已经关闭: 发送时发生错误)问题查找解决
前言: 前段时间在对接第三方接口的时候发生了一个非常奇葩的问题,就是使用 .NET Framework 4.6 HttpWebRequest进行网络请求的相关问题.背景,关于调用第三方的接口都是使用使 ...
- [转]Oracle 12c多租户特性详解:PDB 的创建、克隆与维护
转自:http://chuansong.me/n/443660447865 PDB 的创建和访问 在使用 dbca 建库时,创建数据库之前,可以保存一下创建脚本,分析其具体执行过程.以自定义方式创建名 ...
- CDB和PDB基本管理
CDB和PDB基本管理 这篇文章主要介绍CDB和PDB的基本管理,资料来源oracle官方. 基本概念: Multitenant Environment:多租户环境 CDB(Container Dat ...
- oracle 12C的新特性-CDB和PDB
1.前言 CDB与PDB是Oracle 12C引入的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插 ...
随机推荐
- ps -ef | grep 查看进程命令
通过 ps -ef | grep redis 查看当前Redis 的进程情况.
- Orchard模块开发全接触3:分类的实现及内容呈现(Display)
一:分类用现有技术怎么实现? 实际就是创建 Query 和 Projection,如果不知道怎么做,参考:Orchard之在前台显式一个属于自己的列表(在这篇里,还进行了稍稍拓展),当然,基础的知道, ...
- cannot import name 'main' 解决方案
error description: pip3 install numpy Traceback (most recent call last): File "/usr/bin/pip3&qu ...
- 【BZOJ】【4146】 【AMPPZ2014】Divisors
暴力 由于值的范围很小($ \leq 2*10^6$),所以用一个cnt数组统计每个值有多少个数,然后从小到大,统计每个数的倍数即可. 根据调和数?的神奇性质= =这样是$O(nlogn)$的…… / ...
- 【deep learning学习笔记】注释yusugomori的DA代码 --- dA.cpp -- 训练
说实话,具体的训练公式,我没有自己推导,姑且认为他写的代码是对的.总体上看,用bp的方法.特殊之处,在于输入层和输出层是完完全全的“同一层”. void dA::get_corrupted_input ...
- HTML JS 数据校验
用到了html字符串校验,这里记录一下. <html> <head> <script type="text/javascript"> funct ...
- linux驱动编写(电源管理驱动)
对于嵌入式设备来说,合适的电源管理,不仅可以延长电池的寿命,而且可以省电,延长设备运行时间,在提高用户体验方面有很大的好处.所以,各个soc厂家在这方面花了很多的功夫.下面,我们可以看看linux是如 ...
- 字符串 CSV解析 表格 逗号分隔值 通讯录 电话簿 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- SpringBoot整合Quartz定时任务 的简单实例
POM.XML文件 <!-- 定时器任务 quartz需要导入的坐标 --> <dependency> <groupId>org.quartz-scheduler& ...
- Gridview 单选效果实现,且用且珍惜
Gridview 单选效果,在androidapp中实现非常频繁,我这里提供我的一种思路,这是我的思维导图: 怎么样将这样的思维导图翻译成java代码了,请看下面的代码了: // 电子产品的图片列表信 ...