[转帖]优化Oracle数据库的参数设置原创

优化,oracle,数据库,参数设置,原创 · 浏览次数 : 0

小编点评

**11g 数据库优化配置** **1. _optimizer_adaptive_cursor_sharing=false** * 关闭优化器对 Adaptive cursor sharing 的支持。 * 避免优化器在开启 Adaptive cursor sharing 后自动关闭窗口。 **2. _optimizer_extended_cursor_sharing=none** * 关闭优化器对 Extended cursor sharing 的支持。 * 避免优化器在开启 Extended cursor sharing 后自动关闭窗口。 **3. _optimizer_extended_cursor_sharing_rel=none** * 关闭优化器对 Extended cursor sharing 的 relative support。 * 避免优化器在开启 Extended cursor sharing 后自动关闭窗口。 **4. _optimizer_use_feedback=false** * 关闭优化器对 Feedback 的支持。 * 避免优化器在开启 Feedback 后自动关闭窗口。 **5. _undo_autotune=false** * 关闭优化器对 UNDO Autotune 的支持。 * 避免优化器在开启 UNDO Autotune 后自动关闭窗口。 **6. _optimizer_null_aware_antijoin=false** * 关闭优化器对 Null aware Antijoin 的支持。 * 避免优化器在开启 Null aware Antijoin 后自动关闭窗口。 **7. _px_use_large_pool=true** * 设置 11g 数据库中所有会话的 Large Pool 模式。 * 避免内存不足问题。 **8. _partition_large_extents=false** * 关闭对 11g 里面分区创建的 Large extents 的支持。 * 避免内存不足问题。 **9. _index_partition_large_extents=false** * 关闭对 11g 里面索引创建的 Large extents 的支持。 * 避免内存不足问题。 **10. _memory_imm_mode_without_autosga=false** * 关闭 Oracle 的自动内存管理。 * 避免内存不足问题。 **11. _b_tree_bitmap_plans=false** * 关闭对 OLTP 系统中 B Tree bitmap plans 的支持。 * 避免内存不足问题。

正文

https://vip.kingdee.com/article/372401660284519936?productLineId=8

 

1.登录数据库,创建参数文件备份

2.修改参数

数据库参数修改存在风险,仅供参考

1.登录数据库,创建参数文件备份

sqlplus / as sysdba 用SYSDBA登录数据库

show parameter spfile; --显示spfile文件存储位置 host cp /home/oracle/app/oracle/product/11.2.0/db_1/dbs/spfileorcl.ora /home/oracle/app/oracle/product/11.2.0/db_1/dbs/spfileorcl.ora.bak create pfile='/tmp/init_eas.ora' from spfile;

2.修改参数

1.内存参数(以64G物理内存为例)

alter system reset memory_target scope=spfile sid='*'; --出错表明该参数没有设置,请忽略 alter system reset memory_max_target scope=spfile sid='*'; --出错表明该参数没有设置,请忽略 alter system set sga_max_size=44G scope=spfile sid='*'; alter system set sga_target=44G scope=spfile sid='*'; alter system set db_cache_size=30G scope=spfile sid='*'; alter system set shared_pool_size=12G scope=spfile sid='*'; alter system set pga_aggregate_target=4G scope=spfile sid='*';

2.进程及会话数(默认150)

show parameter process; show parameter sessions; --查看进程及会话数 alter system set processes=1200 scope=spfile; alter system set sessions=1325 scope=spfile; --修改进程及会话数

3.游标数

show parameter open_cursors; --查看游标数 select count(*) from v$open_cursor; --查看当前打开的游标数目 alter system set open_cursors=1000 scope=both; --修改最大游标数

4.关于审计

--考虑关闭审计(oracle 11g 默认打开审计) alter system set audit_trail=none sid='*' scope=spfile; --说明:11g 默认打开数据库审计,为了避免审计带来的 SYSTEM 表空间的过多占用,可以关闭审计。 --最近一年审计记录 select * from aud$ where substr(sysdate-NTIMESTAMP#,2,9)<360; --清理数据库审计 truncate table sys.aud$ reuse storage; alter table sys.aud$ deallocate unused keep 25000m; alter table sys.aud$ deallocate unused keep 20000m; alter table sys.aud$ deallocate unused keep 15000m; alter table sys.aud$ deallocate unused keep 10000m; alter table sys.aud$ deallocate unused keep 5000m; alter table sys.aud$ deallocate unused keep 2000m; alter table sys.aud$ deallocate unused keep 500m; alter table sys.aud$ deallocate unused keep 250m; alter table sys.aud$ deallocate unused keep 10m;

5.关于维护任务

exec dbms_scheduler.disable( 'ORACLE_OCM.MGMT_CONFIG_JOB' ); exec dbms_scheduler.disable( 'ORACLE_OCM.MGMT_STATS_CONFIG_JOB' ); --说明:关闭一些不需要的维护任务,这两个属于 ORACLE_OCM 的任务不关闭,可能会在 alert日志中报错。

6.考虑是否关闭自动收集直方图

exec DBMS_STATS.SET_GLOBAL_PREFS( 'method_opt','FOR ALL COLUMNS SIZE 1' ); --或者 exec DBMS_STATS.SET_PARAM( 'method_opt','FOR ALL COLUMNS SIZE 1' ); --说明:为减少统计信息收集时间,同时为避免直方图引起的 SQL 执行计划不稳定,可以在数据库全局级关闭自方图的收集,对于部分需要收集直方图的表列,可以使用 DBMS_STATS.SET_TABLE_PREFS 过程来设置

7.关闭 auto space advisor

BEGIN DBMS_AUTO_TASK_ADMIN.DISABLE( client_name => 'auto space advisor', operation => NULL, window_name => NULL); END; / --说明:关闭数据库的空间 Advisor,避免消耗过多的 IO,还有避免出现这个任务引起的 library cache lock。

8.关闭 auto spl tuning

BEGIN DBMS_AUTO_TASK_ADMIN.DISABLE( client_name => 'sql tuning advisor', operation => NULL, window_name => NULL); END; / --说明:关闭数据库的 SQL 自动调整 Advisor,避免消耗过多的资源。

9.调整时间窗口

--查询窗口定义详情--10g select window_name,repeat_interval,duration,enabled from dba_scheduler_windows; --查询窗口定义详情--11g和12c(周一到周五每晚10点开始收集统计信息,duration是4h;周六周日早上6点开始收集统计信息,duration是20h) select window_name,repeat_interval,duration,enabled from dba_scheduler_windows; --根据具体业务情况调整 EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE('SATURDAY_WINDOW','repeat_interval','freq=daily;byday=SAT;byhour=22;byminute=0;bysecond=0'); EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE('SUNDAY_WINDOW','repeat_interval','freq=daily;byday=SUN;byhour=22;byminute=0;bysecond=0'); EXEC DBMS_SCHEDULER.SET_ATTRIBUTE('SATURDAY_WINDOW', 'duration', '+000 08:00:00'); EXEC DBMS_SCHEDULER.SET_ATTRIBUTE('SUNDAY_WINDOW', 'duration', '+000 08:00:00'); exec dbms_scheduler.disable('WEEKNIGHT_WINDOW', TRUE); exec dbms_scheduler.disable('WEEKEND_WINDOW', TRUE); --说明:一些业务系统即使在周末,也同样处于正常的业务工作状态,比如面向公众的业务系统,在月底(虽然是周末)有批处理操作的系统,以及节假日调整的周末等,建议调整周六和周日窗口的起止时间和窗口时间长度,避免有时候周六或周日影响业务性能。

10.修改隐藏参数

alter system set "_optimizer_adaptive_cursor_sharing"=false sid='*' scope=spfile; alter system set "_optimizer_extended_cursor_sharing"=none sid='*' scope=spfile; alter system set "_optimizer_extended_cursor_sharing_rel"=none sid='*' scope=spfile; alter system set "_optimizer_use_feedback"=false sid ='*' scope=spfile; --说明:这几个参数都是用于关闭 11g 的 adaptive cursor sharing、cardinality feedback 特性,避免出现 SQL 性能不稳定、SQL 子游标过多的问题。 alter system set deferred_segment_creation=false sid='*' scope=spfile; --说明:这个参数用于关闭 11g 的段延迟创建特性,避免出现这个新特性引起的 BUG,比如数据导入导出 BUG、表空间删除后对应的表对象还在数据字典里面等。 alter system set event='28401 trace name context forever,level 1','10949 trace name context forever,level 1' sid='*' scope=spfile; --说明:这个参数主要设置 2 个事件: --1) 10949 事件用于关闭 11g 的自动 serial direct path read 特性,避免出现过多的直接路径读,消耗过多的 IO 资源。 --2) 28401 事件用于关闭 11g 数据库中用户持续输入错误密码时的延迟用户验证特性,避免用户持续输入错误密码时产生大量的 row cache lock 或 library cache lock 等待,严重时使数据库完全不能登录。 alter system set resource_limit=true sid='*' scope=spfile; alter system set resource_manager_plan='force:' sid='*' scope=spfile; --说明:这两个参数用于将资源管理计划强制设置为“空”,避免 Oracle 自动打开维护窗口(每晚 22:00 到早上 6:00,周末全天)的资源计划(resource manager plan),使系统在维护窗口期间资源不足或触发相应的 BUG。 alter system set "_undo_autotune"=false sid='*' scope=spfile; --说明:关闭 UNDO 表空间的自动调整功能,避免出现 UNDO 表空间利用率过高或者是 UNDO段争用的问题。 alter system set "_optimizer_null_aware_antijoin"=false sid ='*' scope=spfile; --说明:关闭优化器的 null aware antijoin 特性,避免这个新特性带来的 BUG。 alter system set "_px_use_large_pool"=true sid ='*' scope=spfile; --说明:11g 数据库中,并行会话默认使用的是 shared pool 用于并行执行时的消息缓冲区,并行过多时容易造成 shared pool 不足,使数据库报 ORA-4031 错误。将这个参数设置为 true,使并行会话改为使用 large pool。 alter system set "_partition_large_extents"=false sid='*' scope=spfile; alter system set "_index_partition_large_extents"=false sid='*' scope=spfile; --说明:在 11g 里面,新建分区会给一个比较大的初始 extent 大小(8M),如果一次性建的分区很多,比如按天建的分区,则初始占用的空间会很大。 alter system set "_use_adaptive_log_file_sync"=false sid='*' scope=spfile; --说明:11.2.0.3 版本里面,这个参数默认为 true,LGWR 会自动选择两种方法来通知其他进程 commit 已经写入:post/wait、polling。前者 LGWR 负担较重,后者等待时间会过长,特别是高负载的 OLTP 系统中。在 10g 及之前的版本中是 post/wait 方式,将这个参数设置为 false恢复到以前版本方式。 alter system set "_memory_imm_mode_without_autosga"=false sid='*' scope=spfile; --说明:11.2.0.3 版本里面,即使是手工管理内存方式下,如果某个 POOL 内存吃紧,Oracle仍然可能会自动调整内存,用这个参数来关闭这种行为。 alter system set enable_ddl_logging=true sid='*' scope=spfile; --说明:在 11g 里面,打开这个参数可以将 ddl 语句记录在 alert 日志中。以便于某些故障的排查。建议在 OLTP 类系统中使用。 alter system set parallel_max_servers=64 sid='*' scope=spfile; --说明:这个参数默认值与 CPU 相关,OLTP 系统中将这个参数设置小一些,可以避免过多的并行对系统造成冲击。 alter system set sec_case_sensitive_logon=false sid='*' scope=spfile; --说明:从 11g 开始,用户密码区分大小写,而此前的版本则是不区分大小写,在升级时,如果这个参数保持默认值 TRUE,可能会使一些应用由于密码不正确而连接不上。 alter system set "_b_tree_bitmap_plans"=false sid='*' scope=spfile; --说明:对于 OLTP 系统,Oracle 可能会将两个索引上的 ACCESS PATH 得到的 rowid 进行 bitmap操作再回表,这种操作有时逻辑读很高,对于此类 SQL 使用复合索引才能从根本上解决问题。

与[转帖]优化Oracle数据库的参数设置原创相似的内容:

[转帖]优化Oracle数据库的参数设置原创

https://vip.kingdee.com/article/372401660284519936?productLineId=8 1.登录数据库,创建参数文件备份 2.修改参数 数据库参数修改存在风险,仅供参考 1.登录数据库,创建参数文件备份 sqlplus / as sysdba 用SYSD

[转帖]Oracle JDBC中的语句缓存

老熊 Oracle性能优化 2013-09-13 在Oracle数据库中,SQL解析有几种: 硬解析,过多的硬解析在系统中产生shared pool latch和library cache liatch争用,消耗过多的shared pool,使得系统不具有可伸缩性。 软解析,过多的软解析仍然可能会导

[转帖]数据库选型比对 Oracle vs sqlserver

http://blog.itpub.net/23825935/viewspace-2928407/ SQL Server 2014 优点 1. 内存 OLTP: 提供部署到核心 SQL Server 数据库中的内存 OLTP 功能,以显著提高数据库应用程序性能。 内存 OLTP 是随 SQL Ser

[转帖]Oracle优化案例:vfs_cache_pressure和min_free_kbytes解决RMAN挂起问题

https://www.modb.pro/db/34028 环境: Oracle 11gr2 + dataguard 512GB内存 + 128核cpu + 高性能存储服务器 uname -an Linux dbhost 2.6.18-238.el5 #1 SMP Sun Dec 19 14:22:

[转帖]Oracle 性能优化 之 游标及 SQL

https://www.cnblogs.com/augus007/articles/9273236.html 一、游标 我们要先说一下游标这个概念。 从 Oracle 数据库管理员的角度上说,游标是对存储在库缓存中的可执行对象的统称。SQL 语句是存储在库缓存中的,它是游标。除了它之外,还有 Ora

[转帖]内存优化(开启内存大页vm.nr_hugepages)

大页内存(hugepages) 为优化内存管理引入了hugepages 可以自定义设置、将原来标准内存也4k设置为更大。 hugepages 优点: 使得Oracle SGA 不可交换; 减轻 TLB 的压力; 减少页表的开销; 减少页表查询的开销; 提升内存访问的整体性能; oracle建议设置h

[转帖]优化超大 Nginx 配置导致的内存碎片

https://blog.openresty.com.cn/cn/ngx-cycle-pool-frag/?src=org_news 章亦春发布于 Feb 14, 2023更新于 Mar 2, 2023 预计阅读 6 分钟 阅读次数 我们最近使用 OpenResty XRay 帮助一个销售 CDN

[转帖]优化工作中的取舍和大势判断

最近这段时间在参与一个优化项目,所以思考优化的事情比较多。因此最近的文章中,优化相关的内容会比较多,如果有朋友想看些其他方面的题材,可以留言告知。实际上我每天写的东西大多数都是前一天的思想内容,凭空找个话题来写上一篇,时间长了肯定会越来越空洞无物,我也没有那个本事,脑子里的积累写上几年还游刃有余。关

[转帖]优化命令之iotop命令

文章目录 引言一、iotop简介1、iotop安装2、iotop语法3、iotop参数 二、I/O的常用快捷键三、交互模式四、iotop示例1、只显示正在产生I/O的进程2、显示指定PID3、显示指定用户4、打印指定PID的时间戳 五、总结 引言 iotop是一款开源、免费的用来监控磁盘I/O使用状

[转帖]优化命令之sar——最牛命令

目录 一:sar命令概述 1.1sar概述 1.2sar常用选项 1.3常用参数 二:CPU资源监控 2.1整体CPU使用统计(-u) 2.2各个CPU使用统计(-P) 2.3将CPU使用情况保存到文件中 三:内存监控 3.1内存和交换空间监控 3.2内存分页监控 3.3系统交换活动信息监控 四:I