oracle 修改表名 数据会在吗_修改oracle数据文件大小 报错:ORA-03297

修改oracle数据文件大小 报错:ORA-03297

数据库中SXSJ的表空间SXS文件在创建的时候由于达到最大块空间,增加了一个SXSJ1的数据文件,但是增加时直接给的文件大小是30G,过于占用空间,要修改为10G,但是在数据库中执行修改语句报一下错误:

Failed to commit: ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据

0a83bcc318708eed73bc104f87465641.png

方法/步骤

1. 查询oracle本次修改的数据文件及其编号。

SQL语句如下:select file#,name from v$datafile;

执行后可以看到本次要修改的SXSJ1的文件对应的编号为:17

ad6fbb041eff39801d92e5feb5ff2ecf.png

2. 查找该数据文件的最大块号。语句如下:

select max(block_id) from dba_extents where file_id=17;

查询到的最大块为:2205952

41037e7403d2898971408ce303ca5a56.png

3. 显示SXSJ表空间每个数据块的大小。

语句如下: select tablespace_name,blocK_size,status,contents from dba_tablespaces where tablespace_name='SXSJ'数据库中得到的结果为8192,就是8K。

41be802ee2cb3cdcc89c32533a41f12e.png

4. 计算该数据块占用的物理空间

语句如下:select 2205952*8/1024 from dual;

执行结果为: 17234,就是16个G左右

PS这里的2205952就是步骤②中的结果

7d7501cb2b72c0cb74d18c832ffa7e8b.png

5. 然后我们知道目前用了16G多,我们就可以把数据文件大小Resize到16G多一点 ,就到20G吧。

数据文件修改文件大小语句如下:ALTER DATABASE DATAFILE 'D:appAdministratororadataLZBDCSVRSXSJ1' RESIZE 20G;

执行后命令成功执行

fdbc202df3de4d852e4c0cab4599c338.png

注意事项

· 说明:之所以执行失败是因为当初我们执行修改数据文件为10G,但是实际数据已经占用了16G多了,不能修改为10G,只能比实际值大些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值