首頁 > 資料庫 > mysql教程 > 利用BBED恢复UPDATE修改前的值

利用BBED恢复UPDATE修改前的值

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-07 15:57:23
原創
1112 人瀏覽過

实验过程如下: 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          0
tom                 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找到这行被修改后的记录(修改后的值上: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          0
tom                 5      20877          1
登入後複製

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

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
利用php工具箱怎麼接sql server2012?
來自於 1970-01-01 08:00:00
0
0
0
程式設計師寫作利器_Markdown使用指南
來自於 1970-01-01 08:00:00
0
0
0
javascript - vuejs 利用ajax與後台進行交互
來自於 1970-01-01 08:00:00
0
0
0
java - 利用keytool產生store並轉換成PKCS#12
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板