首页 > 大数据 > 数据分析 > Oracle数据库日常运维
一利用OS工具诊断
|
1
2
3
4 |
实时查看资源情况:
top
-H -u oraclevmstat查询系统负载:vmstat 1 99查看磁盘情况:sar -b 1 10dstat查看cpu/net/io :dstat 1 100 |
二.数据库查询
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 |
1.查询监控library cache 命中率select
1-
sum
(l.RELOADS)/
sum
(l.PINS)
"Librarycache hit(%)"
from
v$librarycache l;2.查询dict cache命中率SELECT
(
SUM
(GETS - GETMISSES - USAGE - FIXED)) /
SUM
(GETS)
"ROW CACHE HINT Ratio(%)"
FROM
V$ROWCACHE;3.查询sort排序,特定sid的session级别的sort排序,V$sort_usage;select
sort_mem.value
"Sort memory"
,sort_dsk.value
"Sort disk"
,(sort_mem.value/(sort_dsk.value+sort_mem.value))*100
"Sort mem_hit(%)"from
v$sysstat sort_mem,v$sysstat sort_dskwhere
sort_mem.
name
like
'%sort%memory%'and
sort_dsk.
name
like
'%sorts%disk%'
;Sort memory Sort disk Sort mem_hit(%)----------- ---------- ---------------
558889 0 100select
name
,value
from
v$sysstat
where
name
like
'%sort%'
;NAME
VALUE---------------------------------------------------------------- ----------sorts (memory) 12848sorts (disk) 0sorts (
rows
) 410458
-->多少行被排序
select
sorts (disk)/sorts (memory)
as
sorts(disk)
from
dual;
-->计算排序的大小特定session的排序情况select
sy.CLASS,sy.
NAME
,se.SID,se.VALUE
from
v$sysstat sy,v$sesstat sewhere
sy.STATISTIC#=se.STATISTIC#and
sy.
name
like
'%sort%'and
sid=(
select
sid
from
v$session
where
username=
'TOM'
) /*如果从awr,addm中找到
top
sql的话可以加sql_address,sql_hash_value精确定位*/
CLASS
NAME
SID VALUE---------- ---------------------------------------------------------------- ---------- ----------
64 sorts (memory) 1088 94
-->94 是
64 sorts (disk) 1088 0
64 sorts (
rows
) 1088 3453
CLASS
NAME
SID VALUE---------- ---------------------------------------------------------------- ---------- ----------
64 sorts (memory) 1088 95
-->95
64 sorts (disk) 1088 0
64 sorts (
rows
) 1088 3453
CLASS
NAME
SID VALUE---------- ---------------------------------------------------------------- ---------- ----------
64 sorts (memory) 1088 95
-->95
64 sorts (disk) 1088 0
64 sorts (
rows
) 1088 3453
select
st.
name
,st.VALUE/ (st.VALUE+sy.VALUE)*100
as
hito
from
v$sysstat st,v$sysstat syselect
st.
name
,st.VALUE/(st.VALUE+sy.VALUE)*100
as
hito
from
v$sysstat st,v$sysstat sywhere
st.STATISTIC#=341
and
sy.STATISTIC#=342
说明:*.是session级别的,如果要查看特定的sql则可以从v$sql中的sort字段查看*.sorts是个递增的,当运行2条同样的sorts时并不会增加,也就解释了
temporary
tablespace uniform(pct=0) 不马上回收空间,预留下次sort的原因了 |
三.rman
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 |
1.rman备份恢复rman>restore
database
;rman>recover
database
until
time
'09-06-22 08:55:00'rman>
alter
database
open
resetlogs;2.rman删除过期文件脚本rman target / <<EOFrun{
delete
obsolete;}yesEOF3.rman crosscheck archivelog这种情况就是在rman有日志gap的时候做不完全恢复后,仍然会出现找不到日志的错误信息,解决办法:step1:rman
delete
obsolete;step2会提示不能删除需要crosscheck archivelog
all
;step3:rman>crosscheck archivelog
all
;step4:rman>可以正常备份archivelog
over!!rman>crosscheck archivelog
all
; |
四.热点表、热点快
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 |
1.热块X$bh(TS#,FILE#,DBARFIL,DBABLK,OBJ,tch)/*obj是object_id,tch就是touch,即接访问的意思>50比较高,dbarfil,dbablk可以去dump block*/select
*
from
(
select
*
from
x$bh
order
by
tch)
where
rownum<=10;查询前10的热块select
object_name,object_type fromd dba_objects
where
object_id= x$bh.obj2.热表 dba_tables,dba_tab_modifications,dbms_stat.flush_database_info;step1x$bh tch字段查询热的obj(object_id)step2 dba_object id 查询object_owner,object_type,object_namesetep3 搜集信息
exec
dbms_stats.flush_database_info;step 4 dba_tables,dba_tab_modifications查询更新次数select
t.table_name,t.last_analyzed,m.inserts,m.updates,m.deletes
from
dba_tables t,dba_tab_modifications mwhere
t.table_name=m.table_name
and
t.owner=
'SYS'order
by
m.inserts,m.updates,m.deletesWRH$_SYSSTAT 2009-7-18 15: 726 0 9801WRH$_LATCH 2009-7-18 15: 764 0 10314JAVASNM$ 2009-6-30 22: 809 0 0COM$ 2009-6-30 22: 836 12 0WRH$_SYSTEM_EVENT 2009-7-18 15: 872 0 0ALERT_QT 887 685 787WRI$_OPTSTAT_HISTHEAD_HISTORY 2009-7-8 0:40 894 0 0WRH$_SEG_STAT 2009-7-18 15: 913 0 0WRH$_SQLSTAT 2009-7-18 15: 1011 0 0IDL_UB1$ 2009-6-30 22: 1343 55 0WRH$_SERVICE_STAT 2009-7-18 15: 1344 0 0SYN$ 2009-6-30 22: 1384 58 0OBJAUTH$ 2009-6-30 22: 1536 0 1DEPENDENCY$ 2009-6-30 22: 3783 20 135WRH$_PARAMETER 2009-7-18 15: 3960 0 0WRH$_SYSSTAT 2009-7-18 15: 5445 0 0WRH$_LATCH 2009-7-18 15: 6112 0 0
3.热块查找SQL>
select
bh.FILE#,bh.DBABLK,
count
(*)
from
x$bh bh
2
group
by
bh.FILE#,bh.DBABLK
3
having
count
(*)>3;
FILE# DBABLK
COUNT
(*)---------- ---------- ----------
3 2744 5
1 53665 6
1 14725 5
1 48072 5
3 14142 6
1 14722 5
1 27277 5
1 14724 5
1 48068 5
1 27273 5
1 27274 5
1 14726 5
1 27278 5
1 26990 6
1 14727 5
1 48069 5
weibo.com/ttarticle/p/show?id=2309405100016451846159
|
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7633405/viewspace-3048683/ ,如需转载,请注明出处,否则将追究法律责任。