删除无用DBF文件,无法启动ORACL

本文详细记录了在使用Oracle数据库时遇到的问题,包括数据库无法启动、数据文件无法标识/锁定等故障,并提供了相应的解决步骤。通过执行SQL命令进行数据库装载、恢复数据文件、脱机数据文件等操作,最终成功解决了问题。
Microsoft Windows [版本 6.1.7600]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\守望幸福>set oracle_sid=orcl

C:\Users\守望幸福>sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 12月 19 09:55:54 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> shutdown immediate
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             243272580 bytes
Database Buffers          360710144 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 8 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 8: 'D:\TBS01.DBF'


SQL> startup
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
SQL> shutdown immediate
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             243272580 bytes
Database Buffers          360710144 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 8 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 8: 'D:\TBS01.DBF'


SQL> SHUTDOWN IMMEDIATE
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             243272580 bytes
Database Buffers          360710144 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 8 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 8: 'D:\TBS01.DBF'


SQL> recover datafile 'd:\TBS01.DBF'
ORA-00283: 恢复会话因错误而取消
ORA-01110: 数据文件 8: 'D:\TBS01.DBF'
ORA-01157: 无法标识/锁定数据文件 8 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 8: 'D:\TBS01.DBF'


SQL> select name from v$datafile;

NAME
-------------------------------------------------------------------------------

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\MYSPACE.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DZYX.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\JYLSXT.DBF
D:\TBS01.DBF
D:\TBS02.DBF
D:\TBS03.DBF
D:\TBS04.DBF

已选择11行。

SQL> alter database datafile 6 offline;
alter database datafile 6 offline
*
第 1 行出现错误:
ORA-01145: 除非启用了介质恢复, 否则不允许立即脱机


SQL> ALTER DATABASE DATAFILE 'D:\GH_01.DBF' OFFLINE DROP;
ALTER DATABASE DATAFILE 'D:\GH_01.DBF' OFFLINE DROP
*
第 1 行出现错误:
ORA-01516: 不存在的日志文件, 数据文件或临时文件 "D:\GH_01.DBF"


SQL> alter database datafile 'D:\TBS01.DBF'OFFLINE DROP;

数据库已更改。

SQL> shutdown immediate;
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             243272580 bytes
Database Buffers          360710144 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 9 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 9: 'D:\TBS02.DBF'


SQL>  alter database datafile 'D:\TBS02.DBF'OFFLINE DROP;

数据库已更改。

SQL>  alter database datafile 'D:\TBS03.DBF'OFFLINE DROP;

数据库已更改。

SQL>  alter database datafile 'D:\TBS04.DBF'OFFLINE DROP;

数据库已更改。

SQL> shutdown immediate;
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             243272580 bytes
Database Buffers          360710144 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL>

 

### Oracle数据库备份文件过大的原因及优化方法 #### 一、RMAN备份文件较大的常见原因 RMAN(Recovery Manager)作为Oracle官方推荐的物理备份工具,在某些情况下可能会生成比实际数据量更大的备份文件。主要原因包括但不限于以下几点: 1. **高水位线(High Water Mark, HWM)的影响** 即使某个数据块当前为空,但如果它曾经被使用过并超过了高水位线,则RMAN仍会将其视为需要备份的内容[^3]。 2. **未使用的空间** 如果表空间中有大量分配但未使用的空间,这些空闲的数据块也会被纳入到RMAN的备份范围中。 3. **增量备份中的冗余数据** 在执行增量备份时,如果存在频繁更新的小部分数据变化,可能导致多次重复记录相同的变化集,从而增加备份体积[^3]。 4. **归档日志的增长** RMAN不仅备份数据文件,还会涉及控制文件和归档日志。当事务活动频繁时,归档日志数量激增也可能显著增大整体备份规模[^3]。 --- #### 二、针对RMAN备份文件过大的优化措施 以下是几种有效的解决方案来减少RMAN备份文件的大小: 1. **启用压缩功能** - 可以在创建备份过程中开启`COMPRESSION`参数以减小最终输出文件尺寸。 ```bash BACKUP AS COMPRESSED BACKUPSET DATABASE; ``` 此命令会在不损失任何信息的前提下自动对目标数据实施高压缩率处理。 2. **清理无用的历史数据** - 定期运行`CROSSCHECK`检查陈旧或失效的备份条目,并删除不再需要的部分。 ```bash DELETE OBSOLETE; CROSSCHECK BACKUP; ``` 3. **调整保留策略** - 设置合理的恢复窗口(`RECOVERY WINDOW`)或者基于时间戳(`UNTIL TIME`)限定保存期限内的有效副本数目,超出此范围外的老版本会被自动清除。 ```bash CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; ``` 4. **分区管理与局部备份** - 对于超大规模数据库而言,可以考虑按需仅选取特定时间段内活跃区域做针对性保护而非全盘扫描整个结构体。 ```sql ALTER TABLESPACE users BEGIN BACKUP; -- 开始指定表空间的手动备份流程 cp /oradata/users01.dbf /backup/ ; -- 执行操作系统层面复制操作 ALTER TABLESPACE users END BACKUP; -- 结束该阶段作业 ``` 5. **切换至更高效的算法** - 新版Oracle支持多种高级别的压缩技术比如ZLIB,BZIP2等等,默认选用哪种取决于具体环境配置情况;尝试更改默认设置也许会有意想不到的效果提升。 ```bash CONFIGURE COMPRESSION ALGORITHM 'BASIC'; OR CONFIGURE COMPRESSION ALGORITHM 'HIGH' ; ``` --- #### 三、EXPDP逻辑备份的优势及其局限性对比分析 除了传统的RMAN之外,还有另外一种称为Data Pump Export(简称expdp)的方式用于制作逻辑层面上映射关系型实体模型之间的迁移工作。相比前者来说具有以下几个特点: - 更加灵活可控——允许精确挑选哪些对象参与其中; - 自带内置压缩机制——无需额外依赖第三方插件即可实现一定程度上的瘦身效果[^2]; 然而值得注意的是由于其本质区别决定了无法完全取代后者成为主流方案之一因为毕竟侧重领域不同各有千秋适用场景也有所差异因此建议视具体情况而定择优录取最为合适不过了! --- ### 总结 综上所述,对于面临RMAN备份文件过大困扰的企业级用户群体来讲,采取适当的技术手段加以干预是非常必要的举措之一。无论是单纯依靠增强现有架构内部潜力挖掘还是引入外部辅助资源配合协作都能够达到预期目的即降低存储成本提高效率的同时保障业务连续性和安全性不受影响。 ```bash BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG; CONFIGURE DEVICE TYPE DISK PARALLELISM 4; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值