PDB 是 Oracle 12c+(以 19c 为例)基于 CDB(容器数据库)的 “轻量级数据库”,可通过PDB$SEED 种子模板快速创建,以下是完整创建与访问步骤。
一、PDB 创建前提
PDB 基于PDB$SEED(CDB 内置的模板数据库)创建,需先查询其数据文件路径,用于后续映射新 PDB 的文件路径:
-- 查询PDB$SEED(con_id=2对应种子模板)的数据文件路径
SELECT name FROM v$datafile WHERE con_id=2;
![]()
查询结果如下图所示

三、步骤 2:创建新 PDB(以 Appdb 为例)
使用CREATE PLUGGABLE DATABASE命令,基于 PDB$SEED 创建新 PDB,并指定管理员用户与数据文件路径:
然后使用create pluggable database创建一个名为Appdb的pdb,用户名密码为neo,第四行指明了数据文件目录,第五行是一个数据库的极简模式。包含了最小配置所需的文件,比如system表空间、辅助表空间、undo表空间、临时表空间。
sql
CREATE PLUGGABLE DATABASE Appdb
-- 创建PDB的管理员用户(用户名neo,密码neo)
ADMIN USER neo IDENTIFIED BY neo
-- 数据文件路径映射:PDB$SEED路径 → 新PDB路径
FILE_NAME_CONVERT = (
'/u01/app/oracle/oradata/ORCL/pdbseed/',
'/u01/app/oracle/oradata/ORCL/PDB1/'
);
执行结果:

⚠️ 说明:
- 创建后的 PDB 默认处于MOUNTED 状态(仅挂载,未打开,无法访问,需手动打开)。
FILE_NAME_CONVERT用于将种子模板的文件路径替换为新 PDB 的存储路径,确保数据文件独立存储。
四、步骤 3:打开 PDB 并验证状态
sql
-- 查看所有PDB的状态
SHOW PDBS;
此时是mount状态
sql
-- 打开Appdb(默认READ WRITE模式,支持读写)
ALTER PLUGGABLE DATABASE APPDB OPEN;

成功打开数据库
下图为打开后的状态

五、步骤 4:验证监听服务(确认 PDB 注册)
刚才进行了空的PDB数据库的基本安装。这个时候我们的新的数据库其实已经可以具备对外服务的基本条件了。通过检查监听验证一下。
bash
lsnrctl status

关键输出(确认 Appdb 服务已注册):
plaintext
Services Summary...
Service "appdb" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
六、步骤 5:配置 tnsnames.ora(客户端访问别名)
编辑$ORACLE_HOME/network/admin/tnsnames.ora,添加 Appdb 的访问别名(以别名P1为例):
通过编辑服务命名文件,模拟客户端登录。这里P1是别名, SERVICE_NAME = APPDB (填刚才创建的pdb),host填主机名或者ip地址

七、步骤 6:客户端连接 PDB
通过sqlplus使用别名 + PDB 管理员用户登录:
bash
sqlplus neo/neo@P1

这里的P1是别名。这里的neo分别是用户名和密码。通过访问别名进行数据库登录。到此我们完成了创建PDB的步骤。
八、CDB/PDB 的核心优势(Oracle 19c 云原生特性)
Oracle 12c+(命名含 “c” 即 “Cloud”)的 CDB/PDB 架构,解决了传统数据库 “部署慢” 的问题:
- 传统方式创建数据库:需部署操作系统、安装数据库、初始化实例,耗时久;
- PDB 方式:基于种子模板一键创建,仅需数秒即可生成独立数据库,大幅提升部署效率,适配云环境的快速资源交付需求。
pdb的创建&spm=1001.2101.3001.5002&articleId=155199577&d=1&t=3&u=fd9a30e1f1df41859322ea5b5862f8fb)
1万+

被折叠的 条评论
为什么被折叠?



