[20161006]windows下bbed使用注意.txt

简介: [20161006]windows下bbed使用注意.txt --我已经多次提到windows下 的bbed 存在一个偏移看10g以上的数据文件,主要问题在于windows的bbed来自9i,以后不在出现。

[20161006]windows下bbed使用注意.txt

--我已经多次提到windows下 的bbed 存在一个偏移看10g以上的数据文件,主要问题在于windows的bbed来自9i,以后不在出现。
--而这个版本无法识别10g以上的数据文件的第1块OS块,导致出现偏差:

http://blog.itpub.net/267265/viewspace-2109019/
http://blog.itpub.net/267265/viewspace-2116311/

--而实际上更严重的问题是这个版本识别第1块存在问题。通过例子来说明:

1.环境:
SYS@test> select * from v$version ;
BANNER                                                                                 CON_ID
-------------------------------------------------------------------------------- ------------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production                0
PL/SQL Release 12.1.0.1.0 - Production                                                      0
CORE    12.1.0.1.0      Production                                                          0
TNS for 64-bit Windows: Version 12.1.0.1.0 - Production                                     0
NLSRTL Version 12.1.0.1.0 - Production                                                      0

BBED> info
File#  Name                                                          Size(blks)
-----  ----                                                          ----------
     1  D:\APP\ORACLE\ORADATA\TEST\SYSTEM01.DBF                                0
     2  D:\APP\ORACLE\ORADATA\TEST\PDBSEED\SYSTEM01.DBF                        0
     3  D:\APP\ORACLE\ORADATA\TEST\SYSAUX01.DBF                                0
     4  D:\APP\ORACLE\ORADATA\TEST\PDBSEED\SYSAUX01.DBF                        0
     5  D:\APP\ORACLE\ORADATA\TEST\UNDOTBS01.DBF                               0
     6  D:\APP\ORACLE\ORADATA\TEST\USERS01.DBF                                 0
     7  D:\APP\ORACLE\ORADATA\TEST\TEST01P\SYSTEM01.DBF                        0
     8  D:\APP\ORACLE\ORADATA\TEST\TEST01P\SYSAUX01.DBF                        0
     9  D:\APP\ORACLE\ORADATA\TEST\TEST01P\SAMPLE_SCHEMA_USERS01.DBF           0
    10  D:\APP\ORACLE\ORADATA\TEST\TEST01P\EXAMPLE01.DBF                       0
    15  D:\APP\ORACLE\ORADATA\TEST\TEST01P\LFREE01.DBF                         0

2.测试:
BBED> set dba 1,2
        DBA             0x00400002 (4194306 1,2)

--//注实际上访问的是dba 1,1

BBED> p kcvfhtnm
text kcvfhtnm[0]                            @250
text kcvfhtnm[1]                            @251
text kcvfhtnm[2]                            @252
text kcvfhtnm[3]                            @253
text kcvfhtnm[4]                            @254
text kcvfhtnm[5]                            @255
text kcvfhtnm[6]                            @256
text kcvfhtnm[7]                            @257
text kcvfhtnm[8]                            @258
...

BBED> p kcvfh.kcvfhtnm
text kcvfhtnm[0]                            @250
text kcvfhtnm[1]                            @251
text kcvfhtnm[2]                            @252
text kcvfhtnm[3]                            @253
text kcvfhtnm[4]                            @254
text kcvfhtnm[5]                            @255
text kcvfhtnm[6]                            @256
text kcvfhtnm[7]                            @257
text kcvfhtnm[8]                            @258
text kcvfhtnm[9]                            @259

--很奇怪吧,这个版本无法看到数据文件的表空间名字。
BBED> p kcvfhtln
ub2 kcvfhtln                                @248      0x0000

--表空间的长度也是0,明显不对。

3.而实际上表空间的名字在偏移offset=338

BBED> dump /v count 30 offset 336
File: D:\APP\ORACLE\ORADATA\TEST\SYSTEM01.DBF (1)
Block: 2                                 Offsets:  336 to  365                            Dba:0x00400002
-----------------------------------------------------------------------------------------------------------
06005359 5354454d 00000000 00000000 00000000 00000000 00000000 0000     l ..SYSTEM......................

<32 bytes per line>

--前面的0x06 表示表空间的长度,是6对上的。

--也就是说这个版本无法识别10g以上的文件头,至少存在错误,在使用中要特别注意。在选择修复时要特别注意,切记!!
--或者讲这个版本仅仅能看9i或者以下的数据文件。

4.我们可以拷贝1个9i的数据文件来验证我的判断:

BBED> set width 150
        WIDTH           150

BBED> info
File#  Name                                   Size(blks)
-----  ----                                   ----------
     1  D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF             0
     2  D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF            0
     3  D:\ORACLE\ORADATA\ORCL\CWMLITE01.DBF            0
     4  D:\ORACLE\ORADATA\ORCL\DRSYS01.DBF              0
     5  D:\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF            0
     6  D:\ORACLE\ORADATA\ORCL\INDX01.DBF               0
     7  D:\ORACLE\ORADATA\ORCL\ODM01.DBF                0
     8  D:\ORACLE\ORADATA\ORCL\TOOLS01.DBF              0
     9  D:\ORACLE\ORADATA\ORCL\USERS01.DBF              0
    10  D:\ORACLE\ORADATA\ORCL\XDB01.DBF                0

BBED> set dba 6,1
        DBA             0x01800001 (25165825 6,1)

BBED> p kcvfhtnm
text kcvfhtnm[0]                            @250     I
text kcvfhtnm[1]                            @251     N
text kcvfhtnm[2]                            @252     D
text kcvfhtnm[3]                            @253     X
text kcvfhtnm[4]                            @254
...

BBED> p kcvfhtln
ub2 kcvfhtln                                @248      0x0004
--//表空间名长度也正确。
--//可以看到使用windows的bbed看9i的数据文件是正常的,而且偏移250.也就是9版本的bbed看10g以上的数据文件头是存在问题的。
--//我查看使用的版本是for windows的版本。

5.再将这个INDX01.DBF拷贝到linux看看:

BBED> info
File#  Name                                 Size(blks)
-----  ----                                 ----------
     1  /mnt/ramdisk/book/system01.dbf                0
     2  /mnt/ramdisk/book/sysaux01.dbf                0
     3  /mnt/ramdisk/book/undotbs01.dbf               0
     4  /mnt/ramdisk/book/users01.dbf                 0
     5  /mnt/ramdisk/book/example01.dbf               0
     6  /mnt/ramdisk/book/tea01.dbf                   0
    14  /home/oracle/backup/users01.dbf               0
    20  /home/oracle/bbed/icare_asm_header            0
    21  /home/oracle/emp.aaa                          0
    22  /home/oracle/emp.aab                          0
   201  /mnt/ramdisk/book/temp01.dbf                  0
   306  /mnt/ramdisk/book/INDX01.DBF                  0

BBED> p kcvfhtnm
text kcvfhtnm[0]                            @338
text kcvfhtnm[1]                            @339
text kcvfhtnm[2]                            @340
text kcvfhtnm[3]                            @341
text kcvfhtnm[4]                            @342
text kcvfhtnm[5]                            @343
text kcvfhtnm[6]                            @344
text kcvfhtnm[7]                            @345
text kcvfhtnm[8]                            @346

BBED> p kcvfhtln
ub2 kcvfhtln                                @336      0x0000

--看system表空间数据文件:

BBED> set dba 1,1
        DBA             0x00400001 (4194305 1,1)

BBED> p kcvfhtnm
text kcvfhtnm[0]                            @338     S
text kcvfhtnm[1]                            @339     Y
text kcvfhtnm[2]                            @340     S
text kcvfhtnm[3]                            @341     T
text kcvfhtnm[4]                            @342     E
text kcvfhtnm[5]                            @343     M
text kcvfhtnm[6]                            @344
text kcvfhtnm[7]                            @345
text kcvfhtnm[8]                            @346
text kcvfhtnm[9]                            @347

BBED> p kcvfhtln
ub2 kcvfhtln                                @336      0x0006

--//可见11g下的linux版本也不能看9i的数据文件头。

--//但是看普通的数据块应该没有问题,至少我没有遇到这个问题或者现象。这个应该在工作中引起注意。

目录
相关文章
|
Windows 数据安全/隐私保护
[20180420]windows下使用cmd的小问题.txt
[20180420]windows下使用cmd的小问题.txt --//无意中发现windows xp下使用cmd的小问题,发现公司内一台古老的XP机器,我每次启动cmd都会报警,内存不足.
1065 0
|
安全 Windows
[20180319]windows批处理文件大小比较.txt
[20180319]windows批处理文件大小比较.txt --//我使用eDiary写日志,有时候为了安全期间,我在U盘保留一份备份. --//需要同步,但是eDiary有一个"问题"就是如果打开日记本,没有任何操作,都会修改文件的时间戳.
1260 0
|
关系型数据库 Windows
[20180116]变态的windows批处理5.txt
[20180116]变态的windows批处理5.txt --//写一个windows批处理,使用choice /c 123456789abcdefghijklm0 /M "请选择:" --//输入不同的条件选择执行路径。
987 0
|
测试技术 Windows
[20171225]变态的windows批处理4.txt
[20171225]变态的windows批处理4.txt --//昨天学习windows 批处理的echo &.使用它可以实现类似回车换行的功能.例子: 1.echo &.
1158 0
|
Linux Windows
[20170425]变态的windows批处理1.txt
[20170425]变态的windows批处理1.txt --//最近一段时间写批处理,遇到一个古怪的问题,例子: C> cat a.bat echo @echo on > d:\aa.
1021 0
|
Linux vr&ar Windows
[20170425]变态的windows批处理2.txt
[20170425]变态的windows批处理2.txt --//正在写一个批处理脚本,我想在开始执行命令前加入时间。 --//直接输入time不行的,于是我现在命令行测试: D:\tools\linux\usr\local\wbin>echo | time 当前时间: 15:17:46.68 输入新时间: ECHO 处于打开状态。
926 0
|
Windows
[20161029]windows 7的文件名开头空格.txt
[20161029]windows 7的文件名开头是空格的问题.txt --今天遇到windows 7的文件名开头是空格的一个bug,通过一个例子来说明: 1.建立一个文件夹aaa: 里面包含2个文件1.txt," 1.txt", --注:第2个文件前面有一个空格要使用引号。
1654 0
|
SQL Windows
[20160911]windows下建立硬链接.txt
[20160911]windows下建立硬链接.txt --大家知道linux ln命令可以建立硬连接或者软连接.参考: http://blog.itpub.net/267265/viewspace-1812272/ --实际上windows下也有类似ln命令,只不过许多人很少在命令行使用windows,对于里面的命令行命令知道的更少.
906 0