博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过拷贝block实现system文件大量坏块恢复
阅读量:2042 次
发布时间:2019-04-28

本文共 6057 字,大约阅读时间需要 20 分钟。

dbv检查system大量坏块

DBVERIFY: Release 11.2.0.4.0 - Production on 星期二 11月 22 17:17:51 2016

 

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

 

 

DBVERIFY - 开始验证: FILE = h:\oracle\system01.dbf

页 4543 流入 - 很可能是介质损坏

Corrupt block relative dba: 0x004011bf (file 1, block 4543)

Fractured block found during dbv:

Data in bad block:

 type: 0 format: 2 rdba: 0x004011bf

 last change scn: 0x0000.00000000 seq: 0x1 flg: 0x05

 spare1: 0x0 spare2: 0x0 spare3: 0x0

 consistency value in tail: 0x7641344a

 check value in block header: 0xb6ff

 computed block checksum: 0x797

 

页 4544 标记为损坏

Corrupt block relative dba: 0x004011c0 (file 1, block 4544)

Bad header found during dbv:

Data in bad block:

 type: 71 format: 3 rdba: 0x754e362f

 last change scn: 0x7a37.6d424862 seq: 0x39 flg: 0x32

 spare1: 0x35 spare2: 0x32 spare3: 0x3931

 consistency value in tail: 0x7638356c

 check value in block header: 0x4856

 block checksum disabled

 …………

页 4613 标记为损坏

Corrupt block relative dba: 0x00401205 (file 1, block 4613)

Bad header found during dbv:

Data in bad block:

 type: 97 format: 7 rdba: 0x79634449

 last change scn: 0x4364.77426a4c seq: 0x41 flg: 0x35

 spare1: 0x34 spare2: 0x36 spare3: 0x7734

 consistency value in tail: 0x505a4550

 check value in block header: 0x434d

 computed block checksum: 0x6f3f

 

页 4614 标记为损坏

Corrupt block relative dba: 0x00401206 (file 1, block 4614)

Completely zero block found during dbv:

…………

页 5125 标记为损坏

Corrupt block relative dba: 0x00401405 (file 1, block 5125)

Completely zero block found during dbv:

 

 

DBVERIFY - 验证完成

 

检查的页总数: 124160

处理的页总数 (数据): 90745

失败的页总数 (数据): 0

处理的页总数 (索引): 14417

失败的页总数 (索引): 0

处理的页总数 (其他): 3323

处理的总页数 (段)  : 1

失败的总页数 (段)  : 0

空的页总数: 15092

标记为损坏的总页数: 583

流入的页总数: 5

加密的总页数        : 0

最高块 SCN            : 1417256245 (2.1417256245)

这里比较明显,一共583个坏块,而且是连续坏块(5125-4543+1)

尝试启动数据库

--直接尝试打开数据库

SQL> RECOVER DATABASE;

完成介质恢复。

SQL> alter database open;

alter database open

*

第 1 行出现错误:

ORA-01092: ORACLE instance terminated. Disconnection forced

ORA-00704: bootstrap process failure

ORA-00604: error occurred at recursive SQL level 2

ORA-01578: ORACLE data block corrupted (file # 1, block # 4575)

ORA-01110: data file 1: 'H:\ORACLE\SYSTEM01.DBF'

进程 ID: 2572

会话 ID: 85 序列号: 1

 

--跳过坏块event打开库

SQL> startup mount pfile='h:/oracle/pfile.txt'

ORACLE 例程已经启动。

 

Total System Global Area 2137886720 bytes

Fixed Size                  2282944 bytes

Variable Size             520096320 bytes

Database Buffers         1610612736 bytes

Redo Buffers                4894720 bytes

数据库装载完毕。

SQL> show parameter event;

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

event                                string      43810 trace name context forev

                                                 er, level 10, 10231 trace name

                                                  context forever, level 10, 10

                                                 232 trace name context forever

                                                 , level 10, 10233 trace name c

                                                 ontext forever, level 10, 1004

                                                 1 trace name context forever,

                                                 level 10

xml_db_events                        string      enable

SQL> alter database open;

alter database open

*

第 1 行出现错误:

ORA-01113: 文件 1 需要介质恢复

ORA-01110: 数据文件 1: 'H:\ORACLE\SYSTEM01.DBF'

 

 

SQL> recover database;

完成介质恢复。

SQL> alter database open;

alter database open

*

第 1 行出现错误:

ORA-01092: ORACLE instance terminated. Disconnection forced

ORA-00600: internal error code, arguments: [kokiasg1], [], [], [], [], [], [],

[], [], [], [], []

进程 ID: 9316

会话 ID: 4 序列号: 3

 

--upgrade方式打开数据库

SQL> startup mount pfile='h:/oracle/pfile.txt'

ORACLE 例程已经启动。

 

Total System Global Area 2137886720 bytes

Fixed Size                  2282944 bytes

Variable Size             520096320 bytes

Database Buffers         1610612736 bytes

Redo Buffers                4894720 bytes

数据库装载完毕。

SQL> alter database open upgrade

  2  ;

alter database open upgrade

*

第 1 行出现错误:

ORA-01092: ORACLE instance terminated. Disconnection forced

ORA-00600: internal error code, arguments: [kokiasg1], [], [], [], [], [], [],

[], [], [], [], []

进程 ID: 7976

会话 ID: 4 序列号: 3

至此数据库在这种坏块情况下,正常打开相当渺茫,因为报错的这些block 都是非常靠前的,也就是说这个里面很多块在数据库创建好的时候就已经在了(特别是通过模板创建的数据库,这些部分很可能都是固定的),考虑使用其他库的block来替代这些坏块,然后尝试打开库

修复坏块

[oracle@app101-20 ~]$ dd if=/Data/oracle/oradata/txlhdb/system01.dbf of=/tmp/1.dbf skip=4543 bs=8192 count=583

583+0 records in

583+0 records out

4775936 bytes (4.8 MB) copied, 0.0533578 s, 89.5 MB/s

 

H:\oracle>dd if=d:/temp/1.dbf of=h:\oracle\system01.dbf seek=4543 bs=8192 count=583 conv=notrun

rawwrite dd for windows version 0.6beta3.

Written by John Newbigin <jn@it.swin.edu.au>

This program is covered by terms of the GPL Version 2.

 

notrun

583+0 records in

583+0 records out

 

H:\oracle>dbv file=system01.dbf

 

DBVERIFY: Release 11.2.0.4.0 - Production on 星期二 11月 22 20:17:51 2016

 

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

 

DBVERIFY - 开始验证: FILE = H:\ORACLE\SYSTEM01.DBF

 

 

DBVERIFY - 验证完成

 

检查的页总数: 124160

处理的页总数 (数据): 90761

失败的页总数 (数据): 0

处理的页总数 (索引): 14479

失败的页总数 (索引): 0

处理的页总数 (其他): 3393

处理的总页数 (段)  : 1

失败的总页数 (段)  : 0

空的页总数: 15527

标记为损坏的总页数: 0

流入的页总数: 0

加密的总页数        : 0

最高块 SCN            : 295310052 (11.295310052)

再次尝试打开数据库

C:\Users\XIFENFEI>sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on 星期二 11月 22 20:18:19 2016

 

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

 

已连接到空闲例程。

 

SQL> startup mount pfile='h:/oracle/pfile.txt';

ORACLE 例程已经启动。

 

Total System Global Area 2137886720 bytes

Fixed Size                  2282944 bytes

Variable Size             520096320 bytes

Database Buffers         1610612736 bytes

Redo Buffers                4894720 bytes

数据库装载完毕。

SQL> recover database;

完成介质恢复。

SQL> alter database open;

 

数据库已更改。

后续错误ORA-04023处理

C:\Users\XIFENFEI>exp "'/ as sysdba'" owner=XIFENFEI file=d:/full_xff.dmp lo

g=d:/full_xff.log   FEEDBACK=10000  COMPRESS=NO BUFFER=102400000 STATISTICS=none

 

 

Export: Release 11.2.0.4.0 - Production on 星期二 11月 22 20:20:27 2016

 

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

 

 

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Produc

tion

With the Partitioning, OLAP, Data Mining and Real Application Testing options

EXP-00056: 遇到 ORACLE 错误 4023

ORA-04023: 无法验证或授权对象 SELECT xdb_uid FROM SYS.EXU9XDBUID

EXP-00000: 导出终止失败

数据库所有视图无法查询,通过直接对基表user$,obj$,view$等表查询出来视图信息,然后直接编译,然后数据可以完美导出,完成本次恢复

SQL> select 'alter view '||b.name||'.'||c.name||'  compile;'

  from view$ a,user$ b,obj$ c

  where a.obj#=c.obj#

  and c.owner#=b.user#;

转载地址:http://jcsof.baihongyu.com/

你可能感兴趣的文章
【雅思】【写作】【大作文】Report
查看>>
【雅思】【作文】顾家北100句翻译
查看>>
【雅思】【写作】【大作文】Discuss both views and give your own opinion
查看>>
【托业】【金山词霸】21-42
查看>>
【托业】【金山词霸】单词1-20
查看>>
【Python】脚本运行报错:IndentationError: unindent does not match any outer indentation level...
查看>>
【JMeter】前置处理器
查看>>
【Linux】top命令详解
查看>>
【黑盒测试】测试用例的常用方法
查看>>
【Linux】阿里云服务器部署--禅道
查看>>
【Loadrunner】Loadrunner 手动关联技术
查看>>
【性能测试】性能测试表
查看>>
【Mock】mock基础、简单的单元测试代码练习。
查看>>
【Loadrunner】Loadrnner 参数化策略
查看>>
【WebDriver】WebDriver 常用操作
查看>>
【Selenium】selenium中隐藏元素如何定位?
查看>>
【Mock】【接口测试】【面试】mock-server 环境搭建—加分项!
查看>>
【English】【托业】【四六级】写译高频词汇
查看>>
【托业】【新东方全真模拟】01~02-----P5~6
查看>>
【托业】【新东方全真模拟】03~04-----P5~6
查看>>