縮小Oracle目錄下UNDOTBS01.DBF檔案的大小
使用sys使用者登入Oracle
方法一:重置表空間大小
linux下執行
ALTER DATABASE DATAFILE '/opt/oracle/oradata/res/undotbs01.dbf' RESIZE 100M;
windows下執行ALTER DATABASE DATAFILE 'E:\ORACLE\ORADATA\UNDOTBS01.DBF' RESIZE 100M;
其中 '/opt/oracle/oradata/res/undotbs01.dbf' 為您系統中UNDOTBS01.DBF檔案的存儲路徑;100M為重置後的大小,根據需要修改。
如果方法一無法執行,可使用方法二
方法二:建立UNDO表空間,替換原來的UNDO表空間
1. 建立一個新的小的undo表空間
linux下執行:
create undo tablespace undotbs2 datafile '/opt/oracle/oradata/res/undotbs02.dbf' size 100M reuse autoextend on;
其中‘/opt/oracle/oradata/res/undotbs02.dbf’為表空間檔案想要存儲的位置。100M表示新的表空間的初始大小。
windows下執行:
CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE 'E:\oradata\UNDOTBS02.DBF' SIZE 100M REUSE AUTOEXTEND ON;
2. 設定新的表空間為系統的Undo表空間
執行
ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2;
3. 重新開機資料庫
可以使用sys使用者,從sqlplus登入,執行startup force指令,強制重新開機
4. 删除舊的Undo表空間
依舊使用sys使用者登入,執行
DROP TABLESPACE UNDOTBS01 INCLUDING CONTENTS AND DATAFILES;
至此,UNDOTBS01.DBF檔案縮小完畢,如果想要還原原來的表空間名稱,重新執行方法二即可。
本文轉自ling118 51CTO部落格,原文連結:http://blog.51cto.com/meiling/1975173,如需轉載請自行聯系原作者