今天在生产环境服务器上发现Oracle数据库出现IO异常,导致数据库读写都很慢,经过Spotlight软件分析,发现是SYS_AUTO_SPACE_ADVISOR_JOB
这样一个JOB占用了大量的IO资源,于是我去查找资料看如何解决。

网上的资料显示:

Oracle 10.2.0.2之前的版本,存在bug:5376783,会导致AUTO_SPACE_ADVISOR_JOB在运行时,占用大量的DISK READS.
Bug 5376783:DBMS_SPACE.OBJECT_GROWTH_TREND CALL TAKES A> LOT OF DISK READS>
MOS 上给的方法是关闭这个自动任务: execute
dbms_scheduler.disable('AUTO_SPACE_ADVISOR_JOB');
这个Bug在10.2.0.2之后的版本中被修正。

我查看服务器Oracle版本,是11.2.0.1.0的,按理说应该没有这个BUG了,可是还是引起了这个问题。。而且上述命令找不到该job,会报ORA-27476:"SYS.AUTO_SPACE_ADVISOR_JOB" 不存在。继续查找资料,找到以下命令:

查看job
select client_name,status from dba_autotask_client;
禁用自动收集
exec DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'auto optimizer stats collection',operation => NULL,window_name => NULL);
启用自动收集
exec DBMS_AUTO_TASK_ADMIN.ENABLE(client_name => 'auto optimizer stats collection',operation => NULL,window_name => NULL);

通过上述命令,将信息搜集,空间建议,sql建议这3个job给关闭了,IO资源恢复正常。
QQ图片20201209101556.png

Last modification:December 9, 2020
If you think my article is useful to you, please feel free to appreciate