undotbs01.dbf檔案太大解決方案
縮小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檔案縮小完畢,如果想要還原原來的資料表空間名稱,重新執行方法二即可。