转出控制文件必须在数据库打开(OPEN)或者安装(MOUNT)的状态下进行。
1. 连接数据库
E:\>sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.1.0 - ProdUCtion on 星期五 5月 14 08:52:03 2004
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
连接到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
2. 确定跟踪文件的目录:
sys@TEST_LUNAR> show parameter dump
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_core_dump string partial
background_dump_dest string e:\oracle\admin\test\bdump
core_dump_dest string e:\oracle\admin\test\cdump
max_dump_file_size string UNLIMITED
shadow_core_dump string partial
user_dump_dest string e:\oracle\admin\test\udump
sys@TEST_LUNAR>
sys@TEST_LUNAR> host dir E:\oracle\admin\test\udump
驱动器 E 中的卷是 ORACLE
卷的序列号是 707A-C50C
E:\oracle\admin\test\udump 的目录
2002-01-13 21:59 <DIR> .
2002-01-13 21:59 <DIR> ..
0 个文件 0 字节
2 个目录 2,444,267,520 可用字节
3. 转储控制文件头
sys@TEST_LUNAR> alter session set events 'immediate trace name controlf level 1';
会话已更改。
sys@TEST_LUNAR> host dir E:\oracle\admin\test\udump
驱动器 E 中的卷是 ORACLE
卷的序列号是 707A-C50C
E:\oracle\admin\test\udump 的目录
2002-01-13 21:59 <DIR> .
2002-01-13 21:59 <DIR> ..
2004-05-14 09:06 949 test_ora_1364.trc
1 个文件 949 字节
2 个目录 2,444,263,424 可用字节
sys@TEST_LUNAR>
4. 解读dump出来的控制文件头(level 1)信息
以下是test_ora_1364.trc的内容(共23行):
(1) Dump file e:\oracle\admin\test\udump\test_ora_1364.trc
(2) Fri May 14 09:06:10 2004
创建跟踪文件的时戳
(3) ORACLE V9.2.0.1.0 - Production vsnsta=0
数据库当前的版本是V9.2.0.1.0
注重:与(18)条目的区别
(4) vsnsql=12 vsnxtr=3 ???
(5) windows 2000 Version 5.0 Service Pack 4, CPU type 586
当前OS信息
(6) Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
(7) With the Partitioning, OLAP and Oracle Data Mining options
(8) JServer Release 9.2.0.1.0 - Production
(9) Windows 2000 Version 5.0 Service Pack 4, CPU type 586
(10) Instance name: test
实例名称为test
(11) Redo thread mounted by this instance: 1
这说明这是一个单实例数据库,当前线程被实例1装载
(12) Oracle process number: 13
目前Oracle的进程数为13,这个信息同select count(*) from v$process的结果相同:
sys@TEST_LUNAR> select count(*) from v$process;
COUNT(*)
----------
13
sys@TEST_LUNAR>
(13) Windows thread id: 1364, image: ORACLE.EXE
这条信息反应了前台进程中可执行部分的信息,注重在windows平台上Oracle作为一个ORACLE.EXE进程来运行。所以,这里前台进程中的可执行部分是:ORACLE.EXE;创建该跟踪文件的线程号为1364(十进制数)。
假如在UNIX中,这部分信息会类似下面的信息:
Image: $1$DUA41:[V8ROOT.RDBMS]SQLPLUS.EXE;8
即该跟踪文件是由前台进程SQLPLUS.EXE创建的,其操作系统进程号(PID)为8
(14) *** 2004-05-14 09:06:10.000
创建跟踪文件的时戳
(15) *** SESSION ID:(10.9) 2004-05-14 09:06:10.000
创建控制文件的session的SID 和SERIAL#,本例中,SID是10,SERIAL#是9,这部分信息可以同v$session视图中看到的一样。
sys@TEST_LUNAR> select sid,serial# ,username from v$session;
SID SERIAL# USERNAME
---------- ---------- ------------------------------
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 9 SYS
已选择10行。
sys@TEST_LUNAR>
(16) DUMP OF CONTROL FILES, Seq # 2929 = 0xb71
说明这是一个控制文件的转储,Seq #是控制文件的序列号,它意味着控制文件的更新次数,也可以看作是控制文件的版本。2929是10进制表示的,0xb71是十六进制表示的。(这行信息同21行给出的信息是一样的含义)
*********以下内容是通用文件头(generic file header)信息*************
通用文件头信息对于数据库中所有的数据文件,控制文件和日志文件都应当是一样的。
(17) FILE HEADER:
(18) Software vsn=153092096=0x9200000, Compatibility Vsn=134217728=0x8000000
指出了创建控制文件时的Oracle的版本,这里是0x9200000,即,9.2.0。
Compatibility Vsn指出了兼容版本为0x8000000,即,8.0。
注重:与(3)条目的区别
(19) Db ID=1750352942=0x6854442e, Db Name='TEST1'
Db ID是数据库标识号,Oracle根据数据库的创建时间和数据库名按照一定的算法得出的;Db Name为数据库名,本例中数据库名为TEST1。
(20) Activation ID=0=0x0
(21) Control Seq=2929=0xb71, File size=228=0xe4
Control Seq同16行信息的含义;
File size指出了控制文件的物理大小,其单位为块,
即,控制文件的实际大小=File size的值 * 数据块的大小(DB_BLOCK_SIZE)
(22) File Number=0, Blksiz=8192, File Type=1 CONTROL
控制文件的文件号为0,类型为1;
Blksiz对应于操作系统数据块的大小,在Windows平台上为8192K
(假如是UNIX操作系统,Blksiz的值为512)???
**************************通用文件头结束****************************
(23) *** END OF DUMP ***