Oracle resize收缩数据文件

如遇到操作系统层面空间不够,临时需要收缩数据文件来腾出空间的话,可按如下步骤执行:
1.查询数据文件可收缩的情况

SELECT a.tablespace_name,
file_name,
c.VALUE / 1024 "Blk. size(Kb)",
CEIL ((NVL (hwm, 1) * c.VALUE) / 1024 / 1024) "smallest(Mb) - HWM",
CEIL (blocks * c.VALUE / 1024 / 1024) "currsize(Mb)",
CEIL (blocks * c.VALUE / 1024 / 1024) - CEIL ((NVL (hwm, 1) * c.VALUE) / 1024 / 1024) "savings(Mb)"
FROM dba_data_files a,
(SELECT file_id, MAX (block_id + blocks - 1) hwm
FROM dba_extents
GROUP BY file_id) b,
(SELECT VALUE
FROM v$parameter
WHERE NAME = 'db_block_size') c
WHERE a.file_id = b.file_id(+)
and a.status !='INVALID'
order by 6;

TABLESPACE_NAME           FILE_NAME                                               Blk. size(Kb) smallest(Mb) - HWM currsize(Mb) savings(Mb)
------------------------- ------------------------------------------------------- ------------- ------------------ ------------ -----------
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR02.DBF                  8            8192    8192           0
SYSTEM                    E:\ORACLE\ORADATA\FRORCL\SYSTEM01.DBF                               8            1570    1570           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR05.DBF                  8            8192    8192           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR08.DBF                  8            8192    8192           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR09.DBF                  8            8192    8192           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR12.DBF                  8            8192    8192           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR03.DBF                  8            8192    8192           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR16.DBF                  8           10240   10240           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR13.DBF                  8           10240   10240           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR20.DBF                  8           30720   30720           0
UNDOTBS1                  E:\ORACLE\ORADATA\FRORCL\UNDOTBS02.DBF                              8            1024    1024           0

TABLESPACE_NAME           FILE_NAME                                               Blk. size(Kb) smallest(Mb) - HWM currsize(Mb) savings(Mb)
------------------------- ------------------------------------------------------- ------------- ------------------ ------------ -----------
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR                        8            8192    8192           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR04.DBF                  8            8192    8192           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR06.DBF                  8            8192    8192           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR19.DBF                  8           30720   30720           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR17.DBF                  8           30720   30720           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR013.DBF                 8           16384   16384           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR07.DBF                  8            8192    8192           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR15.DBF                  8           10240   10240           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR18.DBF                  8           30720   30720           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR11.DBF                  8            8192    8192           0
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR10.DBF                  8            8192    8192           0

TABLESPACE_NAME           FILE_NAME                                               Blk. size(Kb) smallest(Mb) - HWM currsize(Mb) savings(Mb)
------------------------- ------------------------------------------------------- ------------- ------------------ ------------ -----------
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR14.DBF                  8           16384   16384           0
USERS                     E:\ORACLE\ORADATA\FRORCL\USERS01.DBF                                8          5           10           5
FRUSER_TD                 E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FRUSER                    8            8174    8192          18
EXAMPLE                   E:\ORACLE\ORADATA\FRORCL\EXAMPLE01.DBF                              8             313     347          34
FRUSER_TD                 E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FRUSER02                  8            8152    8192          40
SYSAUX                    E:\ORACLE\ORADATA\FRORCL\SYSAUX01.DBF                               8           13746   14440         694
SYSTEM                    E:\ORACLE\ORADATA\FRORCL\SYSTEM02.DBF                               8            5966    8192        2226
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR21.DBF                  8           27433   30720        3287
UNDOTBS1                  E:\ORACLE\ORADATA\FRORCL\UNDOTBS03.DBF                              8            6193   10240        4047
KETTLE_TD                 E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\KETTLE                    8          7         8192        8185
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR23.DBF                  8            1320   10720        9400

TABLESPACE_NAME           FILE_NAME                                               Blk. size(Kb) smallest(Mb) - HWM currsize(Mb) savings(Mb)
------------------------- ------------------------------------------------------- ------------- ------------------ ------------ -----------
FRUSER_10_TD              E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FRUSER_10_1               8         15        16384       16369
FR_TD                     E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR22.DBF                  8           10825   30720       19895
UNDOTBS1                  E:\ORACLE\ORADATA\FRORCL\UNDOTBS01.DBF                              8            6084   32768       26684

已选择36行。

解释:
tablespace_name:表空间名称
file_name:数据文件名称
blk.size:block_size
smallest:数据文件可缩小到的最小大小
currentsize:数据文件当前大小
savings:数据文件可收缩的空间(其实就是currentsize-smallest的值)

执行操作:

SQL> alter database datafile 'E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR22.DBF' resize 10825M;

数据库已更改。

SQL> alter database datafile 'E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FRUSER_10_1' resize 15M;

数据库已更改。

SQL> alter database datafile 'E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR23.DBF' resize 1320M;

数据库已更改。

SQL> alter database datafile 'E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\KETTLE' resize 7M;

数据库已更改。

SQL> alter database datafile 'E:\ORACLE\PRODUCT\11.2.0\DBHOME_1\ORADATA\FR21.DBF' resize 27433M;

数据库已更改。

这样,就通过收缩数据文件来达到腾出空间的目的了

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值