• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

利用BBED恢复UPDATE修改前的值

mysql 搞代码 4年前 (2022-01-09) 23次浏览 已收录 0个评论

实验过程如下: 1、创建表guo_test1 gyj@PROD create table guoyJoe_t1(id int,name varchar2(10));Table created.gyj@PROD insert into guoyJoe_t1 values(1,guoyJoe);1 row created.gyj@PROD insert into guoyJoe_t1 values(1,tom);1 row created.gyj@PROD

实验过程如下:

1、创建表guo_test1

gyj@PROD> create table guoyJoe_t1(id int,name varchar2(10));Table created.gyj@PROD> insert into guoyJoe_t1 values(1,'guoyJoe');1 row created.gyj@PROD> insert into guoyJoe_t1 values(1,'tom');1 row created.gyj@PROD> COMMIT;Commit complete.
gyj@PROD> select name,dbms_rowid.rowid_relative_fno(rowid) file#,dbms_rowid.rowid_block_number(rowid) block#,dbms_rowid.rowid_row_number(rowid)    row# from guoyJoe_t1;NAME            FILE#     BLOCK#       ROW#---------- ---------- ---------- ----------guoyJoe             5      20877          0tom                 5      20877          1

3、刷数据缓存

gyj@PROD> alter system flush buffer_cache;System altered.

4、利用BBED找到这行记录(修改前的值:guoyJoe)

BBED> BBED> set file 5    block 20877        FILE#           5        BLOCK#          20877

5、发生UPDATE语句,把原来的值guoyJoe修改成oracledba

gyj@PROD> update guoyJoe_t1 set name='oracledba' where name='guoyJoe';1 row updated.gyj@PROD> commit;Commit complete

6、刷数据缓存

gyj@PROD> alter system flush buffer_cache;System altered.

7、利用BBED找本文来源gaodai#ma#com搞@@代~&码*网/到这行被修改后的记录(修改后的值上:oracledba)

BBED> set file 5    block 20877        FILE#           5        BLOCK#          20877

8、对比修改前与修改后的数据

BBED> d /v offset 8174 count 16 File: /u01/app/oracle/oradata/PROD/tp01.dbf (5) Block: 20877   Offsets: 8174 to 8189  Dba:0x0140518d------------------------------------------------------- 2c000202 c1020767 756f794a 6f650106 l ,...á..guoyJoe..BBED> d /v offset 8148 count 16 File: /u01/app/oracle/oradata/PROD/tp01.dbf (5) Block: 20877   Offsets: 8148 to 8163  Dba:0x0140518d------------------------------------------------------- 2c010202 c102096f 7261636c 65646261 l ,...á..oracledba

9、开始恢复

10、恢复成功(oracledba—>guoyJoe)

gyj@PROD> alter system flush buffer_cache;System altered.gyj@PROD> select name,dbms_rowid.rowid_relative_fno(rowid) file#,dbms_rowid.rowid_block_number(rowid) block#,dbms_rowid.rowid_row_number(rowid)    row# from guoyJoe_t1 where id=1;NAME            FILE#     BLOCK#       ROW#---------- ---------- ---------- ----------guoyJoe             5      20877          0tom                 5      20877          1

实际上用BBED恢复UPDATE前的值不难,主要是要了解内部原理和块格式


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:利用BBED恢复UPDATE修改前的值

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址