Oracle 控制文件 说明(一)

2014-11-24 18:01:14 · 作者: · 浏览: 0


我们可以通过v$controlfile_record_section 视图查看控制文件里包含的内容。



SQL> select type from v$controlfile_record_section;



TYPE


--------------------------------------------------------


DATABASE


CKPT PROGRESS


REDO THREAD


REDO LOG


DATAFILE


FILENAME


TABLESPACE


TEMPORARY FILENAME


RMAN CONFIGURATION


LOG HISTORY


OFFLINE RANGE


ARCHIVED LOG


BACKUP SET


BACKUP PIECE


BACKUP DATAFILE


BACKUP REDOLOG


DATAFILE COPY


BACKUP CORRUPTION


COPY CORRUPTION


DELETED OBJECT


PROXY COPY


BACKUP SPFILE


DATABASE INCARNATION


FLASHBACK LOG


RECOVERY DESTINATION


INSTANCE SPACE RESERVATION


REMOVABLE RECOVERY FILES


RMAN STATUS


THREAD INSTANCE NAME MAPPING


MTTR


DATAFILE HISTORY


STANDBY DATABASE MATRIX


GUARANTEED RESTORE POINT


RESTORE POINT


DATABASE BLOCK CORRUPTION


ACM OPERATION


FOREIGN ARCHIVED LOG



37 rows selected.



2.1 直接dump controlfile


alter system set events'immediate trace name controlf level 10'



2.2. 使用alter database backup controlfile to filename



以上两种方法生成的dump文件是不可读的即乱码。 只有生成trace后,才是可读的。



2.2. 使用alter database backup controlfile to trace


生成的trace 文件在udump目录下,可以通过日期来判断。


SQL>show parameteruser_dump_dest



也可以使用如下SQL 查询对应的trace 文件:



SELECT a.VALUE ||b.symbol|| c.instance_name|| '_ora_' ||d.spid|| '.trc'


trace_file


FROM (SELECT VALUE


FROMv$parameter


WHERE name = 'user_dump_dest') a,


(SELECT SUBSTR (VALUE, -6, 1)symbol


FROMv$parameter


WHERE name = 'user_dump_dest') b,


(SELECTinstance_name FROMv$instance) c,


(SELECTspid


FROMv$session s,v$process p,v$mystat m


WHERE s.paddr= p.addrAND s.sid = m.sid AND m.statistic#= 0) d



TRACE_FILE


--------------------------------------------------------------------------------


/u01/app/oracle/admin/dave/udump/dave_ora_7215.trc



整个Trace 的内容如下:


[oracle@qs-dmm-rh2 udump]$ cat dave_ora_7215.trc


/u01/app/oracle/admin/dave/udump/dave_ora_7215.trc


Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 -Production


With the Partitioning, OLAP, Data Mining and Real ApplicationTesting options


ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1


System name: Linux


Node name: qs-dmm-rh2


Release: 2.6.18-194.el5


Version: #1 SMP Tue Mar16 21:52:43 EDT 2010


Machine: i686


Instance name: dave


Redo thread mounted by this instance: 0


Oracle process number: 15


Unix process pid: 7215, image: oracle@qs-dmm-rh2 (TNS V1-V3)



*** ACTION NAME:() 2011-03-17 22:05:46.401


*** MODULE NAME:(sqlplus@qs-dmm-rh2 (TNS V1-V3)) 2011-03-1722:05:46.401


*** SERVICE NAME:() 2011-03-17 22:05:46.401


*** SESSION ID:(159.1) 2011-03-17 22:05:46.401


ORA-01160: file is not a data file


ORA-01110: data file : '/u01/app/oracle/oradata/dave/temp01.dbf'


*** 2011-03-17 22:08:25.791


Control file created with size 370 blocks


*** 2011-03-17 22:10:21.444


tkcrrsarc: (WARN) Failed to find ARCH for message (message:0x1)


tkcrrpa: (WARN) Failed initial attempt to send ARCH message(message:0x1)


kwqmnich: current time:: 14: 10: 24


kwqmnich: instance no 0 check_only flag 1


kwqmnich: initialized job cache structure


krvscm(+): Validating controlfile with logical metadata


krvscm(+): Initial controlfile state


krvscm(+): kccdiflg [400001]kccdifl2 [1000]


krvscm(+): kccdi2ldscn[0x0000.00000000]


krvscm(+): kccdi2lrscn[0x0000.00000000]


krvscm(+): Inspecting logical metadata


krvscm(+): Metadata state


krvscm(+): hasPrepSwitchSta[0]


krvscm(+): hasPrepSwitchPri[0]


krvscm(+): hasReceivedDict[0]


krvscm(+): hasDumpedDict [0]


krvscm(+): hasCommittedBor[0]


krvscm(+): hasSwitchedFromPri [0]


krvscm(+):