Oracle PDB 创建

Oracle PDB 创建 Oracle PDB 创建前置条件当前连接到 CDB RootCDB$ROOT具有CREATE PLUGGABLE DATABASE系统权限目标路径有足够空间和写权限方式一从种子创建最常用基于PDB$SEED模板创建全新 PDB-- 基础创建CREATEPLUGGABLEDATABASEhrpdb ADMINUSERpdb_admin IDENTIFIEDBYpassword FILE_NAME_CONVERT(/pdbseed/,/hrpdb/);-- 创建后打开ALTERPLUGGABLEDATABASEhrpdbOPENREADWRITE;-- 保存状态CDB 重启后自动恢复打开状态ALTERPLUGGABLEDATABASEhrpdbSAVESTATE;常用参数参数说明ADMIN USER创建 PDB 本地管理员账号FILE_NAME_CONVERT数据文件路径转换规则CREATE_FILE_DEST指定文件存放目录Oracle 管理文件时使用STORAGE (MAXSIZE xG)限制 PDB 最大存储空间DEFAULT TABLESPACE设置默认表空间方式二克隆现有 PDB本地克隆-- 将源 PDB 设置为只读本地克隆要求ALTERPLUGGABLEDATABASEhrpdbCLOSE;ALTERPLUGGABLEDATABASEhrpdbOPENREADONLY;-- 执行克隆CREATEPLUGGABLEDATABASEsalespdbFROMhrpdb FILE_NAME_CONVERT(/hrpdb/,/salespdb/);-- 恢复源 PDB 读写ALTERPLUGGABLEDATABASEhrpdbCLOSE;ALTERPLUGGABLEDATABASEhrpdbOPENREADWRITE;-- 打开新 PDBALTERPLUGGABLEDATABASEsalespdbOPENREADWRITE;远程克隆跨 CDB-- 先创建数据库链接CREATEDATABASELINK lnk_to_srcCONNECTTOc##admin IDENTIFIED BY passwordUSINGsource_cdb;-- 远程克隆源 PDB 无需停机CREATEPLUGGABLEDATABASEsalespdbFROMhrpdblnk_to_srcFILE_NAME_CONVERT(/hrpdb/,/salespdb/);方式三插入已拔出的 PDB-- 使用 XML 描述文件插入CREATEPLUGGABLEDATABASEsalespdbUSING/backup/salespdb.xmlNOCOPY TEMPFILE REUSE;-- NOCOPY数据文件不移动直接使用原路径-- COPY复制文件到新路径默认-- MOVE移动文件到新路径方式四重定位 PDB迁移-- 从远程 CDB 迁移过来源 PDB 自动关闭CREATEPLUGGABLEDATABASEhrpdbFROMhrpdblnk_to_sourceRELOCATE AVAILABILITY MAX;详见[[Oracle PDB 迁移与重定位]]方式五快照克隆-- 先创建快照ALTERPLUGGABLEDATABASEpdb1SNAPSHOTpdb1_snap_20260318;-- 从快照克隆速度极快节省空间CREATEPLUGGABLEDATABASEpdb1_testFROMpdb1USINGSNAPSHOTpdb1_snap_20260318;方式六代理 PDB代理 PDB 是指向远程 CDB 中某个 PDB 的引用本地不存储数据CREATEPLUGGABLEDATABASEproxy_pdbASPROXYFROMpdb1remote_link;创建后验证-- 查看 PDB 状态SHOWPDBS;SELECTNAME,OPEN_MODE,RESTRICTEDFROMV$PDBS;-- 查看 PDB 数据文件SELECTFILE#, NAME FROM V$DATAFILE WHERE CON_ID (SELECTCON_IDFROMV$PDBSWHERENAMEHRPDB);-- 查看兼容性警告SELECT*FROMPDB_PLUG_IN_VIOLATIONSWHERENAMEHRPDB;删除 PDB-- 先关闭再删除INCLUDING DATAFILES 同时删除物理文件ALTERPLUGGABLEDATABASEhrpdbCLOSEIMMEDIATE;DROPPLUGGABLEDATABASEhrpdb INCLUDING DATAFILES;