oracle bbed恢复update数据
2018-01-25 17:09
225 查看
人生有两出悲剧。一是万念俱灰;另一是踌躇满志。------------萧伯纳
oracle修改表字段数据时,当修改数据数据长度不变时,oracle将在数据块行数据中直接修改数据。
如果修改数据长度变长或者变短,oracle将在数据块中新加入一行数据,故如若oracle数据库中数据
被修改,可以通过修改数据块row directory指针指向,找回旧值。
一、基础信息获取
1.1,查询数据
SQL> select * from vehicle;
XH HPHM HPZL CCDJRQ
---------- ---------------------------------------- ------ ------------------
430002 A88888 02 18-OCT-17
1.2,根据rowid获取数据所在数据文件和数据块。
SQL> select dbms_rowid.rowid_relative_fno(rowid),dbms_rowid.rowid_block_number(rowid) from vehicle;
DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)
------------------------------------ ------------------------------------
5 12
1.3,dump数据块信息,获取内部结构信息
SQL> oradebug setmypid
Statement processed.
SQL> alter system dump datafile 5 block 12;
System altered.
SQL>
SQL> oradebug tracefile_name
/oracle/app/oracle/admin/DB10G/udump/db10g_ora_2280.trc
1.4,查看日志信息,获取dump信息
data_block_dump,data header at 0xdc72464
===============
tsiz: 0x1f98
hsiz: 0x14
pbl: 0x0dc72464
bdba: 0x0140000c
76543210
flag=--------
ntab=1
nrow=1
frre=-1
fsbo=0x14
fseo=0x1f60
avsp=0x1f6a
tosp=0x1f6a
0xe:pti[0] nrow=1 offs=0
0x12:pri[0] offs=0x1f7e
block_row_dump:
tab 0, row 0, @0x1f7e
tl: 26 fb: --H-FL-- lb: 0x1 cc: 4
col 0: [ 4] c3 2c 01 03
col 1: [ 6] 41 38 38 38 38 38
col 2: [ 2] 30 32
col 3: [ 7] 78 75 0a 12 03 0b 24
end_of_block_dump
End dump data blocks tsn: 6 file#: 5 minblk 12 maxblk 12
二,数据修改测试(同长度修改)
2.1,bbed查看原数据
BBED> set dba 5,12
DBA 0x0140000c (20971532 5,12)
BBED> p kdbr
sb2 kdbr[0] @118 8062
BBED> set offset 8162
OFFSET 8162
BBED> d /v
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 8162 to 8191 Dba:0x0140000c
-------------------------------------------------------
2c010404 c32c0103 06413838 38383802 l ,....,...A88888.
30320778 750a1203 0b240206 6525 l 02.xu....$..e%
<16 bytes per line>
2.2,修改数据,数据长度与原数据一样
SQL> update vehicle set hphm='A11111' where hphm='A88888';
1 row updated.
SQL> commit;
Commit complete.
2.3,使用bbed查看数据
BBED> set dba 5,12
DBA 0x0140000c (20971532 5,12)
BBED> p kdbr
sb2 kdbr[0] @118 8062
BBED> set offset 8162
OFFSET 8162
BBED> d /v
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 8162 to 8191 Dba:0x0140000c
-------------------------------------------------------
2c020404 c32c0103 06413131 31313102 l ,....,...A11111.
30320778 750a1203 0b240206 60d7 l 02.xu....$..`.
<16 bytes per line>
可以看到,表中还是一条数据,数据头结构中记录的kdbr[0]指针指向的地址还是8062,加上相对偏移量后
数据实际位置为8162,根据dump出来的信息,可以看到,修改的数据已经记录在数据库中了。
三、数据修改测试(不同长度数据修改)
3.1,修改数据
SQL> update vehicle set hphm='A99999999' where hphm='A11111';
1 row updated.
SQL> commit;
Commit complete.
3.2,使用bbed查看数据
BBED> set dba 5,12
DBA 0x0140000c (20971532 5,12)
BBED> p kdbr
sb2 kdbr[0] @118 8003
BBED> set offset 8103
OFFSET 8103
BBED> d /v
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 8103 to 8191 Dba:0x0140000c
-------------------------------------------------------
2c010404 c32c0103 09413939 39393939 l ,....,...A999999
39390230 32077875 0a12030b 242c0004 l 99.02.xu....$,..
04c32c01 030a4138 38383838 38383838 l ..,...A888888888
02303207 78750a12 030b242c 000404c3 l .02.xu....$,....
2c010306 41313131 31310230 32077875 l ,...A11111.02.xu
0a12030b 24020652 d9 l ....$..R.
<16 bytes per line>
3.3,可以看到,数据块中,数据头结构中记录的kdbr[0]指针指向的地址变为8003,加上相对偏移量后
数据实际位置为8103,根据dump出来的信息,可以看到,修改的数据已经记录在数据库中了。
四,找回修改的数据
4.1,由上面的数据信息我们可以知道,当修改数据长度与原数据不一致时,数据其实在数据块中还是存在的,
我们通过修改数据块row directory中的指针信息,可以把原有的数据找回来。
4.2,bbed修改row directory指针信息
BBED> p kdbr
sb2 kdbr[0] @118 8003
原数据所在偏移量为8162,减去一个相对值,绝对路径值为8162-100=8062
BBED> set offset 118
OFFSET 118
BBED> d
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 118 to 629 Dba:0x0140000c
------------------------------------------------------------------------
431f0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
SQL> select to_number('1f43','xxxx') from dual;
TO_NUMBER('1F43','XXXX')
------------------------
8003
SQL> select to_char(8062,'XXXX') from dual;
TO_CHAR(8062,'X
---------------
1F7E
BBED> modify /x 7e1f
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 118 to 629 Dba:0x0140000c
------------------------------------------------------------------------
7e1f0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
BBED> sum apply
Check value for File 5, Block 12:
current = 0x60a0, required = 0x60a0
BBED> verify
DBVERIFY - Verification starting
FILE = /oracle/app/data/DB10G/dt_tpc_dat01.dbf
BLOCK = 12
Block Checking: DBA = 20971532, Block Type = KTB-managed data block
data header at 0x6d02264
kdbchk: xaction header lock count mismatch
trans=1 ilk=1 nlo=0
Block 12 failed with check code 6108
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
4.3,修正错误
BBED> set offset 8103
OFFSET 8103
BBED> d /v
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 8103 to 8191 Dba:0x0140000c
-------------------------------------------------------
2c010404 c32c0103 09413939 39393939 l ,....,...A999999
BBED> set offset 8162
OFFSET 8162
BBED> d /v
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 8162 to 8191 Dba:0x0140000c
-------------------------------------------------------
2c000404 c32c0103 06413131 31313102 l ,....,...A11111.
BBED> modify /x 01 offset +1
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 8163 to 8191 Dba:0x0140000c
------------------------------------------------------------------------
010404c3 2c010306 41313131 31310230 32077875 0a12030b 24020652 d9
BBED> set offset 8103
OFFSET 8103
BBED> modify /x 00 offset +1
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 8104 to 8191 Dba:0x0140000c
------------------------------------------------------------------------
000404c3 2c010309 41393939 39393939 39023032 0778750a 12030b24 2c000404
BBED> sum apply
Check value for File 5, Block 12:
current = 0x61a1, required = 0x61a1
BBED> verify
DBVERIFY - Verification starting
FILE = /oracle/app/data/DB10G/dt_tpc_dat01.dbf
BLOCK = 12
Block Checking: DBA = 20971532, Block Type = KTB-managed data block
data header at 0x621c264
kdbchk: the amount of space used is not equal to block size
used=46 fsc=0 avsp=8039 dtl=8088
Block 12 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
BBED> p kdbh
struct kdbh, 14 bytes @100
ub1 kdbhflag @100 0x00 (NONE)
b1 kdbhntab @101 1
b2 kdbhnrow @102 1
sb2 kdbhfrre @104 -1
sb2 kdbhfsbo @106 20
sb2 kdbhfseo @108 8003
b2 kdbhavsp @110 8039
b2 kdbhtosp @112 8039
SQL> select to_char(8042,'XXXX') from dual;
TO_CHAR(8042,'X
---------------
1F6A
BBED> set offset 110
OFFSET 110
BBED> d /v
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 110 to 621 Dba:0x0140000c
-------------------------------------------------------
671f671f 00000100 7e1f0000 00000000 l g.g.....~.......
BBED> modify /x 6a1f
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 110 to 621 Dba:0x0140000c
------------------------------------------------------------------------
6a1f671f 00000100 7e1f0000 00000000 00000000 00000000 00000000 00000000
BBED> set offset 112
OFFSET 112
BBED> modify /x 6a1f
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 112 to 623 Dba:0x0140000c
------------------------------------------------------------------------
6a1f0000 01007e1f 00000000 00000000 00000000 00000000 00000000 00000000
BBED> sum apply
Check value for File 5, Block 12:
current = 0x61a1, required = 0x61a1
BBED> verify
DBVERIFY - Verification starting
FILE = /oracle/app/data/DB10G/dt_tpc_dat01.dbf
BLOCK = 12
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
五,数据验证
至此,数据库数据恢复已经全部完成,我们可以查询数据,可以发现数据已经变为旧值。所有结论得到验证。
SQL> alter system flush buffer_cache;
System altered.
SQL> select * from vehicle
XH HPHM HPZL CCDJRQ
---------- ------------------------------------------------------------ ------ ------------------
430002 A11111 02 18-OCT-17
喜欢的朋友可以扫描以下二维码进行关注,公众号将每天更新文章:
oracle修改表字段数据时,当修改数据数据长度不变时,oracle将在数据块行数据中直接修改数据。
如果修改数据长度变长或者变短,oracle将在数据块中新加入一行数据,故如若oracle数据库中数据
被修改,可以通过修改数据块row directory指针指向,找回旧值。
一、基础信息获取
1.1,查询数据
SQL> select * from vehicle;
XH HPHM HPZL CCDJRQ
---------- ---------------------------------------- ------ ------------------
430002 A88888 02 18-OCT-17
1.2,根据rowid获取数据所在数据文件和数据块。
SQL> select dbms_rowid.rowid_relative_fno(rowid),dbms_rowid.rowid_block_number(rowid) from vehicle;
DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)
------------------------------------ ------------------------------------
5 12
1.3,dump数据块信息,获取内部结构信息
SQL> oradebug setmypid
Statement processed.
SQL> alter system dump datafile 5 block 12;
System altered.
SQL>
SQL> oradebug tracefile_name
/oracle/app/oracle/admin/DB10G/udump/db10g_ora_2280.trc
1.4,查看日志信息,获取dump信息
data_block_dump,data header at 0xdc72464
===============
tsiz: 0x1f98
hsiz: 0x14
pbl: 0x0dc72464
bdba: 0x0140000c
76543210
flag=--------
ntab=1
nrow=1
frre=-1
fsbo=0x14
fseo=0x1f60
avsp=0x1f6a
tosp=0x1f6a
0xe:pti[0] nrow=1 offs=0
0x12:pri[0] offs=0x1f7e
block_row_dump:
tab 0, row 0, @0x1f7e
tl: 26 fb: --H-FL-- lb: 0x1 cc: 4
col 0: [ 4] c3 2c 01 03
col 1: [ 6] 41 38 38 38 38 38
col 2: [ 2] 30 32
col 3: [ 7] 78 75 0a 12 03 0b 24
end_of_block_dump
End dump data blocks tsn: 6 file#: 5 minblk 12 maxblk 12
二,数据修改测试(同长度修改)
2.1,bbed查看原数据
BBED> set dba 5,12
DBA 0x0140000c (20971532 5,12)
BBED> p kdbr
sb2 kdbr[0] @118 8062
BBED> set offset 8162
OFFSET 8162
BBED> d /v
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 8162 to 8191 Dba:0x0140000c
-------------------------------------------------------
2c010404 c32c0103 06413838 38383802 l ,....,...A88888.
30320778 750a1203 0b240206 6525 l 02.xu....$..e%
<16 bytes per line>
2.2,修改数据,数据长度与原数据一样
SQL> update vehicle set hphm='A11111' where hphm='A88888';
1 row updated.
SQL> commit;
Commit complete.
2.3,使用bbed查看数据
BBED> set dba 5,12
DBA 0x0140000c (20971532 5,12)
BBED> p kdbr
sb2 kdbr[0] @118 8062
BBED> set offset 8162
OFFSET 8162
BBED> d /v
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 8162 to 8191 Dba:0x0140000c
-------------------------------------------------------
2c020404 c32c0103 06413131 31313102 l ,....,...A11111.
30320778 750a1203 0b240206 60d7 l 02.xu....$..`.
<16 bytes per line>
可以看到,表中还是一条数据,数据头结构中记录的kdbr[0]指针指向的地址还是8062,加上相对偏移量后
数据实际位置为8162,根据dump出来的信息,可以看到,修改的数据已经记录在数据库中了。
三、数据修改测试(不同长度数据修改)
3.1,修改数据
SQL> update vehicle set hphm='A99999999' where hphm='A11111';
1 row updated.
SQL> commit;
Commit complete.
3.2,使用bbed查看数据
BBED> set dba 5,12
DBA 0x0140000c (20971532 5,12)
BBED> p kdbr
sb2 kdbr[0] @118 8003
BBED> set offset 8103
OFFSET 8103
BBED> d /v
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 8103 to 8191 Dba:0x0140000c
-------------------------------------------------------
2c010404 c32c0103 09413939 39393939 l ,....,...A999999
39390230 32077875 0a12030b 242c0004 l 99.02.xu....$,..
04c32c01 030a4138 38383838 38383838 l ..,...A888888888
02303207 78750a12 030b242c 000404c3 l .02.xu....$,....
2c010306 41313131 31310230 32077875 l ,...A11111.02.xu
0a12030b 24020652 d9 l ....$..R.
<16 bytes per line>
3.3,可以看到,数据块中,数据头结构中记录的kdbr[0]指针指向的地址变为8003,加上相对偏移量后
数据实际位置为8103,根据dump出来的信息,可以看到,修改的数据已经记录在数据库中了。
四,找回修改的数据
4.1,由上面的数据信息我们可以知道,当修改数据长度与原数据不一致时,数据其实在数据块中还是存在的,
我们通过修改数据块row directory中的指针信息,可以把原有的数据找回来。
4.2,bbed修改row directory指针信息
BBED> p kdbr
sb2 kdbr[0] @118 8003
原数据所在偏移量为8162,减去一个相对值,绝对路径值为8162-100=8062
BBED> set offset 118
OFFSET 118
BBED> d
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 118 to 629 Dba:0x0140000c
------------------------------------------------------------------------
431f0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
SQL> select to_number('1f43','xxxx') from dual;
TO_NUMBER('1F43','XXXX')
------------------------
8003
SQL> select to_char(8062,'XXXX') from dual;
TO_CHAR(8062,'X
---------------
1F7E
BBED> modify /x 7e1f
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 118 to 629 Dba:0x0140000c
------------------------------------------------------------------------
7e1f0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
BBED> sum apply
Check value for File 5, Block 12:
current = 0x60a0, required = 0x60a0
BBED> verify
DBVERIFY - Verification starting
FILE = /oracle/app/data/DB10G/dt_tpc_dat01.dbf
BLOCK = 12
Block Checking: DBA = 20971532, Block Type = KTB-managed data block
data header at 0x6d02264
kdbchk: xaction header lock count mismatch
trans=1 ilk=1 nlo=0
Block 12 failed with check code 6108
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
4.3,修正错误
BBED> set offset 8103
OFFSET 8103
BBED> d /v
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 8103 to 8191 Dba:0x0140000c
-------------------------------------------------------
2c010404 c32c0103 09413939 39393939 l ,....,...A999999
BBED> set offset 8162
OFFSET 8162
BBED> d /v
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 8162 to 8191 Dba:0x0140000c
-------------------------------------------------------
2c000404 c32c0103 06413131 31313102 l ,....,...A11111.
BBED> modify /x 01 offset +1
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 8163 to 8191 Dba:0x0140000c
------------------------------------------------------------------------
010404c3 2c010306 41313131 31310230 32077875 0a12030b 24020652 d9
BBED> set offset 8103
OFFSET 8103
BBED> modify /x 00 offset +1
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 8104 to 8191 Dba:0x0140000c
------------------------------------------------------------------------
000404c3 2c010309 41393939 39393939 39023032 0778750a 12030b24 2c000404
BBED> sum apply
Check value for File 5, Block 12:
current = 0x61a1, required = 0x61a1
BBED> verify
DBVERIFY - Verification starting
FILE = /oracle/app/data/DB10G/dt_tpc_dat01.dbf
BLOCK = 12
Block Checking: DBA = 20971532, Block Type = KTB-managed data block
data header at 0x621c264
kdbchk: the amount of space used is not equal to block size
used=46 fsc=0 avsp=8039 dtl=8088
Block 12 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
BBED> p kdbh
struct kdbh, 14 bytes @100
ub1 kdbhflag @100 0x00 (NONE)
b1 kdbhntab @101 1
b2 kdbhnrow @102 1
sb2 kdbhfrre @104 -1
sb2 kdbhfsbo @106 20
sb2 kdbhfseo @108 8003
b2 kdbhavsp @110 8039
b2 kdbhtosp @112 8039
SQL> select to_char(8042,'XXXX') from dual;
TO_CHAR(8042,'X
---------------
1F6A
BBED> set offset 110
OFFSET 110
BBED> d /v
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 110 to 621 Dba:0x0140000c
-------------------------------------------------------
671f671f 00000100 7e1f0000 00000000 l g.g.....~.......
BBED> modify /x 6a1f
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 110 to 621 Dba:0x0140000c
------------------------------------------------------------------------
6a1f671f 00000100 7e1f0000 00000000 00000000 00000000 00000000 00000000
BBED> set offset 112
OFFSET 112
BBED> modify /x 6a1f
File: /oracle/app/data/DB10G/dt_tpc_dat01.dbf (5)
Block: 12 Offsets: 112 to 623 Dba:0x0140000c
------------------------------------------------------------------------
6a1f0000 01007e1f 00000000 00000000 00000000 00000000 00000000 00000000
BBED> sum apply
Check value for File 5, Block 12:
current = 0x61a1, required = 0x61a1
BBED> verify
DBVERIFY - Verification starting
FILE = /oracle/app/data/DB10G/dt_tpc_dat01.dbf
BLOCK = 12
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
五,数据验证
至此,数据库数据恢复已经全部完成,我们可以查询数据,可以发现数据已经变为旧值。所有结论得到验证。
SQL> alter system flush buffer_cache;
System altered.
SQL> select * from vehicle
XH HPHM HPZL CCDJRQ
---------- ------------------------------------------------------------ ------ ------------------
430002 A11111 02 18-OCT-17
喜欢的朋友可以扫描以下二维码进行关注,公众号将每天更新文章:
相关文章推荐
- 【Oracle】使用bbed恢复update的数据
- oracle 数据库update失败后 恢复到以前的数据
- Oracle 之利用BBED修改数据块SCN----没有备份数据文件的数据恢复
- oracle update、delete或者drop误操作如何恢复之前是数据
- Oracle update 执行更新操作后的数据恢复
- oracle恢复update以后数据的SQL语句
- oracle bbed恢复删除数据实例
- oracle特殊恢复-bbed修改某个数据文件头
- Oracle数据之select * for update恢复小结(1)
- oracle做了update的误操作该如何恢复之前数据?
- Oracle 之利用BBED修改数据块SCN----极端环境下的数据恢复(一)
- oracle数据update后怎么恢复到以前的数据
- oracle误delete或update数据还原(恢复)方法记录
- oracle做了update的误操作,怎么恢复之前数据
- 恢复oracle中update或delete的数据
- 【Oracle】使用bbed恢复delete的数据
- 【Oracle】使用bbed恢复delete的数据
- oracle 非关键数据文件丢失后的恢复处理
- Oracle 恢复被删除的数据
- Oracle数据恢复