暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DBA Scripts:转换RDBA的文件和数据块地址

原创 eygle 2007-07-05
672
昨天作测试,涉及很多rdba的转换,一般我是自己手工转换的,不过考虑到自己的书中有地方涉及这些转换,手工显然不容易解释的。
RDBA的关系参考如下链接:
http://www.eygle.com/archives/2004/08/how_to_dump_datablock.html
写了一个简单的函数,用来从RDBA中转换file#和block#出来:
CREATE OR REPLACE FUNCTION getbfno (p_dba IN VARCHAR2)
   RETURN VARCHAR2
IS
   l_str   VARCHAR2 (255) DEFAULT NULL;
   l_fno   VARCHAR2 (15);
   l_bno   VARCHAR2 (15);
BEGIN
   l_fno :=
      DBMS_UTILITY.data_block_address_file (TO_NUMBER (LTRIM (p_dba, '0x'),
                                                       'xxxxxxxx'
                                                      )
                                           );
   l_bno :=
      DBMS_UTILITY.data_block_address_block (TO_NUMBER (LTRIM (p_dba, '0x'),
                                                        'xxxxxxxx'
                                                       )
                                            );
   l_str :=
         'datafile# is:'
      || l_fno
      || CHR (10)
      || 'datablock is:'
      || l_bno
      || CHR (10)
      || 'dump command:alter system dump datafile '
      || l_fno
      || ' block '
      || l_bno
      || ';';
   RETURN l_str;
END;
/

有了这个函数,方便了很多:
SQL> col BFNO for a60
SQL> select getbfno('0x037d86de') BFNO from dual;
BFNO
------------------------------------------------------------
datafile# is:13
datablock is:4032222
dump command:alter system dump datafile 13 block 4032222;

-The End-
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论