Email: service@parnassusdata.com 7 x 24 online support!
Oracle 如何故障排除并解决一个ORA-1110错误 ORA-01110: 数据文件 : ''
如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com
ORA-01110: 数据文件 : ''
适用于:
Oracle Database – Enterprise Edition – 版本9.0.1.0到 11.2.0.3 [Release 9.0.1到11.2]
本文信息适用于任何平台。
目标
本文针对遇到ORA-01110DBA,指明正确反向。
根据后续错误,几个note被引用。
如果在阅读正确note后DBA 无法解决问题,下面还提供了收集诊断信息的脚本。该脚本的输出应被上传到服务请求。
解决方案
定义
Error: ORA-01110
Text: datafile <name>: <str>
——————————————————————————-
原因:本信息报告涉及其他信息的文件名。
操作:参见相关信息获取问题描述。
ORA-01110 显示了Oracle访问有问题的物理数据文件。
ORA-01110 伴随一个或多个信息。这些可能是Oracle 指定的信息或与操作系统相关。
第一个目标是在解决这一问题之前确认遇到的所有错误信息。
下面是一个可能伴随ORA-01110的常见错误列表。
ORA-01157 “cannot identify datafile <name> – file not found”
ORA-01578 “ORACLE data block corrupted (file # %s, block # %s)”
ORA-00376 “file <name> cannot be read at this time”
ORA-01194 “file <name> needs more recovery to be consistent”
ORA-01547 “warning: RECOVER succeeded but OPEN RESETLOGS would get error”
ORA-01135 “file %s accessed for DML/query is offline”
- 解决ORA-01157 (cannot identify datafile <name> – file not found)
– 有问题的数据文件是否在os级别存在?
如果答案是肯定的,可以确保它是有效的。检查文件的权限和状态。对文件运行RMAN DBV或RMAN验证可能提供额外的诊断。
如果不是,定位文件或从备份中还原。
- 解决ORA-01578 (ORACLE data block corrupted (file # %s, block # %s))
– 识别标记为corrupted的对象:
SELECT tablespace_name, segment_type, owner, segment_name
FROM dba_extents
WHERE file_id = &AFN
and &BL between block_id AND block_id + blocks – 1;
– 确认损坏是否广泛扩散
Options to scan DB ( using DBV or RMAN)
% dbv userid=<username/password> file=<full ptah to corrupted file> blocksize=<tablespace block size>
RMAN> backup validate check logical database; ( this will scan the entire Database)
RMAN> backup validate check logical tablespace <TS_NAME> ; ( this will scan the entire tablespace listed)
RMAN> backup validate check logical datafile X; (Where X is the datafile in question)
When either RMAN command is complete review:
SQL> select * from v$database_block_corruption ( This will list corrupted blocks found within DB)
– 以下说明提供解决损坏的途径:
Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g/11g (Doc ID 28814.1)
- 解决ORA-00376 (file <name> cannot be read at this time)
– 如果文件是物理存在,则确保权限和文件大小如预期
– 检查文件是否联机 – 查看v$recover_file。如果该文件脱机,假设你在ARCHIVELOG模式下运行,你将需要恢复并联机它。
– 需要Oracle 支持,请上传下面脚本的结果。
- 解决ORA-01194 (file <name> needs more recovery to be consistent) & ORA-01547 (warning: RECOVER succeeded but OPEN RESETLOGS would get error)
– 该错误表明恢复仍可能有不一致状态的文件。这可能是由于数据文件在不同时间被还原,我们在备份后没有应用足够的归档日志。
– 至少,联机备份过程中生成的所有存档日志必须在恢复期间被应用。
-
解决ORA-01135 (file %s accessed for DML/query is offline)
– 文件处于脱机,并且你必须设为联机来访问
示例:
SQL> recover datafile ‘%s’;
SQL> alter database datafile ‘%s’ online;
需要Oracle support帮助诊断问题,请提供以下:
请提供服务请求的输出结果。(上传recovery_info.txt)
set pagesize 20000
set linesize 180
set pause off
set serveroutput on
set feedback on
set echo on
set numformat 999999999999999
Spool recovery_info.txt
select substr(name, 1, 50), status from v$datafile;
select substr(name,1,40), recover, fuzzy, checkpoint_change# from v$datafile_header;
select GROUP#,substr(member,1,60) from v$logfile;
select * from v$recover_file;
select distinct status from v$backup;
select hxfil FILENUMBER,fhsta STATUS,fhscn SCN,fhrba_Seq SEQUENCE from x$kcvfh;
select distinct (fuzzy) from v$datafile_header;
spool off
exit