转出控制文件必须在数据库打开(OPEN)或者安装(MOUNT)的状态下进行。
1. 连接数据库 E:/>sqlplus "/ as sysdba"
SQL*Plus: Release
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
连接到: Oracle9i
With the Partitioning, OLAP and Oracle Data Mining options JServer Release
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> host dir E:/oracle/admin/test/udump 驱动器 E 中的卷是 ORACLE 卷的序列号是
E:/oracle/admin/test/udump 的目录
2002-01-13 <DIR> . 2002-01-13 <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 卷的序列号是
E:/oracle/admin/test/udump 的目录
2002-01-13 <DIR> . 2002-01-13 <DIR> .. 2004-05-14 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 2004
创建跟踪文件的时戳
(3) ORACLE V
数据库当前的版本是V
注意:与(18)条目的区别
(4) vsnsql=12 vsnxtr=3 ???
(5) Windows 2000 Version 5.0 Service Pack 4, CPU type 586
当前OS信息
(6) Oracle9i
(7) With the Partitioning, OLAP and Oracle Data Mining options
(8) JServer Release
(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,即,
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 ***