【Oracle坏块】BBED参数介绍(三)

11、assign

  assign命令执行符号赋值,并进行类型和范围检查。对于当前偏移量,可以忽略目标或源。

  例如,以下命令将当前偏移量处的结构分配给文件4块2的第一个ITL条目:

BBED> assign dba 4, 2 ktbbhitl[0]

 

12、sum

  我们可以使用bbed 对block 进行修改。 要使这些修改生效,就要使用sum命令。

BBED> sum dba 1,116537
Check value for File 1, Block 116537:
current = 0x281a, required = 0x281a

BBED> sum dba 1,116537 apply
Check value for File 1, Block 116537:
current = 0x281a, required = 0x281a

------正常情况下,apply 以后,就已改生效了,但是测试的时候apply 并没有生效,而是把db 重启之后,modify 才生效。

 

13、push/pop

  push命令将对象放到内存的stack,pop 将对象从内存写回磁盘。

  下面的示例显示了正在example的文件7,块16,偏移量8163。使用push命令保存该位置。然后,在使用pop命令返回DBA 7,16之前,移动到文件6块1。

BBED> push dba 7,16

DBA 0x01c00010 (29360144 7,16)

OFFSET 8163

BBED> set dba 6,1

DBA 0x01800001 (25165825 6,1)

BBED> pop

DBA 0x01c00010 (29360144 7,16)

OFFSET 8163

命令pop all可用于从堆栈中删除所有推送条目。命令show all可用于显示所有保存的位置

 

14、revert

  revert是恢复自bbed 启动以来的所有修改。

BBED> revert dba 1,116537
All changes made to this block will be rolled back. Proceed? (Y/N) Y
Reverted file '/u01/app/oracle/oradata/T1/system01.dbf', block 116537

BBED> sum dba 1,116537 apply
Check value for File 1, Block 116537:
current = 0x2e3e, required = 0x2e3e

查看数据是否回退

SQL> alter system flush buffer_cache;

System altered.

SQL> select * from test;

NAME
------------
ZhangSan

 

15、undo

  undo命令是回滚最后一次操作

BBED> modify /c Supreme! dba 1,116537 offset 8180
 File: /u01/app/oracle/oradata/T1/system01.dbf (1)
 Block: 116537           Offsets: 8180 to 8191           Dba:0x0041c739
------------------------------------------------------------------------
 53757072 656d6521 0506b2b2 

 <32 bytes per line>

BBED> undo
BBED> modify /x 53757072656D6521 filename '/u01/app/oracle/oradata/T1/system01.dbf' block 116537. offset 8180.   --此部分为自动生成执行
 File: /u01/app/oracle/oradata/T1/system01.dbf (1)
 Block: 116537           Offsets: 8180 to 8191           Dba:0x0041c739
------------------------------------------------------------------------
 53757072 656d6521 0506b2b2 
 
 <32 bytes per line>

BBED> d /v dba 1,116537 offset 8180
 File: /u01/app/oracle/oradata/T1/system01.dbf (1)
 Block: 116537  Offsets: 8180 to 8191  Dba:0x0041c739
-------------------------------------------------------
 53757072 656d6521 0506b2b2          l ZhangSan..²²

 <16 bytes per line>

 

16、verfiy

   verify命令用来验证block的完整性。

DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/T1/system01.dbf
BLOCK = 116537


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
Message 531 not found;  product=RDBMS; facility=BBED

 

17、corrupt

  corrupt命令将一个block 标记为corrupt,这样db 在操作时就会跳过该block,从而避免错误。

BBED> corrupt dba 1,116537
Block marked media corrupt.

注意: undo 命令不能undo 一个corruption,但是revert 命令却可以。

 

posted @ 2021-07-29 15:18  蟹Bro  阅读(190)  评论(0编辑  收藏  举报