Oracle 使用DB_STRUCTURE_INTEGRITY_CHECK 获取跟踪文件,生成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
// *Action: See associated error message

 

 

适用于:

Oracle Database – Enterprise Edition – 版本11.1.0.6 到 11.2.0.2 [Release 11.1 to 11.2]
本文信息适用于任何平台。

症状

获取跟踪文件,有以下内容:

DDE rules only execution for: ORA 1110
—– START Event Driven Actions Dump —-
—- END Event Driven Actions Dump —-
—– START DDE Actions Dump —–
Executing SYNC actions
—– START DDE Action: ‘DB_STRUCTURE_INTEGRITY_CHECK’ (Async) —–
Successfully dispatched
—– END DDE Action: ‘DB_STRUCTURE_INTEGRITY_CHECK’ (SUCCESS, 0 csec) —–
Executing ASYNC actions
—– END DDE Actions Dump (total 0 csec) —–

 

原因

这些文件由Health Check Monitor 生成,具体由DB Structure Integrity Check。

该检查验证数据库文件的完整性,并在这些文件无法访问,损坏或不一致时报告故障。如果数据库是在mount或open模式,该检查将检查在控制文件中列出的日志文件和数据文件。如果数据库处于NOMOUNT模式,只检查控制文件。

这里的关键因素是跟踪文件中的ORA-01110,这通常在数据库中一个表空间/数据文件脱机时出现。

这很容易再现,通过以下:

SQL> connect / as sysdba
SQL> create tablespace test datafile ‘/oradata/v111/test.dbf’ size 10M;
SQL> create table test tablespace test as select * from dual;
SQL> select * from test; ==> 1 row shown
SQL> alter database datafile ‘/oradata/v111/test01.dbf’ offline;
SQL> select * from test; ==> ORA-01110 raised
注意使数据文件脱机只能对于在存档日志模式运行的数据库可行。

解决方案

ORA-01110 不出现在警报日志中,而在Error Stack中。所以我们需要为ORA-01110设置Error Stack来获取脱机数据文件的名称。

1) 设置以下事件并查看警报日志中是否出现ORA-01110。

SQL> connect / as sysdba
SQL> alter system set events ‘1110 trace name errorstack level 3’;
2) 如果跟踪文件仍被生成,则一旦文件被创建,ORA-01110就不应该出现在警报日志中。当你捕获了它,禁用tracing:

SQL> connect / as sysdba
SQL> alter system set events ‘1110 trace name errorstack off’;

  1. 警报日志中出现的ORA-01110 ,应当提供被脱机的数据文件名称。4. 请将该数据文件/表空间切换为联机,这能避免traces。

    5. 如果出于某种原因,数据文件/表空间被设为脱机,则预期有traces 且应该不会出现问题。

    注意,你也可以使用下面的查询查找所有脱机数据文件。上述步骤的关键是要获取触发错误的数据文件:

    SQL> connect / as sysdba
    SQL> column file_name format a40;
    SQL> column tablespace_name format a12;
    SQL> select file_name,file_id,tablespace_name from dba_data_files where online_status=’OFFLINE’ order bytablespace_name, file_id;

Even when the temp file is offline, ORA-01110 is seen in alert log or trace file. Run the sql to check temp files and online or drop it. 即使在临时文件脱机时,ORA-01110出现在警报日志或跟踪文件中。运行sql来检查临时文件并联机或drop它。
SQL>select file_name, tablespace_name, status from dba_temp_files order by file_name;

Comment

*

沪ICP备14014813号

沪公网安备 31010802001379号