轉貼:收縮oracle表空間時ora-03297錯誤的解決
1. 先估算該表空間內各個資料檔案的空間使用情況:
SQL>select file#,name from v$datafile;
SQL>select max(block_id) from dba_extents where file_id=11;
MAX(BLOCK_ID)
-------------
13657
SQL>show parameter db_block_size
NAME TYPE VALUE
----------------------------- ------- ----------- db_block_size integer 8192
SQL>select 13657*8/1024 from dual;
13657*8/1024
-----------
106.695313
這說明該檔案中最大使用塊位於106M與107M之間,
SQL> alter database datafile '/ora_data/cninsite/insitedev02.dbf' resize 100M;
alter database datafile '/ora_data/cninsite/insitedev02.dbf' resize 100M
*
ERROR at line 1:
ORA-03297: file contains used data beyond requested RESIZE value
SQL> alter database datafile '/ora_data/cninsite/insitedev02.dbf' resize 107M;
Database altered.
2.如果某些表佔用了資料檔案的最後一些塊,則需要先將該表匯出或移動到其他的表空間中,然後刪除表,再進行收縮。不過如果是移動到其他的表空間,需要重建其索引。
SQL> alter table t_obj move tablespace t_tbs1;
具體情況可以參考:
另外主意:alter tablespace xxx coalesce只能把相鄰的空餘資料塊連成一些比較大的空塊,但是不會移動當前的資料塊。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245831/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 收縮表空間ORA-03297錯誤解決
- 收縮臨時表空間收縮方法及ORA-03297錯誤處理
- oracle之臨時表空間的收縮Oracle
- Oracle表空間收縮方案Oracle
- Oracle 11g 新特性 -- 臨時表空間收縮(轉)(Oracle
- Oracle效能優化:收縮臨時表空間Oracle優化
- ORACLE 11g臨時表空間收縮的功能Oracle
- oracle之EXP匯出表空間錯誤解決Oracle
- oracle空間收縮Oracle
- 收縮表空間 for Oracle 10gOracle 10g
- 【RESIZE】Oracle收縮表空間主要命令Oracle
- 分析表空間空閒率並收縮表空間
- mysql收縮共享表空間MySql
- 管理表空間(表空間的屬性)轉貼
- 轉:Oracle 臨時表空間過大問題解決Oracle
- DB2_收縮表空間DB2
- Oracle案例11——Oracle表空間資料庫檔案收縮Oracle資料庫
- ORACLE 臨時表空間滿了的原因解決方案Oracle
- 解決Oracle臨時表空間佔滿的問題Oracle
- oracle的臨時表空間解決問題的步驟Oracle
- UNDO表空間的ORA-1122錯誤解決(三)
- mysql共享表空間擴容,收縮,遷移MySql
- 表空間(資料檔案shrink)收縮示例
- Oracle undo表空間爆滿的解決Oracle
- oracle的臨時表空間Oracle
- 臨時表空間過大的解決方法
- 臨時表空間已滿的解決方法
- shrink收縮檔案空間
- oracle 臨時表空間Oracle
- oracle臨時表空間Oracle
- 【實驗】重建臨時表空間解決臨時表空間過大問題
- MySQL 5.7新特性之線上收縮undo表空間MySql
- oracle的臨時表空間寫滿磁碟空間,解決改問題的具體步驟Oracle
- Oracle 臨時表空間的概念Oracle
- ORACLE臨時表空間的清理Oracle
- Oracle 10g Shrink Table - Shrink Space 收縮空間Oracle 10g
- ORACLE 中undo表空間爆滿的解決方法Oracle
- Oracle 臨時表空間概念Oracle