Oracle 如何在OS 数据文件头部/零块- ORA-27047 DBV-107 ORA-1157/ORA-27048中检测和修复损坏

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

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

服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]

Oracle 数据库企业版版本 8.0.5.0 12.1.0.2 [版本8.0.5 to 12.1]
本文的信息适用于任何平台

症状

Oracle文件中的OS

  • OS 块头在第一个数据文件块中,用于Oracle存储操作系统信息。
  • 是零块,不是Oracle 1中的数据文件头。
  • 零块中的损坏不会破坏数据,低于11g 的版本,dbverify/rman检测不出, 11g 版本中的Dbverify 需要加强,以检测损坏。
  • DBF大小可以用来检查块0的一致性。
  • 当该块损坏时,数据库有时会被打开,不出现任何错误,因为块0只被某些特定的数据库操作打开,例如,‘CREATE CONTROLFILE’11g 版本中Database OPEN

症状

  • 当特定数据文件的OS块头无效时,创建控制文件可能会报告错误ORA-27047:

ORA-27047 : 不能读取文件中中的块头。

HPUX中的例子:

ORA-1503: 创建控制文件失败
ORA-1565: 识别文件‘/oradata/users.dbf’ 中的错误
ORA-27047: 不能读取文件中的块头

HP-UX Error: 22: 参数无效
Additional information: 2

  • 低于11g 版本中的DBVerify不能报告数据文件中的损坏, 11g版本中 DBVerify报告错误 “DBV-00107: 未知的报头格式
  • 出现错误ORA-01157 ORA-27048,数据库升级(OPEN MIGRATE) NORMAL OPEN 会失败:

ORA-01157: 不能识别/锁定数据文件1 – DBWR 跟踪文件

ORA-01110: 数据文件 1: ‘/oracle/dbs/system.dbf’
ORA-27048: skgfifi: 文件头信息失效

原因

数据文件中的OS 块头 ( 0)损坏。

  • 损坏由Oracle工具DBF大小确定:

$ dbfsize /oradata/users.dbf
块头幻数是坏的

其他由DBF大小确定的错误有:

/oradata/users.dbf: 块头文件大小是坏的; 尝试RAW文件格式
/oradata/users.dbf: 块头幻数是坏的

  • 这可以通过数据文件的一个无效的复制引起。实例是使用OS命令dd复制原始设备和文件系统中的文件时。参考HPUX中的 Bug 4307836 (作为关闭不作为错误)
  • 可能由文件系统损坏引起。
  • 可以由在Note:373595.1中描述的NetBackup引起。
  • 也可能由 Bug 4721022 / Bug 4724358 引起。  Note 4724358.8

解决方法

使用好的控制文件副本打开数据库文件,并重新设置数据文件大小。

  • 重置数据文件大小将重新格式化 OS块头。

修改数据库数据文件 ‘/oradata/users.dbf’ resize <new size>;

运行DBF大小,以确认该块被修复:

$ dbfsize /oradata/users.dbf

数据库文件: /oradata/users.dbf
数据库文件类型: 文件系统
数据库文件大小: 51200 8192 字节块

  • 如果由文件系统损坏导致,在文件系统上运行fsck 可以修复损坏。
  • 另一种选择是从备份复原/恢复受感染的文件。

Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *