情景再现:
之前练习的时候,scott用户创建了一个两千万行的表emp3,导致scott用户的默认表空间的数据文件增长很大。
练习结束后,drop掉emp3表后,想通过resize重设users表空间数据文件的大小。
SCOTT@prod>select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BONUS TABLE
DEPT TABLE
EMP TABLE
EMP3 TABLE
PLAN_TABLE TABLE
SALGRADE TABLE
TEST TABLE
drop表emp3前:
SCOTT@prod>select count(*) from emp3;
COUNT(*)
----------
20000000
[root@rh131:prod]$ls -lh users01.dbf
-rw-r----- 1 oracle oinstall 2.7G Apr 13 14:26 users01.dbf
drop表emp3后
SCOTT@prod>drop table emp3;
Table dropped.
[root@rh131:prod]$ls -lh users01.dbf
-rw-r----- 1 oracle oinstall 2.7G Apr 13 14:26 users01.dbf
大小没有变化
查看各个数据文件真实的使用空间
SYS@prod>col file_name for a50;
SYS@prod>select file_name, sum(e.bytes)/1024/1024 as MB
2 from dba_extents e join dba_data_files f on e.file_id=f.file_id
3 group by file_name;
FILE_NAME MB
-------------------------------------------------- ----------
/u01/app/oracle/oradata/prod/system01.dbf 748.4375
/dsk1/oradata/prod/undotbs101.dbf 1.25
/dsk1/oradata/prod/users01.dbf 12.25
/dsk2/oradata/prod/undotbs202.dbf 9
/u01/app/oracle/oradata/prod/sysaux01.dbf 557.625
/u01/app/oracle/oradata/prod/example01.dbf 309.125
/u01/app/oracle/oradata/prod/sptbs01.dbf 144.75
/dsk1/oradata/prod/undotbs201.dbf 5.875
8 rows selected.
resize重设数据文件大小
SYS@prod>alter database datafile '/dsk1/oradata/prod/users01.dbf' resize 15m;
alter database datafile '/dsk1/oradata/prod/users01.dbf' resize 15m
*
ERROR at line 1:
ORA-03297: file contains used data beyond requested RESIZE value
报错说文件包含使用的数据大小超过我resize的大小
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30136543/viewspace-1571841/ ,如需转载,请注明出处,否则将追究法律责任。