Oracle 資料檔案回收
--模擬資料插入
DECLARE
I NUMBER(10);
BEGIN
FOR I IN 1 .. 50000 LOOP
INSERT INTO TEST_TAB VALUES (I, 'TESTSTRING');
END LOOP;
COMMIT;
END;
/
PL/SQL procedure successfully completed.
TEST88@nopdb>select count(*) from TEST_TAB;
COUNT(*)
----------
50000
SYS@nopdb>select file_id, max(block_id) from dba_extents where file_id=7 group by file_id;
FILE_ID MAX(BLOCK_ID)
---------- -------------
7 155776
SYS@nopdb>select file_id,round(max(block_id)*8/1024) HWMsize from dba_extents where file_id=7 group by file_id;
FILE_ID HWMSIZE
---------- ----------
7 1217
--MOVE 操作
TEST88@nopdb>alter table TEST_TAB move online;
Table altered.
TEST88@nopdb>select count(*) from TEST_TAB;
COUNT(*)
----------
50000
SYS@nopdb>select file_id,round(max(block_id)*8/1024) HWMsize from dba_extents where file_id=7 group by file_id;
FILE_ID HWMSIZE
---------- ----------
7 1290
SYS@nopdb>select file_id, max(block_id) from dba_extents where file_id=7 group by file_id;
FILE_ID MAX(BLOCK_ID)
---------- -------------
7 165120
--說明使用了新塊;
--檢視錶空間使用
TABLESPACE_NAME AUTOEXTENSIBLE CURRENT_SPACE_G CURRENT_USED_G MAX_SIZE_G TOTAL_USED_PCT
---------------------------------------- --------------- --------------- -------------- ---------- --------------
TEST88 NO 2 .01 2 .00
SYS@nopdb>alter database datafile 7 resize 1g;
alter database datafile 7 resize 1g
*
ERROR at line 1:
ORA-03297: file contains used data beyond requested RESIZE value
--此時證明確實不能回收空塊,因為分給表塊並沒有回收
--對錶進行truncate
TEST88@nopdb>truncate table TEST_TAB;
TEST88@nopdb>select count(*) from TEST_TAB;
COUNT(*)
----------
0
SYS@nopdb>select file_id, max(block_id) from dba_extents where file_id=7 group by file_id;
FILE_ID MAX(BLOCK_ID)
---------- -------------
7 163984
SYS@nopdb>select file_id,round(max(block_id)*8/1024) HWMsize from dba_extents where file_id=7 group by file_id;
FILE_ID HWMSIZE
---------- ----------
7 1281
Table truncated.
表空間使用率:
TABLESPACE_NAME AUTOEXTENSIBLE CURRENT_SPACE_G CURRENT_USED_G MAX_SIZE_G TOTAL_USED_PCT
---------------------------------------- --------------- --------------- -------------- ---------- --------------
TEST88 NO 2 0 2 .00
--移動到其它表空間
TEST88@nopdb>alter table TEST_TAB move tablespace users online;
Table altered.
--在移動回來
TEST88@nopdb>alter table TEST_TAB move tablespace TEST88 online;
Table altered.
SYS@nopdb>select file_id, max(block_id) from dba_extents where file_id=7 group by file_id;
FILE_ID MAX(BLOCK_ID)
---------- -------------
7 136
SYS@nopdb>select file_id,round(max(block_id)*8/1024) HWMsize from dba_extents where file_id=7 group by file_id;
FILE_ID HWMSIZE
---------- ----------
7 1
SYS@nopdb>alter database datafile 7 resize 2m;
Database altered.
測試結果:只有移動其它表空間才可以釋放已經申請的塊。DROP 應該也可以的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30327022/viewspace-2688378/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 回收表空間的資料檔案大小Oracle
- oracle資料庫移動資料檔案、日誌檔案和控制檔案Oracle資料庫
- WAL檔案回收
- oracle 線上rename資料檔案Oracle
- Oracle 刪除資料檔案Oracle
- oracle 資料檔案遷移Oracle
- 收縮Oracle資料檔案Oracle
- oracle刪除資料檔案Oracle
- oracle 關於-資料檔案Oracle
- oracle資料檔案遷移Oracle
- ORACLE移動資料檔案Oracle
- ORACLE 收縮資料檔案Oracle
- oracle資料檔案大小限制Oracle
- oracle中移動控制檔案、資料檔案、日誌檔案Oracle
- Oracle資料檔案和臨時檔案的管理Oracle
- oracle資料庫的配置檔案Oracle資料庫
- oracle 資料檔案offlineOracle
- oracle資料檔案驗證工具Oracle
- ORACLE 重新命名資料檔案Oracle
- Oracle_遷移資料檔案Oracle
- 重建Oracle資料庫控制檔案Oracle資料庫
- Oracle資料檔案最大值Oracle
- 收縮ORACLE的資料檔案Oracle
- 轉:Oracle刪除資料檔案Oracle
- Oracle資料檔案大小的限制Oracle
- oracle資料檔案個數限制Oracle
- 修改Oracle資料檔名及資料檔案存放路徑Oracle
- 在Oracle中移動資料檔案、控制檔案和日誌檔案Oracle
- oracle徹底刪除資料檔案Oracle
- oracle資料庫redo檔案的blocksizeOracle資料庫BloC
- Oracle 表空間與資料檔案Oracle
- oracle學習(4) -資料庫檔案Oracle資料庫
- [ORACLE ASM] AMDU 恢復資料檔案OracleASM
- oracle 資料檔案表空間管理Oracle
- Oracle資料檔案收縮例項Oracle
- Oracle 資料檔案移動步驟Oracle
- 為oracle資料庫建立口令檔案Oracle資料庫
- 移動Oracle資料檔案的方法Oracle