[20210318]bbed读取数据块2.txt

来源:这里教程网 时间:2026-03-03 16:32:30 作者:

[20210318]bbed读取数据块2.txt 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 SCOTT@book> create table t as select * from all_objects where rownum<=1000; Table created. SCOTT@book> select object_id,data_object_id from dba_objects where owner=user and object_name='T';  OBJECT_ID DATA_OBJECT_ID ---------- --------------      90967          90967 2.建立脚本,测试读取看看。 $ cat fff.sh #! /bin/bash -x # argv1=file_number argv2=begin_block argvs3=end_block argv4=data_object_id file_number=$1 begin_block=$2 end_block=$3 data_object_id=$4 # scan1 begin_block to end_block,define Scope. /bin/rm scan1.txt 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 ]]         if (( $kdbr_off > $kdbr_size ))         then             echo -n "x /rcccnncttcccccnc dba $dba *kdbr[$begin]" | rlbbed  | grep "^col " | cut -c20- |  paste -sd'|'         fi         begin=$[ begin + 1 ]     done done 3.恢复看看: $ . fff.sh 4 731 800 90967 >|laji.txt --//使用toad导入 --//整理本文如下,使用vim的替换功能: --//:%s+ |+|+g --//:%s+ $++g --//:%s+|\*NULL\*|++g 4.测试恢复情况: --//导入细节略,我是使用toad自带的import功能实现的,步骤有点烦锁。 SCOTT@book> create table ty as select * from all_objects where 1=2; Table created. SCOTT@book> select * from t minus select * from ty; no rows selected SCOTT@book> select * from ty minus select * from t; no rows selected 5.总结: --//不是很实用,如果delete记录,输出会出现空行。而且记录多,处理起来很慢。 --//无法解决行链接和行迁移问题。

相关推荐