咨询微信: dbservice1234 7 x 24 在线支持!

Oracle 报错ORA-1122, ORA-1110, ORA-120X

Oracle 报错ORA-1122, ORA-1110, ORA-120X

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

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

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

 

症状

你收到以下错误:

ORA-01122: “database file %s failed verification check”
原因:该文件中的信息与控制文件的信息不一致。参阅随附消息来查找原因。
对策:确保db 文件和控制文件为该数据库的正确文件。

ORA-01110:”data file %s: ‘%s'”
原因: 另一个错误的详情报告文件名
对策: 查看相关的错误消息
01110, 00000, “data file %s: ‘%s'”

以及下列情况的其中之一:

ORA-01201: “file size %s in header does not match size %s in control file”
原因: 控制文件和文件头中的文件大小不匹配。其中一个可能是一个损坏值。
对策: 用好的文件代替损坏文件,根据需要恢复。

ORA-01202: “wrong incarnation of this file – wrong creation time”
原因: 文件头中的创建时间和控制文件的创建时间不一样。这可能是一个被删除文件的副本。
对策: 还原数据文件的当前副本,并根据需要恢复.

ORA-01203: “wrong incarnation of this file – wrong creation SCN”
原因: 文件头中的创建SCN和控制文件的创建SCN不一样。这可能是一个被删除文件的副本。
对策: 还原数据文件的当前副本,并根据需要恢复.

ORA-01204: “file number is %s rather than %s – wrong file”
原因: 文件头中的文件号不正确。这可能是错误文件的一个还原备份,但来自同一个数据库。
对策: 还原正确数据文件的一个副本,根据需要恢复。

ORA-01205: “not a data file – type number in header is %s”
原因: 数据头中的文件类型对数据文件来说不正确。这可能是一个日志文件或控制文件。如果该类型不是一个小的非零正数,那么数据头已损坏。

ORA-01206: “file is not part of this database – wrong database id”
原因: 文件头中的数据库id与控制文件中的数据库id不匹配。文件可能来自一个不同的数据库,或可能根本不是数据库文件。如数据库重建,这可能是重建前的文件。
对策: 还原一个正确数据文件的副本,并根据需要恢复。

你可能注意到Oracle提到的该文件在v$datafile下的状态为 offline。

原因

 

要理解为什么该文件与控制文件/数据库的其余部分不一致,请遵循以下步骤:

1. 注意v$datafile中数据文件的状态。看哪些为online,哪些为offline。 如数据库不启动,装载数据库来获取此信息。

2. 取所有数据库文件的文件头转储。CONNECT INTERNAL, 发出以下命令:

alter session set events ‘immediate trace name file_hdrs level 10’;

3.这将在目录中生成一个你的用户转储的跟踪文件。你可以通过在sqldba中发出SHOW PARAMETER USER_DUMP_DEST来找到它。

4. 联系Oracle全球客户支持来决定下一步采取什么行动。

5. 此时,你也许想要评估该数据文件有多重要,因为这也将决定采取什么步骤。例如该数据文件属于哪个表空间?如果它属于索引或临时表空间,那解决方法比它属于系统或回滚或数据表空间更简单。

注意: 在按以下步骤操作之前,向客户支持验证这些对你来说是正确的步骤。

  1. 如果一个文件有一个offline状态:

如果需要文件中的信息,你需要从备份中还原并恢复该文件。如果这是在数据库关闭和装载的时候完成的,该文件需要为online,以对它进行恢复。

如文件被恢复时数据库是打开的,则文件在恢复期间应保持offline,然后恢复完成后,再变为online。

7. 如该错误提到的文件为online:

如数据库没有打开,将其离线,尝试启动,然后遵循步骤6。

如数据库是打开的,且不需要表空间中的信息,把数据文件离线,看你能否删除表空间。

解决方案

以上所有错误表明文件头已被通过某种方式更改,不再能够被Oracle识别。该情况发生的原因通常如下:

– 文件被一个用户或另一个应用程序在操作系统级别动过。
– 文件上使用了UNIX 命令 (如 DD 或 cp 或 mv…)
– 文件从备份中还原得不正确(或许它属于另一个数据库)

在大多数情况中,文件头是不可修复的,数据文件的备份将不得不被还原。