关于10g中的X$KCVFH(续)
Posted: December 12, 2011 | Author: Cui Hua | Filed under: Oracle | Tags: x$kcvfh | 3 Comments »在“关于
下文中凡是蓝色标记的地方就是我后续的补充内容:
Version 10
Column Name Data Type Description
ADDR RAW(4) ADDRESS
INDX NUMBER INDEX
INST_ID NUMBER INSTANCE ID
HXFIL NUMBER FILE#,Datafile number (from control file)
HXONS NUMBER ONLINE | OFFLINE (from control file),HXONS为 0表示 ‘OFFLINE’,为其他值表示 ‘ONLINE’
HXSTS VARCHAR2(16)
HXERR NUMBER ERROR,decode(HXERR, 0, NULL, 1,’FILE MISSING’,2,’OFFLINE NORMAL’, 3,’NOT VERIFIED’, 4,’FILE NOT FOUND’,5,’CANNOT OPEN FILE’, 6,’CANNOT READ HEADER’, 7,’CORRUPT HEADER’,8,’WRONG FILE TYPE’, 9,’WRONG DATABASE’, 10,’WRONG FILE NUMBER’,11,’WRONG FILE CREATE’, 12,’WRONG FILE CREATE’, 16,’DELAYED OPEN’,14, ‘WRONG RESETLOGS’, 15,’OLD CONTROLFILE’, ‘UNKNOWN ERROR’)
HXVER NUMBER FORMAT,Indicates the format for the header block. The possible values are 6, 7, 8, or 0. 6 – indicates Oracle Version 6;7 – indicates Oracle Version 7;8 – indicates Oracle Version 8;0 – indicates the format could not be determined (for example, the header could not be read)
FHSWV NUMBER
FHCVN NUMBER Compatibility Vsn
FHDBI NUMBER DBID
FHDBN VARCHAR2(9) DB NAME
FHCSQ NUMBER controlfile sequence number
FHFSZ NUMBER BLOCKS, Current datafile size in blocks
FHBSZ NUMBER datafile block size
FHFNO NUMBER Tablespace datafile number
FHTYP NUMBER Type:
1 control file
2 redo log file
3 vanilla db file; that is, normal data, index, and undo blocks
4 backup control file
5 backup piece
6 temporary db file
FHRDB NUMBER Root dba: This field only occurs in data file #1, and is the location of blocks required during bootstrapping the data dictionary (bootstrap$)
FHCRS VARCHAR2(16) CREATION_CHANGE#,Datafile creation change#
FHCRT VARCHAR2(20) CREATION_TIME,Datafile creation timestamp
FHRLC VARCHAR2(20) RESETLOGS_TIME, Resetlogs timestamp
FHRLC_I NUMBER reset logs count
FHRLS VARCHAR2(16) RESETLOGS_CHANGE#, Resetlogs change#
FHPRC VARCHAR2(20) prev reset logs timestamp
FHPRC_I NUMBER prev reset logs count
FHPRS VARCHAR2(16) prev reset logs SCN
FHBTI VARCHAR2(20) Time the backup started, Updated when executing BEGIN BACKUP on the tablespace. RMAN does not update this field.
FHBSC VARCHAR2(16) System change number when backup started, Updated when executing BEGIN BACKUP on the tablespace. RMAN does not update this field.
FHBTH NUMBER Thread when when backup started, Updated when executing BEGIN BACKUP on the tablespace. RMAN does not update this field.
FHSTA NUMBER The value for the column X$KCVFH.FHSTA (file header status) for an open database with an online datafiles in versions prior to version 10 were all 4, indicating an online fuzzy status. With version 10 of Oracle the first system tablespace datafile will have a different status of 8196 if the datafile is online and the database is open and not in backup mode. In Oracle
FHSCN VARCHAR2(16) CHECKPOINT_CHANGE#, Datafile checkpoint change#, Updated on every checkpoint, but not when in Hot backup state (not online backups). This must remain untouched when you are in hot backup mode, because you might get checkpoints between the BEGIN BACKUP and when you actually start the copying process.
FHTIM VARCHAR2(20) CHECKPOINT_TIME, Datafile checkpoint timestamp
FHTHR NUMBER THREAD#
FHRBA_SEQ NUMBER SEQUENCE,即Redo log sequence number
FHRBA_BNO NUMBER Block number,即the redo log file block number
FHRBA_BOF NUMBER Byte offset,the byte offset into the block at which the redo record starts
FHETB RAW(132) enable threads byte,这个我不确定,是猜的。
FHCPC NUMBER CHECKPOINT_COUNT, Datafile checkpoint count
FHRTS VARCHAR2(20) Recoverd timestamp
FHCCC NUMBER Controlfile Checkpoint Count: Saved copy of the control file record of the checkpoint count. Helps detect old control files.
FHBCP_SCN VARCHAR2(16) Backup Checkpoint SCN: Updated with the checkpoint done while file in Hot backup
FHBCP_TIM VARCHAR2(20) Backup Checkpoint TIME: Updated with the checkpoint done while file in Hot backup
FHBCP_THR NUMBER Backup Checkpoint Thread: Updated with the checkpoint done while file in Hot backup
FHBCP_RBA_SEQ NUMBER Backup Checkpoint Sequence, 即Redo log sequence number: Updated with the checkpoint done while file in Hot backup
FHBCP_RBA_BNO NUMBER the redo log file block number, Updated with the checkpoint done while file in Hot backup
FHBCP_RBA_BOF NUMBER Byte offset,the byte offset into the block at which the redo record starts, Updated with the checkpoint done while file in Hot backup
FHBCP_ETB RAW(132) enable threads byte,这个我不确定,是猜的
FHBHZ NUMBER begin hot backup file size
FHXCD RAW(16) External cache id: Used to ensure that concurrent instances access data through consistent external cache
FHTSN NUMBER TS#,Tablespace number
FHTNM VARCHAR2(30) TABLESPACE_NAME, Tablespace name
FHRFN NUMBER RFILE#, Tablespace relative datafile number
FHAFS VARCHAR2(16) absolute fuzzy scn, 即Minimum PITR SCN
FHRFS VARCHAR2(16) The SCN at which the recovery of this file will be complete (no longer fuzzy). Both above fuzzy SCNs must be zero unless a fuzzy flag is set, and must be greater than the checkpoint SCN
FHRFT VARCHAR2(20) The time at which the recovery of this file will be complete (no longer fuzzy).
HXIFZ NUMBER File is fuzzy (YES | NO),decode(hxifz, 0,’NO’, 1,’YES’, NULL)
HXNRCV NUMBER File needs media recovery (YES | NO),decode(hxnrcv, 0,’NO’, 1,’YES’, NULL)
HXFNM VARCHAR2(513) NAME, Datafile name
FHPOFB NUMBER
FHPNFB NUMBER
FHPRE10 NUMBER
FHFIRSTUNRECSCN VARCHAR2(16) UNRECOVERABLE_CHANGE#, Last unrecoverable change number made to this datafile. If the database is in ARCHIVELOG mode, then this column is updated when an unrecoverable operation completes. If the database is not in ARCHIVELOG mode, this column does not get updated.
FHFIRSTUNRECTIME VARCHAR2(20) UNRECOVERABLE_TIME, Timestamp of the last unrecoverable change. This column is updated only if the database is in ARCHIVELOG mode.
HXLMDBA NUMBER SPACE_HEADER, The amount of space currently being used and the amount that is free, as identified in the space header. decode(hxlmdba, 0, NULL, hxlmdba)
HXLMLD_SCN VARCHAR2(16) LAST_DEALLOC_SCN, Last deallocated SCN
现在我们来看一个实际的例子:
我们现在把DATA FILE #1在x$kcvfh中的内容显示出来,如下所示:
SQL> exec p_sys_print_x_kcvfh;
ADDR:00000001104FA580
INDX:0
INST_ID:1
HXFIL:1
HXONS:1
HXSTS:281474976710655
HXERR:0
HXVER:0
FHSWV:0
FHCVN:169869568
FHDBI:1351724723
FHDBN:IPRATEST
FHCSQ:5895
FHFSZ:61440
FHBSZ:8192
FHFNO:1
FHTYP:3
FHRDB:4194681
FHCRS:8
FHCRT:07/22/2005 00:42:44
FHRLC:12/02/2008 15:09:41
FHRLC_I:672419381
FHRLS:551299
FHPRC:07/22/2005 00:42:25
FHPRC_I:564280945
FHPRS:1
FHBTI:
FHBSC:0
FHBTH:0
FHSTA:8196
FHSCN:39033396980
FHTIM:05/26/2009 15:46:18
FHTHR:1
FHRBA_SEQ:71
FHRBA_BNO:2
FHRBA_BOF:16
FHETB:02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
FHCPC:189
FHRTS:12/02/2008 15:09:27
FHCCC:188
FHBCP_SCN:0
FHBCP_TIM:
FHBCP_THR:0
FHBCP_RBA_SEQ:0
FHBCP_RBA_BNO:0
FHBCP_RBA_BOF:0
FHBCP_ETB:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
FHBHZ:0
FHXCD:00000000000000000000000000000000
FHTSN:0
FHTNM:SYSTEM
FHRFN:1
FHAFS:0
FHRFS:
FHRFT:
HXIFZ:1
HXNRCV:0
HXFNM:/iprat02/ipratest/system01.dbf
FHPOFB:10
FHPNFB:10
FHPRE10:0
FHFIRSTUNRECSCN:0
FHFIRSTUNRECTIME:
HXLMDBA:4194306
HXLMLD_SCN:0
PL/SQL procedure successfully completed
再把DATA FILE #1的文件头给dump出来,如下所示:
DATA FILE #1:
(name #7) /iprat02/ipratest/system01.dbf
creation size=0 block size=8192 status=0xe head=7 tail=7 dup=1
tablespace 0, index=1 krfil=1 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:189 scn: 0x0009.16925ef4 05/26/2009 15:46:18
Stop scn: 0xffff.ffffffff 05/22/2009 22:10:41
Creation Checkpointed at scn: 0x0000.00000008 07/22/2005 00:42:44
thread:0 rba:(0x
enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000
……省略显示部分内容
Offline scn: 0x0000.00086982 prev_range: 0
Online Checkpointed at scn: 0x0000.00086983 12/02/2008 15:09:41
thread:1 rba:(0x
enabled threads: 01000000 00000000 00000000 00000000 00000000 00000000
……省略显示部分内容
Hot Backup end marker scn: 0x0000.00000000
aux_file is NOT DEFINED
V10 STYLE FILE HEADER:
Compatibility Vsn = 169869568=0xa200100
Db ID=1351724723=0x5091aeb3, Db Name=’IPRATEST’
Activation ID=0=0x0
Control Seq=5895=0x1707, File size=61440=0xf000
File Number=1, Blksiz=8192, File Type=3 DATA
Tablespace #0 – SYSTEM rel_fn:1
Creation at scn: 0x0000.00000008 07/22/2005 00:42:44
Backup taken at scn: 0x0000.00000000 01/01/1988 00:00:00 thread:0
reset logs count:0x28144e35 scn: 0x0000.00086983 reset logs terminal rcv data:0x0 scn: 0x0000.00000000
prev reset logs count:0x
recovered at 12/02/2008 15:09:27
status:0x2004 root dba:0x00400179 chkpt cnt: 189 ctl cnt:188
begin-hot-backup file size: 0
Checkpointed at scn: 0x0009.16925ef4 05/26/2009 15:46:18
thread:1 rba:(0x47.2.10)
enabled threads: 01000000 00000000 00000000 00000000 00000000 00000000
……省略显示部分内容
Backup Checkpointed at scn: 0x0000.00000000
thread:0 rba:(0x
enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000
……省略显示部分内容
External cache id: 0x0 0x0 0x0 0x0
Absolute fuzzy scn: 0x0000.00000000
Recovery fuzzy scn: 0x0000.00000000 01/01/1988 00:00:00
Terminal Recovery Stamp 01/01/1988 00:00:00
Platform Information: Creation Platform ID: 6
Current Platform ID: 6 Last Platform ID: 6
两边一对比,以前一些怎么也猜不出来含义的字段的含义就很清晰了。
有兴趣的朋友可以根据我这篇文章里的内容自己尝试解析出DATA FILE #1在x$kcvfh的那条记录里每一个column的值的含义。
学习!
大师,我想学习非常规恢复,最近在看oracle block的结构,能给些指导或者资料吗,万分感谢
我所有的关于Oracle Block结构的资料基本上都来源于DSI,DSI itpub上随处可以下载