[20251113]建立完善fffext.sh脚本.txt --//以前写过一个通过bbed查看数据块的bash shell脚本,别人使用发现存在问题。 $ . fffext.sh 9 225 225 15 ncnnnnnnnnnnnnnnnnncct| head -4 0|SYSTEM|0|1|128|0|0|0|0|0|3|0|||||0 1|_SYSSMU1_274027410$|1|21|128|63392027|0|11318|1269|0|3|2|||||2 2|_SYSSMU2_3565078997$|1|21|144|63392033|0|11251|1776|0|3|2|||||2 col 0[2] @737: 3 col 1[18] @740: _SYSSMU3_69012697$col 2[2] @759: 1 col 3[2] @762: 21 col 4[3] @765: 160 col 5[5] @769: 63392035 col 6[1] @775: 0 col 7[4] @777: 11427 col 8[3] @782: 1008 col 9[1] @786: 0 col 10[2] @788: 3 col 11[2] @791: 2 col 12[0] @794: *NULL*col 13[0] @795: *NULL*col 14[0] @796: *NULL*col 15[0] @797: *NULL*col 16[2] @798: 2 --//取第4条记录时出现问题。使用bbed查看: BBED> x /rncnnnnnnnnnnnnnnnnncct dba 9,225 *kdbr[3] rowdata[0] @734 ---------- flag@734: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@735: 0x00 cols@736: 17 col 0[2] @737: 3 col 1[18] @740: _SYSSMU3_69012697$ col 2[2] @759: 1 col 3[2] @762: 21 col 4[3] @765: 160 col 5[5] @769: 63392035 col 6[1] @775: 0 col 7[4] @777: 11427 col 8[3] @782: 1008 col 9[1] @786: 0 col 10[2] @788: 3 col 11[2] @791: 2 col 12[0] @794: *NULL* col 13[0] @795: *NULL* col 14[0] @796: *NULL* col 15[0] @797: *NULL* col 16[2] @798: 2 BBED> x /rncnnnnnnnnnnnnnnnnncct dba 9,225 *kdbr[0] rowdata[7412] @8146 ------------- flag@8146: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8147: 0x00 cols@8148: 17 col 0[1] @8149: 0 col 1[6] @8151: SYSTEM col 2[1] @8158: 0 col 3[2] @8160: 1 col 4[3] @8163: 128 col 5[1] @8167: 0 col 6[1] @8169: 0 col 7[1] @8171: 0 col 8[1] @8173: 0 col 9[1] @8175: 0 col 10[2] @8177: 3 col 11[1] @8180: 0 col 12[0] @8182: *NULL* col 13[0] @8183: *NULL* col 14[0] @8184: *NULL* col 15[0] @8185: *NULL* col 16[1] @8186: 0 --//发现有问题的偏移仅仅百位,才发现自己的代码写死了,限制仅仅13个字符,修改如下13改为11,14,这样就没有问题了: --//注:里面的^G在vim的linux的插入模式下按ctrl+v ctrl+G 输入,实际上单个字符。windows按ctrl+q,ctrl+g。 --//还有^F类似。 --//补充说明脚本里面rlbbed。我定义为函数,修改为别名应该也可以。 --//执行的前面要加入点或者使用source开头。也可以先执行如下,在直接执行。 --//export -f rlbbed. --//或者 --//declare -x -f NAME $ which $BBED /u01/app/oracle/product/21.0.0/dbhome_1/bin/bbed $ export RLWRAP=$(which rlwrap) $ type rlbbed rlbbed is a function rlbbed () { cd /home/oracle/bbed; $RLWRAP -s 9999 -c -r -i -f /usr/local/share/rlwrap/bbed $BBED parfile=bbed.par cmdfile=cmd.par } $ cat bbed.par blocksize=8192 listfile=filelist.txt mode=edit PASSWORD=blockedit SPOOL=Y $ cat cmd.par set count 64 set width 160 --//filelist.txt文本可以通过如下输出建立。 select lpad(file#,6,' ')||' '||name filelist from v$dbfile order by file#; --//fffext.sh代码如下: $ cat -v fffext.sh #! /bin/bash # argv1=file_number argv2=begin_block argvs3=end_block argv4=data_object_id argv5=bbed /x format #set -x file_number=$1 begin_block=$2 end_block=$3 data_object_id=$4 ff="/r"${5} # create sed script. a=$5 len=$( echo ${#a} ) seq $len | xargs -IQ expr substr $a Q 1 | grep -n '[nt]' | sed 's+:.$+s/ $//+' >| ff.sed echo 's+^\*NULL\*$++g' >> ff.sed # scan begin_block to end_block,define search scope. /bin/rm scan1.txt 2>/dev/null #seq -f "%-1.0f" $begin_block $end_block | xargs -IQ echo -e "host echo $file_number,Q \np /d dba $file_number,Q ktbbh.ktbbhsid.ktbbhod1" | \ #rlbbed | grep "^BBED" | egrep "$file_number,|ub4 ktbbhod1" | awk '{print $NF}' | paste -d" " - - | awk -v a=$data_object_id '$2==a {print $1}' >| scan1.txt seq -f "%-1.0f" $begin_block $end_block | xargs -IQ echo -e "host echo -n $file_number,Q \np /d dba $file_number,Q ktbbh.ktbbhsid.ktbbhod1" | \ rlbbed | grep -B1 --no-group-separator "ub4 ktbbhod1" | awk '{print $NF}' | paste -d" " - - | awk -v a=$data_object_id '$2==a {print $1}' >| scan1.txt # scan2 kdbr and display record. cat scan1.txt |while read dba do #echo $dba kdbr_size=$(echo p dba $dba kdbt[0].kdbtnrow | rlbbed| grep kdbtnrow | awk '{print $NF}') #echo $kdbr_size begin=0 end=$[ kdbr_size -1 ] #echo $begin $end #echo set dba $dba IFSOLD=$IFS echo p dba $dba offset 0 kdbr | rlbbed | grep "sb2 kdbr" | sed "1s/^BBED> //" | awk -F"[][ ]+" -v a=$kdbr_size '$NF > a {print $3}' | \ sed "s+^+x $ff dba $dba *kdbr[+;s+$+]+"| rlbbed | sed -n '/^col /,/^BBED> /{s/^col .\{11,14\}: /^G/;/^$/d;/^BBED> /s/^.*$/^F/;p;}'| tr -d "\n\r" | \ awk 'BEGIN{RS="^F"} {print $0}' | while read line do echo "$line" | sed "s/^G//" | tr "^G" "\n" | sed -f ff.sed| paste -sd"|" done done $ . fffext.sh 9 225 225 15 ncnnnnnnnnnnnnnnnnncct| head -4 0|SYSTEM|0|1|128|0|0|0|0|0|3|0|||||0 1|_SYSSMU1_274027410$|1|21|128|63392027|0|11318|1269|0|3|2|||||2 2|_SYSSMU2_3565078997$|1|21|144|63392033|0|11251|1776|0|3|2|||||2 3|_SYSSMU3_69012697$|1|21|160|63392035|0|11427|1008|0|3|2|||||2 --//现在就没有问题了。
[20251113]建立完善fffext.sh脚本.txt
来源:这里教程网
时间:2026-03-03 22:51:52
作者:
编辑推荐:
- [20251113]建立完善fffext.sh脚本.txt03-03
- [20251117]使用bbed p dba命令遇到的问题.txt03-03
- MongoDB实战解析:如何驱动新一代智能汽车的用户画像与实时交互平台03-03
- 光速革命:中国研发全球领先微型光学芯片,传输速度突破1000Gbps,能耗降低90%!03-03
- 边界与内部和相等的稳定子数组03-03
- 新人交流学习一下03-03
- UUID:通用唯一标识符详解03-03
- oracle expdp03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- TCL科技:三季报“喜色”与多元化“暗伤”
TCL科技:三季报“喜色”与多元化“暗伤”
26-03-03 - “多极引擎”撬动千亿市场 大麦娱乐构建现实娱乐新生态
“多极引擎”撬动千亿市场 大麦娱乐构建现实娱乐新生态
26-03-03 - 引领酒旅数智化!雅里数科受邀参加环球旅讯「大湾区数智论坛」
引领酒旅数智化!雅里数科受邀参加环球旅讯「大湾区数智论坛」
26-03-03 - 异机用 LogMiner 挖掘归档日志:实践要点与最小化恢复思路
异机用 LogMiner 挖掘归档日志:实践要点与最小化恢复思路
26-03-03 - AWR 报告为什么会“缺失”?一次关于 Oracle 性能诊断的深入排查
AWR 报告为什么会“缺失”?一次关于 Oracle 性能诊断的深入排查
26-03-03 - 解决 Oracle 11g Data Guard ORA-16047 的实战经验
- 深入数据库性能优化:从参数调优到RAC高可用架构构建
深入数据库性能优化:从参数调优到RAC高可用架构构建
26-03-03 - 安谋科技发布NPU IP“周易”X3 驱动架构革新再定义端侧AI
安谋科技发布NPU IP“周易”X3 驱动架构革新再定义端侧AI
26-03-03 - 操作系统大会2025 | 麒麟信安系列新品发布!智创未来 再启新程
操作系统大会2025 | 麒麟信安系列新品发布!智创未来 再启新程
26-03-03 - 海尔智慧楼宇地铁七连冠后 又发力高铁
海尔智慧楼宇地铁七连冠后 又发力高铁
26-03-03
