Oracle:cdb和pdb
Oracle 12C引入了CDB与PDB的新特性:
cdb(Container Database)数据库容器
pdb(pluggable database)插接式数据库,也叫可插拔数据库。(也可以看作一种容器)
默认启动的是cdb,pdb没启动。
--查看当前容器,在sqlplus命令行下输入:
show con_name
--查看CDB中有多少个PDB
select * from v$pdbs;
--切换CDB和PDB
--切换到PDB后一般需要先启动,在sqlplus命令行下输入:startup,关闭是shutdown
alter session set container=ORCLPDB;
alter session set container=CDB$ROOT;
--CDB存储着ORACLE提供的元数据和公共用户(Common User),元数据的一个例子是ORACLE提供的PL/SQL包的源代码,公共用户是指在每个容器中都存在的用户。
--在PDB中建立用户,用户名不用加C##开头,建立的是本地用户。
--在CDB中新建用户,用户名需要加C##开头,建立的是公共用户(Common User)
安装数据库时候如果打开了PDB功能(勾选了创建容器数据库复选框),则会默认生成一个pdb,否则可以用以下语句创建PDB:
--创建pdb
CREATE pluggable DATABASE orclpdb admin USER spark identified by 12345a roles=(connect) file_name_convert= ('D:\oracle\oradata\orcl\pdbseed', 'D:\oracle\oradata\orcl\orclpdb');
--删除pdb
drop pluggable database orclpdb including datafiles;
默认容器连接没有PDB只有CBD,只能通过sqlplus连接到CDB:
sqlplus sys as sysdba
#或
sqlplus / as sysdba
若想增加PDB容器连接,可以在$ORACLE_HOME/product/12.1.0/dbhome_1/NETWORK/ADMIN/tnsnames.ora文件中添加链接字符串:
PDBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PDBORCL)
)
)
这样PLSQL Developer在建立连接时,选择数据库的下拉框中就可以直接选择PDBORCL库了。
也可以直接用sqlplus连接:
sqlplus user@pdborcl as 连接类型
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!