大数跨境
0
0

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

DBCA静默创建Oracle CDB与PDB:两种实战方法详解 老苏畅谈运维
2025-10-03
4

方式一:分步创建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' \
-redoLogFileSize50 \
-characterset AL32UTF8 \
-sampleSchematrue \
-totalMemory1024 \
-databaseType MULTIPURPOSE \
-emConfiguration NONE

重要提示:执行过程中会出现密码安全性警告,建议在生产环境中使用符合Oracle标准的强密码。

第二步:验证CDB创建结果

创建完成后,检查数据库状态:

-- 查看PDB状态
SQL>show pdbs;

    CON_ID CON_NAME                       OPENMODE  RESTRICTED
------------------------------------------------------------
         2 PDB$SEED                       READ ONLY  NO

-- 查看数据文件分布
SQL> col file_name for a60
SQL>select con_id,file_name from cdb_data_files orderby1;

    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                       OPENMODE  RESTRICTED
------------------------------------------------------------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           MOUNTED

-- 打开所有PDB
SQL>alter pluggable databaseallopen;

Pluggable database altered.

-- 保存PDB状态,确保下次实例启动时自动打开
SQL>alter pluggable databaseall save state;

Pluggable database altered.

-- 验证文件分布
SQL>select con_id,file_name from cdb_data_files orderby1;

    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 \
-numberOfPDBs1 \
-pdbName prod \
-pdbAdminPassword oracleora \
-sysPassword oracleora -systemPassword oracleora \
-datafileDestination'/oradata' \
-redoLogFileSize50 \
-storageType FS \
-characterset AL32UTF8 -nationalCharacterSet AL16UTF16 \
-sampleSchematrue \
-totalMemory1024 \
-databaseType OLTP  \
-emConfiguration NONE

创建完成后立即检查:

-- 查看PDB状态(已自动打开)
SQL>show pdbs;

    CON_ID CON_NAME                       OPENMODE  RESTRICTED
------------------------------------------------------------
         2 PDB$SEED                       READ ONLY  NO
         3 PROD                           READWRITENO

-- 查看完整的数据文件分布
SQL>set linesize 400;
SQL>select con_id,file_name from cdb_data_files orderby1;

    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数据库的运维效率。

关注我,学习更多的数据库知识!



【声明】内容源于网络
0
0
老苏畅谈运维
1234
内容 122
粉丝 0
老苏畅谈运维 1234
总阅读769
粉丝0
内容122