data/gname/mssm.dbf (7)
Block: 10 Offsets: 8155 to 8191 Dba:0x01c0000a
------------------------------------------------------------------------
7376656e 2c000203 c20a6405 73657665 6e2c0002 02c10301 622c0002 02c10201
61020668 d5
<32 bytes per line>
BBED> d /v dba 7,10 offset 8155
File: /u01/oracle/oradata/gname/mssm.dbf (7)
Block: 10 Offsets: 8155 to 8191 Dba:0x01c0000a
-------------------------------------------------------
7376656e 2c000203 c20a6405 73657665 l sven,.....d.seve --可以看出update之前的数据seven还在数据块里面的,新的值sevn插入在上面
6e2c0002 02c10301 622c0002 02c10201 l n,......b,......
61020668 d5 l a..h.
<16 bytes per line>
更改数据
SQL> @getrowidinfo
Enter value for owner: ms1
Enter value for table: t
ID NAME ROWID_TYPE FILE_NO BLOCK_NO ROW_NO ORA_ROWSCN OBJECT_NO
---------- -------------------- ---------- ---------- ---------- ---------- ---------- ----------
1 a 1 7 10 0 513384 52503
2 b 1 7 10 1 513384 52503
999 sven 1 7 10 2 513384 52503
--我想把name字段的a改成c
SQL> select dump('a',16) from dual;
DUMP('A',16)
--------------------------------
Typ=96 Len=1: 61
SQL> select dump('c',16) from dual;
DUMP('C',16)
--------------------------------
Typ=96 Len=1: 63
BBED> f /x 61 curr --先找到61的位置 offset=8187
File: /u01/oracle/oradata/gname/mssm.dbf (7)
Block: 10 Offsets: 8187 to 8191 Dba:0x01c0000a
------------------------------------------------------------------------
61020668 d5
<32 bytes per line>
BBED> d /v offset 8187 --dump内容出来 offset=8187,可以看到字符a
File: /u01/oracle/oradata/gname/mssm.dbf (7)
Block: 10 Offsets: 8187 to 8191 Dba:0x01c0000a
-------------------------------------------------------
61020668 d5 l a..h.
<16 bytes per line>
BBED> help m --m:modify 修改数据的命令
MODIFY[/x|d|u|o|c] numeric/character string
[ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]
BBED> m /x 63 dba 7,10 offset 8187 --修改为63
File: /u01/oracle/oradata/gname/mssm.dbf (7)
Block: 10 Offsets: 8187 to 8191 Dba:0x01c0000a
------------------------------------------------------------------------
63020668 d5 --这里由61020668--> 63020668
<32 bytes per line>
BBED> verify --检查一下块的完整性
DBVERIFY - Verification starting
FILE = /u01/oracle/oradata/gname/mssm.dbf
BLOCK = 10
Block 10 is corrupt
Corrupt block relative dba: 0x01c0000a (file 0, block 10)
Bad check value found during verification
Data in bad block:
type: 6 format: 2 rdba: 0x01c0000a
last change scn: 0x0000.0007d568 seq: 0x2 flg: 0x06
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0xd5680602
check value in block header: 0x5a29
computed block checksum: 0x200
DBVERIFY - Verification complete
Total Blocks Examined : 1
Total Blocks Processed (Data) : 0
Total Blocks Failing (Data) : 0
Total Blocks Processed (Index): 0
Total Blocks Failing (Index): 0
Total Blocks Empty : 0
Total Blocks Marked Corrupt : 1
Total Blocks Influx : 0
BBED> d /v offset 8187
File: /u01/oracle/oradata/gname/mssm.dbf (7)
Block: 10 Offsets: 8187 to 8191 Dba:0x01c0000a
-------------------------------------------------------
63020668 d5 l c..h. --这里由a..h.变成c..h.
<16 bytes per line>
BBED> undo --undo,回滚上一步
BBED> modify /x 61 filename '/u01/oracle/oradata/gname/mssm.dbf' block 10. offset 8187.
File: /u01/oracle/oradata/gname/mssm.dbf (7)
Block: 10 Offsets: 8187 to 8191 Dba:0x01c0000a
------------------------------------------------------------------------
61020668 d5 --这里由63020668--> 61020668
<32 bytes per line>
--验证undo只能回滚上一步,revert可以回滚全部
BBED> m /x 62
File: /u0 |