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。

[[email protected]~]$ 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 <pdd-name-clause> OPEN READ WRITE [RESTRICTED][FORCE];

ALTERPLUGGABLE DATABASE <pdd-name-clause> OPEN READ ONLY [RESTRICTED] [FORCE];

ALTERPLUGGABLE DATABASE <pdd-name-clause> OPEN UPGRADE [RESTRICTED];

ALTERPLUGGABLE DATABASE <pdd-name-clause> CLOSE [IMMEDIATE];

<pdd-name-clause>表示的是多个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.

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

版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

AboutDave:

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

QQ:      251097186

Email:    [email protected]

Blog:     http://blog.csdn.net/tianlesoftware

Weibo:    http://weibo.com/tianlesoftware

Twitter:  http://twitter.com/tianlesoftware

Facebook: http://www.facebook.com/tianlesoftware

Linkedin: http://cn.linkedin.com/in/tianlesoftware

Dave 的QQ群:

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

注意:加群必须注明表空间和数据文件关系 | 不要重复加群

CNDBA_1: 104207940 (满)    CNDBA_2: 62697716 (满)   CNDBA_3: 283816689

CNDBA_4: 391125754   CNDBA_5: 62697850    CNDBA_6: 62697977   CNDBA_7: 142216823(满)

时间: 2024-10-12 02:43:41

Oracle 12c CDB 和PDB 数据库的启动与关闭 说明的相关文章

Oracle 12c CDB与PDB

Oracle安装参考:https://www.cnblogs.com/zhichaoma/p/9288739.html 对于CDB,启动和关闭与之前传统的方式一样,具体语法如下: STARTUP[NOMOUNT | MOUNT | RESTRICT | UPGRADE | FORCE | READ ONLY] SHUTDOWN[IMMEDIATE | ABORT] 手动创建CDB 1. 修改~/.bash_profile文件,修改ORACLE_SID名称 export ORACLE_SID=or

Oracle 12C CDB、PDB常用管理命令

--查看PDB信息(在CDB模式下) show pdbs --查看所有pdb select name,open_mode from v$pdbs; --v$pdbs为PDB信息视图 select con_id, dbid, guid, name , open_mode from v$pdbs; --切换容器 alter session set container=orcl1 --切换到PDBorcl1容器 alter session set container=CDB$ROOT --切换到CDB

Oracle 12c CDB 和 PDB 表空间管理和配置 说明

 注:本文谢绝转载. 1  管理CDB中的表空间 CDB表空间的管理和non-CDB 表空间的管理一样,CDB 也有一个实例,在安装的时候指定. --查看表空间: SQL> select instance_name fromv$instance; INSTANCE_NAME ---------------- Cndba SQL> col file_name for a50 SQL> selecttablespace_name,file_id,file_name from dba_data

案例:Oracle dul数据挖掘 非常规对ORACLE 12C CDB数据库进行恢复

没有数据库备份的情况下,非常规对ORACLE 12C CDB数据库进行恢复 熟悉dul的朋友都知道dul是通过file# 1 block 1的kcvfhrdb找到bootstarp$的segment header(其实kcvfhrdb就是bootstarp$ segment header的rdba地址),然后通过bootstarp$中存储的相关sql找对一些基础的基表对象(obj$,tab$,col$,seg$等),然后通过他们定位到具体的对象的segment记录,从而通过segment找到ex

客户端如何访问访问oracle 12c 64位的数据库

服务器A安装的oracle 12c 64位的数据库,机器B如何访问oracle数据库. 准备: 1.下载instantclient-basic-nt-12.1.0.2.0.zip,下载地址:http://pan.baidu.com/s/1c04lzSO 2.下载plsql,下载地址:http://pan.baidu.com/s/1bnHKDOj 安装步骤 1.安装orcle客户端 将下载的 instantclient-basic-nt-12.1.0.2.0.zip解压到机器B中非中文路径的目录下

LINUX下oracle数据库的启动和关闭

1. $ su - oracle 2. $ sqlplus / nolog 3. sql> conn / as sysdba 或吧2,3合为一个sqlplus / as sysdba 4. sql> startup (一般不需要加参数,只要设置好环境变量) 5. sql> quit (退出sql模式) 6. $ lsnrctl start (启动监听器)关闭oracle 1. $ lsnrctl stop(关闭监听器,在这之前,应该先关闭应用程序) 2. $ sqlplus /nolog

RAC 数据库的启动与关闭

RAC数据库与单实例的差异主要表现在多个实例通过集群件来统一管理共享的资源.因此原有的单实例的管理方式,如数据库.监听器等的关闭启动等可以使用原有的方式进行,也可以通过集群管理工具,命令行来集中管理,这也是推荐的管理方式.由于集群件crs位于数据库之上,即RAC数据库依赖于集群件,因此数据库的启动与关闭应该结合集群来考虑,下面以10g RAC来描述数据库启动与关闭过程,不涉及集群层的启动与关闭. 一.RAC 数据库启动与关闭顺序1.关闭顺序  关闭OEM,关闭监听,关闭 Oracle 实例,关闭

相克军_Oracle体系_随堂笔记016-参数文件及数据库的启动和关闭

参数文件: spfile<SID>.ora    动态参数文件,是二进制文件,9i以后引入并建议使用 init<SID>.ora    静态参数文件,是文本文件 动态参数,部分参数可以动态修改.建议9i以后就使用spfile. 数据库启动三个阶段: nomount(根据参数文件配置参数启动实例) mount(根据参数文件中记录的控制文件位置打开控制文件) open(根据控制文件信息打开数据文件,redo日志文件,open数据库) 注:nomount之前就可以根据pfile创建spf

oracle 12c 多租户 pdb 恢复(单个pdb数据文件、非系统pdb表空间、整个pdb数据库)

环境:数据库版本 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 实验准备:1.-- 数据库归档模式SQL> select name,log_mode from v$database;NAME  LOG_MODE--------- ------------ANDYCDB   ARCHIVELOG   > 数据库归档模式 2.-- 登录 PDB 中创建实验表空间 与 用户[[email pr