如果自己搞不定可以找诗檀软件专业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’;
- 警报日志中出现的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