[20231021]生成bbed的执行脚本.txt
--//尝试使用bbed 恢复rename IDL_UB1$的情况,前面的准备分析时间很长,恢复很容易。但是每次做修复数据块的一致性时,我总是还要
--//查询我以前写的文档,特别浪费时间记不住一些细节。实际上主要写计算公式上,我想既然已经给出提示信息。通过外部命令计算很
--//容易生成bbed的执行脚本,自己尝试看看。
--//bbed执行verify后出现6110,6111错误,简单更正公式如下:
--//code 6110
--//avsp = dtl-used-fsc
--//code 6111
--//tosp = avsp+stb+fsc
--//code=6110的情况:
BBED> verify
DBVERIFY - Verification starting
FILE = /mnt/ramdisk/book/system01.dbf
BLOCK = 243
Block Checking: DBA = 4194547, Block Type = KTB-managed data block
data header at 0x8ec644
kdbchk: the amount of space used is not equal to block size
used=7298 fsc=66 avsp=822 dtl=8120
Block 243 failed with check code 6110
--//avsp = dtl-used-fsc
--//avsp= 8120-7298-66 = 756
BBED> assign kdbh.kdbhavsp=756
sb2 kdbhavsp @78 756
--//code=6111的情况:
BBED> verify
DBVERIFY - Verification starting
FILE = /mnt/ramdisk/book/system01.dbf
BLOCK = 243
Block Checking: DBA = 4194547, Block Type = KTB-managed data block
data header at 0x8ec644
kdbchk: space available on commit is incorrect
tosp=890 fsc=66 stb=0 avsp=756
Block 243 failed with check code 6111
--//tosp = avsp+stb+fsc
--//tosp= 756+0+66 = 822
BBED> assign kdbh.kdbhtosp=822
sb2 kdbhtosp @80 822
--//在vim下定义如下,实际上写出来看上去很复杂,就是自己编辑过程再重现的过程。
noremap b10 Yp:.s/^\s*//:.s/ /;/g:s/$/;dtl-used-fsc/!!bc -lq:.s/^/--\/\/ assign kdbh.kdbhavsp = /
noremap b11 Yp:.s/^ *//:.s/ /;/g:s/$/;avsp+stb+fsc/!!bc -lq:.s/^/--\/\/ assign kdbh.kdbhtosp = /
--//简单解析一下:
--//noremap b10 Yp:.s/^\s*//:.s/ /;/g:s/$/;dtl-used-fsc/!!bc -lq:.s/^/--\/\/ assign kdbh.kdbhavsp = /
Yp 复制1行。
:.s/^\s*// 删除开头的空行以及tab字符
:.s/ /;/g 将全部空格替换为分号。used=7298 fsc=66 avsp=822 dtl=8120 变为 used=7298;fsc=66;avsp=822;dtl=8120
s/$/;dtl-used-fsc/ 在行尾增加如下;dtl-used-fsc。 used=7298;fsc=66;avsp=822;dtl=8120 变为 used=7298;fsc=66;avsp=822;dtl=8120;;dtl-used-fsc
!!bc -lq 调用bc计算器,返回结果756.
:.s/^/--\/\/ assign kdbh.kdbhavsp = / 在行头加入--// assign kdbh.kdbhavsp = ;最终变为 --// assign kdbh.kdbhavsp = 756。
--//演示一下:
used=7298 fsc=66 avsp=822 dtl=8120
--//快速的按 \b10,结果如下:
--// assign kdbh.kdbhavsp = 756
tosp=890 fsc=66 stb=0 avsp=756
--//快速的按 \b11,结果如下:
--// assign kdbh.kdbhtosp = 822
--//我个人喜欢自己定义一个map.vim文件包括以上内容。在.vimrc文件中加入如下内容
source c:\vim\vim73\map.vim
--//这样生成的脚本,可以避免每次手工计算的错误。