删除数据清理oracle表空间,oracle数据库删除无用表空间及数据文件过程
應用場景:html
數(shù)據(jù)庫服務器A下的一張數(shù)據(jù)庫表重建過,而且數(shù)據(jù)已經(jīng)遷移到新表空間下,現(xiàn)遺留了一些原有的表空間數(shù)據(jù)文件在服務器上,耗費資源,如圖所示:
linux
原數(shù)據(jù)庫表對應的數(shù)據(jù)文件:sql
遷移后數(shù)據(jù)文件:
數(shù)據(jù)庫
咱們的目的是,將這些沒用的dbf文件刪除,把/opt/oradata下的存儲釋放出來。
現(xiàn)說明一下處理的步驟:服務器
查詢表空間和數(shù)據(jù)文件對應關系oracle
發(fā)現(xiàn)CLRDBS01-14是重建前的,CLRDB01-60是重建后的。spa
執(zhí)行語句,嘗試進行刪除,這塊Oracle報錯了。線程
drop tablespace CLRDBS14 INCLUDING CONTENTS AND DATAFILES;
oracle提示報錯:ORA-14404
code
此錯誤說明,該表空間下有分區(qū)表在用此表空間的數(shù)據(jù)文件,因此不能直接刪除表空間htm
既然報錯了,那咱們就看一下怎么解決它。
查詢哪些表在占用這個CLRDBS14:
SELECT x.table_name,x.partition_name,x.tablespace_name 表空間1, y.tablespace_name 表空間2
FROM dba_tab_partitions x, dba_tab_partitions y
WHERE x.tablespace_name ='CLRDBS14' AND y.tablespace_name <> 'CLRDBS14' AND x.table_name=y.table_name;
經(jīng)查詢,有5個表在使用,分別是:
TFA_ALARM_UNSTANDARD
TFA_ALARM_GCSS
TFA_ALARM_CLR_05061
TFA_ALARM_CLR_05062
TFA_ALARM_CLR_0506
分別查看一下這些表
TFA_ALARM_UNSTANDARD TFA_ALARM_GCSS 這兩張下面沒數(shù)據(jù),導出建表語句,刪除。
TFA_ALARM_CLR_05061 TFA_ALARM_CLR_05062 TFA_ALARM_CLR_0506 這三張是以前clr表的備份,刪除。
再次執(zhí)行刪除語句,刪除CLRDBS14
drop tablespace CLRDBS14 INCLUDING CONTENTS AND DATAFILES;
這次正常執(zhí)行。
依次刪除CLRDBS01-CLRDBS13
登錄數(shù)據(jù)庫服務器下/opt/oradata,查看以前的clrdbs數(shù)據(jù)文件,已經(jīng)在服務器上找不到了
執(zhí)行bdf,觀察/opt/oradata大小
這塊特殊說明一下,空間不會立刻就釋放出來,由于linux OS系統(tǒng)bdf命令的機制是,只有當線程釋放完畢后,才會釋放bdf命令內的空間。
總結
以上是生活随笔為你收集整理的删除数据清理oracle表空间,oracle数据库删除无用表空间及数据文件过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 烽火服务器怎么进入bios系统,装机高手
- 下一篇: java调用一个方法后怎么继续执行不等待