Oracle使用dump转储数据块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle使用dump转储数据块相关的知识,希望对你有一定的参考价值。

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

实验环境:rhel7.2+11.2.0.4

语法:

alter system dump datafile {File no} block {Block no};
alter system dump datafile 4 block 129;
alter system dump datafile {File no} block min {Block min} block max {Block max};
alter system dump datafile 4 block min 129 block max 133;

alter system dump datafile ‘{name}‘ block {Block no};
alter system dump datafile ‘{name}‘ block min {Block min} block max {Block max};

1、创建测试表

[email protected]>drop table t;

Table dropped.

[email protected]>create table t as select * from dual;

Table created.

[email protected]>select * from t;

D
-
X
X
X

3 rows selected.

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

[email protected]>select dbms_rowid.ROWID_RELATIVE_FNO(rowid),dbms_rowid.ROWID_BLOCK_NUMBER(rowid) from t;

DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)
------------------------------------ ------------------------------------
				   4				    37771
				   4				    37771
				   4				    37771

3 rows selected.

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

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

[email protected]>alter system dump datafile 4 block 37771;

System altered.

[email protected]>select value from v$diag_info where name=‘Default Trace File‘;

VALUE
-------------------------------------------------------------------------
/u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_5332.trc

4、查看trace文件中的内容

技术分享

技术分享

上面截取了一些信息:包含表的object_id <objn 90835>,表上的事务槽信息、表中的三行数据的详细信息等。

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

不同版本对数据库dump出来的trace文件,出处有所不同,可能是从磁盘也可能是从buffer cache中,有兴趣的同学可以自行测试。


参考:《Oracle Core Essential Internals for DBAs and Developers》

本文出自 “DBA Fighting!” 博客,请务必保留此出处http://hbxztc.blog.51cto.com/1587495/1972013

以上是关于Oracle使用dump转储数据块的主要内容,如果未能解决你的问题,请参考以下文章

oracle dump是啥

查看dump oracle数据块查看

使用 pg_dump 的选择性模式转储

Oracle中怎么导出索引数据块?

Postgres pg_dump 每次都以不同的顺序转储数据库

pl/sql Developer如何导入dump文件