ORA-56705: I/O calibration already in progress的解决方法

来源:互联网 发布:linux file命令 编辑:程序博客网 时间:2024/05/29 18:35
在sqlplus中执行(确切的说是第二次执行)如下代码之后,有报错:
SET SERVEROUTPUT ONDECLARElat INTEGER;iops INTEGER;mbps INTEGER;BEGIN--DBMS_RESOURCE_MANAGER.CALIBRATE_IO(<NUM_DISKS>, <MAX_LATENCY>,iops, mbps, lat);DBMS_RESOURCE_MANAGER.CALIBRATE_IO (28, 10, iops, mbps, lat);DBMS_OUTPUT.PUT_LINE ('max_iops = ' || iops);DBMS_OUTPUT.PUT_LINE ('latency = ' || lat);dbms_output.put_line('max_mbps = ' || mbps);end;/
报错为:
ORA-56705: I/O calibration already in progressORA-06512: at "SYS.DBMS_RMIN", line 463ORA-06512: at "SYS.DBMS_RESOURCE_MANAGER", line 1302ORA-06512: at line 4

咨询遇到该错误的工程师当时的操作,当时是正在执行如上匿名块,然后他Ctrl+C终止了,然后重新打开一个sqlplus,重新运行(此时就是第二次执行了)该匿名块之后,就有了如上的错误.

于是mos了一把,只有这个错误:
ORA-56705: I/O calibration already in progressCause: An attempt was made to run a second instance of I/O CalibrationAction: Wait until the first I/O calibration run is complete; then, retry the operation.
怎么解决呢?
1.重启db,万能的重启大法肯定能解决这个问题.
2.找到Ctrl+C终止过的session,然后kill掉该session.其实关键还是查找的方法:
  2.1 执行select * from gv$access where object='DBMS_RESOURCE_MANAGER',记录下inst_id和sid
  2.2 执行select * from gv$session where inst_id='上一步得到的inst_id' and sid='上一步得到的sid',记录下serial#
  2.3 在相关实例(2.1查询出来的实例)上执行:select p.spid from v$session s,v$process p where s.paddr=p.addr and s.sid='2.1得到的sid';

  2.4 登录相关实例(2.1查询出来的实例)的所在主机上,kill -9 上一步查出来的spid


相关视图:


select * from V$IO_CALIBRATION_STATUSselect * from DBA_RSRC_IO_CALIBRATEselect * from dba_rsrc_categoriesselect * from V$rsrc_Session_Infoselect * from dba_rsrc_plans


0 0
原创粉丝点击