Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

35

积分

0

好友

3

主题
1#
发表于 2012-5-5 23:53:55 | 查看: 15046| 回复: 6
ML:
数据库异常断点,所有数据文件和控制文件出现文件头损坏。

Thu May 03 10:07:37 2012
ALTER DATABASE   MOUNT
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/oracle/app/oradata/dbtest/control03.ctl'
ORA-27048: skgfifi: file header information is invalid
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/oracle/app/oradata/dbtest/control02.ctl'
ORA-27048: skgfifi: file header information is invalid
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/oracle/app/oradata/dbtest/control01.ctl'
ORA-27046: file size is not a multiple of logical block size
Additional information: 1
Thu May 03 10:07:40 2012
Checker run found 3 new persistent data failures
ORA-205 signalled during: ALTER DATABASE   MOUNT...

重建控制文件出现:

SQL> CREATE CONTROLFILE REUSE DATABASE "dbtest" NORESETLOGS  NOARCHIVELOG
  2      MAXLOGFILES 16
  3      MAXLOGMEMBERS 3
  4      MAXDATAFILES 100
  5      MAXINSTANCES 8
  6      MAXLOGHISTORY 2336
  7  LOGFILE
  8    GROUP 1 ('/oracle/app/oradata/dbtest/redo01.log') SIZE 50M,
  9    GROUP 2 ('/oracle/app/oradata/dbtest/redo02.log') SIZE 50M,
10    GROUP 3 ('/oracle/app/oradata/dbtest/redo03.log') SIZE 50M
11  DATAFILE
12  '/oracle/app/oradata/dbtest/system01.dbf',
13  '/oracle/app/oradata/dbtest/users01.dbf',
14  '/oracle/app/oradata/dbtest/undotbs01.dbf',
15  '/oracle/app/oradata/dbtest/sysaux01.dbf',
16  '/oracle/app/oradata/dbtest/temp01.dbf',
17  '/oracle/app/oradata/dbtest/example01.dbf',
18  '/dbtest/database/datadoc01.dbf',
19  '/dbtest/database/dataidx01.dbf',
20  '/dbtest/database/datafile01.dbf',
21  '/dbtest/database/data02.dbf';
CREATE CONTROLFILE REUSE DATABASE "dbtest" NORESETLOGS  NOARCHIVELOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01565: error in identifying file '/oracle/app/oradata/dbtest/system01.dbf'
ORA-27048: skgfifi: file header information is invalid
文件头都坏了,这样的情况还有可能恢复否?

[ 本帖最后由 yanshoupeng 于 2012-5-7 16:52 编辑 ]
2#
发表于 2012-5-6 00:01:14
用dd 把 system.dbf 的前2MB 复制出来 后上传

dd if=system.dbf  of=system_header bs=8192 count=256

提问 请至少说明是什么版本  什么平台

把alert.log 压缩后上传

回复 只看该作者 道具 举报

3#
发表于 2012-5-6 00:09:42
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE    11.1.0.6.0      Production
TNS for Linux: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production


这是数据库版本。

不好意思ML,我怎么没有找到上传附件的地方,汗一个。

回复 只看该作者 道具 举报

4#
发表于 2012-5-6 00:18:08
ML,
文件已经上传,谢谢支持。

alert_jht.rar

154.41 KB, 下载次数: 1145

system_header.rar

7.27 KB, 下载次数: 1168

回复 只看该作者 道具 举报

5#
发表于 2012-5-6 00:19:39
利dbv验证文件 都有问题

[oracle@dbserver dbtest]$ dbv file=datafile01.dbf

DBVERIFY: Release 11.1.0.6.0 - Production on Sun May 6 00:18:13 2012

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


DBV-00600: Fatal Error - [21] [2] [0] [0]


这次断电竟然所有的文件都出现介质损耗。
包括redo logfile.

[ 本帖最后由 yanshoupeng 于 2012-5-7 16:53 编辑 ]

回复 只看该作者 道具 举报

6#
发表于 2012-5-11 23:59:27
[oracle@vrh8 ~]$ od -x system_header |less

0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
0017560 0000 a20b 0000 0001 0080 0000 0000 0000
0017600 0401 6733 0000 0000 0000 0000 0b10 bed5
0017620 a54e 484a 0054 0000 0000 de53 0003 2980
0017640 0003 2000 0000 0002 0003 0000 0000 0000
0017660 0000 0000 0000 0000 0000 0000 0000 0000


system datafile header彻底丢失 , 需要手动构造出一个 可用的datafile header

回复 只看该作者 道具 举报

7#
发表于 2012-5-12 00:03:47
本帖最后由 yanshoupeng 于 2013-3-29 12:42 编辑

后来发现构造文件头也不行了,块头的前N个BLOCK基本都清零了

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 15:13 , Processed in 0.060077 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569