风哥教程

培训 . 交流 . 分享
Make progress together!

Oracle数据库回收数据文件空间时报ORA-03297的解决方法

[复制链接]
内容发布:风哥| 发布时间:2015-10-28 11:36:39

Oracle回收数据文件空间时报ORA-03297的解决方法
ORA-03297: file contains used data beyond requested RESIZE value


当我们回收数据库空间时,常用的方法是:


ALTER DATABASE DATAFILE '/oracle/u01/app/oracle/oradata/EMREP/user.dbf' RESIZE  3M


但一执行报以下错误

ORA-03297: file contains used data beyond requested RESIZE value
ORA-03297 file contains used data beyond requested RESIZE value
Cause: Some portion of the file in the region to be trimmed is currently in use by a database object.
Action: Drop or move segments containing extents in this region prior to resizing the file, or choose a resize value such that only free space is in the trimmed.

使用如下脚本可以获得分配到高位top_blocks的对象信息

SQL> select distinct owner,segment_name,segment_type from dba_extents where file_id = &file_id and (block_id + &top_blocks) >(select max(block_id) from dba_extents where file_id=&file_id)

top_blocks 可以通过以下方法得出;

SQL> select file#,name from v$datafile;                 

     FILE# NAME

---------- --------------------------------------------------
         1 /oracle/u01/app/oracle/oradata/EMREP/system.dbf
         2 /oracle/u01/app/oracle/oradata/EMREP/undotbs.dbf
         3 /oracle/u01/app/oracle/oradata/EMREP/sysaux.dbf
         5 /oracle/u01/app/oracle/oradata/EMREP/user.dbf

SQL>select max(block_id) from dba_extents where file_id=12;
MAX(BLOCK_ID)
-------------
2913

SQL> show parameter db_block_size;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_block_size                        integer     8192

SQL>select 2913*8/1024 from dual;


2913*8/1024
-------------
  22.7578125


该块位于22M与23M之间

通过上面sql查出来的对象信息

SQL> select distinct owner,segment_name,segment_type from dba_extents where file_id = &file_id and (block_id + &top_blocks) >(select max(block_id) from dba_extents where file_id=&file_id)


OWNER      SEGMENT_NA SEGMENT_TYPE
---------- ---------- ------------------
SCOTT      T2         TABLE
SCOTT    M1       TABLE

file_id=5
top_blocks=2913


移动表空间,回收高水位
alter table t2 move tablespace users;
alter table m1 move tablespace users;


重新更改测试
ALTER DATABASE DATAFILE '/oracle/u01/app/oracle/oradata/EMREP/user.dbf' RESIZE  3M
Database altered.


对于分区表信息:

ALTER TABLE "TEST"."TB_ACCESS"
    MOVE PARTITION  "TB_ACCESS_P200608"
    TABLESPACE "new_tablespace_name"


再进行回收表空间

整合出来的sql语句如下:

select distinct owner, segment_name, segment_type,tablespace_name
  from dba_extents
where file_id =
       (select file#
          from v$datafile
         where name = '/oradata/ora9i/GAME_LARGE_2006_4_1.dbf')
   and (block_id + (select max(block_id)*8/1024 from dba_extents where file_id=(select file#
                  from v$datafile
                 where name = '/oradata/ora9i/GAME_LARGE_2006_4_1.dbf'))) >
       (select max(block_id)
          from dba_extents
         where file_id =
               (select file#
                  from v$datafile
                 where name = '/oradata/ora9i/GAME_LARGE_2006_4_1.dbf'));



上一篇:server2012R2怎么安装10G64位的数据库
下一篇:Oracle逻辑导出时出现EXP ORA-01455故障排查
专业提供Oracle/MySQL/NoSQL/Linux数据库培训与技术支持服务,QQ号:113257174
关注风哥教程微信公众号itpux_com  ,了解本站最新技术资料的分享.

欢迎加QQ群,提供超多高质量Oracle/Unix/Linux技术文档与视频教程的下载。

Oracle/MySQL/Linux群4-5:189070296  150201289  
Oracle/MySQL/Linux群6-8:244609803   522261684   522651731
备注:请勿重复加群,另请注明 from itpux
回复

使用道具 举报

内容发布:mianbao| 发布时间:2021-11-13 21:49:04
又学到了,非常感谢!!
回复 支持 反对

使用道具 举报

内容发布:itpremier| 发布时间:2021-11-9 17:25:37

谢谢楼主分享  受益匪浅
本文地址:【新提醒】Oracle数据库回收数据文件空间时报ORA-03297的解决方法_风哥教程
本文地址:http://www.fgedu.net/bbs/thread-3297-1-1.html
回复 支持 反对

使用道具 举报

内容发布:ciscolai| 发布时间:2021-10-28 06:49:24
谢谢楼主分享 受益匪浅
回复 支持 反对

使用道具 举报

内容发布:ai20110304| 发布时间:2020-6-13 17:51:58
受教了。。。谢谢风哥分享
回复 支持 反对

使用道具 举报

内容发布:安城青石| 发布时间:2018-8-15 23:15:16
每篇都很实用,真是太棒了
回复 支持 反对

使用道具 举报

内容发布:stormzhai| 发布时间:2016-7-5 21:04:53
ddddddddddddddddddddddddddd
回复 支持 反对

使用道具 举报

内容发布:大内小白| 发布时间:2015-10-29 11:26:31
谢谢楼主分享  受益匪浅
回复 支持 反对

使用道具 举报

1框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门文章教程

  • Oracle19c数据库发布与下载地址
  • 风哥Oracle数据库巡检工具V1.0(附2.6网页
  • Oracle Database 12c 数据库100个新特性与
  • Oracle 12cR2 九大新功能全面曝光_详解云数
  • 实战PHP与MySQL权威指南PDF电子书下载
  • 大数据技术与应用入门培训教程(电子版下载
快速回复 返回顶部 返回列表