免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1869 | 回复: 5
打印 上一主题 下一主题

【求助:紧急】在线等 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-27 08:49 |只看该作者 |倒序浏览
Oracle版本:
-
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE    11.1.0.7.0      Production
TNS for Linux: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production

背景:
(1)本版本使用了祼设备;
(2)在创建数据库时,使用了大文件;
(3)现在想扩展其中的一个表空间,提示信息如下:
SQL> alter tablespace OMCDB_TBS resize 2100M;
alter tablespace OMCDB_TBS resize 2100M
*
ERROR at line 1:
ORA-03297: file contains used data beyond requested RESIZE value


(3)查询表空间信息时,如下所示:
SQL> select tablespace_name,max_size,status,bigfile from dba_tablespaces;

TABLESPACE_NAME                  MAX_SIZE STATUS    BIG
------------------------------ ---------- --------- ---
SYSTEM                         2147483645 ONLINE    NO
SYSAUX                         2147483645 ONLINE    NO
UNDOTBS1                       2147483645 ONLINE    NO
TEMP                           2147483645 ONLINE    NO
USERS                          2147483645 ONLINE    NO
OMCDB_TBS                      2147483645 ONLINE    YES
OMCLOGDB_TBS                   2147483645 ONLINE    YES
OMCSMDB_TBS                    2147483645 ONLINE    YES
OMCTMDB_TBS                    2147483645 ONLINE    YES
OMCEAMDB_TBS                   2147483645 ONLINE    YES
OMCTEMPDB_TBS                  2147483645 ONLINE    YES

TABLESPACE_NAME                  MAX_SIZE STATUS    BIG
------------------------------ ---------- --------- ---
FMDB_TBS                       2147483645 ONLINE    YES
PMCOMDB_TBS                    2147483645 ONLINE    YES
PMDB_TBS                       2147483645 ONLINE    YES
SWMDB_TBS                      2147483645 ONLINE    YES
ITFNDB_TBS                     2147483645 ONLINE    YES
FARSDB_TBS                     2147483645 ONLINE    YES
CMEDB_TBS                      2147483645 ONLINE    YES

坐等高手解决啊,谢谢!

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
2 [报告]
发表于 2011-04-27 10:42 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2011-04-27 10:58 |只看该作者
哥们,你在折磨我啊,我们公司目前能上的网站都是技术性的,你提供的网址上不了啊!

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
4 [报告]
发表于 2011-04-27 12:44 |只看该作者
回复 3# wxc2011


    ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据(2007-08-09 16:09:30) 转载

标签: it/科技分类: ora错误分析

SQL> ALTER DATABASE DATAFILE 'D:\ORACLE\ORADATA\ICAPP\IC_DATA6.ORA' RESIZE 300m;
ALTER DATABASE DATAFILE 'D:\ORACLE\ORADATA\ICAPP\IC_DATA6.ORA' RESIZE 300m
*
ERROR 位于第 1 行:
ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据

但是
SQL>select d.filename,d.file_id,d.bytes/1024/1024 as d_byte,sum(f.bytes/1024/1024) as free_byte
2   from dba_data_files d,dba_free_space f
3   where d.file_id=f.file_id and d.file_id=18
4   group by d.file_name,d.file_id,d.bytes/1024/1024;
FILE_NAME                             FILE_ID    D_BYTE    FREE_BYTE
---------------------------------    ---------- ---------- ----------
D:\ORACLE\ORADATA\ICAPP\IC_DATA6.ORA     18       1536     1482.0625
可以看到实际上ID=18的文件只使用了大概50M左右,只是数据分布在(按一定的顺序)50M甚至在300M以外的地方,所以这里虽然看到只使用了约50M空间,但是却不能resize datafile.
为此,要改小数据文件,我们先要对文件上的表和索引移动一下位置,具体做法如下:
1移动表前先对表空间做整理
SQL>alter tablespace ic_data coalesce;
2在dba_extents找到与ID=18的数据文件相关的表及索引
SQL>select segment_name,partition_name,segment_type
2   from dba_extents
3   where file_id=18;
3对id=18的文件上的表和索引移动位置
SQL> set heading off
SQL> set echo off
SQL> set feedback off
SQL> set termout on
SQL> spool d:\aaa.sql

//移动表
SQL>select DISTINCT 'alter table '|| segment_name || ' move tablespace test_space;' from dba_extents where segment_type='TABLE' and file_id=18;
//移动索引
SQL>select DISTINCT 'alter index '|| segment_name || ' rebuild tablespace test_space;' from dba_extents where segment_type='INDEX' and file_id=18;
//移动分区表
SQL>select DISTINCT 'alter table '|| segment_name || ' move partition '|| partition_name || ' tablespace test_space;' from dba_extents where segment_type='TABLE PARTITION' and file_id=18;

//移动分区索引
SQL>select DISTINCT 'alter index '|| segment_name || ' rebuild partition '|| partition_name || ' tablespace test_space;' from dba_extents where segment_type='INDEX PARTITION' and file_id=18;
SQL>spool off
然后执行aaa.sql,注意保证test_space有足够的空间容纳这些数据,
其实可以不移动所有的数据,但是总的测验是不是移动了300M以外的数据,所以还是移动所有数据的方便
4、这样移动了所有的数据以后就可以对datafile resize了

SQL> c/9/3
  1* ALTER DATABASE DATAFILE 'D:\ORACLE\ORADATA\ICAPP\IC_DATA6.ORA' RESIZE 300M
SQL> /

数据库已更改。
5、把原来表空间ic_data中的数据再移动回来,修改aaa.sql中的表空间名为ic_data再执行,然后drop tablespace test_space including contents and datafiles。

以上操作起源于我删除了database里的一个大表造成很多空间浪费,想回收空间

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
5 [报告]
发表于 2011-04-27 12:44 |只看该作者
原来 我们也上不了新浪的BLOG。不知道最近换了个代理服务器就能上了。

论坛徽章:
0
6 [报告]
发表于 2011-04-27 14:40 |只看该作者
本帖最后由 study_Oracle111 于 2011-04-27 14:44 编辑

错误信息上面不是说了吗,RESIZE值需要调整。到初始化参数文件中找到这个参数,看看是怎么设置的。看能不能使用alter修改一下,如果不行,就关了实例,修改参数,再启动。
再怎么说也要按照Oracle的操作提示做,哪有那么多说的。
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.

估计是你那2.1G太大了,超过RESIZE的设置。修改RESIZE的初始化设置,是解决这个问题的关键。
故障诊断要走正当途径,先看官方文档,看看事情的根源是什么,如果遇到事情就到这急等,不定走多上弯路那。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP