ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 设置AUTOTRACE时出现SP2-0611错误

设置AUTOTRACE时出现SP2-0611错误

原创 Linux操作系统 作者:yangtingkun 时间:2010-05-25 23:57:04 0 删除 编辑

这个错误比较奇怪,设置AUTOTRACE是出现SP2-0611和ORA-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 报告时出错

问题果然如此。

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-663732/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1964
  • 访问量
    11077167