关于数据文件的文件头1-P2
1 疑问点
这里引用p2处的一段话:
事实上,每个文件的前128个块,都是文件头,被Oracle留用了。在Oracle 10g中是0至8号块被Oracle留用。而从Oracle 11GR2开始,一下就留用了128个块,这是大手笔,不是吗?
这一部分文件头又分两部分,其实0号、1号块是真正的文件头,2 ~ 127号块是位图块。而在Oracle10g中,2 ~ 8号块则是位图块。
实际上,我对文件的0,1两个块dump是看不到什么有用的信息的,2号块(位图段头)开始就可以。
2 问题模拟
数据库版本是11.2.0.4.0。
2.1 dump 0,1块
创建一个新的表空间。
SYS@zkm1> create tablespace tbs1 datafile '+data' size 10m autoextend on;
Tablespace created.
SYS@zkm1> select file_id from dba_data_files where tablespace_name='TBS1';
FILE_ID
----------
6
SYS@zkm1> select value from v$diag_info where name like 'De%';
VALUE
--------------------------------------------------------------------------------
/u01/app/oracle/diag/rdbms/zkm/zkm1/trace/zkm1_ora_24347.trc
SYS@zkm1> alter system dump datafile 6 block min 0 block max 1;
System altered.
2.2 查看trc文件
Trace file /u01/app/oracle/diag/rdbms/zkm/zkm1/trace/zkm1_ora_24347.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1
System name: Linux
Node name: rac1.example.com
Release: 2.6.32-573.el6.x86_64
Version: #1 SMP Wed Jul 1 18:23:37 EDT 2015
Machine: x86_64
VM name: VMWare Version: 6
Instance name: zkm1
Redo thread mounted by this instance: 1
Oracle process number: 34
Unix process pid: 24347, image: oracle@rac1.example.com (TNS V1-V3)
*** 2020-03-25 05:04:22.171
*** SESSION ID:(136.9) 2020-03-25 05:04:22.171
*** CLIENT ID:() 2020-03-25 05:04:22.171
*** SERVICE NAME:(SYS$USERS) 2020-03-25 05:04:22.171
*** MODULE NAME:(sqlplus@rac1.example.com (TNS V1-V3)) 2020-03-25 05:04:22.171
*** ACTION NAME:() 2020-03-25 05:04:22.171
Start dump data blocks tsn: 7 file#:6 minblk 0 maxblk 1
Block 1 (file header) not dumped:use dump file header command
End dump data blocks tsn: 7 file#: 6 minblk 2 maxblk 1
2.3 如何查看
先参考这里
自己先把坑留在这里,还没做实验。