DBCA静默创建Oracle CDB与PDB:两种实战方法详解
方式一:分步创建CDB和PDB
第一步:创建CDB容器数据库
使用DBCA静默方式创建CDB,不包含PDB:
dbca -silent -ignorePreReqs -ignorePrereqFailure -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
-gdbname cdb19c -sid cdb19c \
-createAsContainerDatabase TRUE \
-sysPassword oracleora -systemPassword oracleora -pdbAdminPassword oracleora -dbsnmpPassword oracleora \
-datafileDestination '/oradata' \
-redoLogFileSize 50 \
-characterset AL32UTF8 \
-sampleSchema true \
-totalMemory 1024 \
-databaseType MULTIPURPOSE \
-emConfiguration NONE
重要提示:执行过程中会出现密码安全性警告,建议在生产环境中使用符合Oracle标准的强密码。
第二步:验证CDB创建结果
创建完成后,检查数据库状态:
-- 查看PDB状态
SQL> show pdbs;CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO-- 查看数据文件分布
SQL> col file_name for a60
SQL> select con_id,file_name from cdb_data_files order by 1;CON_ID FILE_NAME
---------- ------------------------------------------------------------1 /oradata/CDB19C/system01.dbf1 /oradata/CDB19C/users01.dbf1 /oradata/CDB19C/undotbs01.dbf1 /oradata/CDB19C/sysaux01.dbf
第三步:创建PDB可插拔数据库
基于种子容器创建新的PDB:
SQL> create pluggable database pdb1 admin user pdb1adm identified by oracle file_name_convert=('/oradata/CDB19C/pdbseed','/oradata/CDB19C/pdb1');Pluggable database created.
第四步:启动并配置PDB
-- 查看PDB状态(此时为MOUNTED状态)
SQL> show pdbs;CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB1 MOUNTED-- 打开所有PDB
SQL> alter pluggable database all open;Pluggable database altered.-- 保存PDB状态,确保下次实例启动时自动打开
SQL> alter pluggable database all save state;Pluggable database altered.-- 验证文件分布
SQL> select con_id,file_name from cdb_data_files order by 1;CON_ID FILE_NAME
---------- ------------------------------------------------------------1 /oradata/CDB19C/system01.dbf1 /oradata/CDB19C/users01.dbf1 /oradata/CDB19C/undotbs01.dbf1 /oradata/CDB19C/sysaux01.dbf3 /oradata/CDB19C/pdb1/system01.dbf3 /oradata/CDB19C/pdb1/undotbs01.dbf3 /oradata/CDB19C/pdb1/sysaux01.dbf7 rows selected.
方式二:CDB和PDB一键创建
使用单条命令同时创建CDB和PDB:
dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
-gdbname CDB -sid CDB \
-createAsContainerDatabase TRUE \
-numberOfPDBs 1 \
-pdbName prod \
-pdbAdminPassword oracleora \
-sysPassword oracleora -systemPassword oracleora \
-datafileDestination '/oradata' \
-redoLogFileSize 50 \
-storageType FS \
-characterset AL32UTF8 -nationalCharacterSet AL16UTF16 \
-sampleSchema true \
-totalMemory 1024 \
-databaseType OLTP \
-emConfiguration NONE
创建完成后立即检查:
-- 查看PDB状态(已自动打开)
SQL> show pdbs;CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PROD READ WRITE NO-- 查看完整的数据文件分布
SQL> set linesize 400;
SQL> select con_id,file_name from cdb_data_files order by 1;CON_ID FILE_NAME
---------- --------------------------------------------------------------------------------1 /oradata/CDB/system01.dbf1 /oradata/CDB/users01.dbf1 /oradata/CDB/undotbs01.dbf1 /oradata/CDB/sysaux01.dbf3 /oradata/CDB/prod/system01.dbf3 /oradata/CDB/prod/users01.dbf3 /oradata/CDB/prod/undotbs01.dbf3 /oradata/CDB/prod/sysaux01.dbf8 rows selected.
方法对比与选择建议
分步创建(方式一)优势:
- 灵活控制:可以在CDB创建后根据需求决定PDB的创建时机
- 精细配置:每个PDB可以单独配置存储路径和参数
- 适合场景:需要精确控制PDB创建过程的环境
一键创建(方式二)优势:
- 高效便捷:单条命令完成所有创建工作
- 自动管理:PDB自动打开,无需手动干预
- 适合场景:快速部署标准化环境,开发测试环境
总结
通过这两种静默创建方式,DBA可以快速部署Oracle多租户数据库环境。方式一适合需要精细化控制的场景,方式二适合快速标准化部署。掌握这两种方法,将极大提升Oracle数据库的运维效率。
关注我,学习更多的数据库知识!DBCA静默创建Oracle CDB与PDB:两种实战方法详解