缩小Oracle目录下UNDOTBS01.DBF文件的大小
方法一:重置表空间大小
linux下执行
ALTER DATABASE DATAFILE '/opt/oracle/oradata/res/undotbs01.dbf' RESIZE 100M;
windows下执行ALTERDATABASEDATAFILE'E:\ORACLE\ORADATA\UNDOTBS01.DBF'RESIZE100M;
其中'/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 UNDOTABLESPACEUNDOTBS2 DATAFILE'E:\oradata\UNDOTBS02.DBF' SIZE 100M REUSEAUTOEXTENDON;
2. 设置新的表空间为系统的Undo表空间
执行
ALTERSYSTEMSETUNDO_TABLESPACE=UNDOTBS2;
3. 重启数据库
可以使用sys用户,从sqlplus登录,执行startup force命令,强制重启
4. 删除旧的Undo表空间
DROPTABLESPACE UNDOTBS01 INCLUDINGCONTENTSAND DATAFILES;