移花接木 搞定笔记本上的oracle 数据库

3 篇文章 0 订阅
1 篇文章 0 订阅

笔记本上有一个自己玩的数据库,最近不知道怎么回事,被我自己玩坏了,跑了一个脚本 dbms_supportmoniter脚本,后来还执行了一下这个存储过程,第二天周五晚上打开库 报ora 600 16703 错误,后面一堆 ora-704 bootstrap process failed

没辙,好早有一个之前备份的system01.dbf 文件,我先备份了这个有问题的 600 16703 数据文件

把之前备份的数据文件拷贝过来,改名为system01.dbf

起库,中间还用了oracle 手术刀bbed 修改了一下 相关的scn

创建新的控制文件 

恢复数据库 recover database using backup controlfile until cancel;

应用online redo

alter database open resetlogs; 终于打开库了,可是有一个遗憾 wrh$_active_session_history 执行 有ora-08103 错误。

整来整去 我 又试着 来把 600 16703 数据文件打开,也搞不定,重新回到 原来的备份的数据文件

可是这个遇到麻烦了,重建控制文件也不行,都是报 before  reslogs  之类的错误

查看 1号文件 select file#,error from v$datafile_header 都是wrong restlogs 错误。今天来到公司想到了办法,使用16703错误的数据文件头拷贝到备份的数据文件都上。操作明细如下:


C:\Windows\system32>cd /d d:\oracle\oradata\myoracle

d:\oracle\oradata\myoracle>ls
bifile.bbd     old_db_ctl    REDO03.LOG          tab$.dbf     UNDOTBS01.DBF
CONTROL01.CTL  OVERFLOW.DBF  SYSAUX01.DBF        TBS1_01.DBF  USERS01.DBF
CONTROL02.CTL  REDO01.LOG    SYSTEM01.DBF        TEMP01.DBF
log.bbd        REDO02.LOG    SYSTEM01.DBF.16703  TEST.DBF
d:\oracle\oradata\myoracle>dd if=SYSTEM01.DBF.16703 OF=SYS_HEADER.F bs=8192 count=1 skip=1
dd: invalid number `SYS_HEADER.F'


d:\oracle\oradata\myoracle>dd if=SYSTEM01.DBF.16703 of=SYS_HEADER.F bs=8192 count=1 skip=1
1+0 records in
1+0 records out

用bbed 验证 拷贝出来的文件头是否有问题 
d:\oracle\oradata\myoracle>bbed filename=SYS_HEADER.F
Password:


BBED: Release 2.0.0.0.0 - Limited Production on Mon Aug 1 09:28:58 2016


Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


************* !!! For Oracle Internal Use only !!! ***************


BBED> d
 File: SYS_HEADER.F (0)
 Block: 1                Offsets:    0 to  511           Dba:0x00000000
------------------------------------------------------------------------
 0ba20000 01004000 00000000 00000104 32c70000 00000000 0000200b 1be2e36e
 4d594f52 41434c45 814b0000 80940100 00200000 01000300 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 08024000 07000000 00000000 2d1ca22a 596bc036 5d77dc00 00000000 00000000
 00000000 00000000 00000420 06050000 436bc036 05050000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 06005359 5354454d 00000000 00000000
 00000000 00000000 00000000 00000000 01000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0a000a00
 266ac036 5677dc00 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 6077dc00 0000f016 5c6bc036 0100e811 01000000 02000000 10000000


 <32 bytes per line>

---从下可以看出 文件头完整,bbed可以认识到该数据块,认到了结构。
BBED> map
 File: SYS_HEADER.F (0)
 Block: 1                                     Dba:0x00000000
------------------------------------------------------------
 Data File Header


 struct kcvfh, 360 bytes                    @0


 ub4 tailchk                                @2044




BBED> show all
        FILE#           0
        BLOCK#          1
        OFFSET          0
        DBA             0x00000000 (0 0,1)
        FILENAME        SYS_HEADER.F
        BIFILE          bifile.bbd
        LISTFILE
        BLOCKSIZE       2048
        MODE            Browse
        EDIT            Unrecoverable
        IBASE           Dec
        OBASE           Dec
        WIDTH           80
        COUNT           512
        LOGFILE         log.bbd
        SPOOL           No


BBED> info all
 File#  Name                                                        Size(blks)
 -----  ----                                                        ----------


BBED> d
 File: SYS_HEADER.F (0)
 Block: 1                Offsets:    0 to  511           Dba:0x00000000

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

dd命令把文件 再拷贝到system01.dbf

dd if=system_header.f of=system01.dbf seek=1 bs=8192 count=1

再重建控制文件

使用控制文件恢复 recover database using backup controlfile until cancl

应用redo 

alter database open resetlogs;

终于又把库打开了。

不过 ora-8103 还是存在



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值