外观
Oracle 参数配置建议
核心参数配置
内存相关参数
SGA 参数设置
sql
-- 查看当前 SGA 设置
SHOW PARAMETER sga;
-- 设置 SGA 大小(示例:4GB)
ALTER SYSTEM SET sga_target=4G SCOPE=SPFILE;
ALTER SYSTEM SET sga_max_size=4G SCOPE=SPFILE;PGA 参数设置
sql
-- 查看当前 PGA 设置
SHOW PARAMETER pga;
-- 设置 PGA 大小(示例:1GB)
ALTER SYSTEM SET pga_aggregate_target=1G SCOPE=SPFILE;进程相关参数
最大进程数设置
sql
-- 查看当前最大进程数
SHOW PARAMETER processes;
-- 设置最大进程数(示例:300)
ALTER SYSTEM SET processes=300 SCOPE=SPFILE;会话相关参数
sql
-- 查看当前会话设置
SHOW PARAMETER sessions;
-- 设置会话数(通常为 processes 的 1.1 到 1.5 倍)
ALTER SYSTEM SET sessions=330 SCOPE=SPFILE;性能相关参数
游标相关参数
游标共享设置
sql
-- 查看游标共享设置
SHOW PARAMETER cursor_sharing;
-- 设置游标共享(生产环境建议使用 EXACT)
ALTER SYSTEM SET cursor_sharing=EXACT SCOPE=SPFILE;游标缓存设置
sql
-- 查看游标缓存设置
SHOW PARAMETER open_cursors;
-- 设置游标缓存大小(示例:3000)
ALTER SYSTEM SET open_cursors=3000 SCOPE=SPFILE;并行相关参数
并行执行设置
sql
-- 查看并行执行设置
SHOW PARAMETER parallel;
-- 设置并行执行度(示例:4)
ALTER SYSTEM SET parallel_max_servers=4 SCOPE=SPFILE;
ALTER SYSTEM SET parallel_degree_policy=AUTO SCOPE=SPFILE;存储相关参数
表空间相关参数
临时表空间设置
sql
-- 查看临时表空间设置
SELECT tablespace_name, file_name, bytes/1024/1024 MB FROM dba_temp_files;
-- 设置临时表空间自动扩展
ALTER DATABASE TEMPFILE 'path_to_tempfile.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;日志相关参数
重做日志设置
sql
-- 查看重做日志设置
SELECT group#, member, bytes/1024/1024 MB FROM v$logfile;
-- 设置重做日志大小(建议至少 512MB)
ALTER DATABASE ADD LOGFILE GROUP 4 ('path_to_redolog4a.log', 'path_to_redolog4b.log') SIZE 512M;安全相关参数
审计相关参数
审计设置
sql
-- 查看审计设置
SHOW PARAMETER audit;
-- 启用审计
ALTER SYSTEM SET audit_trail=DB,EXTENDED SCOPE=SPFILE;密码相关参数
密码策略设置
sql
-- 查看密码策略设置
SELECT * FROM dba_profiles WHERE profile='DEFAULT';
-- 设置密码有效期(示例:90天)
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 90;版本差异考虑
Oracle 11g 参数特点
- 引入了自动内存管理(AMM)
- 支持 sga_target 和 pga_aggregate_target 自动调整
Oracle 12c 参数特点
- 引入了多租户架构相关参数
- 增强了并行执行参数
- 新增了 PDB 相关参数
Oracle 19c 参数特点
- 进一步优化了内存管理参数
- 增强了安全相关参数
- 改进了性能调优参数
生产环境最佳实践
内存参数调优建议
- 根据服务器内存大小合理分配 SGA 和 PGA
- 对于 OLTP 系统,SGA 通常占总内存的 50-60%
- 对于 OLAP 系统,PGA 可能需要更大的比例
进程参数调优建议
- 根据并发用户数和应用需求设置 processes 参数
- 预留足够的会话数,避免会话耗尽
存储参数调优建议
- 合理设置重做日志大小,减少日志切换频率
- 为临时表空间预留足够空间
- 监控表空间使用情况,及时扩展
常见问题(FAQ)
Q1: 如何确定合适的 SGA 大小?
A1: 确定合适的 SGA 大小需要考虑以下因素:
- 服务器总内存大小
- 并发用户数
- 数据库大小
- 应用类型(OLTP 或 OLAP) 一般建议 SGA 不超过服务器总内存的 60%,并根据实际运行情况进行调整。
Q2: 游标共享参数应该如何设置?
A2: 游标共享参数(cursor_sharing)的设置建议:
- 生产环境:建议使用 EXACT,确保 SQL 执行计划的稳定性
- 测试环境:可以考虑使用 FORCE 或 SIMILAR 来减少硬解析
Q3: 如何优化重做日志性能?
A3: 优化重做日志性能的建议:
- 增加重做日志组的数量(至少 3 组)
- 增大重做日志文件的大小(建议至少 512MB)
- 将重做日志文件分散到不同的磁盘上
- 监控日志切换频率,避免过于频繁的切换
Q4: 如何设置合理的并行度?
A4: 设置合理的并行度需要考虑:
- 服务器 CPU 核心数
- 数据库负载情况
- 操作类型(查询或 DML) 一般建议并行度不超过 CPU 核心数的一半,具体需要根据实际情况调整。
Q5: 密码策略参数应该如何配置?
A5: 密码策略参数的建议配置:
- PASSWORD_LIFE_TIME:90 天
- PASSWORD_GRACE_TIME:7 天
- PASSWORD_REUSE_TIME:365 天
- PASSWORD_REUSE_MAX:10
- FAILED_LOGIN_ATTEMPTS:10
- PASSWORD_LOCK_TIME:1 天
Q6: 如何监控参数配置的效果?
A6: 监控参数配置效果的方法:
- 使用 AWR 报告分析数据库性能
- 监控系统等待事件
- 观察 SQL 执行计划的变化
- 跟踪数据库响应时间
- 监控资源使用率(CPU、内存、I/O)
Q7: 参数修改后是否需要重启数据库?
A7: 参数修改是否需要重启数据库取决于参数的类型:
- 动态参数:可以通过 ALTER SYSTEM 命令立即生效
- 静态参数:需要修改 SPFILE 并重启数据库才能生效 可以通过查询 V$PARAMETER 视图中的 ISSES_MODIFIABLE 和 ISSYS_MODIFIABLE 列来确定参数的类型。
