`
chengyue2007
  • 浏览: 1493679 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

收缩表空间-ORA-03297错误解决

    博客分类:
  • DBA
 
阅读更多

1.查看数据文件的大小

 

select tablespace_name ,sum(bytes) / 1024 / 1024 as MB,file_name

from dba_data_files

where  tablespace_name = 'APPS_UNDOTS1'

group by tablespace_name,file_name;

 

2.减少文件的大小

ALTER DATABASE DATAFILE 'D:\ora_tablespace\GCOMM2.dbf' RESIZE 5000M;

 

提示:ORA-03297: file contains used data beyond requested RESIZE value

 

 

原因1:压缩表空间大小,最小必须是该表空间目前最大块段的大小

原因2:表的初始大小分配的太大

一、原因1,可以采用移动表空间的方法来减小block_id

 

 

--a)查找file_id

select tablespace_name ,sum(bytes) / 1024 / 1024 as MB,file_name,file_id

from dba_data_files

where  tablespace_name = 'APPS_UNDOTS1'

group by tablespace_name,file_name,file_id;

 

--b)找出目前APPS_UNDOTS1表空间,所要修改文件的 最大的block_id

 

select max(block_id) from dba_extents where tablespace_name = 'APPS_UNDOTS1' and  file_id=379;

 MAX(BLOCK_ID)

 -----------

 1310577

--c)计算目前最大块的段所占用的空间(该数据库的block大小是8092)

show parameter db_block_size;

结果为8192,就是8K。

然后计算所有数据块占用的物理空间

select 1310577*8/1024 from dual;

10238.8828125

结果为10238.8828125M,就是10G多

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

ALTER DATABASE DATAFILE 'D:\ORADATA\ECSS20' RESIZE 10240M;

 

二、征对原因2可通过减小表或索引的初始化大小来收缩表空间
--征对块大的表 减小其初始分配大小
SELECT DISTINCT 'alter table ' || segment_name ||
                ' MOVE STORAGE(INITIAL 1M) ;'
  FROM dba_extents
 WHERE tablespace_name = 'GCOMM2'
   AND segment_type = 'TABLE'
   AND file_id = 11
   AND block_id > 30336;

--征对块大的索引减小其初始分配大小
SELECT DISTINCT 'alter index ' || segment_name ||
                ' REBUILD  tablespace GCOMM2 storage(initial 64K next 1M pctincrease 0);'
  FROM dba_extents
 WHERE tablespace_name = 'GCOMM2'
   AND segment_type = 'INDEX'
   AND file_id = 11
   AND block_id > 30336;

然后再收缩表空间
ALTER DATABASE DATAFILE 'D:\ora_tablespace\GCOMM2.dbf' RESIZE 1000M;
执行成功,原先为7G多。

 

分享到:
评论

相关推荐

    Oracle 表空间 收缩

    直接尝试收缩表空间时,可能会遇到错误ORA-03297:“文件包含在请求的RESIZE值以外使用的数据”。这是因为Oracle数据文件在有数据的情况下能够自动扩展,但无法自动收缩。因此,如果直接尝试修改数据文件的大小,...

    Oracle表空间操作详解

    但需要注意的是,如果表空间中已有数据占用到即将调整的空间,会导致错误`ORA-03297`。此时,需要先评估表空间的使用情况,确定可安全调整的大小。 4. 特殊情况处理: - 当表空间占用过大,而实际数据量较少时,...

    Oracle表空间操作详解.pdf

    然而,有时候在尝试收缩表空间时,可能会遇到`ORA-03297`错误,表明文件中存在超出指定收缩值的已使用数据。这时,我们需要采取以下步骤: - (1) 首先,通过查询`v$datafile`和`dba_extents`视图来确定数据文件的...

    Oracle表空间数据库文件收缩案例解析

    本文将深入解析一个Oracle表空间数据库文件收缩的案例,以解决因磁盘空间不足导致的数据库运行问题。 首先,我们来看一下引发问题的错误信息:“ORA-00257: archiver error. Connect internal only, until freed.”...

    Oracle表空间操作详解.docx

    RESIZE` 会报错 `ora-03297`。解决这个问题的方法包括: - 估算数据文件使用情况,找出最大使用块的位置。 - 如果有表占用最后的块,可通过导出或移动到其他表空间,删除表,然后收缩。移动表空间可能需要重建...

    Oracle数据库日常管理手册_项目现场篇.docx

    4. 表空间管理:根据业务需求创建、扩展或收缩表空间。 5. 索引管理:创建、优化和维护索引,提高查询效率。 6. 规划和执行数据库升级:随着版本更新,适时对数据库进行升级以利用新功能和性能提升。 7. 错误日志...

    oracle 10gAdministration Workshop 2

    - ORA错误处理:理解常见的ORA错误代码及其含义,提供解决方案。 通过Oracle 10g Administration Workshop 2的学习,你可以获得对Oracle数据库全面而深入的理解,这对于成为一名合格的数据库管理员至关重要。无论...

    oracle相关问题(总结)

    - ORA错误代码是识别和解决问题的重要线索。 11. **归档日志与闪回** - 归档日志用于长时间保留更改历史,便于长期恢复。 - 闪回技术允许数据库回滚到某一时间点,提供更灵活的数据恢复选项。 12. **高可用性**...

    GBase-8a MPP Cluster产品技术手册-D.docx

    - **知识点**:总结了执行SQL语句或其他操作时可能出现的各种错误及其解决办法。 16. **配置文件** - **知识点**:包括GCWare基本配置、GCluster配置参数和GNode的配置参数等内容,指导用户如何进行详细的配置...

    oracle经典实战

    - 错误处理:学习如何查找和解决问题,包括跟踪文件的解读和ORA错误代码的分析。 - 日志管理:理解redo log和undo log的作用,以及在故障恢复中的关键地位。 - 实例监控:使用动态性能视图(V$视图)进行性能监控...

    Oracle 11G 日常维护手册

    2. ORA错误处理:查找ORA-xxxx错误代码的官方解释,采取相应解决措施。 3. 系统稳定性检查:监控PGA、SGA、数据库连接数等,确保系统稳定运行。 4. 数据一致性检查:使用DBVERIFY工具验证数据的完整性。 六、实例与...

    深入解析Oracle--DBA入门、进阶与诊断案例

    3. 问题修复:处理常见的Oracle错误,如ORA-00001、ORA-01555等,学习如何解决数据不一致、数据丢失等问题。 4. 性能诊断:通过AWR(Automatic Workload Repository)和ASH(Active Session History)报告,进行性能...

    D17092GC30-Oracle Database 10g-Administration Workshop II

    - 掌握如何处理常见的数据库错误和警告,如ORA-错误代码的解读。 - 定期进行数据库健康检查,包括检查数据库状态、性能指标和日志文件。 7. **高可用性与容错**: - Oracle的RAC(Real Application Clusters)...

    操作 Oracle 9i 数据库

    - **数据表空间管理**:理解并管理用户和系统表空间,包括扩展、收缩和更改表空间的属性。 - **备份与恢复**:学习RMAN(Recovery Manager)进行数据库备份,理解完整备份、增量备份和差异备份的区别,并掌握如何...

    最新的OCP考试模拟器1Z0-043

    5. **存储结构**:理解Oracle的表空间、段、区和块的存储层次,以及如何进行空间管理,包括数据文件的扩展和收缩,以及表和索引的分区策略。 6. **备份与恢复**:熟悉RMAN(Recovery Manager)工具,学习完整备份、...

    oracle数据库管理与维护技术手册.rar

    1. 表空间管理:表空间是数据库中数据的逻辑存储单元,通过创建、扩展和收缩表空间来调整数据库的存储需求。 2. 数据文件管理:数据文件是实际存储数据的物理文件,需监控其大小和性能,必要时进行分割或移动。 3. ...

    orscle 经验总结

    9. **表空间管理**:如何创建、扩展和收缩表空间,以及如何使用临时表空间和还原段。 10. **数据库维护**:定期运行DBA任务,如检查空间使用、清理无用对象、优化表和索引、维护重做日志。 11. **高可用性与容错**...

    Oracle DBA脚本大全

    管理脚本可以帮助监控表空间使用情况,创建新的表空间,扩展或收缩已有的表空间,以及处理空间不足的问题。 6. **归档与日志管理**:Oracle的日志系统是保证事务一致性和数据库可恢复性的重要部分。脚本可能包括...

Global site tag (gtag.js) - Google Analytics