环境:oracle 12.2 单机RAC + Redhat 6.9

EM13C报错:

在以下时间/行号处的 /home/u01/app/oracle/diag/rdbms/db6/db61/alert/log.xml 中检测到操作错误 (OSD kill succee...): Sun Mar 15 23:23:40 2020/67198。

alert log:

2020-03-15T23:23:40.022325+08:00
Process 0x0x403c7de50 appears to be hung in Auto SQL Tuning task
Current time = 1584285819, process death time = 1584285804
Attempting to kill process 0x0x403c7de50 with OS pid = 309067
OSD kill succeeded for process 0x403c7de50

错误原因:
这个问题发生在SYS_AUTO_SQL_TUNING_TASK运行时,自动kill了 hung或者长时间运行(long running)的进程任务,防止系统超负荷运行(over-running )。

解决办法:
给SYS_AUTO_SQL_TUNING_TASK任何更多的运行时间,默认是1200秒(20分钟),可以修改成6个小时(21600秒)。
    
SELECT parameter_name, parameter_value
FROM dba_advisor_parameters
WHERE task_name = 'SYS_AUTO_SQL_TUNING_TASK'
AND parameter_name = 'LOCAL_TIME_LIMIT';


BEGIN
DBMS_SQLTUNE.set_tuning_task_parameter('SYS_AUTO_SQL_TUNING_TASK', 'LOCAL_TIME_LIMIT', 21600);
END;
/

ERROR at line 1:
ORA-13647: Setting of parameter LOCAL_TIME_LIMIT is disallowed during task
execution.
ORA-06512: at "SYS.PRVT_ADVISOR", line 4848
ORA-06512: at "SYS.PRVT_ADVISOR", line 4809
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.PRVT_ADVISOR", line 1094
ORA-06512: at "SYS.PRVT_ADVISOR", line 4699
ORA-06512: at "SYS.PRVT_ADVISOR", line 4827
ORA-06512: at "SYS.DBMS_ADVISOR", line 409
ORA-06512: at "SYS.DBMS_SQLTUNE", line 1150
ORA-06512: at line 2


connect / as sysdba

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


SQL> SELECT status FROM DBA_ADVISOR_TASKS WHERE task_name = 'SYS_AUTO_SQL_TUNING_TASK';

STATUS
-----------
EXECUTING
 

SQL> exec DBMS_SQLTUNE.CANCEL_TUNING_TASK('SYS_AUTO_SQL_TUNING_TASK');

PL/SQL procedure successfully completed.
 

SQL> SELECT status FROM DBA_ADVISOR_TASKS WHERE task_name = 'SYS_AUTO_SQL_TUNING_TASK';

STATUS
-----------
CANCELLED
 

SQL> BEGIN
  DBMS_SQLTUNE.set_tuning_task_parameter('SYS_AUTO_SQL_TUNING_TASK', 'LOCAL_TIME_LIMIT', 21600);
  END;
  /



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


SQL> SELECT parameter_name,parameter_value FROM DBA_ADVISOR_PARAMETERS WHERE task_name='SYS_AUTO_SQL_TUNING_TASK';



SELECT parameter_name, parameter_value
FROM dba_advisor_parameters
WHERE task_name = 'SYS_AUTO_SQL_TUNING_TASK'
AND parameter_name = 'LOCAL_TIME_LIMIT';

 

参考MOS

Doc ID 1344499.1  
Doc ID 1597819.1

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/oracle-ziyuhou/p/12511319.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!