您的位置:首页 > 数据库 > Oracle

Oracle设置AUTOTRACE时出现SP2-0611错误

2016-11-27 19:45 246 查看
这个错误比较奇怪,设置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报告时出错
  问题果然如此。

标签: 数据库

2

本文标题:Oracle设置AUTOTRACE时出现SP2-0611错误

本文链接:http://www.educity.cn/shujuku/1177541.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐