暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

参数配置指引 Oracle_19c

原创 王也 2021-07-08
5088

参数配置指引
Oracle_19c

一、 数据库参数
1.1 启用ASSM内存管理
AMM与Huge Page不兼容,AMM自动调整可能导致内存波动大。

修改方式:

alter system set sga_max_size=XX scope=spfile sid='*'; alter system set sga_target=XX scope=spfile sid='*'; alter system set pga_aggregate_target=XX scope=spfile sid='*'; alter system set memory_target=0 scope=spfile sid='*'; alter system set memory_max_target=0 scope=spfile sid='*'; alter system reset memory_max_target scope=spfile sid='*';
复制

建议:SGA配置为物理内存的40%,PGA配置为物理内存的20%。

1.2 为ASSM配置各内存池最小值
防止因频繁自动调整出现ORA-4031错误。

修改方式:

alter system set db_cache_size=xx; alter system set shared_pool_size=xx;
复制

建议:DB_CACHE_SIZE配置为SGA的50%,SHARED_POOL_SIZE配置为SGA的15%以上。

1.3 关闭AUTO SGA

alter system set "_memory_imm_mode_without_autosga"=FALSE
复制

1.4 关闭初始化extent的延迟创建
如果表未曾插入记录,默认不会生成SEGMENT,EXPDP时候将出现报错

alter system set deferred_segment_creation=false scope=spfile sid='*';
复制

1.5 设置dump文件大小上限
避免异常时出现超过几十个G的trace,将文件系统撑爆。

alter system set max_dump_file_size='1024M' scope=spfile sid='*';
复制

1.6 死事务回滚调整
当事务回滚时候,将生成大量并行回滚子进程,可能耗尽存储IO性能,

alter system set fast_start_parallel_rollback=low; alter system set recovery_parallelism=10 scope=spfile; alter system set "_cleanup_rollback_entries"=10000 scope=spfile;
复制

1.7 文件写入失败实例不Crash
设置写入数据文件/临时文件错误不会导致instance crash。

alter system set "_datafile_write_errors_crash_instance"=false scope=spfile;
复制

1.8 禁用SQL自动优化
该任务在指定时间窗口内模拟执行高消耗SQL语句,并且可能Library Cache Latch问题。

exec dbms_auto_task_admin.disable(client_name => 'sql tuning advisor',operation => NULL,window_name => NULL);
复制

1.9 禁用空间自动优化
可能导致性能问题

exec dbms_auto_task_admin.disable(client_name => 'auto space advisor',operation => NULL,window_name => NULL);
复制

1.10 禁用Optimizer Statistics Advisor Task
可能导致SYSAUX表空间中SM/ADVISOR组件消耗过大

DECLARE filter1 CLOB; BEGIN filter1 := DBMS_STATS.CONFIGURE_ADVISOR_RULE_FILTER('AUTO_STATS_ADVISOR_TASK','EXECUTE',NULL,'DISABLE'); END; /
复制

1.11 AWR收集间隔
保留更长和更精确的性能数据库,方便出现问题后的原因分析。确保SYSAUX表空间至少为8GB。

exec dbms_workload_repository.modify_snapshot_settings(interval=>30, retention=>30*24*60);
复制

1.12 关闭Result_cache
如果数据修改较多,维护Result Cache需要较大成本。

Alter system set result_cache_max_size=0 scope=spfile sid='*';
复制

1.13 关闭自动串行直接路径读
10949事件用于关闭11g的自动serial direct path read特性。
避免出现过多的直接路径读,消耗过多的IO资源。

alter system set event='10949 trace name context forever,level 1' sid='*' scope=spfile;
复制

1.14 避免索引根节点分裂时间过长导致交易不稳定

alter system set event '43822 trace name context forever,level 1' sid='*' scope=spfile;
复制

为防止索引根节点分裂时间过长,需要设置事件43822,则索引根节点分裂的时候不会在空块寻找上花费很多时间,而是分配新的空块。

1.15 关闭延迟用户验证

alter system set "_sys_logon_delay"=0 scope=spfile;
复制

1.16 关闭DRM
因DRM导致的问题非常多

alter system set "_gc_policy_time"=0 sid='*' scope=spfile; alter system set "_gc_undo_affinity"=false sid='*' scope=spfile;
复制

执行完上述操作需要重启实例。

1.17 恢复LGWR的post/wait通知方式
LGWR会自动选择两种方法来通知其他进程commit已经写入:post/wait、polling。前者LGWR负担较重,后者等待时间会过长,特别是高负载的OLTP系统中。在10g及之前的版本中是post/wait方式,将这个参数设置为false恢复到以前版本方式。

alter system set "_use_adaptive_log_file_sync"=false sid='*' scope=spfile;
复制

1.18 禁用LGWR并行
导致LGWR写入的IOPS次数高,影响存储性能。

alter system set "_use_single_log_writer" = TRUE scope=spfile sid='*'; alter system set "_max_outstanding_log_writes"=1 scope=spfile sid='*';
复制

1.19 设置并行子进程的数量上限
手工设置并行子进程的数量上限为物理CPU个数*2,避免数据库自动算的值太大。
备注:IBM POWER 7/8采用SMT4,虚拟CPU为物理CPU的4倍,该参数需要调小。

alter system set parallel_max_servers=128 scope=spfile sid='*';
复制

1.20 使并行会话改为使用Large Pool
并行会话默认使用的是shared pool用于并行执行时的消息缓冲区,并行过多时容易造成shared pool不足,使数据库报ORA-4031错误。

alter system set "_px_use_large_pool"=true sid ='*' scope=spfile;
复制

1.21 设置在线状态的回滚段数量
由于事务风暴、阻塞雪崩效应、应用重启、或者秒杀促销等高并发场景,数据库内短暂时间将需要将大量的undo seg从offline变成online,而smon没有处理得那么快,故可能出现短暂的大量enq:US-contention和 latch: rowcache objects等待。需要提前设置_ROLLBACK_SEGMENT_COUNT为一个较大的值,保持一定数量的undosegments始终是online状态

alter system set “_rollback_segment_count” =2000 scope=spfile sid='*';
复制

1.22 加大控制文件保留时间
默认为7天,每周1个全备情况下可能出现最早全备信息丢失,导致增备变成全备。
建议调整为全备周期的2~3倍时间

alter system set control_file_record_keep_time=60;
复制

1.23 latch: ges resource hash list等待事件
降低高负载期间latch: ges resource hash list等待事件

alter system set "_lm_res_hash_bucket"=4194250 scope=spfile;
复制

1.24 禁用 Expression statistics monitoring
12CR2以后版本,Oracle为了进一步实现在线统计信息的准确性,在DML时会自动将列数据变化的情况保存到数据库,类似modification那些数据字典里存的东西。这个功能在并发DML比较频繁的系统里,会非常影响性能。建议关掉:

alter system set "_column_tracking_level"=17 scope=both;
复制

1.25 防止View Merge安全特性对执行计划影响
如果视图不属于当前执行语句的用户,执行计划不会优先将过滤条件带入视图中。
修改参数:

alter system set optimizer_secure_view_merging=false;
复制

1.26 子游标过期参数
19c非CDB版本,该参数默认值已修改为8192.

alter system set "_cursor_obsolete_threshold"=100 scope=spfile;
复制

1.27 允许低版本客户端连接
Oracle用户

$ vi $ORACLE_HOME/network/admin/sqlnet.ora SQLNET.ALLOWED_LOGON_VERSION_SERVER=10 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
复制

1.28 修改控制文件的Snapshot到共享存储
控制文件为文件级的锁,因此需要共享,否则备份控制文件失败

RMAN> configure snapshot controlfile name to '+FRA/snapcf_orcl.f';
复制

1.29 取消自动创建索引

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

评论