[20210323]bbed读取数据块5.txt --//上个星期做了bbed读取数据块的测试,生成的文本存在一些小问题,要通过vim替换。 --//今天没事,完善这部分的处理。 1.环境: SCOTT@book> @ ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production 2.准备: SCOTT@book> select rowid from emp where rownum=1; ROWID ------------------ AAAVREAAEAAAACXAAA SCOTT@book> @ rowid AAAVREAAEAAAACXAAA OBJECT FILE BLOCK ROW ROWID_DBA DBA TEXT ---------- ---------- ---------- ---------- -------------------- -------------------- ---------------------------------------- 87108 4 151 0 0x1000097 4,151 alter system dump datafile 4 block 151 ; 2.建立脚本,测试读取看看。 $ cat fff.sh #! /bin/bash -x # argv1=file_number argv2=begin_block argvs3=end_block argv4=data_object_id argv5=bbed /x format 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 # scan1 begin_block to end_block,define Scope. /bin/rm scan1.txt 2>/dev/null while [ $begin_block -le $end_block ] do v_object_id=$(echo "p /d dba $file_number,$begin_block ktbbh.ktbbhsid.ktbbhod1" | rlbbed | grep ktbbhod1 |awk '{print $NF}') if [ -z "$v_object_id" ] then v_object_id=0 fi if (( $v_object_id == $data_object_id )) then echo $file_number,$begin_block >> scan1.txt fi begin_block=$[ begin_block + 1 ] done # scan2 kdbr and display record. cat scan1.txt |while read dba do #echo set dba $dba kdbr_size=$(echo map dba $dba | rlbbed | grep "sb2 kdbr" | sed -e "s/^.*\[//;s/].*$//") #echo $kdbr_size begin=0 end=$[ kdbr_size -1 ] #echo $begin $end while [ $begin -le $end ] do kdbr_off=$(echo p dba $dba offset 0 kdbr | rlbbed | grep "sb2 kdbr\[$begin\]" | awk '{print $NF'}) #echo $kdbr_off #if [ $kdbr_off -gt $kdbr_size ] if (( $kdbr_off > $kdbr_size )) then echo -n "x $ff dba $dba *kdbr[$begin]" | rlbbed | grep "^col " | cut -c20- | sed -f ff.sed | paste -sd'|' fi begin=$[ begin + 1 ] done done $ . fff.sh 4 151 151 87108 nccntnnn 7369|SMITH|CLERK|7902|1980-12-17 00:00:00|800||20 7499|ALLEN|SALESMAN|7698|1981-02-20 00:00:00|1600|300|30 7521|WARD|SALESMAN|7698|1981-02-22 00:00:00|1250|500|30 7566|JONES|MANAGER|7839|1981-04-02 00:00:00|2975||20 7654|MARTIN|SALESMAN|7698|1981-09-28 00:00:00|1250|1400|30 7698|BLAKE|MANAGER|7839|1981-05-01 00:00:00|2850||30 7782|CLARK|MANAGER|7839|1981-06-09 00:00:00|2450||10 7788|SCOTT|ANALYST|7566|1987-04-19 00:00:00|3000||20 7839|KING|PRESIDENT||1981-11-17 00:00:00|5000||10 7844|TURNER|SALESMAN|7698|1981-09-08 00:00:00|1500|0|30 7876|ADAMS|CLERK|7788|1987-05-23 00:00:00|1100||20 7900|JAMES|CLERK|7698|1981-12-03 00:00:00|950||30 7902|FORD|ANALYST|7566|1981-12-03 00:00:00|3000||20 7934|MILLER|CLERK|7782|1982-01-23 00:00:00|1300||10 --//这样前面生成文本文件的一些弊端都给解决了。 3.尝试sqlldr导入: SCOTT@book> create table empx as select * from emp where 1=2; Table created. $ cat test.ctl load data CHARACTERSET ZHS16GBK infile 'laji.txt' append into table empx fields terminated by '|' TRAILING NULLCOLS ( EMPNO , ENAME , JOB , MGR , HIREDATE DATE "YYYY-MM-DD HH24:MI:SS" , SAL , COMM , DEPTNO ) $ sqlldr userid=scott/book control=test.ctl log=1.log bad=1.bad discard=1.discard SQL*Loader: Release 11.2.0.4.0 - Production on Tue Mar 23 08:50:04 2021 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Commit point reached - logical record count 14 SCOTT@book> select * from empx minus select * from emp; no rows selected SCOTT@book> select * from emp minus select * from empx; no rows selected 4.总结: --//不实用,仅仅当作自己学习bash shell的一次练习。
[20210323]bbed读取数据块5.txt
来源:这里教程网
时间:2026-03-03 16:31:39
作者:
编辑推荐:
- 监听配置细节参数详解两则03-03
- [20210323]bbed读取数据块5.txt03-03
- [20210311]如何建立bbed安装包.txt03-03
- [20210312]如何取整月日期.txt03-03
- 需要了解的Data Guard理论知识(一)03-03
- 需要了解的Data Guard理论知识(二)03-03
- 需要了解的Data Guard理论知识(三)03-03
- Oracle监听日志清除03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Oracle监听日志清除
Oracle监听日志清除
26-03-03 - Oracle 19C RAC open_links_per_instance参数问题
- read by other session 等待事件分析
read by other session 等待事件分析
26-03-03 - Oracle sqlldr工具功能测试
Oracle sqlldr工具功能测试
26-03-03 - SQLServer 2012复制订阅数据订阅过程
SQLServer 2012复制订阅数据订阅过程
26-03-03 - [oracle] 索引低效,导致read by other session等待事件
- 【SQL】SQL表连接方法方式介绍(Oracle/Postgresql)
【SQL】SQL表连接方法方式介绍(Oracle/Postgresql)
26-03-03 - Oracle 19c数据库体系结构-2
Oracle 19c数据库体系结构-2
26-03-03 - 数据库无法注册至监听服务解决办法
数据库无法注册至监听服务解决办法
26-03-03 - Oracle数据库启动过程及状态详解
Oracle数据库启动过程及状态详解
26-03-03
