摘要:本文主要向大家介绍了Oracle数据库之CDB和PDB的创建、连接、启动、关闭,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。
本文主要向大家介绍了Oracle数据库之CDB和PDB的创建、连接、启动、关闭,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。
基本概念:
Multitenant Environment:多租户环境
CDB(Container Database):数据库容器
PDB(Pluggable Database):可插拔数据库
PDB包含在CDB中,所以,要创建PDB,必须先创建CDB。一台机器上可以有多个CDB。Oracle软件安装完成后,就可以创建CDB
启动DBCA
C:\app\oracle\product\12.1.0\dbhome_1\BIN\dbca.bat)
C:\app\oracle\product\12.1.0\dbhome_1\BIN\dbca.bat
Sqlplus默认连接CDB
sqlplus sys/oracle as sysdba
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)
)
)
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
---------- ---------- ------------------------------ ----------
4122484437 PDB$SEED READ ONLY
3387525155 PDB1 MOUNTED
3946119498 PDB2 MOUNTED
SQL>
从上面的操作中可以看到数据库启动的时候所有的PDBs的状态为MOUNTED
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
---------- ---------- ------------------------------ ----------
4122484437 PDB$SEED READ ONLY
3387525155 PDB1 MOUNTED
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
---------- ---------- ------------------------------ ----------
4122484437 PDB$SEED READ ONLY
3387525155 PDB1 READ WRITE
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
---------- ---------- ------------------------------ ----------
4122484437 PDB$SEED READ ONLY
3387525155 PDB1 READ WRITE
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
---------- ---------- ------------------------------ ----------
4122484437 PDB$SEED READ ONLY
3387525155 PDB1 MOUNTED
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
---------- ---------- ------------------------------ ----------
4122484437 PDB$SEED READ ONLY
3387525155 PDB1 MOUNTED
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
---------- ---------- ------------------------------ ----------
3387525155 PDB1 MOUNTED
SQL> startup
插接式数据库已打开。
SQL> shutdown
插接式数据库已关闭。
SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs;
CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
3387525155 PDB1 MOUNTED
SQL>
从上面的操作中可以看到数据库启动的时候所有的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
begin
execute immediate 'alter pluggable database all open ' ;
end after_startup ;
/
触发器已创建
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
---------- ---------- ------------------------------ ----------
4122484437 PDB$SEED READ ONLY
3387525155 PDB1 READ WRITE
3946119498 PDB2 READ WRITE
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有所帮助,更多内容请关注职坐标数据库Oracle数据库频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号