Oracle11gRAC数据库巡检手册Word文档格式.docx
《Oracle11gRAC数据库巡检手册Word文档格式.docx》由会员分享,可在线阅读,更多相关《Oracle11gRAC数据库巡检手册Word文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
![Oracle11gRAC数据库巡检手册Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-12/28/2c491d55-8cd3-4144-80c1-99d9d0cb4a58/2c491d55-8cd3-4144-80c1-99d9d0cb4a581.gif)
reference-timecounter,看起来有点类似计时器的功能。
GMON
用于维护asm磁盘组的磁盘之间的关系。
KATE
当ASM的磁盘离线的时候,该进程负责asm的元文件的io读写。
MARK
如果有向asm离线磁盘的missed写请求,该进程将ASM分配的单元的状态标记为stale
FBDA
涉及到flashback-data-archive新特性的一个进程,Theflashbackdataarchiverproces。
用于将"
轨表"
(tracked
tables)的历史数据进行归档。
当"
上的事务提交以后,fbda进程负责将数据的前镜像保存到flashbackarchive区域。
该进程还负责flashback的数据归档的空间管理、分配、保留,跟踪trackedtransactions。
什么是"
(trackedtables):
是指启用了flashbackarchive特性的表。
RMSn
TheOracleRACmanagementprocesses,负责执行OracleRAC的管理任务,比如RAC相关资源的创建和集群中新实例的
添加。
DSKM
Theslavediskmonprocess,负责oracle实例、asm实例和磁盘的管理进程之间的iofencing信息的交换。
如果
使用SAGE的存储,该进程还负责SAGE存储的一些信息的管理。
RAC进程
GSDglobalservicesdaemon全局服务守护进程
lockprocess(LCK)锁管理进程
DIAG:
DIAGNOSABILITYDAEMON失败进程的诊断信息捕获进程
OperatingSystem-Dependent(OSD)操作系统资源访问进程
LMS-GobalCacheServiceProcess全局缓存服务进程
LMD-GlobalEnqueueServiceDaemon全局查询服务守护进程
LMON-GlobalEnqueueServiceMonitor全局查询服务监视进程
LCK0-InstanceEnqueueProcess实例查询进程
进程状态
Space
使用情况
df-h
Listener
监听状态
lsnrctlstatus
配置正常
运行情况
sqlplus“/assysdba”
查看日志
More/u01/app/oracle/product/11.2.0/db_1/network/log/sqlnet.log
有错误才有日志
Tnsname
配置情况
标准配置
位置:
/u01/app/oracle/product/11.2.0/db_1/network/admin
正常
查看状态
Tnspingtnsname(数据库实例名)
Alert
/u01/app/oracle/diag/rdbms/<
SID>
/<
INSTANCE>
/trace/alert_sid.log
Morealert_sid.log
CRS
服务运行情况
crsctlcheckcrs
检查crs的健康情况
资源运行情况
crs_stat–t
用来查看RAC中各节点上resources的运行状况,Resources的属性等
OCR
ocrcheck
验证OCR的状态以及空间使用情况
Voting
Disk
crsctlquerycssvotedisk
Votingdisk状态查询
ASM
crs_stat-t|grepasm
#su-grid
$asmcmd
ASMCMD>
ls
DATA/
ORA_DATA/
lsdgora_data
ls-sDATA.354.774196981
数据库
su–oracle
诊断结果及建议
DBstatus
数据库状态
selectstatusfromv$instance;
Select*fromv$parameter;
察看参数
隐含参数
setlinesize132
columnnameformata30
columnvalueformata25
select
x.ksppinm
name,
y.ksppstvl
value,
y.ksppstdf
isdefault,
decode(bitand(y.ksppstvf,7),1,'
MODIFIED'
4,'
SYSTEM_MOD'
'
FALSE'
)
ismod,
decode(bitand(y.ksppstvf,2),2,'
TRUE'
isadj
from
sys.x$ksppix,
sys.x$ksppcvy
where
x.inst_id=userenv('
Instance'
)and
y.inst_id=userenv('
x.indx=y.indxand
x.ksppinmlike'
%_&
par%'
orderby
translate(x.ksppinm,'
_'
'
'
)
/
使用资源情况
select*fromv$resource_limit;
selectgroup_number,name,total_mb,free_mbfromv$asm_diskgroup;
DBfile
数据文件状态
selectname,statusfromv$datafile;
控制文件状态
selectstatus,namefromv$controlfile;
日志文件状态
selectgroup#,members,archived,statusfromv$log;
表空间使用率
setpagesize50
column"
Tablespace"
formata13
UsedMB"
format99,999,999
FreeMB"
TotalMB"
select
fs.tablespace_name"
(df.totalspace-fs.freespace)"
fs.freespace"
df.totalspace"
round(100*(fs.freespace/df.totalspace))"
PctFree"
from
(select
tablespace_name,
round(sum(bytes)/1048576)TotalSpace
dba_data_files
groupby
tablespace_name
)df,
round(sum(bytes)/1048576)FreeSpace
dba_free_space
)fs
wheredf.tablespace_name=fs.tablespace_name
orderby"
/
Sessions
并发数
selectcount(*)fromv$sessionwherestatus='
ACTIVE'
;
Redo
selectb.THREAD#,a.GROUP#,a.STATUS,a.MEMBER,b.BYTES,b.ARCHIVED,b.STATUS
fromv$logfilea,v$logbwherea.GROUP#=b.GROUP#;
Performance
察看数据库锁表
锁表有时候是瞬间的,长时间锁定的表才可能是死锁。
selectl.*,s.OSUSER,s.ACTION,o.OBJECT_NAME
fromgv$locked_objectl,gv_$sessions,all_objectso
wherel.SESSION_ID=s.SID
ando.OBJECT_ID=l.OBJECT_ID
死锁
setlinesize200
columnoracle_usernamefora16
columnos_user_namefora12
columnobject_namefora30
SELECTl.xidusn,l.object_id,l.oracle_username,l.os_user_name,l.process,
l.session_id,s.serial#,l.locked_mode,o.object_name
FROMv$locked_objectl,dba_objectso,v$sessions
wherel.object_id=o.object_idands.sid=l.session_id;
selectt2.username||'
||t2.sid||'
||t2.serial#||'
||t2.logon_time||'
||t3.sql_text
fromv$locked_objectt1,v$sessiont2,v$sqltextt3
wheret1.session_id=t2.sid
andt2.sql_address=t3.address
orderbyt2.logon_time;
latch
1、从V$LATCH,V$LATCH_CHILDREN,V$LATCH_MISSES查看有关LATCH的统计信息
例:
SELECTlatch#,name,gets,misses,sleeps
FROMv$latch
WHEREsleeps>
ORDERBYsleeps;
2、在PEAKTIME,查看当前的LATCH竞争
selectcount(*),namelatchnamefromv$session_wait,v$latchname
whereevent='
latchfree'
andstate='
WAITING'
andp2=latch#
groupbynameorderby1desc;
3、确定影响系统的主要LATCHCONTENTION,并针对具体LATCH竞争采取不同的ACTION
如果LATCHFREE的等待事件在WAITEVENT占了比较大的比重,需要检查具体的LATCH竞争的情况。
最常见的LATCH竞争是LIBRARYCACHE、SHAREDPOOL、CACHEBUFFERCHAINS和CACHEBUFFERSLRUCHAINS。
前两者是关于SHAREDPOOL(SHARED_POOL_SIZE)的,后两者是SHAREDBUFFER(DB_BLOCK_BUFFERS)的
/*
显示系统范围内的latch统计信息*/
column
name
format
A32
truncate
heading
"
LATCH
NAME"
pid
HOLDER
PID"
select
c.name,a.addr,a.gets,a.misses,a.sleeps,
a.immediate_gets,a.immediate_misses,b.pid
from
v$latch
a,
v$latchholder
b,
v$latchname
c
where
a.addr
=
b.laddr(+)
and
a.latch#
c.latch#
order
by
a.latch#;
给出一个latch
地址,查出相应的latch名称*/
a64
'
Name'
b
b.addr
&
addr'
b.latch#=a.latch#;
显示latch统计信息*/
a32
NAME'
PID'
c.name,a.addr,a.gets,a.misses,a.sleeps,a.immediate_gets,
a.immediate_misses,b.pid
c.name
like
latch_name%'
enqueue等待
Selecteq_type"
lock"
total_req#"
gets"
total_wait#"
waits"
cum_wait_timefromv$enqueue_statwheretotal_wait#>
0;
等待事件
columnusernamefora12
columnprogramfora30
columneventfora28
columnp1textfora15
columnp1for999,999,999,999,999
selects.username,s.program,sw.event,sw.p1text,sw.p1fromv$sessions,v$session_waitsw
wheres.sid=sw.sidands.status='
orderbysw.p1;
selectevent,p1"
File#"
p2"
Block#"
p3"
ReasonCode"
fromv$session_wait
orderbyevent;
whereevent='
bufferbusywaits'
selectowner,segment_name,segment_type,file_id,block_idfromdba_extents
wherefile_id=&
P1and&
P2betweenblock_idandblock_id+blocks-1;
columneventfora35;
columnp1textfora40;
selectsid,event,p1,p1textfromv$session_waitorderbyevent;
RAC全局等待事件
select*fromv$event_namewhereNAMElike'
gc%'
andWAIT_CLASS='
Cluster'
数据文件IO
selectfs.namename,f.phyblkrdpbr,f.phyblkwrtpbw,f.phyblkrdpyr,f.readtim,f.writetim
fromv$filestatf,v$dbfilefs
wheref.file#=fs.file#orderby2,3,4desc;
表空间IO
selecttablespace_name,sum(f.phyblkrd)pbr,sum(f.phyblkwrt)pbw,sum(f.phyblkrd)pyr,sum(f.readtim),sum(f.writetim)
fromv$filestatf,dba_data_filesfs
wheref.file#=fs.file_id
groupbytablespace_name
orderby2,3,4desc;
长事务
columnnamefora16
columnusernamefora10
selecta.name,b.xacts,c.sid,c.serial#,c.username,d.sql_text
fromv$rollnamea,v$rollstatb,v$sessionc,v$sqltextd,v$transactione
wherea.usn=b.usn
andb.usn=e.XIDUSN
andc.taddr=e.addr
andc.sql_address=d.ADDRESS
andc.sql_hash_value=d.hash_value
orderbya.name,c.sid,d.piece;
大事务
selectsid,serial#,to_char(start_time,'
yyyy-mm-ddhh24:
mi:
ss'
)start_time,sofar,totalwork,(sofar/decode(totalwork,0,1,totalwork))*100ratio,messagefromv$session_longops
wheremessagelike'
%RMAN%'
wheresofar<
>
totalwork;
where(sofar/totalwork)*100<
100;
察看用户session数量
Selectcount(*)fromv$session;
如果session过多,察看select*fromv$session,察看是什么程序
察看用户session使用内存大小
SELECTusername,sess.sid,sum(trunc((value/1024)))MEM_USED
FROMv$sessionsess,v$sesstatstat,v$statnamename
WHEREsess.sid=stat.sid
ANDstat.statistic#=name.statistic#
ANDname.namein('
sessionugamemory'
'
sessionpgamemory'
groupbyusername,sess.sid
orderbymem_used
归档的生成频率
setlinesize120
columnbegin_timefora26
columnend_timefora26
selecta.recid,to_char(a.first_time,'
)begin_time,
b.recid,to_char(b.first_time,'
)end_time,
round((b.first_time-a.first_time)*24*60,2)minutes
fromv$log_historya,v$log_historyb
whereb.recid=a.recid+1;
缓冲区命中率
SELECT(1-(SUM(DECODE(NAME,'
physicalreads'
VALUE,0))/
(SUM(DECODE(NAME,'
db