windmills-长篇故事
自动工作负载库(
Automatic Workload
Repository
,
AWR
< br>)
AWR
的由来:
10g
之前的
oracle:
用户的连接将产生会话,
当前会话记录
保存在
v$$session
中;
处于等
待
状态的会话会被复制一份放在
v$$session_wait
中。当该连接
断开后,其原来的连接信息在
v$$session
和
v$$session_wait
中就会被删除
;oracle10g
及之
后保留下了
v$$session_wait
中的这些信息,并多了
v$$active_session_history
(
ASH
)
视图,
记录每个活
动
session
在
v$$sessio
n_wait
中最近
10
次的等待事件
。
ASH
的采样数据是保存在内存中。而分配给
ASH
的内存空间是有限的,当所分配空间占满
后,旧的记录就会被覆盖掉;而
且数据库重启后,所有的这些
ASH
信息都会消失。这样,对于长期检测
oracle
的性能是不可
能的。在
Oracle10g
中,提供
了永久保留
ASH
信息的方法,这就是
AWR
。
由于全部保存
ASH
中的信息是非常耗费时间和空间的,
AWR
采用的策略是:每小时对
v$$active_session_
history
进行采样一次,并将信息保存到磁盘
中,并且保留
7
天,
7
天后旧的记录才会被覆盖。这些采样信息被保存在视图
wrh$$
_active_session_history
中。而这个采样频率(
1
小时)和保留时间
(<
/p>
7
天)是可以根据实际情况进行调整的,这就给
< br>DBA
们提供了更加有效的系统监测工具。
1
.
AWR
的启用
在默认情况下,
Oracle
启用数据
库统计收集这项功能(即启用
AWR
)。是否启用
AWR
由
初始化参数
STA
TISTICS_LEVEL
控制。通过
SHOW
PARAMETER
命令
可以显示
STATISTICS_LEVEL
的
当前值:
SQL> SHOW PARAMETER STATISTICS_LEVEL
SQL
语句的执行结果是:
NAME
TYPE
VALUE
------------------------------------
----------- ------------------------------
statistics_level
string
TYPICAL
如果
STATISTICS_LEV
EL
的值为
TYPICAL
或者
ALL
,表示启用
AWR
;如果
STATISTICS_LEVEL
的值为
BASIC
,表示禁用
AWR
。
初始化参数
statistics_level
介绍:
AWR
的行为受到参数
STATISTICS_LEVEL
的影响。这个参数有三个值:
< br>
*BASIC
:
awr
统计的计算和衍生值关闭
.
只收集少量的数据
库统计信息
.
*TYPICAL
:默
认值.只有部分的统计收集
.
他们代表需要的典型监控
oracle
数据库的行为
.
*ALL :
所有可能的统计都被捕捉
.
并且有操
作系统的一些信息
.
这个级别的捕捉应该在很少的
情况下
,
比如你要更多的
s
ql
诊断信息的时候才使用
.
2
.快照(
SNAPSHOT
)
每隔一小时,内存监控进程(
M
MON
)自动地采集一次统计信息,并把这些信息存放到负载
库
中,一次采样就是一个快照。为了节省空间,采集的数据在
7
天后自动清除。快照的频率和保留时间可以由用户修改。
p>
--
查看快照
的频率和保留时间(默认为每
1
小时采样一次,采样信息保留时
间为
7
天)
select * from dba_hist_wr_control;
select DBID, SNAP_INTERVAL, SNAPINT_NUM, RETENTION
from wrm$$_wr_control;
--
p>
修改快照的频率和保留时间(单位用分钟)
exec
dbms_workload__snapshot_settings(interval=>60,
retention=>7*24*60);
用户也可以使用下面的命令手工采样(手工生成快照):
BEGIN
DBMS_WORKLOAD__SNAPSHOT
();
END;
手工删除指定范围的快照
begin
dbms_workload__snapshot_range(low_snap_id =>
3965,
high_snap_id => 3966, dbid =>
3437504306);
end;
--
查看有多少个快照
select count(1) from wrh$$_active_session_history;
select count(1) from
dba_hist_active_sess_history;
通过查询视图
DBA_HIST_SNAPSHOT
,
可以知道系统中产生了哪些快照。
select *
from DBA_HIST_SNAPSHOT;
3.
采样数据存放位置
这些采样数据都存储在
p>
SYSAUX
表空间中,并且以
WRM$$_
*
和
WRH$$_*
的格式命名。
前一种类型存储元数据信息(如检查的数据库和采集的快照),<
/p>
后一种类型保存实际采集的统计数据。
select table_name from dba_tables where
table_name like 'WRM$$%';
TABLE_NAME
-----------------------
WRM$$_WR_CONTROL
WRM$$_SNAP_ERROR
WRM$$_SNAPSHOT
WRM$$_DATABASE_INSTANCE
WRM$$_BASELINE
当<
/p>
SYSAUX
表空间满后,
AWR
将自动覆盖掉旧的信息,并在警告日志中记录一条相关信息:
ORA-1688: unable to extend table
$$_ACTIVE_SESSION_HISTORY
partition
WRH$$_ACTIVE_3533490838_1522 by 128 in
tablespace
SYSAUX
select table_name from
dba_tables where table_name like 'WRH$$%';
4.
设置基线
4.1
创建基线
基线(
baseline
)是一种机制
,
这样你可以在重要时间的快照信息集做标记。一个基线定义
在一对快照之间
,
快照通过他们的快照序列号识别<
/p>
.
每个
基线有
且只有一对快照。
一次典型的性能调整实践从采集量度的基准线集合、
< br>作出改动、
然后采
集另一个基准线集合开始。可以比较这
两个集合来检查
所作的改动的效果。在
AWR
中,对现有的已采集的快照可以执行相同类型的比较。
假定一个名称为
apply_interest
上午
2:00
到
4:00
之间运行,对应快照
ID 4150
到
4151
。我们可以为这些快照定义
一个名称为
apply_interest_1
的基准线:
SQL> exec
dbms_workload__bas
eline
(4150, 4151,
'apply_interest_1');
这一操作将快照从
4150
到
4151
编号,作为上面指定的基准线的一部分。查看现有的基准
线:
SQL> select *from dba_hist_baseline;
DBID
BASELINE_ID
BASELINE_NAME
START_SNAP_ID
START_SNAP_
TIME
END_SNAP_ID END_SNAP_TIME
---------- -----------
-------------------- -------------
windmills-长篇故事
windmills-长篇故事
windmills-长篇故事
windmills-长篇故事
windmills-长篇故事
windmills-长篇故事
windmills-长篇故事
windmills-长篇故事
-
上一篇:学为贵雅思雅思听力考点词
下一篇:新人教版九年级英语全册各单元单词表(含音标)