清理用戶表空間
表空間由於平時測試被擴大了,磁盤滿了怎麼辦呢,兩個辦法,一個是收縮文件,一個辦法是重建:
重建表空間比較容易,但是USERS表空間重建要麻煩一點,會了這個,其他的表空間都不是問題(SYSTEM表空間除外)
1、首先在系統中將USERS表空間清理出來,遷移走所有的表和索引,假設目的表空間爲TEST,
可以在SYS用戶登錄後運行如下SQL:
Select 'alter table '||t.owner||'.'||t.table_name||' move tablespace TEST;'
From all_all_tables t where t.tablespace_name='USERS';
Select 'alter index '||t.owner ||'.'|| index_name || ' rebuild tablespace test;'
From all_indexes t where t.tablespace_name ='USERS';
運行生成的腳本,把所有對象遷移走。
回縮表空間:
實際上如果表空間的所有對象都遷移走了之後,我們可以使用命令直接回縮,命令如下:
alter database datafile 'D:\DATA\orcl\USERS01.DBF' resize 1024m;
刪除/重建USERS表空間:
2、關閉數據庫
3、啓動數據庫到MOUNT狀態:
alter database datafile 'D:\DATA\orcl\USERS01.DBF ' offline drop;
然後啓動數據庫:
alter database open;
修改默認表空間:
alter database default tablespace test;
脫機表空間users:
alter tablespace users online;
刪除表空間,順便把文件刪掉:
DROP TABLESPACE users INCLUDING CONTENTS and datafiles;
表空間刪掉了;
可能遇到的問題:
系統提示:
第 1 行出現錯誤:
ORA-00604: 遞歸 SQL 級別 1 出現錯誤
ORA-02429: 無法刪除用於強制唯一/主鍵的索引
問題在於沒有清空users表空間的所有對象,檢查一下第一步是否還有沒移走的對象。
4、重建表空間:
create tablespace users datafile 'D:\DATA\orcl\USERS01.DBF' size 2048M autoextend off;
設置默認表空間:
alter database default tablespace users;
重建表空間比較容易,但是USERS表空間重建要麻煩一點,會了這個,其他的表空間都不是問題(SYSTEM表空間除外)
1、首先在系統中將USERS表空間清理出來,遷移走所有的表和索引,假設目的表空間爲TEST,
可以在SYS用戶登錄後運行如下SQL:
Select 'alter table '||t.owner||'.'||t.table_name||' move tablespace TEST;'
From all_all_tables t where t.tablespace_name='USERS';
Select 'alter index '||t.owner ||'.'|| index_name || ' rebuild tablespace test;'
From all_indexes t where t.tablespace_name ='USERS';
運行生成的腳本,把所有對象遷移走。
回縮表空間:
實際上如果表空間的所有對象都遷移走了之後,我們可以使用命令直接回縮,命令如下:
alter database datafile 'D:\DATA\orcl\USERS01.DBF' resize 1024m;
刪除/重建USERS表空間:
2、關閉數據庫
3、啓動數據庫到MOUNT狀態:
alter database datafile 'D:\DATA\orcl\USERS01.DBF ' offline drop;
然後啓動數據庫:
alter database open;
修改默認表空間:
alter database default tablespace test;
脫機表空間users:
alter tablespace users online;
刪除表空間,順便把文件刪掉:
DROP TABLESPACE users INCLUDING CONTENTS and datafiles;
表空間刪掉了;
可能遇到的問題:
系統提示:
第 1 行出現錯誤:
ORA-00604: 遞歸 SQL 級別 1 出現錯誤
ORA-02429: 無法刪除用於強制唯一/主鍵的索引
問題在於沒有清空users表空間的所有對象,檢查一下第一步是否還有沒移走的對象。
4、重建表空間:
create tablespace users datafile 'D:\DATA\orcl\USERS01.DBF' size 2048M autoextend off;
設置默認表空間:
alter database default tablespace users;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.