[20150527]bbed与数据块检查和2.txt

简介: [20150527]bbed与数据块检查和2.txt http://blog.itpub.net/267265/viewspace-1666781/ --我现在基本拿bbed学习,基本是拿bbed查看,而使用bvi修改数据.

[20150527]bbed与数据块检查和2.txt

http://blog.itpub.net/267265/viewspace-1666781/

--我现在基本拿bbed学习,基本是拿bbed查看,而使用bvi修改数据.我感觉这种方便1写.
--实际上使用bbed的好处就是修改数据块检查和不一致,而使用bbed修改很简单仅仅需要执行sum apply就ok了.

--对比dbv与bbed确定检查和位置.

--实际上既然检查和在16,17字节,只要清零,加上dbv就很容易确定要修改的内容.

1.建立测试环境:

SCOTT@test> @ &r/ver1

PORT_STRING                    VERSION        BANNER
------------------------------ -------------- ----------------------------------------------------------------
x86_64/Linux 2.4.xx            10.2.0.4.0     Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

SCOTT@test> select rowid,deptx.* from deptx;
ROWID                    DEPTNO DNAME          LOC
------------------ ------------ -------------- -------------
AAAO1FAAGAAAAAKAAA           10 ACCOUNTING     NEW aaaa
AAAO1FAAGAAAAAKAAB           20 RESEARCH       DALLAS
AAAO1FAAGAAAAAKAAC           30 SALES          CHICAGO
AAAO1FAAGAAAAAKAAD           40 OPERATIONS     BOSTON

SCOTT@test> @ &r/lookup_rowid AAAO1FAAGAAAAAKAAA
      OBJECT         FILE        BLOCK          ROW DBA                  TEXT
------------ ------------ ------------ ------------ -------------------- ----------------------------------------
       60741            6           10            0 6,10                 alter system dump datafile 6 block 10 ;


SCOTT@test> alter system checkpoint;
System altered.

SCOTT@test> alter system flush buffer_cache;
System altered.

2.修改块:

$  bvi -b 81920 -s 8192 /mnt/ramdisk/test/mssm01.dbf
--修改.
aaaa=>YORK
--说明:bvi修改很简单选择R,替换里面的K->k. 前面的参数-b 表示开始偏移量,10*8192=81920. -s表示显示大小.
--这样就人为的破坏了检查和.

--同时修改16,17字节为00.
SCOTT@test>  select rowid,deptx.* from deptx;
select rowid,deptx.* from deptx
                           *
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 6, block # 10)
ORA-01110: data file 6: '/mnt/ramdisk/test/mssm01.dbf

$  dbv file=/mnt/ramdisk/test/mssm01.dbf

DBVERIFY: Release 10.2.0.4.0 - Production on Wed May 27 10:22:30 2015

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

DBVERIFY - Verification starting : FILE = /mnt/ramdisk/test/mssm01.dbf
Page 10 is marked corrupt
Corrupt block relative dba: 0x0180000a (file 6, block 10)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x0180000a
last change scn: 0x0002.f445ace5 seq: 0x2 flg: 0x06
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0xace50602
check value in block header: 0x0
computed block checksum: 0x893e

DBVERIFY - Verification complete

Total Pages Examined         : 2048
Total Pages Processed (Data) : 1
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 0
Total Pages Failing   (Index): 0
Total Pages Processed (Other): 10
Total Pages Processed (Seg)  : 0
Total Pages Failing   (Seg)  : 0
Total Pages Empty            : 2036
Total Pages Marked Corrupt   : 1
Total Pages Influx           : 0
Highest block SCN            : 4098132609 (2.4098132609)

--可以看到应该是 computed block checksum: 0x893e.

$  bvi -b 81920 -s 8192 /mnt/ramdisk/test/mssm01.dbf
--修改16,17字节为3e 89 (我的cpu是intel的,要反过来输入).

SCOTT@test> alter system flush buffer_cache;
System altered.

SCOTT@test> select rowid,deptx.* from deptx;
ROWID                    DEPTNO DNAME          LOC
------------------ ------------ -------------- -------------
AAAO1FAAGAAAAAKAAA           10 ACCOUNTING     NEW YORK
AAAO1FAAGAAAAAKAAB           20 RESEARCH       DALLAS
AAAO1FAAGAAAAAKAAC           30 SALES          CHICAGO
AAAO1FAAGAAAAAKAAD           40 OPERATIONS     BOSTON

--OK现在正常显示了,通过这个方法可以不使用bbed做sum apply操作.不过我觉得使用bbed参看数据块还是很方便的.

目录
相关文章
|
存储 Oracle 前端开发
利用BBED恢复数据文件头
利用BBED模拟损坏5文件1号块(文件头),如下测试步骤:
|
Oracle 关系型数据库 数据库
[20180604]在内存修改数据(bbed).txt
[20180604]在内存修改数据(bbed).txt --//以前曾经做过在内存修改数据,通过oradebug poke命令修改内存信息,相关链接: --//http://blog.itpub.net/267265/viewspace-2124466/=>[20160904]在内存修改数据.txt --//今天测试看看是否通过bbed修改数据信息的情况.使用asmm,这样/dev/shm可以看到一个一个文件。
1075 0
|
Oracle 关系型数据库 测试技术
[20180306]数据块检查和2.txt
[20180306]数据块检查和2.txt --//昨天测试修改检查和偏移为0x0(偏移在16,17字节),在修改前面的15字节为0,一般数据块可以通过检查. --//链接:http://blog.
899 0
|
测试技术 数据库 数据库管理
[20180306]数据块检查和.txt
[20180306]数据块检查和.txt --//如果数据块检查和不对,数据库无法读取相应块,会报错. --//检查和位于块偏移16字节处. ub1 flg_kcbh                            @15 ub2 chkval...
768 0
|
Oracle 关系型数据库 数据库管理
[20170419]bbed探究数据块.txt
[20170419]bbed探究数据块.txt --//bbed 是一个瑞士军刀,也是了解oracle内部数据块结构的好工具。我自己开始使用基本是看别人的帖子,对oracle数据块的内部也不是很了解。
1020 0
|
Oracle 关系型数据库 数据库管理
[20170411]bbed计算redo检查和.txt
[20170411]bbed计算redo检查和.txt --前一阵子做测试,需要一个计算器做异或的操作,链接http://blog.itpub.net/267265/viewspace-2134945/ --正好前几天开会遇到熟人,谈起我写的脚本很实用。
904 0
|
数据库管理
[20170411]bbed删除记录的恢复.txt
[20170411]bbed删除记录的恢复.txt --//昨天上午做的测试,链接:http://blog.itpub.net/267265/viewspace-2136933/ --//我当时并没有选择恢复记录,仅仅看删除的内容.
1034 0
|
Oracle 关系型数据库 测试技术
[20160816]11G dataguard坏块修复.txt
[20160816]11G dataguard坏块修复.txt --11GR2 不仅仅支持在备库在只读的情况下,日志应用(ACTIVE Data Guard),还提供主备库的坏块修复.
1034 0
|
数据库管理
[20160526]bbed修复删除记录.txt
[20160526]bbed修复删除记录.txt --以前也做过,链接: http://blog.itpub.net/267265/viewspace-745944/ --自己当时完全是依葫芦画瓢,许多东西理解不深刻,重新做一次.
918 0
|
Oracle 关系型数据库 数据库
[20160413利用bbed修改跳过损坏的索引.txt
[20160413利用bbed修改跳过损坏的索引.txt --前一阵子做过利用bbed修改跳过损坏的索引,这次测试看看破坏索引SYS.I_OBJ1看看. 1.环境: SYS@book> @ &r/ver1 PORT_STRING             ...
1002 0