使用BBED恢复DELETE的数据

测试环境请参见

使用BBED手工提交事务

尝试恢复delete的数据:

BBED> modify /x 2c offset 5064

File: /data/orcl/orcl/users01.dbf (4)

Block: 68               Offsets: 5064 to 5071           Dba:0x01000044

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

2c000d03 53595305

<32 bytes per line>

BBED> sum apply

Check value for File 4, Block 68:

current = 0xf95f, required = 0xf95f

BBED> verify

DBVERIFY - Verification starting

FILE = /data/orcl/orcl/users01.dbf

BLOCK = 68

Block Checking: DBA = 16777284, Block Type= KTB-managed data block

data header at 0x1070fa7c

kdbchk: the amount of space used is notequal to block size

used=7190 fsc=0 avsp=946 dtl=8064

Block 68 failed with check code 6110

DBVERIFY - Verification complete

Total Blocks Examined         : 1

Total Blocks Processed (Data) : 1

Total Blocks Failing   (Data) : 1

Total Blocks Processed (Index): 0

Total Blocks Failing   (Index): 0

Total Blocks Empty            : 0

Total Blocks Marked Corrupt   : 0

Total Blocks Influx           : 0

8064-7190=874 -->036A  -->6a03

BBED> p kdbhavsp

b2 kdbhavsp                                 @134      946

BBED> modify /x 6a03 offset 134

File: /data/orcl/orcl/users01.dbf (4)

Block: 68               Offsets:  134 to 141           Dba:0x01000044

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

6a03b403 00005b00

<32 bytes per line>

BBED> sum apply

Check value for File 4, Block 68:

current = 0xf987, required = 0xf987

BBED> verify

DBVERIFY - Verification starting

FILE = /data/orcl/orcl/users01.dbf

BLOCK = 68

Block Checking: DBA = 16777284, Block Type= KTB-managed data block

data header at 0x1070fa7c

kdbchk: space available on commit isincorrect

tosp=948 fsc=0 stb=0 avsp=874                     --kdbchk: space availableon commit is incorrect

Block 68 failed with check code 6111

DBVERIFY - Verification complete

Total Blocks Examined         : 1

Total Blocks Processed (Data) : 1

Total Blocks Failing   (Data) : 1

Total Blocks Processed (Index): 0

Total Blocks Failing   (Index): 0

Total Blocks Empty            : 0

Total Blocks Marked Corrupt   : 0

Total Blocks Influx           : 0

把tosp和avsp修改为一致就可以了

BBED> modify /x 6a036a03

File: /data/orcl/orcl/users01.dbf (4)

Block: 68               Offsets:  134 to 141           Dba:0x01000044

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

6a036a03 00005b00

<32 bytes per line>

BBED> sum apply

Check value for File 4, Block 68:

current = 0xf959, required = 0xf959

BBED> verify

DBVERIFY - Verification starting

FILE = /data/orcl/orcl/users01.dbf

BLOCK = 68

DBVERIFY - Verification complete

Total Blocks Examined         : 1

Total Blocks Processed (Data) : 1

Total Blocks Failing   (Data) : 0

Total Blocks Processed (Index): 0

Total Blocks Failing   (Index): 0

Total Blocks Empty            : 0

Total Blocks Marked Corrupt   : 0

Total Blocks Influx           : 0

查询数据,看删除的数据找回来了。

BBED> p *kdbr[40]

rowdata[3866]

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

ub1 rowdata[3866]                           @5064     0x2c

BBED> x /rnccccccccccccccc

rowdata[3866]                               @5064

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

[email protected]: 0x2c (KDRHFL, KDRHFF, KDRHFH)

[email protected]: 0x00

[email protected]:  13

col   0[3] @5067: -0

col   1[5] @5071: USER$

col   2[0] @5077: *NULL*

col   3[2] @5078: ..

col   4[2] @5081: ..

col   5[5] @5084: TABLE

col   6[7] @5090: xl...(1

col   7[7] @5098: xl....,

col  8[19] @5106: 2008-03-12:00:39:48

col   9[5] @5126: VALID

col  10[1] @5132: N

col  11[1] @5134: N

col  12[1] @5136: N

SQL> alter system flush buffer_cache;

System altered.

SQL> select count(*) from tt_trans;

COUNT(*)

----------

399

时间: 2024-08-29 04:18:56

使用BBED恢复DELETE的数据的相关文章

【Oracle】使用bbed恢复delete的数据

表中的数据被delete之后并不会真正删除数据,而是打了一个删除标记,仅仅要还没有被覆盖就能够恢复回来. 实验步骤例如以下: [email protected]>create table bbed_test(x varchar2(20)); Table created. [email protected]>insert into bbed_test values('BADLY9'); 1 row created. [email protected]>insert into bbed_te

【Oracle】使用bbed恢复update的数据

使用bbed不仅仅可以找回已经delete的数据还可以恢复update的数据,当然过程要比恢复delete的数据复杂一些. 实验过程如下: [email protected]>create table bbed_test(x int,y varchar2(20)); Table created. [email protected]>insert into bbed_test values(1,'BADLY9'); 1 row created. [email protected]>inse

Oracle闪回查询恢复delete删除数据

Flashback query(闪回查询)原理 Oracle根据undo信息,利用undo数据,类似一致性读取方法,可以把表置于一个删除前的时间点(或SCN),从而将数据找回. Flashback query(闪回查询)前提: SQL> show parameter undo; NAME                                TYPE       VALUE ------------------------------------ ----------- --------

Oracle bbed 实用示例-----修改Data内容、恢复delete的rows

bbed 可以在db open 状态来进行修改,但是建议在做任何修改操作之前先shutdown db. 这样避免checkpoint 进程重写bbed 对block 的修改. 也避免oracle 在bbed 修改完成之前读block 或者申明block 为corrupt. 一. 示例: 修改Data内容 1.1连接bbed [[email protected] ~]$ bbed parfile=/u01/app/oracle/bbed/bbed.par Password: BBED: Relea

利用BBED恢复数据文件头

转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/31018075 @@@@@@@利用BBED模拟损坏5文件1号块(文件头) BBED> copy file 4 block 4 to file 5 block 1 File: /u01/app/oracle/oradata/PROD/tp01.dbf (5) Block: 1 Offsets: 0 to 19 Dba:0x01400001 --------------------------

SQLServer 恢复delete 删除的数据

恢复delete 删除的数据 一次偶然的机会我看到 恢复SQLSERVER被误删除的数据>博文 原文地址为:http://www.cnblogs.com/lyhabc/p/3683147.html 我就很好奇的看了下,然后就是一头雾水 ,完全看不懂 .其实我并没打算把 这篇博文看懂,既然别人已经开发好了 ,直接拿来用就行了. 后来我就随便测试了下 ,发现以下几个问题 1.博文中作者说 支持 datetime类型,测试的结果发现 完全不对,得到的日期是不正确的 2.该数据恢复方式不支持date类型

利用 BBED 恢复非归档模式下 OFFLINE 数据文件

今天来模拟一个非归档模式下恢复OFFLINE数据文件的场景,主要有2种情况: 一种是在线日志没有被覆盖,另一种是在线日志被覆盖. 第一种情况比较简单,数据库自身就能处理,而第二种情况稍显复杂,但也并不难,下面开始整个实验过程: 一.在线日志没有被覆盖的场景 --切换数据库到非归档模式 SQL> archive log list Database log mode       Archive Mode Automatic archival       Enabled Archive destina

通过sqlserver日志恢复误删除的数据

原文:通过sqlserver日志恢复误删除的数据 如果你已经急的焦头烂额,看到这篇文章的时候,请你换个坐姿,深呼吸几次,静下心来将这篇文章读完,也许你的问题迎刃而解. 我遇到的情况是这样的,网站被植入木马,盗取了我的web.config文件,web.config文件里面的数据库连接字符串没有加密,而我的数据库远程连接又没有做IP限制,黑客通过数据库客户端连上我的数据库后,将所有的表都Delete掉了,所以大家一定要有一个好习惯将数据库连接字符串加密或者对远程访问数据库的IP作限制. 因被黑客De

利用BBED恢复UPDATE修改前的值

实验过程如下: 1.创建表guo_test1 [email protected]> create table guoyJoe_t1(id int,name varchar2(10)); Table created. [email protected]> insert into guoyJoe_t1 values(1,'guoyJoe'); 1 row created. [email protected]> insert into guoyJoe_t1 values(1,'tom'); 1