外观
Oracle 参数参考
内存参数
SGA 相关参数
SGA_TARGET
- 自动内存管理模式下的 SGA 总大小
- 默认值:根据系统内存自动计算
- 建议值:系统内存的 40-50%
- 版本差异:11g 及以上版本支持
SGA_MAX_SIZE
- SGA 最大可分配大小
- 默认值:等于 SGA_TARGET
- 建议值:不超过系统内存的 60%
- 注意事项:修改需要重启实例
SHARED_POOL_SIZE
- 共享池大小,用于存储 SQL 语句和执行计划
- 默认值:根据 SGA_TARGET 自动计算
- 建议值:SGA_TARGET 的 15-20%
- 监控指标:V$SHARED_POOL_RESERVED
DB_CACHE_SIZE
- 数据库缓冲区缓存大小
- 默认值:根据 SGA_TARGET 自动计算
- 建议值:SGA_TARGET 的 40-50%
- 监控指标:V$DB_CACHE_ADVICE
PGA 相关参数
PGA_AGGREGATE_TARGET
- PGA 总大小限制
- 默认值:根据系统内存自动计算
- 建议值:系统内存的 20-30%
- 版本差异:9i 及以上版本支持
WORKAREA_SIZE_POLICY
- 工作区大小管理策略
- 值:AUTO(自动)或 MANUAL(手动)
- 建议值:AUTO
- 注意事项:AUTO 模式下由 Oracle 自动管理
性能参数
游标相关参数
OPEN_CURSORS
- 每个会话最多可打开的游标数
- 默认值:50
- 建议值:500-1000
- 监控指标:V$SYSSTAT 中的 "opened cursors current"
SESSION_CACHED_CURSORS
- 会话缓存的游标数
- 默认值:50
- 建议值:200-300
- 注意事项:减少硬解析
并行处理参数
PARALLEL_MAX_SERVERS
- 最大并行服务器进程数
- 默认值:CPU_COUNT × PARALLEL_THREADS_PER_CPU × 2
- 建议值:根据系统资源调整
- 监控指标:V$PQ_SYSSTAT
PARALLEL_DEGREE_POLICY
- 并行度策略
- 值:MANUAL、LIMITED、AUTO、ADAPTIVE
- 建议值:根据工作负载类型调整
- 版本差异:11gR2 及以上版本支持
存储参数
控制文件参数
- CONTROL_FILES
- 控制文件路径列表
- 默认值:安装时指定
- 建议值:至少 3 个,分散在不同磁盘
- 注意事项:修改需要重启实例
重做日志参数
LOG_BUFFER
- 重做日志缓冲区大小
- 默认值:根据 SGA 大小自动计算
- 建议值:1-2MB 或 SGA 的 1%
- 监控指标:V$INSTANCE_RECOVERY
MAXLOGFILES
- 最大日志文件组数
- 默认值:16
- 建议值:根据业务需求调整
- 注意事项:修改需要重建控制文件
安全参数
密码相关参数
PASSWORD_VERIFY_FUNCTION
- 密码验证函数
- 默认值:NULL
- 建议值:启用默认验证函数或自定义
- 版本差异:11g 及以上版本默认启用
PASSWORD_LIFE_TIME
- 密码有效期(天)
- 默认值:180
- 建议值:根据安全策略调整
- 版本差异:11g 及以上版本支持
审计参数
AUDIT_TRAIL
- 审计轨迹存储方式
- 值:NONE、OS、DB、DB_EXTENDED、XML、XML_EXTENDED
- 建议值:DB 或 DB_EXTENDED
- 注意事项:启用审计会增加系统开销
AUDIT_SYS_OPERATIONS
- 是否审计 sys 用户操作
- 值:TRUE/FALSE
- 建议值:TRUE
- 安全建议:生产环境必须启用
网络参数
监听器参数
- LISTENER_NETWORKS
- 监听器网络配置
- 默认值:NULL
- 建议值:根据网络拓扑调整
- 版本差异:10g 及以上版本支持
连接参数
PROCESSES
- 最大进程数
- 默认值:根据实例类型自动计算
- 建议值:根据并发连接数调整
- 注意事项:修改需要重启实例
SESSIONS
- 最大会话数
- 默认值:PROCESSES × 1.1 + 5
- 建议值:根据并发用户数调整
- 注意事项:修改需要重启实例
参数调整最佳实践
调整流程
- 监控:使用 AWR、ASH 等工具监控系统性能
- 分析:识别瓶颈和需要调整的参数
- 测试:在测试环境中进行参数调整
- 实施:在生产环境中实施调整
- 验证:验证调整效果
调整原则
- 循序渐进:每次只调整少量参数
- 记录变更:详细记录参数变更和效果
- 考虑版本:不同版本的参数行为可能不同
- 综合评估:参数调整需要综合考虑系统整体情况
版本差异
11g vs 12c
- 内存管理:12c 引入了自动内存管理增强
- 并行处理:12c 改进了并行度策略
- 安全参数:12c 增强了密码策略和审计功能
12c vs 19c
- 参数默认值:19c 调整了部分参数的默认值
- 新参数:19c 引入了更多性能优化参数
- 废弃参数:19c 废弃了部分旧版本参数
常见问题(FAQ)
Q1: 如何查看当前参数值?
A1: 使用以下命令查看参数值:
sql
SHOW PARAMETER parameter_name;
-- 或
SELECT name, value, description FROM v$parameter WHERE name = 'parameter_name';Q2: 如何修改参数值?
A2: 根据参数类型使用不同的修改方式:
- 动态参数:sql
ALTER SYSTEM SET parameter_name = value SCOPE = MEMORY; -- 或 ALTER SYSTEM SET parameter_name = value SCOPE = BOTH; - 静态参数(需要重启):sql
ALTER SYSTEM SET parameter_name = value SCOPE = SPFILE;
Q3: 参数调整后如何验证效果?
A3: 可以通过以下方式验证:
- 监控系统性能指标变化
- 运行 AWR 报告比较调整前后的差异
- 观察 SQL 执行计划的变化
- 检查系统日志是否有相关告警
Q4: 如何确定参数的最佳值?
A4: 确定参数最佳值的方法:
- 参考 Oracle 官方文档和最佳实践
- 根据系统硬件配置调整
- 基于实际工作负载测试
- 参考类似系统的配置经验
Q5: 参数调整可能带来哪些风险?
A5: 参数调整的潜在风险:
- 性能下降:不当的参数设置可能导致性能恶化
- 系统不稳定:某些参数调整可能影响系统稳定性
- 兼容性问题:不同版本的参数行为可能不同
- 资源耗尽:过度分配资源可能导致系统资源耗尽
Q6: 如何回滚参数变更?
A6: 回滚参数变更的方法:
- 对于动态参数:重新设置为原始值
- 对于静态参数:修改 SPFILE 后重启实例
- 紧急情况下:使用之前的 SPFILE 或 pfile 重启实例
