Oracle 数据库创建选项详解

Oracle 数据库创建选项详解

适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07


1. 概述

DBCA 创建数据库的选项详解[1]:

选项

  • 模板
  • 字符集
  • 内存
  • 存储
  • 网络
  • EM

详细见:Oracle 数据库创建 DBCA


2. 模板

2.1 通用

- General_Purpose.dbc
- 通用业务
- OLTP + DW

2.2 数据仓库

- Data_Warehouse.dbc
- 分析
- 大查询

2.3 自定义

- Custom Database.dbc
- 完全自定义

3. 数据库标识

3.1 SID

- 全局数据库名:orcl.example.com
- SID:orcl
- 实例标识

3.2 命名

- 开发:orcldev
- 测试:orcltest
- 生产:orclprd

4. CDB / PDB

4.1 CDB

- 12c+
- 容器数据库
- 多租户

4.2 PDB

- 可插拔数据库
- 业务隔离
- 资源管理

4.3 创建

dbca -silent -createDatabase \
  -templateName General_Purpose.dbc \
  -gdbName orcl \
  -sid orcl \
  -createAsContainerDatabase true \
  -numberOfPDBs 1 \
  -pdbName orclpdb \
  -pdbAdminPassword Oracle123

详细见:Oracle 多租户 CDB/PDB 管理


5. 存储

5.1 文件系统

- /u01/oradata
- 简单
- 单实例

5.2 ASM

- +DATA
- +FRA
- RAC 推荐

5.3 自动存储管理

- OMF(Oracle Managed Files)
- 自动命名
- 简化

6. 闪回

6.1 启用

- Flashback Database
- FRA
- 快速恢复

6.2 保留

- db_flashback_retention_target
- 默认 1440 分钟(1 天)
- 业务需要 7 天

详细见:Oracle Flashback 技术全集


7. 归档

7.1 模式

- ARCHIVELOG:生产
- NOARCHIVELOG:开发

7.2 目的地

- FRA
- 单独目录

详细见:Oracle 数据库归档模式配置


8. 字符集

8.1 数据库

- AL32UTF8(推荐)
- ZHS16GBK
- WE8MSWIN1252

8.2 国家

- AL16UTF16
- UTF8

8.3 选择

- 多语言:AL32UTF8
- 中文:ZHS16GBK
- 一致性:与应用匹配

9. 内存

9.1 AMM

- memory_target
- 自动
- 简单

9.2 ASMM

- sga_target + pga_aggregate_target
- 推荐
- HugePages 兼容

9.3 手动

- 各组件手动
- 精细控制
- 复杂

详细见:Oracle 内存管理 SGA/PGA


10. 进程

10.1 processes

- 默认 150-300
- 生产 500-2000

10.2 sessions

- 自动 (1.5 * processes)

10.3 open_cursors

- 默认 50
- 生产 500-1000

11. 块大小

11.1 标准

- db_block_size
- 默认 8K
- 创建后不可改

11.2 选择

- OLTP:8K
- DW:16K / 32K
- 通用:8K

12. SGA

12.1 大小

- 物理 50-70%
- AMM / ASMM

12.2 组件

- Buffer Cache
- Shared Pool
- Large Pool
- Java Pool
- Streams Pool

13. 网络

13.1 监听器

- 默认 LISTENER
- 端口 1521

13.2 注册

- 动态注册
- PMON/LREG

详细见:Oracle 网络配置与监听器


14. EM

14.1 EM Express

- 免费
- 基本
- 5500 端口

14.2 OEM

- 全面
- 多库
- 集中

15. 安全

15.1 密码

- 复杂度
- 失败次数
- 过期

15.2 Audit

- 默认启用
- Unified Audit

15.3 TDE

- 加密
- Wallet

详细见:Oracle 安全深度解析


16. 示例

16.1 静默 OLTP

dbca -silent -createDatabase \
  -templateName General_Purpose.dbc \
  -gdbName orcl \
  -sid orcl \
  -createAsContainerDatabase true \
  -numberOfPDBs 1 \
  -pdbName orclpdb \
  -pdbAdminPassword Oracle123 \
  -sysPassword Oracle123 \
  -systemPassword Oracle123 \
  -storageType FS \
  -datafileDestination /u01/app/oracle/oradata \
  -recoveryAreaDestination /u01/app/oracle/fast_recovery_area \
  -recoveryAreaSize 10240 \
  -characterSet AL32UTF8 \
  -nationalCharacterSet AL16UTF16 \
  -listeners LISTENER \
  -totalMemory 4096 \
  -databaseType OLTP \
  -emConfiguration NONE

16.2 ASM + RAC

dbca -silent -createDatabase \
  -templateName General_Purpose.dbc \
  -gdbName orcl \
  -sid orcl \
  -databaseConfigType RAC \
  -nodelist rac1,rac2 \
  -createAsContainerDatabase true \
  -numberOfPDBs 1 \
  -pdbName orclpdb \
  -pdbAdminPassword Oracle123 \
  -sysPassword Oracle123 \
  -systemPassword Oracle123 \
  -storageType ASM \
  -diskGroupName +DATA \
  -recoveryGroupName +FRA \
  -characterSet AL32UTF8 \
  -totalMemory 4096

详细见:Oracle RAC 部署实战

16.3 数据仓库

dbca -silent -createDatabase \
  -templateName Data_Warehouse.dbc \
  ...
  -databaseType DATA_WAREHOUSING

17. 验证

17.1 状态

SELECT name, open_mode, log_mode FROM v$database;
SELECT name, open_mode FROM v$pdbs;

17.2 参数

SHOW PARAMETER db_block_size
SHOW PARAMETER sga_target
SHOW PARAMETER processes
SHOW PARAMETER character

17.3 组件

SELECT comp_id, version, status FROM dba_registry;

17.4 字符集

SELECT * FROM nls_database_parameters 
WHERE parameter LIKE '%CHARACTERSET';

18. 常见坑与排错

18.1 创建失败

# 日志
$ORACLE_BASE/cfgtoollogs/dbca/

18.2 内存不足

- 减小 totalMemory
- 增大物理内存

18.3 字符集

- 创建后难改
- 谨慎选择

19. 最佳实践

  1. General_Purpose 模板:通用
  2. CDB 架构:12c+
  3. ASM 存储:现代
  4. AL32UTF8:字符集
  5. 归档模式:生产
  6. Flashback:快速恢复
  7. ASMM:推荐
  8. EM Express:监控
  9. 密码策略:安全
  10. 文档化:配置

20. 参考资料

[1] Oracle Database 2 Day DBA 19c, “Creating a Database” https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/creating-and-configuring-an-oracle-database.html