Email: service@parnassusdata.com 7 x 24 online support!

    You are here

    • You are here:
    • Home > Blogs > PDSERVICE's blog > Oracle 如何故障排除并解决一个ORA-1110错误 ORA-01110: 数据文件 : ''

Oracle 如何故障排除并解决一个ORA-1110错误 ORA-01110: 数据文件 : ''

Oracle 如何故障排除并解决一个ORA-1110错误 ORA-01110: 数据文件 : ''

 

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com

ORA-01110: 数据文件 : ''

 oerr ora 1110
01110, 00000, "data file %s: '%s'"
// *Cause:  Reporting file name for details of another error. The reported
//          name can be of the old file if a data file move operation is
//          in progress.
// *Action: See associated error message.

 

适用于:

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