Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

75

积分

1

好友

8

主题
1#
发表于 2013-4-27 22:27:27 | 查看: 6659| 回复: 6
系统环境:
AIX 6100-07
数据库环境:
RAC+ASM
数据库版本:
  1. SQL> select * from v$version;

  2. BANNER
  3. --------------------------------------------------------------------------------
  4. Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
  5. PL/SQL Release 11.2.0.3.0 - Production
  6. CORE    11.2.0.3.0      Production
  7. TNS for IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production
  8. NLSRTL Version 11.2.0.3.0 - Production
复制代码
用户执行创建包体时出现ORA-01950错误:

###package body SBK.SIJK 内容不太方便提供。
  1. Error report:
  2. ORA-01950: no privileges on tablespace 'USER_DATA'
  3. ORA-06512: at "SBK.SIJK", line 25
复制代码
用户权限和默认表空间信息:
  1. -- Create the user
  2. create user SIIS
  3.   identified by ""
  4.   default tablespace USER_DATA
  5.   temporary tablespace TEMPGRP
  6.   profile DEFAULT
  7. -- Grant/Revoke role privileges
  8. grant connect to SIIS;
  9. grant dba to SIIS;
  10. grant resource to SIIS;
  11. -- Grant/Revoke system privileges
  12. grant alter any sequence to SIIS;
  13. grant alter any table to SIIS;
  14. grant alter any trigger to SIIS;
  15. grant alter any type to SIIS;
  16. grant create any procedure to SIIS;
  17. grant create any sequence to SIIS;
  18. grant create any synonym to SIIS;
  19. grant create any table to SIIS;
  20. grant create any trigger to SIIS;
  21. grant create any type to SIIS;
  22. grant create any view to SIIS;
  23. grant delete any table to SIIS;
  24. grant execute any procedure to SIIS;
  25. grant select any dictionary to SIIS;
  26. grant select any sequence to SIIS;
  27. grant select any table to SIIS;
  28. grant unlimited tablespace to SIIS;
  29. grant update any table to SIIS;
复制代码
MOS上没有找到比较符合的信息
OTN上看到一个类似的帖子
https://forums.oracle.com/forums/thread.jspa?threadID=2348467

查看用户表和对应的表空间时,发现比较奇怪的问题:
  1. SQL> select table_name,tablespace_name
  2.   2  from dba_tables where owner='SIIS'
  3.   3  order by table_name
  4.   4  /

  5. TABLE_NAME       TABLESPACE_NAME
  6. ---------------  ---------------
  7. SBDB_PSOPARCH    USER_DATA
  8. SBDA_RTWGPY   
  9. SBDA_PSOPARCH    USER_DATA
  10. ..........
复制代码
有几张业务表对应的表空间是空的。

不知道是什么原因,这些表都有数据
  1. SQL> select count(*) from siis.SBDA_RTWGPY;

  2.   COUNT(*)
  3. ----------
  4.    1174135
复制代码
我的问题:
是否这个原因造成创建package body的时候出先ORA-01950的错误??
2#
发表于 2013-4-27 22:45:32
ORA-06512: at "SBK.SIJK", line 25

line 25是什么

回复 只看该作者 道具 举报

3#
发表于 2013-4-27 22:56:49
line 25 是一个普通的查询,人员信息
  1.   select a.aab001,a.aab003,a.aab004,a.aab019,a.aab020,a.aab022,
  2.              b.aae006,b.aae007,b.aab013,b.aab014,b.aab015,b.eab001,b.aab016,
  3.              b.aab018,b.eab005,b.eab006,a.aab021,a.aab023,b.aab006,b.aab007,
  4.              to_char(b.aab008,'yyyy-mm-dd'),to_char(b.aab009,'yyyy-mm-dd'),
  5.              b.aab010,to_char(b.aab011,'yyyy-mm-dd'),b.aab012,saae012,'1'
  6.   into as_aab001,as_aab003,as_aab004,as_aab019,as_aab020,as_aab022,
  7.            as_aae006,as_aae007,as_aab013,as_aab014,as_aab015,as_eab004,as_aab016,
  8.            as_aab018,as_eab005,as_eab006,as_aab021,as_aab023,as_aab006,as_aab007,
  9.            as_aab008,as_aab009,as_aab010,as_aab011,as_aab012,as_aae012,as_aae120
  10.   from ab01 a,aba1 b
  11.   where a.aab001=b.aab001 and a.aab001=saab001;
复制代码
现在的情况是execute执行已有的包体时都是报ORA-01950 ORA-06512错误。

我现在弄不明白的是表对应的表空间是空值的情况。

回复 只看该作者 道具 举报

4#
发表于 2013-4-27 22:57:55
做一个

01950  level 3的errorstack 发上来

回复 只看该作者 道具 举报

5#
发表于 2013-4-28 22:31:31
刘大trace文件发你邮箱了。

回复 只看该作者 道具 举报

6#
发表于 2013-4-28 22:44:28
----- Error Stack Dump -----
ORA-01950: 对表空间 'USER_DATA' 无权限
----- Current SQL Statement for this session (sql_id=a150vhx2pmasj) -----

INSERT INTO ODDS_SOURCELOG
  (OPSENO,
   OPDATE,
   OBJECT_NAME,
   OBJECT_TYPE,
   LAST_CONTENT,
   CREATED,
   LAST_DLL_TIME,
   SESSION_USER,
   OS_USER,
   IP_ADDRESS,
   OWNER,
   OPSENONEXT)
  SELECT :B2 AS OPSENO,
         SYSDATE AS OPDATE,
         OBJECT_NAME AS OBJECT_NAME,
         OBJECT_TYPE AS OBJECT_TYPE,
         :B1 AS CONTENT,
         CREATED AS CREATED,
         LAST_DDL_TIME LAST_DLL_TIME,
         SYS_CONTEXT('userenv', 'session_user') AS SESSION_USER,
         SYS_CONTEXT('userenv', 'os_user') AS OS_USER,
         SYS_CONTEXT('userenv', 'ip_address') AS IP_ADDRESS,
         ORA_DICT_OBJ_OWNER,
         0
    FROM DBA_OBJECTS
   WHERE OBJECT_NAME = ORA_DICT_OBJ_NAME
     AND OWNER = ORA_DICT_OBJ_OWNER
     AND OBJECT_TYPE = ORA_DICT_OBJ_TYPE


这个语句是你们自己的审计吧?  登陆用户是 338/ODEX

回复 只看该作者 道具 举报

7#
发表于 2013-4-28 23:10:20
谢谢刘大的指导,问题已经解决,管理用户odex对表空间USER_DATA没有权限导致上述问题。

有件事情还是搞不明白,siis用户有些表对应的表空间是空的,这种情况一般是什么原因造成的?

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-28 09:23 , Processed in 0.066333 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569