Oracle BBED:数据文件块查看与编辑工具

需积分: 9 6 下载量 73 浏览量 更新于2024-09-14 1 收藏 36KB DOCX 举报
"Oracle BBED 是一个用于直接查看和编辑Oracle数据文件中数据的工具,主要在特殊恢复情况下使用。由于此工具不被官方支持,所以通常不会提供可执行文件,需要用户自行编译。BBED允许用户访问DATAFILEHEADER,如在文件的第一个块上存在的KCVFH结构。在BBED中,可以设置DBA地址来查看或修改特定的数据块。例如,通过输入'setdba1,1'可以查看文件1的第一个块。在块中,可以看到各种结构体,如文件头头信息、数据库检查点信息等,这些结构体对于理解Oracle数据文件的内部工作原理至关重要。" Oracle BBED 工具详解: BBED,全称为Oracle Block Brower and Editor Tool,是一个非常强大的但非官方支持的工具,主要用于直接操作Oracle数据库的数据文件。由于其潜在的风险,它并不包含在标准的Oracle软件发行版中。BBED允许数据库管理员在操作系统级别查看和修改数据文件的块内容,这对于故障排除和极端恢复场景特别有用。 在BBED中,DATAFILEHEADER是每个Oracle数据文件的第一个块,包含了一系列重要的元数据信息。DATAFILEHEADER中的KCVFH结构体提供了关于文件状态和历史的关键信息。例如: 1. 文件头结构:KCVFH包含了文件的基本信息,如文件版本、状态和创建时间。 2. KCVFHbfh (Block File Header):20字节的结构,包含与文件块相关的元数据。 3. KCVFHHdr (Header Header):76字节的结构,进一步描述文件头的详细信息。 4. kcvfhrdb:记录数据库ID,用于识别哪个数据库包含此数据文件。 5. kcvfhckp (Checkpoint Information):包含最近的检查点的详细信息,包括检查点计数(cpc)、回滚段系统时间戳(rts)和检查点改变计数(ccc)。 6. kcvfhbcp (Background Checkpoint Information):与后台检查点相关的数据。 7. KCVFHbcd (Block Change Vector Data):跟踪块的更改历史。 8. kcvfhtsn、kcvfhtln、kcvfhtnm:分别代表事务序列号、事务长度和事务名称。 9. 其他结构体如kcvfhrfs、kcvfhafs等,涉及文件的存储和分配信息。 使用BBED时,用户需要了解Oracle的数据文件布局和内部结构。尽管BBED可以提供极高的灵活性,但误操作可能导致数据损坏,因此使用时应格外小心。在没有充分理解和必要的情况下,一般不建议直接使用BBED进行数据操作。在处理这类工具时,最好先备份数据,并确保有足够的知识和经验。
2018-04-11 上传
提供10g,11g linux及windows BBED工具 及详细编译说明readme文件。 一. 10g linux编译BBED [oracle@node3 ~]$ cd $ORACLE_HOME/rdbms/lib [oracle@node3 lib]$ make -f ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed 直接生成到bin下为可执行文件 编译完成后: 编译成功后登陆BBED,登陆时需要密码(BBED的默认密码是blockedit) [oracle@node3 bin]$ bbed Password: BBED: Release 2.0.0.0.0 - Limited Production on Wed Apr 11 10:01:07 2018 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> 二. 11g linux编译BBED oracle 11gR2环境中编译BBED可执行文件所需要的ssbbded.o和sbbdpt.o对象文件被移除,不过可以从oracle 10g环境中将这两个文件拷贝到oracle11g环境进行编译。 除了将上面的ssbbded.o和sbbdpt.o 文件拷贝到11g环境外,BBED还需要用到 $ORACLE_HOME/rdbms/mesg目录下的bbedus.msb这个信息文件, 这几个文件都需要从oracle10g中拷贝到oracle11g中对于的目录中。 文件夹linux_10g_bbed_64 包括了这3个文件。 下面是将以上3个文件从Oracle 10g中拷贝到11g对于目录后编译的过程。 1)把linux_10g_bbed_64目录下的10g的ssbbded.o和sbbdpt.o 放到 $ORACLE_HOME/rdbms/lib 目录下 2)把linux_10g_bbed_64目录下的10g的 bbedus.msb 文件拷贝到 $ORACLE_HOME/rdbms/mesg目录下 3)编译 [oracle@node1 ~] cd $ORACLE_HOME/rdbms/lib [oracle@node1 ~] make -f ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed [oracle@node3 bin]$ bbed Password: BBED: Release 2.0.0.0.0 - Limited Production on Wed Apr 11 10:01:07 2018 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> 三、windows 11GR2 bbed oracle9i版本以后Oracle不装载BBED了, Windows上也没有makefile来编译bbed。 所以,如果你想在Windows上使用bbed,你需要很多文件(本下载压缩包已经全包含了): 你需要一个bbed.exe. 你只能从Oracle 9i的安装中得到它。 你需要有一堆的DLL。所有这些DLL在Oracle9i安装中可以得到。 使用BBED需要消息文件。这文件是“bbedus.msb”,位于Oracle9i安装的MESG目录下。而你需要将其复制到ORACLE_HOME的RDBMS\MESG目录下。 这些在目录本压缩包的 bbed_win 中已经全部提供了。 把它们放在BBED安装的目录下(比如D:\bbed_win),环境变量ORACLE_HOME设置好。确保消息文件在$ORACLE_HOME\RDBMS\MESG下,最后启动BBED: D:\bbed_win>bbed Password: BBED: Release 2.0.0.0.0 - Limited Production on Wed Apr 11 10:20:43 2018 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED>
2021-05-01 上传