如何诊断和解决一个ORACLE的 ORA-1110 错误

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

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

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

 

 

 

适用于

Oracle数据库 –企业版 – 9.0.1.0 到11.2.0.3版本 [Release 9.0.1 to 11.2]
该文档使用于任何平台

目标

本文的目标是帮助数据库管理员遇到ORA-01110时,指导他们往正确的方向。

一些说明参照后面的错误。

如果DBA无法读取相应的说明后无法解决这个问题,下面提供一个脚本来收集诊断信息、。此脚本的输出应被上传到服务请求。

解决方案

定义:

Error: ORA-01110
Text: datafile <name>: <str>
——————————————————————————-
Cause : This message reports the filename involved with other messages.
Action: See the associated messages for a description of the problem.

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”

  • Addressing an ORA-01157 (cannot identify datafile <name> – file not found)

-有问题的这个文件在操作系统级别上存在吗?

如果是确保它是有效的。检查文件的权限和状态。运行该文件的RMAN DBV或RMAN验证,这可能提供额外的诊断。

如果没有找到文件或从备份中恢复。

  • Addressing an ORA-01578 (ORACLE data block corrupted (file # %s, block # %s))

-识别标记为损坏的对象:

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;

      -确定是否大范围的损坏:

       选择扫描数据库 ( 用DBV或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 ( 这将列出数据库内损坏的坏块)

      -下面的说明提供解决损坏的途径:

      Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g/11g (Doc ID 28814.1)

  • Addressing an ORA-00376 (file <name> cannot be read at this time)

      -如果该文件是物理存在,则确保权限和文件的大小和预期的一样。

      -请检查该文件是否在线 – 看v$recover_file。如果该文件是离线,您将需要恢复和把文件设置成在线,假设你在归档模式下运行。

      -请上传以下脚本的结果有助于让Oracle的支持人员提供支持

  • Addressing an ORA-01194 (file <name> needs more recovery to be consistent) & ORA-01547 (warning: RECOVER succeeded but OPEN RESETLOGS would get error)

      -该错误表明恢复可能仍是有不一致的状态的文件。这可能是由于数据文件在不同的时间被恢复或我们的备份没有提供足够的归档日志。

      -至少,在线备份过程中生成的所有存档日志必须在恢复过程中被应用。

  • Addressing an ORA-01135 (file %s accessed for DML/query is offline)

 – 该文件是离线的,你必须把它设置成在线可被访问

 Example:
SQL> recover datafile ‘%s’;
SQL> alter database datafile ‘%s’ online;

       为了帮助Oracle支持人员诊断问题,请提供以下信息:

      请提供你可以提出服务请求的输出。(上传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

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号