REMAINING <> 0
? ?AND SQL_ADDRESS = ADDRESS
? ?AND SQL_HASH_VALUE = HASH_VALUE;
?
4.6. 检查消耗CPU最高的进程
?
?
SET LINE 240
?
SET VERIFY OFF
?
COLUMN SID FORMAT 999
?
COLUMN PID FORMAT 999
?
COLUMN S_# FORMAT 999
?
COLUMN USERNAME FORMAT A9 HEADING "ORA USER"
?
COLUMN PROGRAM FORMAT A29
?
COLUMN SQL FORMAT A60
?
COLUMN OSNAME FORMAT A9 HEADING "OS USER"
?
SELECT P.PID PID,
? ? ? ?S.SID SID,
? ? ? ?P.SPID SPID,
? ? ? ?S.USERNAME USERNAME,
? ? ? ?S.OSUSER OSNAME,
? ? ? ?P.SERIAL# S_#,
? ? ? ?P.TERMINAL,
? ? ? ?P.PROGRAM PROGRAM,
? ? ? ?P.BACKGROUND,
? ? ? ?S.STATUS,
? ? ? ?RTRIM(SUBSTR(A.SQL_TEXT, 1, 80)) SQLFROM V$PROCESS P,
? ? ? ?V$SESSION S,
? ? ? ?V$SQLAREA A WHERE P.ADDR = S.PADDR AND S.SQL_ADDRESS = A.ADDRESS(+) AND P.SPID LIKE '%&1%';
?
4.7. 检查碎片程度高的表
?
?
SELECT segment_name table_name, COUNT(*) extents
? FROM dba_segments
?WHERE owner NOT IN ('SYS', 'SYSTEM')
?GROUP BY segment_name
HAVING COUNT(*) = (SELECT MAX(COUNT(*))
? ? ? ? ? ? ? ? ? ? ?FROM dba_segments
? ? ? ? ? ? ? ? ? ? GROUP BY segment_name);
?
4.8. 检查表空间的I/O比例
?
?
SELECT DF.TABLESPACE_NAME NAME,
? ? ? ?DF.FILE_NAME ? ? ? "FILE",
? ? ? ?F.PHYRDS ? ? ? ? ? PYR,
? ? ? ?F.PHYBLKRD ? ? ? ? PBR,
? ? ? ?F.PHYWRTS ? ? ? ? ?PYW,
? ? ? ?F.PHYBLKWRT ? ? ? ?PBW
? FROM V$FILESTAT F, DBA_DATA_FILES DF
?WHERE F.FILE# = DF.FILE_ID
?ORDER BY DF.TABLESPACE_NAME;?
?
4.9. 检查文件系统的I/O比例
?
?
SELECT SUBSTR(A.FILE#, 1, 2) "#",
? ? ? ?SUBSTR(A.NAME, 1, 30) "NAME",
? ? ? ?A.STATUS,
? ? ? ?A.BYTES,
? ? ? ?B.PHYRDS,
? ? ? ?B.PHYWRTS
? FROM V$DATAFILE A, V$FILESTAT B
?WHERE A.FILE# = B.FILE#;?
?
4.10.检查死锁及处理
?
查询目前锁对象信息:
?
?
select sid,
? ? ? ?serial#,
? ? ? ?username,
? ? ? ?SCHEMANAME,
? ? ? ?osuser,
? ? ? ?MACHINE, ? ??
? ? ? ?terminal,
? ? ? ?PROGRAM,
? ? ? ?owner,
? ? ? ?object_name,
? ? ? ?object_type,
? ? ? ?o.object_id
? from dba_objects o, v$locked_object l, v$session s
?where o.object_id = l.object_id
? ?and s.sid = l.session_id;?
?
oracle级kill掉该session:
?
alter system kill session '&sid,&serial#';
操作系统级kill掉session:
?
#>kill -9 pid
?
?
?
回到顶部
记录
数据库的cpu使用、IO、内存等使用情况,使用vmstat,iostat,sar,top等命令进行信息收集并检查这些信息,判断资源使用情况。
?
5.1 CPU使用情况:
?
[root@sale8 ~]# top
?
top - 10:29:35 up 73 days, 19:54, 1 user, load average: 0.37, 0.38, 0.29
?
Tasks: 353 total, 2 running, 351 sleeping, 0 stopped, 0 zombie
?
Cpu(s): 1.2% us, 0.1% sy, 0.0% ni,98.8% id, 0.0% wa, 0.0% hi, 0.0% si
?
Mem: 16404472k total, 12887428k used, 3517044k free, 60796k buffers
?
Swap: 8385920k total, 665576k used, 7720344k free, 10358384k cached
?
?
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
?
30495 oracle 15 0 8329m 866m 861m R 10 5.4 7:53.90 oracle
?
32501 oracle 15 0 8328m 1.7g 1.7g S 2 10.6 1:58.38 oracle
?
32503 oracle 15 0 8329m 1.6g 1.6g S 2 10.2 2:06.62 oracle
?
注意上面的蓝色字体部分,此部分内容表示系统剩余的cpu,当其平均值下降至10%以下的时视为CPU使用率异常,需记录下该数值,并将状态记为异常。
?
5.2 内存使用情况:
?
# free -m
?
total used free shared buffers cached
?
Mem: 2026 1958 67 0 76 1556
?
-/+ buffers/cache: 326 1700
?
Swap: 5992 92 5900
?
如上所示,蓝色部分表示系统总内存,红色部分表示系统使用的内存,黄色部分表示系统剩余内存,当剩余内存低于总内存的10%时视为异常。
?
5.3 系统I/O情况:
?
# iostat -k 1 3
?
Linux 2.6.9-22.ELsmp (AS14) 07/29/2009
?
?