今天早上在檢查數據庫文件的磁盤使用空間時
按照平常的事物量
首先使用sys 用戶創建一個undo表空間 undotbs
初始大小為
sql>create undo tablespace undotbs
然後激活新的表空間
sql> alter system set undo_tablespace=undotbs
系統已經更改!
查看是否有事物回滾
select count(*) from v$transaction
沒有結果
可以刪除原來的undo表空間
於是
sql>drop tablespace undotbs
表空間已經刪除!
興奮的去看看磁盤空間應該有
當執行操作系統命令時候
怎麼一點沒有釋放空間?
這可咋整
查看log 沒錯誤啊?
沒辦法了
找到了原因
將訪問該文件的進程kill掉就可以了
那怎麼查找那個進程呢?
lsof這個命令可以列出當前系統打開的文件被那些進程訪問
lsof |grep delete
就可以找出那個進程
kill
就可以了!
操作系統認為這個文件還存在所以沒有釋放磁盤空間
難道是我有操作錯誤? 為什麼還有進程在訪問呢? 查看日志undotbs
總算解決了
正常的切換undo是不會出現這種情況的
From:http://tw.wingwit.com/Article/program/Oracle/201311/18108.html