ORACLE 11204 for Linux(RAC) 环境配置及数据库参数最佳实践
  IE5LYMWlmdvL 2023年11月02日 72 0

ORACLE 11204 for Linux(RAC) 环境配置及数据库参数最佳实践

针对Linux 6.6(+)版本:

1、Linux 内核参数配置

vm.dirty_ratio=20
vm.dirty_background_ratio=3
vm.dirty_writeback_centisecs=100
vm.dirty_expire_centisecs=500
vm.swappiness=10
vm.min_free_kbytes=524288
##需要根据SGA来计算
vm.nr_hugepages = 6118828401 
#rp_filter,这里假设eth2和eth3都是私有网卡
net.ipv4.conf.eth2.rp_filter = 2
net.ipv4.conf.eth3.rp_filter = 2
## fix packet reassembles failure
net.ipv4.ipfrag_high_thresh = 16777216
net.ipv4.ipfrag_low_thresh = 15728640
net.ipv4.ipfrag_time=60

参考文档:

RHEL 6.6: IPC Send timeout/node eviction etc with high packet reassembles failure(Doc ID 2008933.1)

RAC Cluster is Experiencing Node Evictions after Kernel Upgrade to OL6.6(Doc ID 2011957.1)

2、disable listener xml log

建议调整监听参数文件 DIAG_ADR_ENABLED_listener = OFF ,然后reload监听,监听就不会存放为XML文件格式,而是使用10g老的方式。

同时建议在SQLNET.ORA文件中设置参数 DIAG_ADR_ENABLED = OFF 来屏蔽ADR向ALERT写入错误信息(如ORA-609)。

3、调整ASM

  • 调整数据库参数
SQL> alter system set memory_max_target=4096m scope=spfile;
SQL> alter system set memory_target=1536m scope=spfile;
SQL> alter system processes=200 scope=spfile;
  • 调整AU大小

ASM磁盘组使用的是默认的1M AU大小,对于大型数据库,这会造成较多的内存占用,同时对性能略微有些影响,建议对于新增的用于放置数据文件的ASM磁盘组,

适当调大AU大小,比如4M或8M(2的幂值)。

根据电信运营商的实际经验,建议设置AU 为4m。

4、调整CHM日志保留时间

[root@db1 db1]# oclumon manage -get repsize    显示多少秒,当前是61624秒
CHM Repository Size = 61624
[root@db1 db1]# [oclumon](mailto:grid@hxjfdb1:~$oclumon) manage -repos resize  259200   调整为保留三天

5、调整归档目录

对于ADG环境,建议将归档存放在闪回目录中,避免归档被意外删除。

新建快速恢复区专用的磁盘组,修改参数db_recovery_file_dest和 db_recovery_file_dest_size,例如:

SQL> show parameter recovery
NAME                 TYPE     VALUE
------------------------------------ -----------------------
db_recovery_file_dest        string   +FRADG
db_recovery_file_dest_size      big integer 900G

6、调整CRS资源属性(对于网络环境不稳定的情况建议调整)

在Oracle 11.2.0.4版本中,CRS默认每秒检查一次网络健康情况,如果发现网络存在异常比如闪断;那么将会立刻将

SCAN/LISTENER等资源进行failover切换;可能影响业务。不仅如此,VIP资源也会收到影响。

建议将public 网络的检查频率从1秒修改为6秒。

crsctl modify res ora.net1.network -attr "CHECK_INTERVAL=6"

7、 时间窗口设置(基于业务进行调整)

如下结合运营商的实际情况进行调整。如果是其他行业客户,请酌情修改。

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);

8、关闭不必要的job

exec dbms_scheduler.disable('ORACLE_OCM.MGMT_CONFIG_JOB');
exec dbms_scheduler.disable('ORACLE_OCM.MGMT_STATS_CONFIG_JOB');  
BEGIN
DBMS_AUTO_TASK_ADMIN.DISABLE(
client_name => 'auto space advisor',
operation => NULL,
window_name => NULL);
END;
/

BEGIN
DBMS_AUTO_TASK_ADMIN.DISABLE(
client_name => 'sql tuning advisor',
operation => NULL,
window_name => NULL);
END;
/

9、修改AWR信息收集

请根据实际情况酌情调整

EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(RETENTION=>44640,INTERVAL=>30);  --将快照采集频率修改为30分钟
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(topnsql => 30);     ---修改top SQL 为30

10、修改默认的profile属性

如下设置适用于绝大多数行业客户,个别特殊客户(例如对安全有极高要求),请酌情修改。

alter profile "DEFAULT" limit PASSWORD_GRACE_TIME UNLIMITED;
alter profile "DEFAULT" limit PASSWORD_LIFE_TIME UNLIMITED;
alter profile "DEFAULT" limit PASSWORD_LOCK_TIME UNLIMITED;
alter profile "DEFAULT" limit FAILED_LOGIN_ATTEMPTS UNLIMITED;

11、logminer设置

需要根据实际情况而定,打开附加日志会产生过多的redo

为了防止数据库出现一些误删除等操作时,能够利用logminer分析日志,建议开启数据库附加日志,如下:

alter database force logging;
alter database add supplemental log data;
alter database add supplemental log data (primary key);
alter database add supplemental log data (unique) columns;

12、 直方图收集设置

避免Oracle SQL执行计划频繁变动,设置数据库全局的统计信息收集不采集直方图:

exec dbms_stats.set_global_prefs(pname=>'METHOD_OPT',pvalue=>'for all columns size 1');

说明:针对个别数据倾斜严重的业务表,建议进行定制化统计信息收集(数据是否倾斜,需要跟客户进行沟通确认)。

13、调整数据库实例参数

如下数据库参数以Oracle 11.2.0.4版本为例:

参数名称

建议值

参数解释

resource_manager_plan

FORCE:

关闭资源计划

audit_trail

None

关闭数据库审计功能

undo_retention

10800

session_cached_cursors

200

archive_lag_target

1800

Dg环境设置归档定时产生,避免丢失

db_files

4000

max_shared_servers

0

sec_max_failed_login_attempts

100

deferred_segment_creation

FALSE

关闭延迟段创建

parallel_force_local

TRUE

parallel_max_servers

32

sec_case_sensitive_logon

FALSE

关闭密码大小写敏感

open_cursors

3000

open_link

40

open_links_per_instance

40

enable_ddl_logging

TRUE

sga_target

0

关闭SGA自动调节

db_cache_size

100G

shared_pool_size

20G

shared pool大小控制在SGA的15%-20%

large_pool_size

2G

java_pool_size

2G

db_cache_advice

OFF

cell_offload_processing

FALSE

非exadata环境,建议关闭offload功能

gcs_server_processes

6

防止RAC节点CPU不同出现性能问题,固定gcs server数量

result_cache_max_size

0

关闭result cache功能,避免大量bug

db_securefile

always

启用securefile lob,优化lob性能

_kttext_warning

1

数据文件自动扩展预警,默认为5%;避免文件预扩展出现问题

_ktb_debug_flags

8

11g DataGuard switchover时可能出现Index损坏,这是bug 22241601; 设置该参数,启用Index 自动修复功能。

_optimizer_ads_use_result_cache

FALSE

关闭result cache功能启用情况下优化器自适应功能

_b_tree_bitmap_plans

FALSE

_gc_policy_time

0

关闭DRM

_gc_defer_time

3

_lm_tickets

5000

增加ticket,避免ticket不足导致ORA-481

_optimizer_use_feedback

FALSE

_undo_autotune

FALSE

_bloom_filter_enabled

FALSE

关闭布隆过滤,屏蔽bug

_cleanup_rollback_entries

4000

_px_use_large_pool

TRUE

开启并行操作使用large pool

_optimizer_extended_cursor_sharing_rel

NONE

关闭11gR2自适应游标共享特性,屏蔽大量bug

_optimizer_extended_cursor_sharing

NONE

关闭11gR2自适应游标共享特性,屏蔽大量bug

_optimizer_adaptive_cursor_sharinge

FALSE

关闭11gR2自适应游标共享特性,屏蔽大量bug

_optimizer_cartesian_enabled

NONE

禁止带连接条件时时出现笛卡尔积连接

_sort_elimination_cost_ratio

1

_index_partition_large_extents=FALSE

FALSE

_memory_imm_mode_without_autosga=FALSE

FALSE

关闭sga自动调节(注意shared pool,否则可能出现ORA-4031)

_clusterwide_global_transactions=FALSE

FALSE

_part_access_version_by_number=FALSE

FALSE

_partition_large_extents=FALSE

FALSE

_use_adaptive_log_file_sync=FALSE

FALSE

_lm_sync_timeout=1200

1200

_ksmg_granule_size

134217728

buffer cache超过100G时,调整内存粒度大小,提升性能

_external_scn_logging_threshold_seconds

3600

_high_priority_processes

LMS*|VKTM|LGWR

提高LGWR优先级,避免log file sync(11.2.0.4仍然需要调整)

_external_scn_rejection_threshold_hours

24

_datafile_write_errors_crash_instance

FALSE

避免文件写IO错误终止实例

28401 TRACE NAME CONTEXT FOREVER, LEVEL 1’, ‘60025 trace name context forever’, ‘10943 trace name context level 2097152’, ‘10949 trace name context forever,level 1’

Exadata环境不能关闭直接路径读。

命令供参考:

Alter system set resource_manager_planz=’FORCE:’  scope=spfile sid='*';
Alter system set audit_trail=none         scope=spfile sid='*';
alter system set undo_retention=10800       scope=spfile sid='*';
alter system set session_cached_cursors=200    scope=spfile sid='*';
alter system set db_files=4000           scope=spfile sid='*';
alter system set max_shared_servers=0       scope=spfile sid='*';
alter system set sec_max_failed_login_attempts=100 scope=spfile sid='*';
alter system set deferred_segment_creation=false  scope=spfile sid='*';
alter system set parallel_force_local=true     scope=spfile sid='*';
alter system set parallel_max_servers=32      scope=spfile sid='*';
alter system set sec_case_sensitive_logon=false  scope=spfile sid='*';
alter system set open_cursors=3000         scope=spfile sid='*';
alter system set open_link =40           scope=spfile sid='*';
alter system set open_links_per_instance =40    scope=spfile sid='*';
alter system set sga_target=0           scope=spfile sid='*';
alter system set db_cache_size=120g        scope=spfile sid='*';
alter system set shared_pool_size=25g       scope=spfile sid='*';
alter system set large_pool_size=512m       scope=spfile sid='*';
alter system set java_pool_size=512m        scope=spfile sid='*';
alter system set db_cache_advice=off        scope=spfile sid='*';
alter system set gcs_server_processes=6      scope=spfile sid='*';
alter system set result_cache_max_size=0      scope=spfile sid='*';
alter system set enable_ddl_logging=true scope=spfile sid='*';
alter system set archive_lag_target=1800 scope=spfile sid='*';
alter system set db_securefile=always scope=spfile sid='*';
alter system set "_ktb_debug_flags"=8 scope=both sid='*';
alter system set cell_offload_processing=false scope=spfile sid='*';
alter system set "_kttext_warning"=1 scope=spfile sid='*';
alter system set "_optimizer_ads_use_result_cache" = FALSE scope=spfile sid='*';
alter system set "_b_tree_bitmap_plans"=false      scope=spfile sid='*';
alter system set "_gc_policy_time"=0          scope=spfile sid='*';
alter system set "_gc_defer_time"=3           scope=spfile sid='*'; 
alter system set "_lm_tickets"=5000           scope=spfile sid='*';
alter system set "_optimizer_use_feedback"=false    scope=spfile sid='*';;
alter system set "_high_priority_processes"='LMS*|VKTM|LGWR' scope=spfile sid='*';
alter system set "_undo_autotune"=false         scope=both  sid='*';
alter system set "_bloom_filter_enabled"=FALSE     scope=spfile sid='*';
alter system set "_cleanup_rollback_entries"=4000   scope=spfile sid='*';
alter system set "_px_use_large_pool"=true        scope=spfile sid='*';
alter system set "_optimizer_extended_cursor_sharing_rel"=NONE scope=spfile sid='*';
alter system set "_optimizer_extended_cursor_sharing"=NONE   scope=spfile sid='*';
alter system set "_optimizer_adaptive_cursor_sharing"=false   scope=spfile sid='*';
alter system set "_optimizer_cartesian_enabled"=FALSE         scope=spfile sid='*';
alter system set "_sort_elimination_cost_ratio"=1        scope=spfile sid='*';
alter system set "_partition_large_extents"=FALSE        scope=spfile sid='*';
alter system set "_index_partition_large_extents"=FALSE     scope=spfile sid='*';
alter system set "_memory_imm_mode_without_autosga"=FALSE    scope=spfile sid='*';
alter system set "_clusterwide_global_transactions"=FALSE    scope=spfile sid='*';
alter system set "_part_access_version_by_number"=FALSE     scope=spfile sid='*';
alter system set "_partition_large_extents"=FALSE        scope=spfile sid='*';
alter system set "_sort_elimination_cost_ratio"=1        scope=spfile sid='*';
alter system set "_use_adaptive_log_file_sync"=FALSE      scope=spfile sid='*'; 
alter system set "_lm_sync_timeout"=1200            scope=spfile sid='*';
alter system set "_ksmg_granule_size"=134217728         scope=spfile sid='*';
alter system set "_external_scn_logging_threshold_seconds"=3600 scope=spfile sid='*';
alter system set "_external_scn_rejection_thresh"=24 scope=spfile sid='*';
alter system set "_datafile_write_errors_crash_instance"=false scope=spfile sid='*';
alter system set event='28401 trace name context forever,level 1','60025 trace name context forever','10943 trace name context forever,level 2097152','10949 trace name context forever,level 1','10262 trace name context forever, level 90000' scope=spfile;

重要说明:

当设置sga_target=0,同时设置_memory_imm_mode_without_autosga 为false之后,将彻底禁用SGA自动调节;

务必确保shared pool 大小足够,否则可能引发性能问题(通常来讲,保持shared pool大小为SGA 的15%-20%是比较好的)。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
IE5LYMWlmdvL