[20150612]使用bvi查看数据块.txt

简介: [20150612]使用bvi查看数据块.txt --编写一个简单的脚本实现bvi查看数据块,主要我现在喜欢使用bbed查看,而修改选择bvi。 --通过例子来说明: SCOTT@test> select rowid,dept.

[20150612]使用bvi查看数据块.txt

--编写一个简单的脚本实现bvi查看数据块,主要我现在喜欢使用bbed查看,而修改选择bvi。
--通过例子来说明:

SCOTT@test> select rowid,dept.* from dept ;
ROWID                    DEPTNO DNAME          LOC
------------------ ------------ -------------- -------------
AABJVUAAEAAAAdzAAA           10 ACCOUNTING     NEW YORK
AABJVUAAEAAAAdzAAB           20 RESEARCH       DALLAS1
AABJVUAAEAAAAdzAAC           30 SALES          CHICAGO
AABJVUAAEAAAAdzAAD           40 OPERATIONS     BOSTON
AABJVUAAEAAAAd3AAA           50 MARKETING      LONDON

SCOTT@test> @ lookup_rowid AABJVUAAEAAAAdzAAA
      OBJECT         FILE        BLOCK          ROW DBA                  TEXT
------------ ------------ ------------ ------------ -------------------- ----------------------------------------
      300372            4         1907            0 4,1907               alter system dump datafile 4 block 1907

--如果通过bvi查看要先算偏移量,1907*block_size = 1907*8192=15622144.然后执行:

bvi -b 15622144 -s 8192 /u01/app/oracle11g/oradata/test/users01.dbf

$ cat bbvi.sql
column bvi_command format a90
select 'bvi -b '|| &2*BLOCK_SIZE||' -s '||block_size||' '||NAME bvi_command from v$datafile where file#=&1 ;


--顺便练习写一个shell脚本:

$ cat  bbvi
#! /bin/bash
# convert bvi runnning format
#  bbvi file# block#
# $1 = file#  $2 = block#

if [ $# -ne 2 ] ; then
        echo
        echo "USAGE: $0 file# block#"
        echo
        exit 1;
fi

bvi_command=`sqlplus -S / as sysdba set pagesize 0 feedback off verify off heading off echo off
select 'bvi -b '|| \$2*BLOCK_SIZE ||' -s '||block_size||' '||NAME bvi_command from v\\$datafile where file#=\$1 ;
exit;
END`

if [ -z "$bvi_command" ]; then
        echo "No rows returned from database"
        exit 0
else
        echo
        read -p "press ctrl+c break, press return run .. $bvi_command "
        echo
        eval $bvi_command
fi

目录
相关文章
|
Oracle 关系型数据库 测试技术
[20180306]数据块检查和2.txt
[20180306]数据块检查和2.txt --//昨天测试修改检查和偏移为0x0(偏移在16,17字节),在修改前面的15字节为0,一般数据块可以通过检查. --//链接:http://blog.
899 0
|
测试技术 数据库 数据库管理
[20180306]数据块检查和.txt
[20180306]数据块检查和.txt --//如果数据块检查和不对,数据库无法读取相应块,会报错. --//检查和位于块偏移16字节处. ub1 flg_kcbh                            @15 ub2 chkval...
768 0
|
数据库管理
[20171228]关于数据块转储的问题.txt
[20171228]关于数据块转储的问题.txt --//昨天itpub上的问题,链接:http://www.itpub.net/thread-2095877-1-1.
902 0
|
Oracle 关系型数据库 Linux
[20171206]最小数据文件.txt
[20171206]最小数据文件.txt --//曾经写过一篇关于[20150113]关于oracle的存储结构.txt的文章,链接http://blog.
1106 0
|
C# 数据库管理 Windows
[20170611]关于数据块地址的计算.txt
[20170611]关于数据块地址的计算.txt --//如果数据库出现一些问题,会在alert或者跟踪文件,或者屏幕出现一些错误提示.例如: ORA-00600: internal error code, arguments: [266...
995 0
|
缓存 Oracle 关系型数据库
[20170419]关于块scn号.txt
[20170419]关于块scn号.txt --//数据块里面有许多scn号相关。 --//数据块本身有三处记录的相应的SCN:数据块头的SCN(block scn)、ktbbh结构下的 kscnbas,kscnwrp(cleanout scn)、ITL信息中的...
1006 0
|
Oracle 关系型数据库 数据库
[20170406]关于文件头转储.txt
[20170406]关于文件头转储.txt --//oracle 数据库文件头转储使用如下命令alter session set events 'immediate trace name file_hdrs level 12' ; --//实际上里面有一部分信息来自控制文件,在分析时注意,通过例子来说明: 1.
763 0
|
缓存 测试技术 数据库
[20170221]数据文件与文件系统缓存.txt
[20170221]数据文件与文件系统缓存.txt --昨天探究磁盘之间拷贝文件时很慢,发现一个小工具nocache,发现这个可以用来探究数据文件与文件系统缓存的问题,自己测试看看.
1033 0
|
Oracle 关系型数据库 Linux
[20161129]转储内存的内容还原成数据块.txt
[20161129]转储内存的内容还原成数据块.txt --昨天在做1128PAGETABLE SEGMENT HEADER损坏恢复,链接http://blog.itpub.net/267265/viewspace-2129195/ --在做还原成数据块时思路很乱,当时是一边做一边想,希望能找到好的方法,今天自己在重复做一次。
878 0
|
数据库管理 关系型数据库 Oracle
[20161111]数据文件的第0块2.txt
[20161111]数据文件的第0块2.txt --如果数据文件的第0块是OS块信息,以前的测试如果rman做备份集都不会备份。 --如果这块损坏,里面讲问题不大,你甚至可以不修复,如果在线resize就ok了,当然重建控制文件就出现问题。
1053 0