甲骨文使用转储转储数据块

  

在对甲骨文做一些比较内核的研究时,会用需要用到转储命令把数据库中的信息转储到跟踪文件中。本文简单介绍使用转储命令把数据块中的信息转储到跟踪文件中。

实验环境:rhel7.2 + 11.2.0.4

语法:




1,创建测试表

zx@ORA11G> drop  table  t;      Table 下降。      zx@ORA11G> create  table  t  as  select  *,得到双;      Table 创建。      zx@ORA11G> select  *,得到t;      D   -   X   X   X      3,rows 选中。

2,查询数据表所在的数据块号

zx@ORA11G> select  dbms_rowid.ROWID_RELATIVE_FNO (rowid), dbms_rowid.ROWID_BLOCK_NUMBER (rowid),得到t;      DBMS_ROWID.ROWID_RELATIVE_FNO (ROWID), DBMS_ROWID.ROWID_BLOCK_NUMBER (ROWID)   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   4,,,,,,37771   4,,,,,,37771   4,,,,,,37771      3,rows 选中。

从上面的查询中可以看到三条数据都存储在4号文件的37771块上。

3,使用转储命令转储块信息到跟踪文件中,并找到相应的跟踪文件

zx@ORA11G> alter  system  dump  datafile  4, block  37771;      System 改变。      zx@ORA11G> select  value 得到v $ diag_info  where  name=' Default  Trace 文件;      价值   -------------------------------------------------------------------------/u01/app/oracle/诊断接头/rdbms/ora11g/ora11g/跟踪/ora11g_ora_5332。委员会

4,查看跟踪文件中的内容

凹坠俏氖褂米⒆⑹菘?

凹坠俏氖褂米⒆⑹菘?

上面截取了一些信息:包含表的object_id & lt; objn 90835祝辞,表上的事务槽信息,表中的三行数据的详细信息等。

转储出来的跟踪文件包含大量的信息,如果能看懂并分析这样的跟踪文件,说明向大师又迈近了一步。

不同版本对数据库倾倒出来的跟踪文件,出处有所不同,可能是从磁盘也可能是从缓冲区缓存中,有兴趣的同学可以自行测试。


参考:《甲骨文   核心基本内部dba和开发人员》

甲骨文使用转储转储数据块