早上上班,检查数据库,发现监控日志中在晚上1点到4点钟服务器异常负载现象,查看awr日志发现AUTO_SPACE_ADVISOR_JOB运行异常
0.数据库版本
SQL>
select
*
from
v$version;
BANNER
----------------------------------------------------------------
Oracle
Database
10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS
for
Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
|
1.资源使用情况
cpu情况
逻辑读情况
物理读情况
通过这些可以看出,在晚上的时间点,AUTO_SPACE_ADVISOR_JOB占用了系统的资源的大部分,导致系统负载过高,也许是出现告警的主要原因。
2.查看运行情况
SQL> col status
FOR
A10
SQL> COL RUN_DURATION
FOR
A20
SQL> COL start_date
FOR
A20
SQL> COL log_date
FOR
A20
SQL>
SELECT
status,TO_CHAR(ACTUAL_START_DATE,
'YYYY-MM-DD HH24:MI:SS'
) start_date,
2 TO_CHAR (log_date,
'YYYY-MM-DD HH24:MI:SS'
) log_date,RUN_DURATION
3
FROM
dba_scheduler_job_run_details
4
WHERE
job_name =
'AUTO_SPACE_ADVISOR_JOB'
order
by
3;
STATUS START_DATE LOG_DATE RUN_DURATION
---------- -------------------- -------------------- --------------------
SUCCEEDED 2011-12-31 00:00:02 2011-12-31 00:03:05 +000 00:03:03
SUCCEEDED 2012-01-02 00:00:03 2012-01-02 00:03:05 +000 00:03:03
SUCCEEDED 2012-01-03 00:00:02 2012-01-03 00:02:17 +000 00:02:15
SUCCEEDED 2012-01-04 00:00:02 2012-01-04 00:01:41 +000 00:01:39
SUCCEEDED 2012-01-05 00:01:14 2012-01-05 04:02:05 +000 04:00:51
|
从这里看出,平时AUTO_SPACE_ADVISOR_JOB运行时间只有3分钟左右的时间就可以结束,昨天异常的运行了4个小时。
3.了解AUTO_SPACE_ADVISOR_JOB作用
SQL>
select
COMMENTS
from
dba_scheduler_jobs
2
where
job_name=
'AUTO_SPACE_ADVISOR_JOB'
;
COMMENTS
-------------------------------------------
auto
space
advisor maintenance job
|
从这里看出,该job的主要作用是是用于segment advisor,如果不使用该功能,可以暂时使用下面语句关闭该job
execute
dbms_scheduler.disable(
'AUTO_SPACE_ADVISOR_JOB'
);
|
4.对于AUTO_SPACE_ADVISOR_JOB总结
因为该job的在10.2的某些版本中出现类此bug情况,查看mos发现在10.2.0.4中已经修复,但是我这里因为只是出现了一次,暂时不能定位是bug还是数据库偶尔异常,继续观察,如果再出现类此现象,可以采取临时关闭该job的方式处理。