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里的一个大表造成很多空间浪费,想回收空间:)

-----------------------分割线-----------------------------分割线-----------------------------分割线----------------------------

经过实践,以上方法可以处理

ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据问题。

但是如果一个表空间被多个Oracle用户使用,在导出sql文件时要指定用户,否则在执行sql文件时会报错

oracle resize什么意思,Oracle调整表空间大小resize相关推荐

  1. Oracle11g 调整表空间大小 Resize

    Oracle调整表空间大小 整表空间的语法: ALTER DATABASE DATAFILE 'X:\Your_Dbf_Path\YourDbf.DBF' RESIZE 1024M; 调整X盘符下DB ...

  2. oracle 查看表所占用的空间大小

    http://luobeng.blogbus.com/logs/36329526.html 1.查看表所占空间 SELECT   TABLESPACE_NAME,TO_CHAR(SUM(BYTES)/ ...

  3. db2 修改表空间自增长_db2自动调整表空间的大小 - 木子日京的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    db2自动调整表空间的大小 上一篇 / 下一篇  2009-02-06 11:47:19 在 DB2® 数据库系统中存在两种类型的基本表空间:系统管理的空间(SMS)和数据库管理的空间(DMS). 与 ...

  4. 【ruoyi若依】layer 重置大小/resize

    前言 略 layer 重置大小/resize 通过layer.style方法重置大小/resize. 示例 var getDefaultWidth = ()=>{return $(window) ...

  5. Oracle 查看表空间大小及其扩展

    在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段.区.块等逻辑结构.从物理结构上看是放在数据文件中.一个表空间可由多个数据文件组成.系统中默认创建的几个表空间:S ...

  6. 修改oracle超空间大小,Oracle修改表空间大小详解

    在向orale数据库导入数据的时候报 ORA-01658: 无法为表空间 XXX中的段创建 INITIAL 区错误. Oracle我在创建表空间的时候初始化大小为200M,当数据库中数据量达到这个值, ...

  7. oracle增加表空间大小

    oracle增加表空间大小 第一步:查看表空间的名字及文件所在位置: select tablespace_name, file_id, file_name, round(bytes/(1024*102 ...

  8. oracle修改表空间最大,oracle_Oracle修改表空间大小的方法,本文讲述了Oracle修改表空间大 - phpStudy...

    Oracle修改表空间大小的方法 本文讲述了Oracle修改表空间大小的方法.分享给大家供大家参考,具体如下: 1)查看各表空间分配情况 SQL> select tablespace_name, ...

  9. Oracle查看表空间大小以及修改表空间大小

    问题描述: 一.修改表空间大小 二.查看表空间大小及相关的sql 1.查看表空间的名称及大小 2.查看表空间物理文件的名称及大小 3.查看回滚段名称及大小 4.查看控制文件 5.查看日志文件 6.查看 ...

最新文章

  1. 一星期没完成Ansible任务
  2. 试验设计与matlab数据分析 下载,试验设计与MATLAB数据分析(附光盘)
  3. 避免CRM_IB 013 error message
  4. oracle 取英文排序,Oracle中中文、数字,英文混杂形式的字段进行排序的方法
  5. [css] css的user-select:all 有什么用处?
  6. 信息学奥赛一本通C++语言——1044:判断是否为两位数
  7. CSS3单词及属性大全
  8. 语言学博士、Kaggle数据分析师,她说:读研不是必选项,这4项技能学校不教
  9. iPhone SDK开发基础之自定义仪表控件
  10. KeyMob聚合致力于为广大开发者及广告聚合服务
  11. SMB扫描-Server Message Block 协议、nmap
  12. kotlin的属性委托
  13. Atitit 计算机的组成与设计 目录 1. 计算机系统是由硬件系统和软件系统两大部分组成。  1 1.1. Cpu(alu+cu ) 1 1.2. 存储内存 外村 1 1.3. Io设备 鼠标
  14. 台电 平板电脑 html,颜值与功能兼备 台电X6 Pro二合一平板评测
  15. android 截屏 简书,Android基础 截屏ScreenCapture
  16. 小程序跳转:h5避免中间页直接打开微信小程序
  17. chemdraw怎么连接两个结构_用ChemDraw连接两个结构片段的教程
  18. “管中窥豹”,MyCAT的基因缺陷
  19. MongoDB的安装与可视化工具Studio 3T的安装
  20. 智慧工厂是什么 智慧工厂方案举例 智慧工厂案例

热门文章

  1. mysql统计同一字段重复的个数
  2. Linux 输入输出重定向 2>/dev/null和>/dev/null 2>1和2>1>/dev/nul
  3. C++学习之路 | PTA乙级—— 1066 图像过滤 (15 分)(精简)
  4. linux 串口text模式安装,使用串口安装centos操作系统
  5. java打开别人的代码报错_同样的代码,别人的可以运行我的报错,求解答
  6. 用计算机进行频谱分析时,实验四-利用FFT对信号进行频谱分析1112
  7. 切换分支 如何判断 是否完成_如何判断展览公司是否专业?
  8. 三电平igbt死区时间计算_基于大功率三电平IGBT模块并联的参考设计
  9. iOS-MVVM-模式介绍
  10. python安装多个版本_Mac安装多个python版本