ITPub博客

首页 > 数据库 > Oracle > [20210303]bbed使用小问题.txt

[20210303]bbed使用小问题.txt

原创 Oracle 作者:lfree 时间:2021-03-04 09:06:05 0 删除 编辑

[20210303]bbed使用小问题.txt

--//在11g下使用bbed存在一个小问题,其实也是不重要,仅仅看着不舒服。

BBED> verify dba 4,135
DBVERIFY - Verification starting
FILE = /mnt/ramdisk/book/users01.dbf
BLOCK = 135
DBVERIFY - Verification complete
Total Blocks Examined         : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing   (Data) : 0
Total Blocks Processed (Index): 0
Total Blocks Failing   (Index): 0
Total Blocks Empty            : 0
Total Blocks Marked Corrupt   : 0
Total Blocks Influx           : 0
Message 531 not found;  product=RDBMS; facility=BBED
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

--//注意看下划线。似乎信息文件没有531信息。但是如果你在10g使用,不会出现如上信息的。
--//bbed在11g上的安装实际上两个bbedus.msb,bbedus.msg是从10g安装库拷贝过来的。

$ md5sum $(locate bbedus)
164e226fb5191379b4246dcca40358fe  /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/bbedus.msb
e55157e9702b0ec66343517c85c9402e  /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/bbedus.msg

--//使用strace跟踪:
$ strace -f -p 54750

read(3, "n\0\322\0001\1\222\1\374\1\350\3\364\3\374\3\6\4\20\4\25\4\0\0\0\0\0\0\0\0\0\0"..., 512) = 512
lseek(3, 4096, SEEK_SET)                = 4096
read(3, "\16\0\375\1\2\0\\\0\376\1\2\0~\0\377\1\2\0\240\0\10\2\2\0\302\0\t\2\2\0\325\0"..., 512) = 512
write(1, "Message 531 not found;  product="..., 53) = 53
write(7, "Message 531 not found;  product="..., 53) = 53
write(1, "\n", 1)                       = 1
write(7, "\n", 1)                       = 1
write(1, "\n", 1)                       = 1
write(7, "\n", 1)                       = 1
write(1, "BBED> ", 6)                   = 6
--//造成这样情况的原因,我估计11g下的编译某一些选项与10g不同。

$ ls -l /proc/54750/fd/
total 0
lrwx------ 1 oracle oinstall 64 2021-03-03 16:37:55 0 -> /dev/pts/5
lrwx------ 1 oracle oinstall 64 2021-03-03 16:37:55 1 -> /dev/pts/5
lrwx------ 1 oracle oinstall 64 2021-03-03 16:36:10 2 -> /dev/pts/5
lr-x------ 1 oracle oinstall 64 2021-03-03 16:37:55 3 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/bbedus.msb
lr-x------ 1 oracle oinstall 64 2021-03-03 16:37:55 4 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/oracore/mesg/lrmus.msb
lr-x------ 1 oracle oinstall 64 2021-03-03 16:37:55 5 -> /home/oracle/bbed/filelist.txt
l-wx------ 1 oracle oinstall 64 2021-03-03 16:37:55 7 -> /home/oracle/bbed/log.bbd
lr-x------ 1 oracle oinstall 64 2021-03-03 16:37:55 8 -> /home/oracle/bbed/cmd.par
lrwx------ 1 oracle oinstall 64 2021-03-03 16:37:55 9 -> /mnt/ramdisk/book/users01.dbf

$ cd /u01/app/oracle/product/11.2.0.4/dbhome_1/oracore/mesg/
$ grep 531 bbedus.msg

--//如果你打开bbedus.msg文件可以发现:
/
/ KUTV Log Messages:
/
500,    2, "DBVERIFY - Verification starting\nFILE = %s"
501,    2, "BLOCK = %u"
502,    2, "DBVERIFY - Verification complete"
503,    2, "Block %d failed with check code %u"
504,    2, "Total Blocks Examined         : %u"
505,    2, "Total Blocks Processed (Data) : %u"
506,    2, "Total Blocks Failing   (Data) : %u"
507,    2, "Total Blocks Processed (Index): %u"
508,    2, "Total Blocks Failing   (Index): %u"
509,    2, "Total Blocks Empty            : %u"
510,    2, "Total Blocks Marked Corrupt   : %u"
511,    2, "Total Blocks Influx           : %u"
520,    2, "Block %u is corrupt"
521,    2, "Block %u is influx - most likely media corrupt"
522,    2, " Version is illegal\n"
523,    2, " Type out of range\n"
524,    2, " Type is zero\n"
525,    2, " Block number mismatch\n"
526,    2, " Sequence is zero\n"
527,    2, " Incarnation is zero\n"
528,    2, " Checksum is incorrect\n"
/
/

--//就是没有531编号的信息。既然这样可以手工加入:
528,    2, " Checksum is incorrect\n"
531,    2, "\n"

--//当然这样不算完成,必须手工编译msg文件,oracle提供工具 lmsgen。
$ ls -l /u01/app/oracle/product/11.2.0.4/dbhome_1/bin/*msg*
-rwxr-xr-x 1 oracle oinstall 1598817 2013-08-24 00:21:36 /u01/app/oracle/product/11.2.0.4/dbhome_1/bin/lmsgen
*/

--//编译前先做一个备份。
$ cd /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg
$ cp bbedus.msb bbedus.msb_ORG

$ lmsgen
NLS Binary Message File Generation Utility: Version 11.2.0.4.0 - Production
Copyright (c) Oracle 1979, 2004.  All rights reserved.
CORE    11.2.0.4.0      Production
Incorrect number of arguments specified!
Syntax:
LMSGEN <text file> <product> <facility> [language] [-i indir] [-o outdir]

Where <text file> is a message text file
      <product>   the name of the product
      <facility>  the name of the facility
      [language]  optional message language in
                  <language>_<territory>.<character set> format
                  This is required if message file is not tagged properly
                  with language
      [-i indir]  optional directory where to locate the text file
      [-o outdir] optional directory where to put the generated binary file.

$ lmsgen bbedus.msg bbed bbed american
NLS Binary Message File Generation Utility: Version 11.2.0.4.0 - Production
Copyright (c) Oracle 1979, 2004.  All rights reserved.
CORE    11.2.0.4.0      Production
Unable to create binary file /u01/app/oracle/product/11.2.0.4/dbhome_1/bbed/mesg/bbedus.msb
--//写错了。product,facility表示什么? 噢看前面的提示可以猜测product=rdbms,facility=bbed.
--//Message 531 not found;  product=RDBMS; facility=BBED
--//实际上product=rdbms表示目录。facility=bbed表示编译文件开头,american 我猜测对应us。

$ lmsgen bbedus.msg rdbms bbed american
NLS Binary Message File Generation Utility: Version 11.2.0.4.0 - Production
Copyright (c) Oracle 1979, 2004.  All rights reserved.
CORE    11.2.0.4.0      Production

--//OK,编译通过。
$ ls -l /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/bbedus.ms*
-rw-r--r-- 1 oracle oinstall  8704 2021-03-03 17:10:03 /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/bbedus.msb
-rw-r--r-- 1 oracle oinstall  8704 2021-03-03 17:01:26 /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/bbedus.msb_ORG
-rwxr-xr-x 1 oracle oinstall 10286 2021-03-03 17:00:20 /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/bbedus.msg

--//再次退出使用bbed:
BBED> verify dba 4,135
DBVERIFY - Verification starting
FILE = /mnt/ramdisk/book/users01.dbf
BLOCK = 135
DBVERIFY - Verification complete
Total Blocks Examined         : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing   (Data) : 0
Total Blocks Processed (Index): 0
Total Blocks Failing   (Index): 0
Total Blocks Empty            : 0
Total Blocks Marked Corrupt   : 0
Total Blocks Influx           : 0

--//现在就不报错误了。我尝试修改如下:
531,    2, "Finish Verify\n"

BBED> verify dba 4,135
DBVERIFY - Verification starting
FILE = /mnt/ramdisk/book/users01.dbf
BLOCK = 135
DBVERIFY - Verification complete
Total Blocks Examined         : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing   (Data) : 0
Total Blocks Processed (Index): 0
Total Blocks Failing   (Index): 0
Total Blocks Empty            : 0
Total Blocks Marked Corrupt   : 0
Total Blocks Influx           : 0
Finish Verify
~~~~~~~~~~~~~

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-2761011/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    2901
  • 访问量
    6677775