[20170302]fuzzy保存在那里.txt

[20170302]fuzzy保存在那里.txt

--参考链接:http://blog.itpub.net/267265/viewspace-2134551/
--提到fuzzy表示某种状态,正常关闭是NO.
--从访问的视图看v$datafile_header,应该这个信息保存在数据文件头,找找具体的位置在那里.

1.环境:
SYS@book> @ &r/ver
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

--//从冷备份拷贝回来,我这个冷备份是异常关机的.利用异常恢复scn到那里3介绍的方法:
--//链接:http://blog.itpub.net/267265/viewspace-2134595/

recover database until change 13276911100;
recover database ;

--//这样2中恢复方式,fuzzy前者是yes,后者是no.通过对比是否可以确定问题.

2.测试1:
SYS@book> recover database until change 13276911100;
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/mnt/ramdisk/book/system01.dbf'


SYS@book> SELECT file#, CHECKPOINT_CHANGE#, CHECKPOINT_TIME,CREATION_CHANGE#  , RESETLOGS_CHANGE#,status, CHECKPOINT_COUNT,fuzzy,name,tablespace_name  FROM v$datafile_header where file#=1;
FILE# CHECKPOINT_CHANGE# CHECKPOINT_TIME     CREATION_CHANGE# RESETLOGS_CHANGE# STATUS     CHECKPOINT_COUNT FUZ NAME                                               TABLESPACE_NAME
----- ------------------ ------------------- ---------------- ----------------- ---------- ---------------- --- -------------------------------------------------- ------------------------------
    1        13276911100 2017-02-28 14:42:35                7            925702 ONLINE                  838 YES /mnt/ramdisk/book/system01.dbf                     SYSTEM

SYS@book> shutdown immediate ;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.

$ cp /mnt/ramdisk/book/tea01.dbf /u01/backup/fuzzy/tea01.dbf_yes

3.测试2:
SYS@book> recover database ;
Media recovery complete.
SYS@book> SELECT file#, CHECKPOINT_CHANGE#, CHECKPOINT_TIME,CREATION_CHANGE#  , RESETLOGS_CHANGE#,status, CHECKPOINT_COUNT,fuzzy,name,tablespace_name  FROM v$datafile_header where file#=1;
FILE# CHECKPOINT_CHANGE# CHECKPOINT_TIME     CREATION_CHANGE# RESETLOGS_CHANGE# STATUS     CHECKPOINT_COUNT FUZ NAME                                               TABLESPACE_NAME
----- ------------------ ------------------- ---------------- ----------------- ---------- ---------------- --- -------------------------------------------------- ------------------------------
    1        13276931100 2017-02-28 14:42:35                7            925702 ONLINE                  839 NO  /mnt/ramdisk/book/system01.dbf                     SYSTEM
--//关闭数据库分析.

$ cp /mnt/ramdisk/book/tea01.dbf /u01/backup/fuzzy/tea01.dbf_no

4.对比:
$ dd if=tea01.dbf_yes of=yes.dd bs=8192 skip=1 count=1
1+0 records in
1+0 records out
8192 bytes (8.2 kB) copied, 0.000102445 seconds, 80.0 MB/s

$ dd if=tea01.dbf_no of=no.dd bs=8192 skip=1 count=1
1+0 records in
1+0 records out
8192 bytes (8.2 kB) copied, 9.2346e-05 seconds, 88.7 MB/s

$ xxd -c 16 yes.dd > yes.txt
$ xxd -c 16 no.dd > no.txt

$ diff  yes.txt no.txt
2c2
< 0000010: d5ce 0000 0000 0000 0004 200b 6e21 b74f  瘴........ .n!.O
---
> 0000010: 8693 0000 0000 0000 0004 200b 6e21 b74f  .......... .n!.O 
9,10c9,10
< 0000080: 0000 0000 0000 0000 0000 0400 d400 0000  ............?..
< 0000090: 4974 e237 d300 0000 0000 0000 0000 0000  It??..........
---
> 0000080: 0000 0000 0000 0000 0000 0000 d500 0000  ............?..
> 0000090: dc74 e237 d400 0000 0000 0000 0000 0000  躷??..........
24c24
< 0000170: 0600 0000 0000 0000 0000 0000 0000 0000  ................
---
> 0000170: 0600 0000 0000 0000 0000 0000 fe1b da37  ............??
31c31
< 00001e0: 0000 0000 fc95 5d17 0300 0000 dbbb db37  ....?].....??
---
> 00001e0: 0000 0000 1ce4 5d17 0300 0000 dbbb db37  .....鋆.....??

--通过bbed观察:
--ub2 chkval_kcbh                          @16       0x9386 -->检查和
--ub4 kcvfhcpc                             @140      0x000000d5 => d5 = 213 检查记数
--ub4 kcvfhrts                             @144      0x37e274dc
--ub4 kcvfhrft                             @380      0x37da1bfe

--//猜测这个可能性最大:
BBED> p kcvfhsta
ub2 kcvfhsta                                @138      0x0000 (NONE)


BBED> assign kcvfhsta=0x0040
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
ub2 kcvfhsta                                @138      0x0040 (NONE)

BBED> sum apply
Check value for File 6, Block 1:
current = 0x93c6, required = 0x93c6

SYS@book> SELECT file#, CHECKPOINT_CHANGE#, CHECKPOINT_TIME,CREATION_CHANGE#  , RESETLOGS_CHANGE#,status, CHECKPOINT_COUNT,fuzzy,name,tablespace_name  FROM v$datafile_header;
FILE# CHECKPOINT_CHANGE# CHECKPOINT_TIME     CREATION_CHANGE# RESETLOGS_CHANGE# STATUS     CHECKPOINT_COUNT FUZ NAME                             TABLESPACE_NAME
----- ------------------ ------------------- ---------------- ----------------- ---------- ---------------- --- -------------------------------- ---------------
    1        13276931100 2017-02-28 14:42:35                7            925702 ONLINE                  839 NO  /mnt/ramdisk/book/system01.dbf   SYSTEM
    2        13276931100 2017-02-28 14:42:35             1834            925702 ONLINE                  828 NO  /mnt/ramdisk/book/sysaux01.dbf   SYSAUX
    3        13276931100 2017-02-28 14:42:35           923328            925702 ONLINE                  749 NO  /mnt/ramdisk/book/undotbs01.dbf  UNDOTBS1
    4        13276931100 2017-02-28 14:42:35            16143            925702 ONLINE                  834 NO  /mnt/ramdisk/book/users01.dbf    USERS
    5        13276931100 2017-02-28 14:42:35           952916            925702 ONLINE                  745 NO  /mnt/ramdisk/book/example01.dbf  EXAMPLE
    6        13276931100 2017-02-28 14:42:35      13276257767            925702 ONLINE                  213 YES /mnt/ramdisk/book/tea01.dbf      TEA
6 rows selected.

--猜测正确. file#=6 FUZ=YES.

SYS@book> alter database open ;
alter database open
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [3648], [6], [64], [], [], [], [], [], [], [], [], []
--猜测一下[6]估计指数据文件6.

--//修改回来.
BBED> set dba 6,1
        DBA             0x01800001 (25165825 6,1)

BBED> assign kcvfhsta=0x0
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
ub2 kcvfhsta                                @138      0x0000 (NONE)

BBED> sum apply
Check value for File 6, Block 1:
current = 0x9386, required = 0x9386

SYS@book> select open_mode from v$database ;
OPEN_MODE
--------------------
MOUNTED

SYS@book> alter database open ;
Database altered.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-2134630/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/267265/viewspace-2134630/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值