数据库性能优化参数总结(一)
1.AWR报告快照间隔时间1小时改为半小时,保留天数修改 --不用重启库
2.闪回时间15分钟改为1小时--不用重启库
3.修改数据库允许的最大连接数 进程数150改为500 ,会话数改为555 为进程数*1.1+5 --需重启库
4.密码永不过期设置
5.修改redo日志组,每组两个redo文件,每个100m
6.修改temp表空间为临时表空间组
--查看当前占用连接数情况
select count(*) from v$process;
select count(*) from v$session;
--查看当前数据库允许的最大连接数
show parameter process
或 select value from v$parameter where name ='processes';
--修改连接数和会话数,session=process*1.1+5 参数只能用spfile 并且重启库
alter system set processes=600 scope=spfile;
alter system set sessions=665 scope=spfile;
----------------------------------
--查看密码有效期
select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';
--设置default profile密码永不过期,立即生效,不需重启库
alter profile default limit password_life_time unlimited;
---------------------------------闪回时间修改
SQL> show parameter undo_retention
undo_retention integer 900 --默认为15分钟 单位秒
如果要修改 undo_retention的默认时间,用下面一句话修改:
ALTER SYSTEM SET undo_retention=3600 scope=both; --改为1小时
--------------------------------
--查看当前AWR快照间隔和保留天数情况
select * from dba_hist_wr_control;
--查看窗口基线情况,moving_window_size必须小于等于AWR保留时间,如awr要设置更小需要修改该window_size参数
select dbid, baseline_name, baseline_type, moving_window_size from dba_hist_baseline;
exec和begin语句执行都可以。exec命令窗口执行
SQL> exec dbms_workload_repository.modify_snapshot_settings (interval =>30,retention =>14*24*60);
和执行select语句相同的窗口F8执行,改成间隔30分钟,保留14天
begin
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
interval => 30,retention => 14*24*60);
end;
/
如果有报错解决
ERROR at line 1:
ORA-13541: system moving window baseline size (691200) greater than retention (604800)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 174
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 222
ORA-06512: at line 1
10080=7*24*60*60
691200=8*24*60*60 8天
其中要注意:window size必须设置为一个小于或等于AWR设置的保留值。
SQL> col BASELINE_NAME for a30
SQL> select dbid, baseline_name, baseline_type, moving_window_size from dba_hist_baseline;
DBID BASELINE_NAME BASELINE_TYPE MOVING_WINDOW_SIZE
---------- ------------------------------ ------------- ------------------
4215476630 SYSTEM_MOVING_WINDOW MOVING_WINDOW 8
既然知道了原因,解决就很方便了,Modifying the Window Size of the Default Moving Window Baseline
BEGIN
DBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE (
window_size => 5,
dbid => 4215476630);
END;
/