Beruflich Dokumente
Kultur Dokumente
RAC
Julian Dyke
Independent Consultant
Web Version
1
Agenda
Introduction to RAC
Memory Structures
Introduction
to
RAC
3
What is RAC?
Instance 1
Interconnect
Node 1
Local
Disk
Instance 2
Node 2
Shared
Storage
Local
Disk
Architecture
Public Network
Private Network
(Interconnect)
Instance 1
Instance 2
Node 1
Node 2
Storage Network
Shared
Storage
Some Definitions
Resource
Object to which access must be controlled at instance
level
Enqueue
Memory structure that serializes access to a resource
Global Resources
Object to which access must be controlled at cluster level
Global Enqueue
Locks and enqueues which need to be consistent between
all instances
Some Definitions...
Background Processes
DIAG
LMON
PMON
SMON
SMON
Instance 1
PMON
Instance 2
LCK
LMON
LCK
SGA
LMD
UGA
UGA
SGA
LMS
LMD
LMS
LGWR
DBWR
DBWR
LGWR
CKPT
CKPT
ARCH
ARCH
Datafiles
Controlfiles
Redo Logs
DIAG
Redo Logs
Background Processes
LMSn
Global Cache Service Process
Up to 20 in Oracle 10.1
LMS0-LMS9 LMSa-LMSj
Up to 36 in Oracle 10.2
LMS0-LMS9 LMSa-LMSz
Background Processes
LCK0
Instance Enqueue Process
Manages
instance resource requests
cross-instance call operations
Background Processes
LMD0
Global Enqueue Service Daemon
Background Processes
LMON
Global Enqueue Service Monitor
Manages
instance and process expirations
recovery processing for cluster enqueues
Background Processes
Fixed Tables
VARCHAR2(20)
VALUE
NUMBER
GV$SGA
INST_ID
NUMBER
NAME
VARCHAR2(20)
VALUE
NUMBER
CATCLUST.SQL
View Name
V$GES_CONVERT_LOCAL
V$DLM_CONVERT_LOCAL
V$GES_CONVERT_REMOTE
V$DLM_CONVERT_REMOTE
V$GES_LATCH
V$DLM_LATCH
V$GES_RESOURCE
V$DLM_RESS
V$GES_STATISTICS
V$DLM_MISC
V$GES_TRAFFIC_CONTROLLER
V$DLM_TRAFFIC_CONTROLLER
GV$GES_CONVERT_LOCAL
GV$DLM_CONVERT_LOCAL
GV$GES_CONVERT_REMOTE
GV$DLM_CONVERT_REMOTE
GV$GES_LATCH
GV$DLM_LATCH
GV$GES_RESOURCE
GV$DLM_RESS
GV$GES_STATISTICS
GV$DLM_MISC
GV$GES_TRAFFIC_CONTROLLER
GV$DLM_TRAFFIC_CONTROLLER
ORADEBUG
Enqueue Object
Resource Object
GCS shadow Object
client pid
Process Object
Oracle Format resname
all <res/lock/proc> pointer
all <res/lock/proc> contexts
all <res> pointers by an optional type
all converting enqueue (pointers)
all converting enqueue contexts
all res ptr with converting enqueues
all res contexts with converting enqueues
ORADEBUG
Continued...
-a name
-a hashcount
-t
-s
-k
-m pkey <objectno>
-m dpkey <objectno>
Memory
Structures
Memory Areas
Executable
SGA
Shared Libraries
PGA/Session Heap
Stack
00000000
Executable
20000000
SGA
40000000
Shared
Libraries
PGA
Session Heap
Stack
FFFFFFFF
STOP
Shared Memory
STOP
Contains
Fixed SGA
Buffer Pool
Shared Pool
Large Pool
Java Pool
Streams Pool
Redo buffers
Buffer Pool includes
Default cache
Keep and Recycle cache
2K, 4K, 8K, 16K and 32K cache
V$SGAINFO
VARCHAR2(32)
BYTES
NUMBER
RESIZEABLE
VARCHAR2(3)
Granules
Granules
X$KSMGE
Introduced
in Oracle 9.2
Describes individual granules
ADDR
RAW(4)
INDX
NUMBER
INST_ID
NUMBER
GRANNUM
NUMBER
GRANTYPE
NUMBER
GRANSTATE
VARCHAR2(16)
GRANFLAGS
NUMBER
LOCALITY
NUMBER
KSMAREANUM
NUMBER
BASEADDR
RAW(4)
GRANSIZE
NUMBER
GRANNEXT
NUMBER
GRANPREV
NUMBER
Granule ID
0
1
2
3
6
Free
Shared Pool
Large Pool
Java Pool
Buffer Pool
INVALID (Free)
ALLOCATED
Granule Address
Granule Size
Next granule ID
Previous granule ID
Granules
4M
SGA_TARGET = 260M
SGA_MAX_SIZE = 260M
GRANULE SIZE = 4M
256M
Large Pool 4M
This is an example of an
SGA mapped using
X$KSMGE
STOP
Java Pool 4M
Shared Pool 76M
V$SGASTAT
VARCHAR2(12)
NAME
VARCHAR2(26)
BYTES
NUMBER
682
Large Pool
Java Pool
Streams Pool
V$SGASTAT
gcs affinity
gcs opaque in
ges enqueues
gcs resources
gcs shadows
V$SGASTAT
Location
gcs resources
gcs shadows
ges resource
1257188 Heap
ges enqueues
3979396 Unknown
Size(bytes)
Permanent Areas
2AC00000
2B800000
2BC00000
Heap
2C000000
2C400000
2C800000
2CC00000
2D000000
STOP
2D800000
2DC00000
2E000000
2D034000
3981312
2E400000
2E800000
2D434000
3549424
2EF00000
2D834000
3963236
2DC34000
3980584
2DFFFD28
728
2E034000
Size
2D400000
3919532
2F000000
2F400000
2F800000
2FC00000
30000000
Permanent
Area
X$KSMSP
RAW(4)
INDX
NUMBER
INST_ID
NUMBER
KSMCHIDX
NUMBER
KSMCHDUR
NUMBER
KSMCHCOM
VARCHAR2(16)
KSMCHPTR
RAW(4)
KSMCHSIZ
NUMBER
KSMCHCLS
VARCHAR2(8)
KSMCHTYP
NUMBER
KSMCHPAR
RAW(4)
X$KSMSP
4620
16396
gcs_res_latch_t
7692
ges_res_masters
3084
619276
164
gcs_res_hash_bu
ges_resource
Segmented Arrays
Segmented Arrays
Segmented
Arrays
Call
Segmented
Array
Segmented
Array
Segmented
Header
Array
Segmented
Array
Header
STOP
Enqueues
Enqueue
Resources
X$KSMDD
ADDR
RAW(4)
INDX
NUMBER
INST_ID
NUMBER
NAME
VARCHAR2(30)
ELEMENTS_CHUNK
NUMBER
ITEMS_PT
NUMBER
INITENTRIES
NUMBER
NUMENTRIES
NUMBER
CURENTRIES
NUMBER
NUMCHUNKS
NUMBER
ELEMSIZE
NUMBER
FLAGS
NUMBER
HEAP
RAW(4)
SECONDARY
RAW(4)
Number of
chunks
Address of parent
heap
Segmented Arrays
Heaps
Extent 0
Extent 1
Extent 2
Header
Free List
STOP
Chunks
X$KSMHP
RAW(4)
INDX
NUMBER
INST_ID
NUMBER
KSMCHDS
RAW(4)
KSMCHCOM
VARCHAR2(16)
KSMCHPTR
RAW(4)
KSMCHSIZ
NUMBER
KSMCHCLS
VARCHAR2(8)
KSMCHTYP
NUMBER
KSMCHPAR
RAW(4)
KSMCHOWN
RAW(4)
The
Buffer
Cache
4
Buffer Headers
Buffer
Headers
Buffers
Granule
STOP
X$BH
ADDR
RAW(4)
CLASS
NUMBER
CR_UBA_SEQ
NUMBER
INDX
NUMBER
STATE
NUMBER
CR_UBA_REC
NUMBER
INST_ID
NUMBER
MODE_HELD
NUMBER
CR_SFL
NUMBER
HLADDR
RAW(4)
CHANGES
NUMBER
CR_CLS_BAS
NUMBER
BLSIZ
NUMBER
CSTATE
NUMBER
CR_CLS_WRP
NUMBER
NXT_HASH
RAW(4)
LE_ADDR
RAW(4)
LRBA_SEQ
NUMBER
PRV_HASH
RAW(4)
DIRTY_QUEUE
NUMBER
LRBA_BNO
NUMBER
NXT_REPL
RAW(4)
SET_DS
RAW(4)
HSCN_BAS
NUMBER
PRV_REPL
RAW(4)
OBJ
NUMBER
HSCN_WRP
NUMBER
FLAG
NUMBER
BA
RAW(4)
HSUB_SCN
NUMBER
RFLAG
NUMBER
CR_SCN_BAS
NUMBER
US_NXT
RAW(4)
SFLAG
NUMBER
CR_SCN_WRP
NUMBER
US_PRV
RAW(4)
LRU_FLAG
NUMBER
CR_XID_USN
NUMBER
WA_NXT
RAW(4)
TS#
NUMBER
CR_XID_SLT
NUMBER
WA_PRV
RAW(4)
FILE#
NUMBER
CR_XID_SQN
NUMBER
TCH
NUMBER
DBARFIL
NUMBER
CR_UBA_FIL
NUMBER
TIM
NUMBER
DBABLK
NUMBER
CR_UBA_BLK
NUMBER
Single-Block Reads
Head of
Hot End
92
71
42
34
92
71
72
34
92
45
72
34
52
42
45
33
72
87
11
71
52
42
45
33
72
11
66
71
52
42
45
33
11
49
66
71
52
42
45
11
3
0
3
4
0
2
4
2
4
1
2
1
4
0
2
1
0
1
2
Read Block 42
11
33
34
87
Get
Insert
Update
Move
Set
Gettouch
Insert
first
first
block
buffer
buffer
touch
buffer
available
available
count
71
42
at
atcount
contents
to
head
head
head
buffer
buffer
of
of cold
cold
from
end
for
of
on
from
end
hot
block
block
cold
cold
end42
71
42
34
end
end
to zero
STOP
Block
Number
Head of
Cold End
42
33
87
11
1
Touch
Count
Multi-Block Reads
DB_FILE_MULTIBLOCK_READ_COUNT = 4
Head of
Hot End
ReadBlock
Block7
28
5
6
Read
1
3
4
Insert
Read
Move
Move
Get
Read
Insert
Move
next
next
block
buffers
next
block
block
buffers
four
four
four
17
2
3
4
5
86available
at
to
available
to
to
at
blocks
blocks
head
cold
cold
cold
headend
end
of
end
of
into
into
Get
first
four
cold
buffers
buffers
coldend
end
from cold
cold end
end
from
STOP
Head of
Cold End
7
2
1
3
4
8
5
6
6
2
3
7
1
5
5
2
1
6
1
5
41
5
2
3
6
2
3
7
4
1
8
1
5
1
2
5
6
2
1
3
5
6
7
2
3
4
7
6
8
1
5
Global
Cache
Services
4
Instance 2
1 Request
shared
resource
2 Request
granted
Resource
Master
Instance 3
3 Read
request
Instance 1
4 Block
returned
Instance 2 requests
current read on
block
STOP
Instance 4
1318
N S N
1318
Instance 2
N X
1320
2 Transfer
block to
Instance 1 for
Resource
Master
exclusive
access
Instance 3
1 Request
exclusive
resource
4 Resource
status
Instance 1
Instance 1 requests
exclusive read on
block
STOP
Instance 4
1318
1318
Instance 2
2 Transfer
block to
Instance 4
in exclusive
mode
Instance 1
Instance 4 requests
exclusive read on
block
STOP
Instance 3
4 Resource
status
N X N
1320
Resource
Master
1 Request
block in
exclusive
mode
N X
1323
Instance 4
1318
Past Images
Recorded in V$BH.STATUS as PI
Based on X$BH.STATE (value 8 in Oracle 10.2)
Past Images
Buffer Cache
UPDATE t1
SET c1 = 1328;
1324;
1325;
1326;
1327;
COMMIT;
Buffer Cache
1323
1324
1325
1326
1327
1328
1329
1328
1329
Instance 1
1323
1324
1324
1325
1325
1326
1326
1327
1327
1328
Redo Log 1
STOP
UPDATE t1
SET c1 = 1329;
COMMIT;
Instance 2
1328
1329
1323
1329
Block
DBWR
Instance
Block
Assume
Instance
Undo/redo
GCS
Block
Instance
Undo/Redo
Undo/redo
42
Instance
has
42
transfers
is42
1
2is
table
subsequently
1
not
updates
1
needs
updated
makes
ismust
2
written
applied
t1
written
Crashes
block
contains
recovery
perform
block
column
inchanges
from
to
buffer
written
42ato
Block 42 is read from disk
Contents
Instance
toInstance
recovery
back
block
single
a Past
ofto
Redo
42
1row
buffer
disk
uses
cache
1Image
1324
1327
1325
1326
1328
1329
for
back
toin
Log
Instance
Instance
by
Past
cache
block
toblock
1
2
DBWR
disk
Image
42
are
2yet
2 lost
Redo Log 2
1318
Instance 2
1 Request block in
shared mode
Resource
Master
4 Resource
status
Instance 3
N X N
1320
N X S
3 Block and resource status
Instance 1
Instance 2 requests
current read on
block
STOP
2 Transfer
block to
Instance 1
in shared
mode
1323
Instance 4
1318
Fairness Threshold
Fairness Threshold
_fairness_threshold = 4
2
4
03
1
X S
N S
1323
Instance 1
Instance 2
Instance
Instance
Instance
Instance
Instance
Instance
Assume
Instance
1 22downgrades
22requests
receives
requests
1
receives
instance
1sends
sendsblock
consistent
block
consistent
1 lock
holds
to
with
to
with
from
Instance
Instance11sets
setscounter
counterto
to4
21
3
exclusive
Shared
instance
Instance
Null
Null
Xread
read
lock
tolock
lock
S
lock
on
22 block
STOP
Lock Elements
Buffer
Header
Buffer
Header
Buffer
Header
Lock
Element
Lock
Element
Lock
Element
GCS
Client
GCS
Client
GCS
Client
V$LOCK_ELEMENT
Based on X$LE
LOCK_ELEMENT_ADDR
RAW(4)
INDX
NUMBER
CLASS
NUMBER
LOCK_ELEMENT_NAME
NUMBER
MODE_HELD
NUMBER
BLOCK_COUNT
NUMBER
RELEASING
NUMBER
ACQUIRING
NUMBER
INVALID
NUMBER
FLAGS
NUMBER
X$LE
STOP
ADDR
RAW(4)
INDX
NUMBER
INST_ID
NUMBER
LE_ADDR
RAW(4)
NAME
NUMBER
LE_CLASS
NUMBER
LE_RLS
NUMBER
LE_ACQ
NUMBER
LE_FLAGS
NUMBER
LE_MODE
NUMBER
LE_WRITE
NUMBER
LE_LOCAL
NUMBER
LE_RECOVERY
NUMBER
LE_BLKS
NUMBER
LE_TIME
NUMBER
LE_KJBL
RAW(4)
Buffer
Header
Lock
Element
GCS
Client
GCS
Client
BH
BH
LE
LE
KJBL
KJBL
KJBR
GCS
Shadow
KJBL
KJBR
GCS Parameters
GCS Resources
Number of GCS resource structures determined by
_gcs_resources parameter
Stored in segmented array
Externalized in X$KJBR
Number of free GCS resource structures in X$KJBRFX
X$KJBR
ADDR
RAW(4)
INDX
NUMBER
INST_ID
NUMBER
KJBRRESP
RAW(4)
KJBRGRANT
VARCHAR2(9)
KJBRNCVL
VARCHAR2(9)
KJBRROLE
NUMBER
KJBRNAME
VARCHAR2(30)
KJBRMASTER
NUMBER
KJBRGRANTQ
RAW(4)
KJBRCVTQ
RAW(4)
KJBRWRITER
RAW(4)
X$KJBL
ADDR
RAW(4)
INDX
NUMBER
INST_ID
NUMBER
KJBLLOCKP
RAW(4)
KJBLGRANT
VARCHAR2(9)
KJBLREQUEST
VARCHAR2(9)
KJBLROLE
NUMBER
KJBLRESP
RAW(4)
KJBLNAME
VARCHAR2(30)
KJBLNAME2
VARCHAR2(30)
KJBLQUEUE
NUMBER
KJBLLOCKST
VARCHAR2(64)
KJBLWRITING
NUMBER
KJBLREQWRITE
NUMBER
KJBLMASTER
NUMBER
KJBLBLOCKED
NUMBER
KJBLBLOCKER
NUMBER
Continued
Block Mastering
Ordering
Block Mastering
End
Start
End
0x080
0x0FF
0x000
0x07F
0x180
0x1FF
0x100
0x17F
0x280
0x2FF
0x200
0x27F
0x380
0x3FF
0x300
0x37F
0x480
0x4FF
0x400
0x47F
0x580
0x5FF
0x500
0x57F
etc
etc
etc
etc
Block Mastering
Dynamic Remastering
In Oracle 9.2
documentation describes dynamic remastering
not implemented in code
In Oracle 10.1
work at data file level
very high threshold so difficult to test
does occur on some customer sites
may cause LMON process to crash in 10.1.0.4
bug 3659289 - patch available
fixed in 10.1.0.5/10.2.0.1
In Oracle 10.2
works at object level
thresholds are relatively low
Dynamic Remastering
Example
V$GCSPFMASTER_INFO
NUMBER
OBJECT_ID
NUMBER
CURRENT_MASTER
NUMBER
PREVIOUS_MASTER
NUMBER
REMASTER_CNT
NUMBER
Dynamic Remastering
Object ID
Current Master
Previous Master
52084
32767
Current Master
Previous Master
52084
Dynamic Remastering
X$KJDRMREQ
Dynamic Remastering Requests
X$KJDRMAFNSTATS
File Remastering Statistics
X$KJDRMHVSTATS
Hash Value Statistics
The
Library
Cache
7
KGLHD
Parent
Object
Heap 0
X$KGLOB
Child 1
16 x 1 word
pointers
STOP
Parent
Name
Child 2
Child
Handle
KGLHD
KGLHD
Child
Object
Subheap
Header
Statistics,
Optimizer
Environment,
BindVariables
KGLOB
Heap 0
Heap 6
Child
Handle
Subquery
Header
X$KGLOB
STOP
Subheap
Header
SELECT
Statement
Library Cache
In general
Locks are required for parsing
Externalized in X$KGLLK
Lock
Lock
KGLHD
Child
Object
KGLOB
Pin
Pin
Pin
X$KGLPN
Child
Handle
X$KGLOB
STOP
Namespaces
CRSR
LOB
REIP
RMGR
JVSD
RELS
MVOBINX
NSCPD
TABL
DIR
CPOB
XDBS
STFG
RELD
STBO
JSLV
BODY
QUEU
EVNT
PPLN
TRANS
IFSD
HTSO
MODL
TRGR
OBJG
SUMM
PCLS
RELC
XDBC
JSGA
Unused
INDX
PROP
DIMM
SUBS
RULE
USAG
JSET
Unused
CLST
JVSC
CTS
LOCS
STRM
MVOBTBL
TABLE
Unused
KGLT
JVRE
OUTL
RMOB
REVC
JSQI
CLST
Unused
PIPE
ROBJ
RULS
RSMD
STAP
CDC
INDX
Unused
Namespaces
For example:
V$LIBRARYCACHE
RAC
Specific
Statistics
NAMESPACE
VARCHAR2(15)
GETS
NUMBER
GETHITS
NUMBER
GETHITRATIO
NUMBER
PINS
NUMBER
PINHITS
NUMBER
PINHITRATIO
NUMBER
RELOADS
NUMBER
INVALIDATIONS
NUMBER
DLM_LOCK_REQUESTS
NUMBER
DLM_PIN_REQUESTS
NUMBER
DLM_PIN_RELEASES
NUMBER
DLM_INVALIDATION_REQUESTS
NUMBER
DLM_INVALIDATIONS
NUMBER
V$LIBRARYCACHE
Based on X$KGLST
SELECT inst_id,
DECODE (indx,
Names are generated
0,'SQL AREA',
in dynamic
1,'TABLE/PROCEDURE',
performance view
2,'BODY',
3,'TRIGGER',
4,'INDEX',
5,'CLUSTER',
6,'OBJECT',
7,'PIPE',
13,'JAVA SOURCE',
14,'JAVA RESOURCE',
32,'JAVA DATA','
?'
),
kglstget,kglstght, DECODE (kglstget,0,1,kglstght/kglstget),
kglstpin,kglstpht, DECODE (kglstpin,0,1,kglstpht/kglstpin),
kglstrld,kglstinv, kglstlrq,kglstprq,kglstprl,kglstirq,kglstmiv
Only selected rows
FROM x$kglst
from X$KGLST
WHERE indx<8 OR indx=13 OR indx=14 OR indx=32
X$KGLST
RAC
Specific
Statistics
ADDR
RAW(4)
INDX
NUMBER
INST_ID
NUMBER
KGLSTCMS
NUMBER
KGLSTCHT
NUMBER
KGLSTGET
NUMBER
KGLSTGHT
NUMBER
KGLSTPIN
NUMBER
KGLSTPHT
NUMBER
KGLSTRLD
NUMBER
KGLSTINV
NUMBER
KGLSTLRQ
NUMBER
KGLSTPRQ
NUMBER
KGLSTPRL
NUMBER
KGLSTIRQ
NUMBER
KGLSTMIV
NUMBER
Global
Enqueue
Services
8
V$LOCK_TYPE
VARCHAR2(64)
NAME
VARCHAR2(64)
ID1_TAG
VARCHAR2(64)
ID2_TAG
VARCHAR2(64)
IS_USER
VARCHAR2(3)
DESCRIPTION
VARCHAR2(4000)
For example:
BUCKET 127469:
LIBRARY OBJECT HANDLE: handle=2bb8dfbc mutex=0x2bb8e070(0)
name=US01.T1
hash=b2f454b86387761e02fc7e686e37f1ed timestamp=01-14-2006 22:04:06
namespace=TABL flags=KGHP/TIM/MED/[40000000]
kkkk-dddd-llll=0000-0701-0701 lock=0 pin=0 latch#=1 hpc=0002 hlc=0002
lwt=0x2bb8e018[0x2bb8e018,0x2bb8e018] ltm=0x2bb8e020[0x2bb8e020,0x2bb8e020]
pwt=0x2bb8dffc[0x2bb8dffc,0x2bb8dffc] ptm=0x2bb8e004[0x2bb8e004,0x2bb8e004]
ref=0x2bb8e038[0x2bb8e038,0x2bb8e038] lnd=0x2bb8e044[0x2bb7a7ac,0x2bb8e410]
LOCK INSTANCE LOCK: id=LBb2f454b86387761e
PIN INSTANCE LOCK: id=NBb2f454b86387761e mode=S release=F flags=[00
INVALIDATION INSTANCE LOCK: id=IV0000c9890e170507 mode=S
LIBRARY OBJECT: object=2caede30
type=TABL flags=EXS/LOC[0005] pflags=[0000] status=VALD load=0
BUCKET 127469 total object count=1
BUCKET 127469:
LIBRARY OBJECT HANDLE: handle=2bb8dfbc mutex=0x2bb8e070(0)
name=US01.T1
hash=b2f454b86387761e02fc7e686e37f1ed timestamp=01-14-2006 22:04:06
namespace=TABL flags=KGHP/TIM/MED/[40000000]
kkkk-dddd-llll=0000-0701-0701 lock=0 pin=0 latch#=1 hpc=0002 hlc=0002
lwt=0x2bb8e018[0x2bb8e018,0x2bb8e018] ltm=0x2bb8e020[0x2bb8e020,0x2bb8e020]
pwt=0x2bb8dffc[0x2bb8dffc,0x2bb8dffc] ptm=0x2bb8e004[0x2bb8e004,0x2bb8e004]
ref=0x2bb8e038[0x2bb8e038,0x2bb8e038] lnd=0x2bb8e044[0x2bb7a7ac,0x2bb8e410]
LOCK INSTANCE LOCK: id=LBb2f454b86387761e
PIN INSTANCE LOCK: id=NBb2f454b86387761e mode=S release=F flags=[00
INVALIDATION INSTANCE LOCK: id=IV0000c9890e170507 mode=S
LIBRARY OBJECT: object=2caede30
type=TABL flags=EXS/LOC[0005] pflags=[0000] status=VALD load=0
BUCKET 127469 total object count=1
Namespaces->Instance Locks
Slide 1 of 3
Namespace
Lock
Pin
Namespace
Lock
Pin
CRSR
LA
NA
JVSC
LN
NN
TABL
LB
NB
JVRE
LO
NO
BODY
LC
NC
ROBJ
LP
NP
TRGR
LD
ND
REIP
LQ
NQ
INDX
LE
NE
CPOB
LR
NR
CLST
LF
NF
EVNT
LS
NS
KGLT
LG
NG
SUMM
LT
NT
PIPE
LH
NH
DIMM
LU
NU
LOB
LI
NI
CTS
LV
NV
DIR
LJ
NJ
OUTL
LW
NW
QUEU
LK
NK
RULS
LX
NX
OBJG
LL
NL
RMGR
LY
NY
PROP
LM
NM
XDBS
LZ
NZ
Namespaces->Instance Locks
Slide 2 of 3
Namespace
Lock
Pin
Namespace
Lock
Pin
PPLN
EA
GA
STAP
EN
GN
PCLS
EB
GB
RELS
EO
GO
SUBS
EC
GC
RELD
EP
GP
LOCS
ED
GD
IFSD
EQ
GQ
RMOB
EE
GE
XDBC
ER
GR
RSMD
EF
GF
USAG
ES
GS
JVSD
EG
GG
MVOBTBL
ET
GT
STFG
EH
GH
JSQI
EU
GU
TRANS
EI
GI
CDC
EV
GV
RELC
EJ
GJ
MVOBINX
EW
GW
RULE
EK
GK
STBO
EX
GX
STRM
EL
GL
HTSO
EY
GY
REVC
EM
GM
JSGA
EZ
GZ
Namespaces->Instance Locks
Slide 3 of 3
Namespace
Lock
Pin
JSET
VA
YA
TABLE
VB
YB
CLST
VC
YC
INDX
VD
YD
NSCPD
VE
YE
JSLV
VF
YF
MODL
VG
YG
Unused
VH
YH
Unused
VI
YI
Unused
VJ
YJ
Unused
VK
YK
Unused
VL
YL
Unused
VM
YM
V$ROWCACHE
RAC
Specific
Statistics
CACHE#
NUMBER
TYPE
VARCHAR2(11)
SUBORDINATE#
NUMBER
PARAMETER
VARCHAR2(32)
COUNT
NUMBER
USAGE
NUMBER
FIXED
NUMBER
GETS
NUMBER
GETMISSES
NUMBER
SCANS
NUMBER
SCANMISSES
NUMBER
SCANCOMPLETES
NUMBER
MODIFICATIONS
NUMBER
FLUSHES
NUMBER
DLM_REQUESTS
NUMBER
DLM_CONFLICTS
NUMBER
DLM_RELEASES
NUMBER
V$ROWCACHE
Based on X$KQRST
Contains 42 rows in Oracle 10.2
34 Parent Cache
8 Subordinate Caches
Cache#
Slide 1 of 2
Namespace
Lock
Cache#
Namespace
Lock
dc_tablespaces
QA
13
dc_sequences
QN
dc_free_extents
QB
14
dc_profiles
QO
dc_segments
QC
15
dc_database_links
QP
dc_rollback_segments
QD
16
dc_histogram_defs
dc_used_extents
QE
17
dc_global_oids
QR
dc_tablespace_quotas
QF
18
dc_outlines
QS
dc_files
QG
19
dc_table_scns
QT
dc_users
QH
20
rule_info
QU
dc_objects
QI
21
rule_or_piece
QV
dc_qmc_cache_entries
QJ
22
dc_awr_control
QW
10
dc_usernames
QK
23
dc_qmc_ldap_cache...
QX
11
dc_object_ids
QL
24
outstanding_alerts
QY
12
dc_constraints
QM
25
dc_hintsets
QZ
Slide 2 of 2
Cache#
Namespace
Lock
26
global_database_name
??
27
qmtmrcin_cache_entries
??
28
qmtmrctn_cache_entries
??
29
qmtmrcip_cache_entries
??
30
qmtmrctp_cache_entries
??
31
qmtmrciq_cache_entries
??
32
qmtmrctq_cache_entries
??
33
kqlsubheap_object
??
Cache# = KQRSTCID
Row Caches
For example:
size
------496
388
444
452
400
396
412
520
260
108
100
gets
------8909
0
4191
4210
0
0
0
9042
0
24
0
misses
-----7
0
569
31
0
0
6
23
0
17
0
hit ratio
--------0.999
0.000
0.880
0.993
0.000
0.000
0.000
0.997
0.000
0.585
0.000
DLM req
------7
0
709
74
0
0
6
23
0
0
0
Row Caches
For example:
Cache ID 8
BUCKET 48205:
row cache parent object: address=0x2bb8dcd8 cid=8(dc_objects) dc_objects
hash=313bbc4c typ=9 transaction=(nil) flags=00000002
own=0x2bb8dd44[0x2bb8dd44,0x2bb8dd44]
wat=0x2bb8dd4c[0x2bb8dd4c,0x2bb8dd4c] mode=S
status=VALID/-/-/-/-/-/-/-/request=N release=FALSE flags=0
Instance Lock
instance lock id=QI f611ffad e31d1de3
QI F611FFAD E31D1DE3
set=0, complete=FALSE
T1
data=
00000037 31540002 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000001 00000000 00000000 00000000 00000000 00000000 00000000
......
00000000 00000000 00000000 0000c989 00000001 0000c989 016a7802 0705170e
0e016a78 78070517 170e016a 00010705 00000000 00000000 00000000 00000000
00000000 00000006
BUCKET 48205 total object count=1
Converters
Waiters
KJILKFT
KJILKFT
KJILKFT
KJILKFT
KJILKFT
KJIRFT
KJILKFT
GES
Enqueue
GES
Resource
Resource Names
Contain
1 x two byte name
2 x 32 bit integer tag fields
Used with
Resources
Enqueues
Locks
Global Enqueue Services
Resource Names
GES Parameters
GES Resources
Number of GES resource structures probably determined
by
_lm_ress parameter
Stored in heap
Externalized in X$KJIRFT
GES Enqueues
Number of GES enqueue structures probably determined
by
_lm_locks parameter
Stored in segmented array
Externalized in X$KJILKFT
X$KJIRFT
ADDR
RAW(4)
INDX
NUMBER
INST_ID
NUMBER
KJIRFTRP
RAW(4)
KJIRFTRN
VARCHAR2(30)
KJIRFTCQ
NUMBER
KJIRFTGQ
NUMBER
KJIRFTPR
NUMBER
KJIRFTRDN
VARCHAR2(25)
KJIRFTMN
NUMBER
KJIRFTNCL
VARCHAR2(9)
KJIRFTVS
VARCHAR2(32)
KJIRFTVB
VARCHAR2(64)
X$KJILKFT
ADDR
RAW(4)
KJILKFTOONXID
NUMBER
INDX
NUMBER
KJILKFTCOGV
NUMBER
INST_ID
NUMBER
KJILKFTCOPV
NUMBER
KJILKFTLKP
RAW(4)
KJILKFTCONV
NUMBER
KJILKFTGL
VARCHAR2(9)
KJILKFTCODV
NUMBER
KJILKFTRL
VARCHAR2(9)
KJILKFTCONQ
NUMBER
KJILKFTRP
RAW(4)
KJILKFTCOEP
NUMBER
KJILKFTRN1
VARCHAR2(30)
KJILKFTCONDDW
NUMBER
KJILKFTRN2
VARCHAR2(30)
KJILKFTCONDDB
NUMBER
KJILKFTPID
NUMBER
KJILKFTWQ
NUMBER
KJILKFTXID0
NUMBER
KJILKFTLS
VARCHAR2(64)
KJILKFTXID1
NUMBER
KJILKFTASTE0
NUMBER
KJILKFTGID
NUMBER
KJILKFTON
NUMBER
KJILKFTOODD
NUMBER
KJILKFTBLKED
NUMBER
KJILKFTOOPT
NUMBER
KJILKFTBLKER
NUMBER
KJILKFTOOPO
NUMBER
V$GES_RESOURCE
RAW(4)
RESOURCE_NAME
VARCHAR2(30)
ON_CONVERT_Q
NUMBER
ON_GRANT_Q
NUMBER
PERSISTENT_RES
NUMBER
MASTER_NODE
NUMBER
NEXT_CVT_LEVEL
VARCHAR2(9)
VALUE_BLK_STATE
VARCHAR2(32)
VALUE_BLK
VARCHAR2(64)
V$GES_RESOURCE
V$GES_ENQUEUE
HANDLE
RAW(4)
GRANT_LEVEL
VARCHAR2(9)
CONVERT_OPT_GETVALUE
VARCHAR2(9)
CONVERT_OPT_PUTVALUE
VARCHAR2(30)
CONVERT_OPT_NOVALUE
VARCHAR2(30)
CONVERT_OPT_DUBVALUE
NUMBER
CONVERT_OPT_NOQUEUE
NUMBER
CONVERT_OPT_EXPRESS
NUMBER
CONVERT_OPT_NODEADLOCKWAIT
NUMBER
CONVERT_OPT_NODEADLOCKBLOCK
NUMBER
WHICH_QUEUE
NUMBER
STATE
NUMBER
AST_EVENT0
NUMBER
OWNER_NODE
REQUEST_LEVEL
RESOURCE_NAME1
RESOURCE_NAME2
PID
TRANSACTION_ID0
TRANSACTION_ID1
GROUP_ID
OPEN_OPT_DEADLOCK
OPEN_OPT_PERSISTENT
OPEN_OPT_PROCESS_OWNED
OPEN_OPT_NO_XID
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
VARCHAR2(64)
NUMBER
NUMBER
BLOCKED
NUMBER
BLOCKER
NUMBER
V$GES_ENQUEUE