过着简单,真实的生活,喜欢收藏变形金刚(TFE,G1,SL系列),研究金融股市,KOF98,篮球,学习研究Oracle技术,我并不是一个全职的Oracle DBA,但是对于Oracle技术的热爱和研究,是一个不争的事实,愿意结交广大Oracle技术爱好者!MSN:oracle_kof_tf@hotmail.com

通过oradebug研究控制文件(二)

上一篇 / 下一篇  2008-01-14 18:05:27 / 个人分类:Oracle数据库技术-Tips

通过oradebug研究控制文件(二)

接续第一篇,这次我们转存一下level 2的controlf来观察

$ sqlplus /nolog

SQL*Plus: Release 10.2.0.3.0 - Production on Mon Jan 14 16:37:13 2008

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

SQL> conn / as sysdba;
Connected.
SQL> oradebug setmypid;
Statement processed.
SQL> oradebug dump controlf 2;
Statement processed.

SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
$ ls
irmdb_ora_630944.trc  level_1.trc
$ mv irmdb_ora_630944.trc level_2.trc

打开level_2.trc文件。

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
ORACLE_HOME = /opt/oracle/product/10g
System name:    AIX
Node name:      rmsvtp01
Release:        3
Version:        5
Machine:        000DA57ED600
Instance name: irmdb
Redo thread mounted by this instance: 1
Oracle process number: 20
Unix process pid: 630944, image:oracle@rmsvtp01(TNS V1-V3)
<这里反映了创建该跟踪文件的线程号为630944>

*** 2008-01-14 16:37:31.818
*** SERVICE NAME:(SYS$USERS) 2008-01-14 16:37:31.806
*** SESSION ID:(534.2045) 2008-01-14 16:37:31.806
DUMP OF CONTROL FILES, Seq # 1666 = 0x682
 V10 STYLE. FILE HEADER:
        Compatibility Vsn = 169870080=0xa200300
        Db ID=3067503969=0xb6d66561, Db Name='IRMDB'
        Activation ID=0=0x0
        Control Seq=1666=0x682, File size=334=0x14e
        File Number=0, Blksiz=16384, File Type=1 CONTROL
        <在这里已经在(一)里面进行了详细的分析>


***************************************************************************
DATABASE ENTRY
***************************************************************************
 (size = 316, compat size = 316, section max = 1, section in-use = 1,
  last-recid= 0, old-recno = 0, last-recno = 0)
 (extent = 1, blkno = 1, numrecs = 1)
 <这里blkno表示数据库项信息所在block号>
 01/05/2008 19:58:25
 DB Name "IRMDB"
 Database flags = 0x00404000 0x00001000
 Controlfile Creation Timestamp  01/05/2008 19:58:26
 <这里表示控制文件创建的时间戳>
 Incmplt recovery scn: 0x0000.00000000
 <这里表示不完全恢复时候的SCN>
 Resetlogs scn: 0x0000.00000001 Resetlogs Timestamp  01/05/2008 19:58:25
 <这里表示启用Resetlogs时候的SCN的值以及那个时候的时间戳>
 Prior resetlogs scn: 0x0000.00000000 Prior resetlogs Timestamp  01/01/1988 00:00:00
 <这里表示在启用Resetlogs之前的SCN的值以及那个时候的时间戳>
 Redo Version: compatible=0xa200300
 #Data files = 5, #Online files = 5
 <表示这里有5个数据文件,并且这5个数据文件都是连机状态>
 Database checkpoint: Thread=1 scn: 0x0000.001e3a63
 <这里表示了一个完全检查点的SCN>
 Threads: #Enabled=1, #Open=1, Head=1, Tail=1
 enabled  threads:  01000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000
 Max log members = 3, Max data members = 1
 <这里表示了每个日志文件组中最大日志成员个数为3;Oracle中数据文件的多路复用,这里表示为1>
 Arch list: Head=0, Tail=0, Force scn: 0x0000.001e1e6bscn: 0x0000.00000000
 (这里表示一个归档列表,需要注意的是凡是SCN的值小于我们Force SCN的redo log都被归档了)
 Activation ID: 3067463009
 Controlfile Checkpointed at scn:  0x0000.001e3c26 01/14/2008 16:05:46
 thread:0 rba:(0x0.0.0)
 enabled  threads:  00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000

***************************************************************************
CHECKPOINT PROGRESS RECORDS
***************************************************************************
<这里表示"检查点的记录进度",这一项从Oracle8开始引入在控制文件当中。这里主要是记录了我们增量检查点的状态,因为我们都知道自从checkpoint queue引入了Oracle后,每一个脏数据块都会被移动到检查点队列,按照Low RBA的顺序来排列,那么在写出的时候也是按照Low RBA的顺序写出,对块一级所做的任何修改并不影响这个块在checkpoint queue中的low rba位置顺序。CKPT进程,按照每3秒的heartbeat来更新我们的控制文件,更新的就是这一块区域。每3秒都是把最低的RBA,也就是我们low rba的信息写入我们的控制文件中的checkpoint progress records.>
 (size = 8180, compat size = 8180, section max = 11, section in-use = 0,
  last-recid= 0, old-recno = 0, last-recno = 0)
 (extent = 1, blkno = 2, numrecs = 11)
<这里总共有8个线程>
THREAD #1 - status:0x2 flags:0x0 dirty:76
low cache rba:(0xf6.19ec.0) on disk rba:(0xf6.1afd.0)
<表示实例恢复时候的起点和终点,应该是low cache rba->on disk rba>
on disk scn: 0x0000.001e407d 01/14/2008 16:37:13
<这里表示on disk rba所处的SCN值>
resetlogs scn: 0x0000.00000001 01/05/2008 19:58:25
<启用Resetlogs时的scn值和时间戳,和数据库项中的相应条目应该是一致的。>
heartbeat: 643784745 mount id: 3067918199
<这里还记录了每3秒记录的心跳,目的就是为了减少数据库崩溃的时候恢复所用的时间,其实心跳机制是包含在CKPT timeout action里面的,每3秒来更新一下我们的checkpoint,同时需要注意的是,心跳并非在open在才更新,mount状态下,Oracle也是同样可以检测的>

THREAD #2 - status:0x0 flags:0x0 dirty:0
low cache rba:(0x0.0.0) on disk rba:(0x0.0.0)
on disk scn: 0x0000.00000000 01/01/1988 00:00:00
resetlogs scn: 0x0000.00000000 01/01/1988 00:00:00
heartbeat: 0 mount id: 0

THREAD #3 - status:0x0 flags:0x0 dirty:0
low cache rba:(0x0.0.0) on disk rba:(0x0.0.0)
on disk scn: 0x0000.00000000 01/01/1988 00:00:00
resetlogs scn: 0x0000.00000000 01/01/1988 00:00:00
heartbeat: 0 mount id: 0

THREAD #4 - status:0x0 flags:0x0 dirty:0
low cache rba:(0x0.0.0) on disk rba:(0x0.0.0)
on disk scn: 0x0000.00000000 01/01/1988 00:00:00
resetlogs scn: 0x0000.00000000 01/01/1988 00:00:00
heartbeat: 0 mount id: 0

THREAD #5 - status:0x0 flags:0x0 dirty:0
low cache rba:(0x0.0.0) on disk rba:(0x0.0.0)
on disk scn: 0x0000.00000000 01/01/1988 00:00:00
resetlogs scn: 0x0000.00000000 01/01/1988 00:00:00
heartbeat: 0 mount id: 0

THREAD #6 - status:0x0 flags:0x0 dirty:0
low cache rba:(0x0.0.0) on disk rba:(0x0.0.0)
on disk scn: 0x0000.00000000 01/01/1988 00:00:00
resetlogs scn: 0x0000.00000000 01/01/1988 00:00:00
heartbeat: 0 mount id: 0

THREAD #7 - status:0x0 flags:0x0 dirty:0
low cache rba:(0x0.0.0) on disk rba:(0x0.0.0)
on disk scn: 0x0000.00000000 01/01/1988 00:00:00
resetlogs scn: 0x0000.00000000 01/01/1988 00:00:00
heartbeat: 0 mount id: 0

THREAD #8 - status:0x0 flags:0x0 dirty:0
low cache rba:(0x0.0.0) on disk rba:(0x0.0.0)
on disk scn: 0x0000.00000000 01/01/1988 00:00:00
resetlogs scn: 0x0000.00000000 01/01/1988 00:00:00
heartbeat: 0 mount id: 0

 


***************************************************************************
EXTENDED DATABASE ENTRY
***************************************************************************
 (size = 276, compat size = 276, section max = 1, section in-use = 1,
  last-recid= 0, old-recno = 0, last-recno = 0)
 (extent = 1, blkno = 90, numrecs = 1)
Control AutoBackup date(dd/mm/yyyy)= 5/ 1/2008
Next AutoBackup sequence= 0
Database recovery target inc#:1, Last open inc#:1
flg:0x0, flag:0x0
Change tracking state=0, file index=0, checkpoint count=0
Flashback log count=0, block count=0
Oldest guarantee restore point=0
Highest thread enable/disable scn: 0x0000.00000001
Number of Open thread with finite next SCN in last log: 0
Number of half-enabled redo threads: 0
*** END OF DUMP ***

 


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar