您在这里:首页 > 学员专区 > 技术文章
Oracle视频
Oracle
CUUG课程

设置AUTOTRACE时出现SP2-0611错误

 

这个错误比较奇怪,设置AUTOTRACE是出现SP2-0611ORA-942错误。

 

 

版本11.2 for Linux x86-64:

SQL> CONN TEST/TEST

已连接。

SQL> SET AUTOT TRACE

搜集统计信息时出错ORA-942

SP2-0611:启用STATISTICS报告时出错

SQL> SET AUTOT ON

搜集统计信息时出错ORA-942

SP2-0611:启用STATISTICS报告时出错

SQL> SET AUTOT OFF

SQL> SET AUTOT ON

搜集统计信息时出错ORA-942

SP2-0611:启用STATISTICS报告时出错

SQL> @?/rdbms/admin/utlxplan

表已创建。

SQL> SET AUTOT TRACE

搜集统计信息时出错ORA-942

SP2-0611:启用STATISTICS报告时出错

SQL> SET AUTOT ON

搜集统计信息时出错ORA-942

SP2-0611:启用STATISTICS报告时出错

这个错误以前还真没有碰到过,一般导致AUTOTRACE失败不是因为PLAN_TABLE不存在,就是由于缺少PLUSTRACE角色或PLUSTRACE角色包含的视图权限。

11g中PLAN_TABLE是一个同义词,指向SYS的PLAN_TABLE$表,而且这个表的DML权限已经授权给PUBLIC了,因此不应该是这个表导致的问题。

将PLAN_TABLE建立了当前用户下,错误依旧。

怀疑是由于缺少权限造成的问题:

SQL> CONN / AS SYSDBA

已连接。

SQL> @?/sqlplus/admin/plustrce

SQL>

SQL> drop role plustrace;

drop role plustrace

          *

第1行出现错误:

ORA-01919:角色'PLUSTRACE'不存在

 

SQL> create role plustrace;

角色已创建。

SQL>

SQL> grant select on v_$sesstat to plustrace;

授权成功。

SQL> grant select on v_$statname to plustrace;

授权成功。

SQL> grant select on v_$mystat to plustrace;

授权成功。

SQL> grant plustrace to dba with admin option;

授权成功。

SQL>

SQL> set echo off

SQL> GRANT PLUSTRACE TO TEST;

授权成功。

返回刚才的TEST用户,并重新登陆:

SQL> CONN TEST/TEST

已连接。

SQL> SET AUTOT ON

问题消失,看来就是由于缺少权限造成的。不过正常情况下Oracle的报错应该是:

SQL> CREATE USER A IDENTIFIED BY A;

用户已创建。

SQL> GRANT CONNECT TO A;

授权成功。

SQL> CONN A/A

已连接。

SQL> SET AUTOT ON

SP2-0618:无法找到会话标识符。启用检查PLUSTRACE角色

SP2-0611:启用STATISTICS报告时出错

SQL> SET AUTOT OFF

检查TEST用户拥有的权限:

SQL> SELECT OWNER, TABLE_NAME, PRIVILEGE

  2  FROM USER_TAB_PRIVS

  3  WHERE WNER = 'SYS'

  4  AND PRIVILEGE  = 'SELECT';

OWNER                          TABLE_NAME                     PRIVILEGE

------------------------------ ------------------------------ ---------------------

SYS                            V_$PROCESS                     SELECT

SYS                            V_$SESSION                     SELECT

SYS                            V_$PARAMETER                   SELECT

SYS                            V_$MYSTAT                      SELECT

怀疑因为包含了V_$MYSTAT视图的权限,使得Oracle没有报错缺少PLUSTRACE权限,而是报错ORA-942错误。

SQL> CONN / AS SYSDBA

已连接。

SQL> GRANT SELECT ON V_$MYSTAT TO A;

授权成功。

SQL> CONN A/A

已连接。

SQL> SET AUTOT ON

搜集统计信息时出错ORA-942

SP2-0611:启用STATISTICS报告时出错

问题果然如此。

相关文章 [上一篇] 10g优化备份集大小
010-88589926(88587026)
CUUG热门培训课程
Oracle DBA就业培训
CUUG名师
网络课程
技术沙龙
最新动态

总机:(010)-88589926,88589826,88587026 QQ讨论群:243729577 182441349 邮箱:cuug_bj@cuug.com
通信地址:北京市海淀区紫竹院路98号北京化工大学科技园609室(CUUG)邮政编码:100089 
中国UNIX用户协会 Copyright 2010  ALL Rights Reserved 北京神脑资讯技术有限公司
京ICP备11008061号  京公网安备110108006275号