重庆oracle认证培训机构

新闻分类

产品分类

热门关键词

联系我们

企业名称:重庆科禄德科技有限公司

联系人:冷老师

手机:17754917523

邮箱:93865813@qq.com

网址:www.cqora.com

地址:重庆石桥铺高创锦业

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

您的当前位置: 首 页 >> 新闻资讯 >> 常见问题

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

发布日期:2021-12-04 作者: 点击:

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

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

ALTER  DatabaSe  DATAFE  '/Oracle/u01/app/Oracle/ora  DATA/EMRep/user。DBF的RESZE  3M

但一执行报以下错误

ORA-03297:文件包含超出请求的调整大小值的已用数据

ORA-03297文件包含超出请求的调整大小值的已用数据

原因:要修剪的区域中文件的某些部分当前正被数据库对象使用。

操作:在调整文件大小之前,删除或移动该区域中包含范围的段,或者选择一个调整大小的值,以便在修剪后的区域中只有可用空间。

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

结构化查询语言从数据库管理员扩展中选择不同的所有者、段名、段类型,其中文件id=文件id和(块id  top_blocks)(从数据库管理员扩展中选择max(block_id),其中file_id=file_id)

顶部_块可以通过以下方法得出;

结构化查询语言从五美元数据文件中选择文件#、名称;

文件#名称

- -

1/Oracle/u01/app/Oracle/ora数据/EMrep/系统。DBF

2/Oracle/u01/app/Oracle/ora数据/EMrep/撤销待定。DBF

3/Oracle/u01/app/Oracle/ora  data/EMrep/sysaux。DBF

5/Oracle/u01/app/Oracle/ora数据/EMrep/用户。DBF

文件从数据库管理员扩展中选择max(block_id),其中file  _ id=12

Z大值(块标识)

-

2913

SQL显示参数数据库块大小

名称类型值

- - -

数据库块大小整数8192

从双重的中选择2913 * 8/1024;

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'));


本文网址:http://www.cqora.com/news/836.html

关键词:重庆Oracle认证,重庆Oracle认证培训,重庆Oracle认证培训班

Z近浏览:

报名咨询

点击咨询报名

QQ群

赛烽达技术群

冷老师

17754917523

加微信咨询

张老师微信.jpg

93865813@qq.com