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多。
相关推荐
直接尝试收缩表空间时,可能会遇到错误ORA-03297:“文件包含在请求的RESIZE值以外使用的数据”。这是因为Oracle数据文件在有数据的情况下能够自动扩展,但无法自动收缩。因此,如果直接尝试修改数据文件的大小,...
但需要注意的是,如果表空间中已有数据占用到即将调整的空间,会导致错误`ORA-03297`。此时,需要先评估表空间的使用情况,确定可安全调整的大小。 4. 特殊情况处理: - 当表空间占用过大,而实际数据量较少时,...
然而,有时候在尝试收缩表空间时,可能会遇到`ORA-03297`错误,表明文件中存在超出指定收缩值的已使用数据。这时,我们需要采取以下步骤: - (1) 首先,通过查询`v$datafile`和`dba_extents`视图来确定数据文件的...
本文将深入解析一个Oracle表空间数据库文件收缩的案例,以解决因磁盘空间不足导致的数据库运行问题。 首先,我们来看一下引发问题的错误信息:“ORA-00257: archiver error. Connect internal only, until freed.”...
RESIZE` 会报错 `ora-03297`。解决这个问题的方法包括: - 估算数据文件使用情况,找出最大使用块的位置。 - 如果有表占用最后的块,可通过导出或移动到其他表空间,删除表,然后收缩。移动表空间可能需要重建...
4. 表空间管理:根据业务需求创建、扩展或收缩表空间。 5. 索引管理:创建、优化和维护索引,提高查询效率。 6. 规划和执行数据库升级:随着版本更新,适时对数据库进行升级以利用新功能和性能提升。 7. 错误日志...
- ORA错误处理:理解常见的ORA错误代码及其含义,提供解决方案。 通过Oracle 10g Administration Workshop 2的学习,你可以获得对Oracle数据库全面而深入的理解,这对于成为一名合格的数据库管理员至关重要。无论...
- ORA错误代码是识别和解决问题的重要线索。 11. **归档日志与闪回** - 归档日志用于长时间保留更改历史,便于长期恢复。 - 闪回技术允许数据库回滚到某一时间点,提供更灵活的数据恢复选项。 12. **高可用性**...
- **知识点**:总结了执行SQL语句或其他操作时可能出现的各种错误及其解决办法。 16. **配置文件** - **知识点**:包括GCWare基本配置、GCluster配置参数和GNode的配置参数等内容,指导用户如何进行详细的配置...
- 错误处理:学习如何查找和解决问题,包括跟踪文件的解读和ORA错误代码的分析。 - 日志管理:理解redo log和undo log的作用,以及在故障恢复中的关键地位。 - 实例监控:使用动态性能视图(V$视图)进行性能监控...
2. ORA错误处理:查找ORA-xxxx错误代码的官方解释,采取相应解决措施。 3. 系统稳定性检查:监控PGA、SGA、数据库连接数等,确保系统稳定运行。 4. 数据一致性检查:使用DBVERIFY工具验证数据的完整性。 六、实例与...
3. 问题修复:处理常见的Oracle错误,如ORA-00001、ORA-01555等,学习如何解决数据不一致、数据丢失等问题。 4. 性能诊断:通过AWR(Automatic Workload Repository)和ASH(Active Session History)报告,进行性能...
- 掌握如何处理常见的数据库错误和警告,如ORA-错误代码的解读。 - 定期进行数据库健康检查,包括检查数据库状态、性能指标和日志文件。 7. **高可用性与容错**: - Oracle的RAC(Real Application Clusters)...
- **数据表空间管理**:理解并管理用户和系统表空间,包括扩展、收缩和更改表空间的属性。 - **备份与恢复**:学习RMAN(Recovery Manager)进行数据库备份,理解完整备份、增量备份和差异备份的区别,并掌握如何...
5. **存储结构**:理解Oracle的表空间、段、区和块的存储层次,以及如何进行空间管理,包括数据文件的扩展和收缩,以及表和索引的分区策略。 6. **备份与恢复**:熟悉RMAN(Recovery Manager)工具,学习完整备份、...
1. 表空间管理:表空间是数据库中数据的逻辑存储单元,通过创建、扩展和收缩表空间来调整数据库的存储需求。 2. 数据文件管理:数据文件是实际存储数据的物理文件,需监控其大小和性能,必要时进行分割或移动。 3. ...
9. **表空间管理**:如何创建、扩展和收缩表空间,以及如何使用临时表空间和还原段。 10. **数据库维护**:定期运行DBA任务,如检查空间使用、清理无用对象、优化表和索引、维护重做日志。 11. **高可用性与容错**...
管理脚本可以帮助监控表空间使用情况,创建新的表空间,扩展或收缩已有的表空间,以及处理空间不足的问题。 6. **归档与日志管理**:Oracle的日志系统是保证事务一致性和数据库可恢复性的重要部分。脚本可能包括...