减少oracle 数据文件,Oracle 中减小数据文件大小

由于要做一个测试,我在users表空间中创建一个表并且插入了500万条数据,结果导致数据文件的大小由1G涨到了8G。测试完成后删除表,但数据文件的大小仍然维持在8G。

研究了一下,可以通过resize datafile来减小数据文件的大小。

首先,要查清楚数据文件的真实使用空间。可以通过查询dba_extents达到这个目的。users表空间使用的数据文件为D:\ORACLE\ORADATA\EPCIT\DATA_FILE\EPCITUSERS01.DBF

Sql代码  icon_star.png

spinner.gifSQL>selectfile_name,sum(e.bytes)/1024/1024asMB

2  fromdba_extents ejoindba_data_files fone.file_id=f.file_id

3  groupbyfile_name;

FILE_NAME                                                       MB

------------------------------------------------------- ----------

E:\ORADATA\DATA_FILE\EPCITSYSAUX01.DBF                      330.25

E:\ORADATA\DATA_FILE\EPCITBLOBS01.DBF                     197.1875

D:\ORACLE\ORADATA\EPCIT\DATA_FILE\PERFSTAT.DBF              143.75

D:\ORACLE\ORADATA\EPCIT\DATA_FILE\EPCITUSERS01.DBF        143.3125

E:\ORADATA\DATA_FILE\EPCITINDEX01.DBF                      421.625

E:\ORADATA\DATA_FILE\EPCITSYSTEM01.DBF                    355.5625

E:\ORADATA\DATA_FILE\EPCITUNDOTBS01.DBF                    26.3125

7 rowsselected.SQL> 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

------------------------------------------------------- ----------

E:\ORADATA\DATA_FILE\EPCITSYSAUX01.DBF 330.25

E:\ORADATA\DATA_FILE\EPCITBLOBS01.DBF 197.1875

D:\ORACLE\ORADATA\EPCIT\DATA_FILE\PERFSTAT.DBF 143.75

D:\ORACLE\ORADATA\EPCIT\DATA_FILE\EPCITUSERS01.DBF 143.3125

E:\ORADATA\DATA_FILE\EPCITINDEX01.DBF 421.625

E:\ORADATA\DATA_FILE\EPCITSYSTEM01.DBF 355.5625

E:\ORADATA\DATA_FILE\EPCITUNDOTBS01.DBF 26.3125

7 rows selected.

可以看出EPCITUSERS01.DBF实际使用空间只有143MB。resize datafile的时候不可以小过这个大小。

Sql代码  icon_star.png

spinner.gifSQL>alterdatabasedatafile 6 resize 100M;

alterdatabasedatafile 6 resize 100M

*

ERROR atline 1:

ORA-03297: file containsused data beyond requested RESIZE value

SQL> alterdatabasedatafile 6 resize 500M;

Databasealtered.

come from :**.com/blog/403312

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值