发信人: mengyinuaa(烟飘雾渺) 
整理人: pengxiaohui(2002-04-12 11:38:29), 站内信件
 | 
 
 
天极网· ·尹珂··Yesky
 
   上述错误均为我们在使用回滚段时比较常见的问题,ORA-01598指明当前使用的回滚段的状态为“not online”,不能使用,将它改为“online”状态即可使用;ORA-01636指明当前回滚段已经为“online”状态,可以直接使用,不用再集合它。 
 
 ORA-1636 signalled during: alter rollback segment rb00 online 
 
   我们在做统计时还可能遇到下述问题:一个rollback segment的状态为”Needs Recovery”的现象,这是由于ORACLE回退一个事物表中的没有提交的事物时失败所造成的。通常原因为一个datafile或者tablespace是在offline的状态或者一个undo的目标被破坏或者rollback segment被破坏。解决的办法是将所有的tablespace和datafile都置为online状态,如果不能解决则做下面的工作:
 
   1>.在initsid.ora中加入event=”10015 trace name context forever lever 10”;
 
   2>.shutdown数据库然后重启;
 
   3>.在$ORACLE_HOME/rdbms/log下,找到startup时生成的trace file;
 
   4>.在trace文件中,找到下列信息“error recovery tx(#,#) object #”;
 
   5>.根据object#(与sys.dba_objects表中的object_id相同)在sys.dba_objects表中查出该object的名字;
 
   6>.将该object drop掉;
 
   7>.在init.ora文件中将该rollback segment放回rollback_segments参数中,删除event;8>.shutdown数据库然后重启。此时”Needs Recovery”的问题应该是完全解决了,否则就是rollback segment被破坏了。 
 
 ORA-01688:unable to extend table name.name partition NAME by NUM in tablespace NAME 
 
 
   产生原因:指定的tablespace空间已经被占用满,无法扩展。 
 
   解决方法:使用“ALTER TABLESPACE ADD DATAFILE”命令增加文件系统文件和原始分区,或者增加INITIAL的大小(如:alter tablespace CDRS101 default storage(next 500M pctincrease 1))应该能够解决,否则就是有人使用你的表空间上创建了一个比较大的数据文件导致你的表空间不够用。 
 
   一个报错例子如下: ORA-1688: unable to extend table RMMCDR.LOCAL_CDR partition LOCAL_CDR101 by 460800 in tablespace CDRS101 
 
   相应的英文如下: 
 
 Cause:An extent could not be allocated for a table segment in tablespace 
 
 Action:Use the ALTER TABLESPACE ADD DATAFILE statement to add one or more files to the specified tablespace  
 
  ---- 
          |  |  | 
         )_) )_) )_) 
        )___))___))___)\ 
        )____)____)_____)\\ 
       _____|____|____|____\\\__ 
  ---------\          /--------- 
   ^^^^^ ^^^^^^QQ:1456070^^^^^^^^^^^^^^^ 
 
 
      不管世事如何變幻
      不管前面有多少暗礁
      我知道這個世界上還有一個掌燈為我守候。
                
                                  烟飘雾渺
    | 
 
 
 |