oracle 12 去掉 cdb,Oracle 12c CDB 和PDB 数据库的启动与关闭 说明
在Oracle 12c中,分CDB 和PDB,他们的启动和关闭操作整理如下。
1 Container Database (CDB)
对于CDB,启动和关闭与之前传统的方式一样,具体语法如下:
STARTUP[NOMOUNT | MOUNT | RESTRICT | UPGRADE | FORCE | READ ONLY]
SHUTDOWN[IMMEDIATE | ABORT]
要注意,在12c数据库创建完成后,默认情况下使用sqlplus / as sysdba登录连接的是CDB。
[oracle@Ora12c~]$ sqlplus / as sysdba
SQL*Plus:Release 12.1.0.1.0 Production on Thu Apr 24 17:50:34 2014
Copyright(c) 1982, 2013, Oracle. All rightsreserved.
Connectedto:
OracleDatabase 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
Withthe Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL>show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL>
SQL>select con_id, dbid, guid, name , open_mode from v$pdbs;
CON_ID DBID GUID NAME OPEN_MODE
---------- ------------------------------------------ ------------------------------ ----------
2 4088301206 F7C1E3C96BBF0585E0430A01A8C05459PDB$SEED READ ONLY
3 426143573 F7C209EB1DFC0854E0430A01A8C0B787 PDBCNDBA READ WRITE
我们现在连接的是CDB,即root container。
我们关闭CDB:
SQL>shutdown immediate
Databaseclosed.
Databasedismounted.
ORACLEinstance shut down.
我们关闭CDB之前PDB 是没有关闭的,所以这个操作也会把PDB 关闭掉。
SQL>startup
ORACLEinstance started.
TotalSystem Global Area 1269366784 bytes
FixedSize 2287912 bytes
VariableSize 788530904 bytes
DatabaseBuffers 469762048 bytes
RedoBuffers 8785920 bytes
Databasemounted.
Databaseopened.
SQL> select con_id, dbid, guid, name , open_modefrom v$pdbs;
CON_ID DBID GUID NAME OPEN_MODE
---------- ------------------------------------------ ------------------------------ ----------
2 4088301206F7C1E3C96BBF0585E0430A01A8C05459 PDB$SEED READ ONLY
3 426143573 F7C209EB1DFC0854E0430A01A8C0B787 PDBCNDBA MOUNTED
注意这里的PDB,在CDB 启动之,PDB 是自动启动到mount状态,而不是OPEN。 所以我们还需要手工去open它,当然,也可以通过在CDB中配置触发器来自动open。
2 Pluggable Database (PDB)
PDB 的操作可以通过SQL*PLUS 来操作,也可以通过ALTER PLUGGABLE DATABASE 命令操作。
2.1 使用SQL*Plus 命令
因为默认连接的是CDB,所以必须先指定PDB才可以通过sqlplus来启动和关闭PDB,
具体语法和普通实例一样:
STARTUPFORCE;
STARTUPOPEN READ WRITE [RESTRICT];
STARTUPOPEN READ ONLY [RESTRICT];
STARTUPUPGRADE;
SHUTDOWN[IMMEDIATE];
SQL>show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL>selectcon_id, dbid, guid, name , open_mode from v$pdbs;
CON_ID DBID GUID NAME OPEN_MODE
-------------------- -------------------------------- --------------- ----------
2 4088301206F7C1E3C96BBF0585E0430A01A8C05459 PDB$SEED READ ONLY
3 426143573 F7C209EB1DFC0854E0430A01A8C0B787 PDBCNDBA MOUNTED
注意这里是mount,表示PDB 是关闭的。
--指定PDB数据库:
SQL>alter session set container=pdbcndba;
Sessionaltered.
SQL>startup
PluggableDatabase opened.
SQL>select con_id, dbid, guid, name , open_mode from v$pdbs;
CON_ID DBID GUID NAME OPEN_MODE
-------------------- -------------------------------- --------------- ----------
3 426143573 F7C209EB1DFC0854E0430A01A8C0B787 PDBCNDBA READ WRITE
SQL>
启动成功。 当我们切换到PDB之后,就看不到seed PDB的信息了。
2.2 使用ALTER PLUGGABLE DATABASE命令
如果在PDB中可以使用如下语法:
ALTERPLUGGABLE DATABASE OPEN READ WRITE [RESTRICTED] [FORCE];
ALTERPLUGGABLE DATABASE OPEN READ ONLY [RESTRICTED] [FORCE];
ALTERPLUGGABLE DATABASE OPEN UPGRADE [RESTRICTED];
ALTERPLUGGABLE DATABASE CLOSE [IMMEDIATE];
如果是在CDB中,可以使用如下语法:
ALTERPLUGGABLE DATABASE OPEN READ WRITE [RESTRICTED][FORCE];
ALTERPLUGGABLE DATABASE OPEN READ ONLY [RESTRICTED] [FORCE];
ALTERPLUGGABLE DATABASE OPEN UPGRADE [RESTRICTED];
ALTERPLUGGABLE DATABASE CLOSE [IMMEDIATE];
表示的是多个PDB,如果有多个,用逗号分开。 也可以使用ALL或者ALL EXCEPT关键字来替代。
ALL:表示所有的PDBS。
ALLEXCEPT 表示需要排除的PDBS。
如:
ALTERPLUGGABLE DATABASE pdb1, pdb2 OPEN READ ONLY FORCE;
ALTERPLUGGABLE DATABASE pdb1, pdb2 CLOSE IMMEDIATE;
ALTERPLUGGABLE DATABASE ALL OPEN;
ALTERPLUGGABLE DATABASE ALL CLOSE IMMEDIATE;
ALTERPLUGGABLE DATABASE ALL EXCEPT pdb1 OPEN;
ALTERPLUGGABLE DATABASE ALL EXCEPT pdb1 CLOSE IMMEDIATE;
示例:
SQL>alter session set container=CDB$ROOT;
Sessionaltered.
SQL>select con_id, dbid, guid, name , open_mode from v$pdbs;
CON_ID DBID GUID NAME OPEN_MODE
-------------------- -------------------------------- --------------- ----------
2 4088301206F7C1E3C96BBF0585E0430A01A8C05459 PDB$SEED READ ONLY
3 426143573 F7C209EB1DFC0854E0430A01A8C0B787 PDBCNDBA READ WRITE
SQL>ALTER PLUGGABLE DATABASE ALL CLOSE ;
Pluggabledatabase altered.
SQL>select con_id, dbid, guid, name , open_mode from v$pdbs;
CON_ID DBID GUID NAME OPEN_MODE
-------------------- -------------------------------- --------------- ----------
2 4088301206F7C1E3C96BBF0585E0430A01A8C05459 PDB$SEED READ ONLY
3 426143573 F7C209EB1DFC0854E0430A01A8C0B787PDBCNDBA MOUNTED
SQL>alter session set container=pdbcndba;
Sessionaltered.
SQL>ALTER PLUGGABLE DATABASE OPEN;
Pluggabledatabase altered.
SQL> select con_id, dbid, guid, name , open_modefrom v$pdbs;
CON_ID DBID GUID NAME OPEN_MODE
-------------------- -------------------------------- --------------- ----------
3 426143573 F7C209EB1DFC0854E0430A01A8C0B787PDBCNDBA READ WRITE
3 设置Pluggable Database (PDB) 的自动startup
默认情况下,在CDB 启动的时候,all 的PDB 都是mount状态,也没有默认的机制,在CDB启动时自动启动PDB。
但这里可以通过触发器来实现PDB的自动open:
CREATEOR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTERPLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/
示例:
SQL>show con_name
CON_NAME
------------------------------
PDBCNDBA
SQL>alter session set container=CDB$ROOT;
Sessionaltered.
SQL>CREATE OR REPLACE TRIGGER open_pdbs
2 AFTER STARTUP ON DATABASE
3 BEGIN
4 EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
5 ENDopen_pdbs;
6 /
Triggercreated.
--------------------------------------------------------------------------------------------
oracle 12 去掉 cdb,Oracle 12c CDB 和PDB 数据库的启动与关闭 说明相关推荐
- oracle学习笔记 参数文件及数据库的启动和关闭
oracle学习笔记 参数文件及数据库的启动和关闭 我们这节课把oracle的参数文件以及oracle的启动关闭讲一下 一)参数文件作用 先看oracle的参数文件 它由来已久了 我们知道oracle ...
- Oracle数据库的启动与关闭
Oracle中不同启动和关闭方式的区别: Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将周详介绍这些启动和关闭方式之间的区别连同他们各自不同的功能. 一.启动和关闭Oracle数据库 ...
- oracle 12 去掉 cdb,Oracle 12c no-CDB转换为CDB
如果把数据库从11g 升级到12c,或者在12c中创建的,就是NON CDB,那么这样的数据库就是普通的单实例, 和12c 之前的数据库没有区别,但12c 的特点就是CDB 管理,所以既然上12c,还 ...
- oracle 12 去掉 cdb,Oracle 12c 学习之启动关闭CDBPDB
Oracle 12c 学习之启动关闭CDB&PDB 1.默认登陆到CDB $sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Productio ...
- oracle 12 问题:需要 Oracle 客户端软件 8.1.7 或更高版本
环境:win server 2008 r2 oracle 12C 错误提示: System.Web.Services.Protocols.SoapException: 服务器无法处理请求. ---&g ...
- oracle 12 sqlplus 使用,oracle 12.2 sqlplus history
12.1开始使用sqlplus显示用户上次登录时间,12.2提供了一个记录历史sql的功能,类似于操作系统的history,根目录下的.history文件,不过功能比操作系统的history要强大,可 ...
- oracle数据库结束进程后怎么重启,Oracle数据库的启动与关闭方法
一.启动数据 $sqlplus "sys/pass as sysdba" sql>startup 二.启动监听器 数据库启动后,如果未启动监听进程,则客户端无法与数据库连接. ...
- oracle数据库从关闭到启动,Oracle数据库的启动和关闭详细过程
一.数据库打开 startup数据库正常启动 1.startup nomount 启动 Oracle DB 实例:NOMOUNT ,创建sga,创建了alert日志,用于create db,creat ...
- oracle月份去掉0,Oracle取月份,不带前面的0
今天碰到只要取月份和天数,如果月份前面有0要去掉0.比如说2010-01-08 ,需要的结果是1-8. 引出了一系列的sql语句 第一: 利用to_number的函数转换自动截0 select to_ ...
- oracle时间去掉日期,Oracle 时间和日期处理
-- Oracle时间 SELECT SYSDATE FROM dual; -- 系统时间 SELECT SYSTIMESTAMP FROM dual; -- 当前系统时间戳 SELECT CURRE ...
最新文章
- 为什么我们使用Linux内核的(网络)协议栈?
- 错误:无法作为数据库主体执行,因为主体 dbo 不存在、无法模拟这种类型的主体,或您没有所需的权限...
- [c语言 ] 用libev 写个echo服务器
- 从零开始入门 K8s | 应用编排与管理:Job DaemonSet
- LeetCode最大子序和 (动态规划)python
- HarmonyOS之AI能力·图像超分辨率
- Oracle ORA-00903:表名无效
- 软件质量的理解 摘录
- java ioutils_java – 无法解析符号’IOUtils’
- 传智Python视频_基础班+就业班
- Android 系统调试(2)---android debug 方法
- 《诛仙Ⅰ》票房破3亿 QQ阅读《诛仙》小说全平台收入增长11.7倍
- 深蓝学院-视觉SLAM从理论到实践基础知识导图
- Shiro 单点登录
- Android中的控件
- Spark机器学习(12):神经网络算法
- 十四步实现拥有强大AI的五子棋游戏
- 苏教版六年级上册计算机教案,苏教版六年级数学上册最新全册教案
- 求两个列表的交集、并集和补集
- win10网络工作组看不到其他计算机,win10系统工作组不显示其他计算机的解决方法...