oracle还原报ora-01654错误(表空间大小过小)

来源:互联网 发布:php底层c源代码下载 编辑:程序博客网 时间:2024/05/17 23:10

ORA-39171: 作业出现可恢复的等待。

ORA-01654: 索引 CAWY_CAS.S419$_IX1 无法通过 128 (在表空间 SDE 中) 扩展

此类错误多是由于表空间过小造成报错,修改表空间大小即可恢复正常导入

解决办法如下:

1:通过oem修改表空间大小

2:增加对应表空间数据文件:

altertablespace sdeadddatafile'D:\oracle\product\10.2.0\oradata\nj/sde2.dbf'size1000m;

3:修改表空间大小,直接更改数据库大小(RESIZE 5000M表示将整个数据文件改为5G大小)

ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\nj/sde.dbf'RESIZE5000M;

4:设置表空间自增长大小及最大值

alter database datafile 'd:\oracle\product\10.2.0\oradata\test1\test6k.dbf' autoextend on next 50m maxsize 200m

(autoextend子句自动扩展的意思。空间不够时。自动增加。
NEXT是下一个区的大小,
由于接下来的每个区是递增的。所以maxsize规定一个最大值)

5:查询表空间使用情况:

(1)SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,

  (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"

  FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C

  WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;

 

(2)selectupper(f.tablespace_name) "表空间名",

       d.tot_grootte_mb "表空间小(M)",

       d.tot_grootte_mb- f.total_bytes "已使用空间(M)",

       to_char(round((d.tot_grootte_mb- f.total_bytes)/d.tot_grootte_mb*100,2),'990.99')||'%' "使用比",

       f.total_bytes "空闲空间(M)",

       f.max_bytes "最快(M)"

       from(select tablespace_name,round(sum(bytes)/(1024*1024),2) total_bytes,

                    round(max(bytes)/(1024*1024),2) max_bytes

                    from sys.dba_free_space

                    groupby tablespace_name) f,

                (select dd.tablespace_name,round(sum(dd.bytes)/(1024*1024),2) tot_grootte_mb

                     from sys.dba_data_files dd

                     groupby dd.tablespace_name) d      

        where d.tablespace_name=f.tablespace_name

        orderby1