暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

DBCA静默创建Oracle CDB与PDB:两种实战方法详解

原创 szrsu 2025-10-03
278

方式一:分步创建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.dbf 1 /oradata/CDB19C/users01.dbf 1 /oradata/CDB19C/undotbs01.dbf 1 /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 NO 3 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.dbf 1 /oradata/CDB19C/users01.dbf 1 /oradata/CDB19C/undotbs01.dbf 1 /oradata/CDB19C/sysaux01.dbf 3 /oradata/CDB19C/pdb1/system01.dbf 3 /oradata/CDB19C/pdb1/undotbs01.dbf 3 /oradata/CDB19C/pdb1/sysaux01.dbf 7 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 NO 3 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.dbf 1 /oradata/CDB/users01.dbf 1 /oradata/CDB/undotbs01.dbf 1 /oradata/CDB/sysaux01.dbf 3 /oradata/CDB/prod/system01.dbf 3 /oradata/CDB/prod/users01.dbf 3 /oradata/CDB/prod/undotbs01.dbf 3 /oradata/CDB/prod/sysaux01.dbf 8 rows selected.

方法对比与选择建议

分步创建(方式一)优势:

  • 灵活控制:可以在CDB创建后根据需求决定PDB的创建时机
  • 精细配置:每个PDB可以单独配置存储路径和参数
  • 适合场景:需要精确控制PDB创建过程的环境

一键创建(方式二)优势:

  • 高效便捷:单条命令完成所有创建工作
  • 自动管理:PDB自动打开,无需手动干预
  • 适合场景:快速部署标准化环境,开发测试环境

总结

通过这两种静默创建方式,DBA可以快速部署Oracle多租户数据库环境。方式一适合需要精细化控制的场景,方式二适合快速标准化部署。掌握这两种方法,将极大提升Oracle数据库的运维效率。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论