【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 命令却可以。