Heim > Datenbank > MySQL-Tutorial > 利用BBED恢复UPDATE修改前的值

利用BBED恢复UPDATE修改前的值

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-07 15:57:23
Original
1059 Leute haben es durchsucht

实验过程如下: 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.
Nach dem Login kopieren
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
Nach dem Login kopieren

3、刷数据缓存

gyj@PROD> alter system flush buffer_cache;

System altered.
Nach dem Login kopieren

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

BBED> BBED> set file 5    block 20877
        FILE#           5
        BLOCK#          20877
Nach dem Login kopieren

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

gyj@PROD> update guoyJoe_t1 set name='oracledba' where name='guoyJoe';

1 row updated.

gyj@PROD> commit;

Commit complete
Nach dem Login kopieren

6、刷数据缓存

gyj@PROD> alter system flush buffer_cache;

System altered.
Nach dem Login kopieren

7、利用BBED找到这行被修改后的记录(修改后的值上:oracledba)

BBED> set file 5    block 20877
        FILE#           5
        BLOCK#          20877
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage