首页 > 数据库 > Oracle > [20211111]我看华为监控程序.txt
[20211111]我看华为监控程序.txt
--//下午没有什么事情,我想看看我们生产系统华为监控程序到底做一些什么。
1.环境:
SYS@XXXXX1/ORCLX> @ prxx
==============================
PORT_STRING : x86_64/Linux 2.4.xx
VERSION : 19.0.0.0.0
BANNER : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
BANNER_FULL : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.9.0.0.0
BANNER_LEGACY : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
CON_ID : 0
PL/SQL procedure successfully completed.
SYS@XXXXX1/ORCLX> @ ashtop event "machine='H3C-APM'" trunc(sysdate)-1 trunc(sysdate)
Total
Seconds AAS %This EVENT FIRST_SEEN LAST_SEEN
--------- ------- ------- ---------------------------------------- ------------------- -------------------
14566 .2 99% | 2021-11-10 00:03:24 2021-11-10 23:59:31
80 .0 1% | control file sequential read 2021-11-10 00:34:09 2021-11-10 23:44:19
30 .0 0% | Disk file Mirror Read 2021-11-10 00:58:31 2021-11-10 23:29:26
14 .0 0% | ASM file metadata operation 2021-11-10 00:39:09 2021-11-10 19:54:07
10 .0 0% | oracle thread bootstrap 2021-11-10 03:38:49 2021-11-10 23:38:47
9 .0 0% | KSV master wait 2021-11-10 00:28:49 2021-11-10 23:34:29
6 .0 0% | PGA memory operation 2021-11-10 03:53:29 2021-11-10 20:38:36
5 .0 0% | Sync ASM rebalance 2021-11-10 03:34:09 2021-11-10 20:23:28
4 .0 0% | PX Deq: Join ACK 2021-11-10 00:43:41 2021-11-10 05:28:51
4 .0 0% | db file sequential read 2021-11-10 03:33:47 2021-11-10 14:54:08
3 .0 0% | PX Deq: Slave Session Stats 2021-11-10 01:24:09 2021-11-10 06:14:30
3 .0 0% | PX Deq: reap credit 2021-11-10 01:59:32 2021-11-10 18:29:13
3 .0 0% | reliable message 2021-11-10 00:29:30 2021-11-10 16:09:07
1 .0 0% | CSS initialization 2021-11-10 20:54:20 2021-11-10 20:54:20
1 .0 0% | CSS operation: action 2021-11-10 19:54:20 2021-11-10 19:54:20
1 .0 0% | SQL*Net break/reset to client 2021-11-10 05:54:05 2021-11-10 05:54:05
1 .0 0% | enq: PS - contention 2021-11-10 19:14:21 2021-11-10 19:14:21
1 .0 0% | gc cr block 2-way 2021-11-10 13:03:46 2021-11-10 13:03:46
1 .0 0% | gc cr multi block request 2021-11-10 18:14:15 2021-11-10 18:14:15
1 .0 0% | gc current grant busy 2021-11-10 12:24:06 2021-11-10 12:24:06
20 rows selected.
--//查看1天时间14566/3600 = 4.05小时,一天时间消耗CPU 4个小时.对于许多服务器这点消耗不算什么。
SYS@XXXXX1/ORCLX> @ ashtop sql_id "machine='H3C-APM'" trunc(sysdate)-1 trunc(sysdate)
Total
Seconds AAS %This SQL_ID FIRST_SEEN LAST_SEEN
--------- ------- ------- ------------- ------------------- -------------------
2022 .0 14% | c3jafyjuwt13b 2021-11-10 00:03:25 2021-11-10 23:59:06
685 .0 5% | f454ryjfx6syf 2021-11-10 00:03:50 2021-11-10 23:59:31
527 .0 4% | 8fm0xfacp0b0g 2021-11-10 00:03:34 2021-11-10 23:59:14
508 .0 3% | f6d0fpgm1w2sw 2021-11-10 00:03:38 2021-11-10 23:58:36
500 .0 3% | 1g11ms1r6bnuj 2021-11-10 00:03:31 2021-11-10 23:59:10
494 .0 3% | 9w8scutvwbjaw 2021-11-10 00:03:43 2021-11-10 23:59:23
492 .0 3% | 7m6szm4t720j0 2021-11-10 00:03:39 2021-11-10 23:58:37
492 .0 3% | 8ss7js42xzp05 2021-11-10 00:03:37 2021-11-10 23:58:35
492 .0 3% | d946h5sr5gt69 2021-11-10 00:03:42 2021-11-10 23:59:22
490 .0 3% | 0tha0zcyf9maq 2021-11-10 00:03:35 2021-11-10 23:58:33
489 .0 3% | 30a5bma58q1w7 2021-11-10 00:03:49 2021-11-10 23:59:29
487 .0 3% | 18q3m92yk5zg5 2021-11-10 00:03:48 2021-11-10 23:59:28
485 .0 3% | czkw1ncpthxy4 2021-11-10 00:04:12 2021-11-10 23:59:09
484 .0 3% | 6sbq34x7ckff7 2021-11-10 00:04:14 2021-11-10 23:59:11
482 .0 3% | 5mwanf0c830mj 2021-11-10 00:03:41 2021-11-10 23:59:21
480 .0 3% | ck5qb9zs2n34g 2021-11-10 00:03:44 2021-11-10 23:59:24
479 .0 3% | 0zrwxj39q7u3w 2021-11-10 00:03:47 2021-11-10 23:59:27
479 .0 3% | fpamfm2pkznu1 2021-11-10 00:03:45 2021-11-10 23:59:25
478 .0 3% | 2v09t9vyy6zk6 2021-11-10 00:04:27 2021-11-10 23:59:26
476 .0 3% | az4ju0qgum193 2021-11-10 00:04:17 2021-11-10 23:59:15
475 .0 3% | b282h3vx1nh1j 2021-11-10 00:03:36 2021-11-10 23:54:15
474 .0 3% | 2sq2bmkwuz6at 2021-11-10 00:03:40 2021-11-10 23:59:20
472 .0 3% | 5ub6g7qwaf35x 2021-11-10 00:03:29 2021-11-10 23:59:08
230 .0 2% | 5t9zzqmqdyxbg 2021-11-10 00:03:30 2021-11-10 23:58:28
210 .0 1% | 9yfzqfdw2yhs4 2021-11-10 00:03:24 2021-11-10 23:59:03
208 .0 1% | cyfdvynj0mtc8 2021-11-10 00:03:33 2021-11-10 23:59:12
207 .0 1% | 27m1sf1nknfz2 2021-11-10 00:04:31 2021-11-10 23:44:30
84 .0 1% | 1j262t18zrpxt 2021-11-10 00:14:32 2021-11-10 22:53:52
75 .0 1% | ahatnp9sk1b5s 2021-11-10 00:03:46 2021-11-10 23:34:26
48 .0 0% | czd2z83tzauux 2021-11-10 00:23:31 2021-11-10 23:58:30
42 .0 0% | 68k7ckt95ttcf 2021-11-10 00:03:51 2021-11-10 23:34:31
39 .0 0% | dq6bzb5xdk3h7 2021-11-10 00:24:05 2021-11-10 23:34:04
37 .0 0% | 6uz4za48wf6j7 2021-11-10 00:53:39 2021-11-10 22:44:19
36 .0 0% | 22356bkgsdcnh 2021-11-10 00:04:10 2021-11-10 23:39:08
36 .0 0% | 7ksrtc8rzpawc 2021-11-10 00:14:30 2021-11-10 23:48:48
31 .0 0% | 2021-11-10 01:24:09 2021-11-10 23:03:48
30 .0 0% | 93jgxvdzsx4y1 2021-11-10 01:08:28 2021-11-10 23:59:07
25 .0 0% | gd1gbr2ypfxu5 2021-11-10 00:28:49 2021-11-10 23:34:29
24 .0 0% | 99v4t515j5j56 2021-11-10 02:23:51 2021-11-10 23:48:50
22 .0 0% | 21t4z1r0k4cyd 2021-11-10 00:38:23 2021-11-10 23:44:03
22 .0 0% | 9h4w5m54fq46f 2021-11-10 01:44:29 2021-11-10 23:24:27
22 .0 0% | d78ubma8q6xj2 2021-11-10 04:14:30 2021-11-10 23:23:47
21 .0 0% | 0gb620m9hwp4s 2021-11-10 00:39:23 2021-11-10 22:09:22
21 .0 0% | d0h6nu0uwfjtx 2021-11-10 01:13:36 2021-11-10 22:29:17
19 .0 0% | 3mubmnaquyqcj 2021-11-10 00:54:31 2021-11-10 22:28:49
19 .0 0% | 5r14h528vkacs 2021-11-10 00:34:09 2021-11-10 22:13:27
19 .0 0% | gzg2phr7fjs2j 2021-11-10 00:39:09 2021-11-10 20:23:28
16 .0 0% | 1yq9r01hhfrs2 2021-11-10 01:38:29 2021-11-10 22:44:08
16 .0 0% | c2ypbq9ac2qw5 2021-11-10 01:13:37 2021-11-10 23:59:18
15 .0 0% | 8vmu6k690g87k 2021-11-10 01:54:06 2021-11-10 23:03:23
50 rows selected.
--//看看c3jafyjuwt13b的语句的具体内容:
SELECT sess.serial# serial
,sess.audsid
,sess.osuser
,sess.terminal
,sess.process
,sess.logon_time
,sess.command
,stat.sid
,sess.status
,sess.machine
,sess.username
, (SYSDATE - sess.logon_time) * 86400 elapsed_time
,stat.cpu
,stat.memsorts
,stat.tablescans
,stat.phyreads
,stat.logreads
,stat.disksorts
,stat.blks_changed
,stat.chained_rows
,stat.commits
,stat.cursors
,ROUND
(
( 1
- ( stat.phyreads
/ ( DECODE (stat.logreads, 0, NULL, stat.logreads)
+ stat.phyreads)))
* 100
)
buffer_cache_hitrate
FROM ( SELECT st.sid
,SUM (DECODE (name, 'CPU used by this session', VALUE, 0)) cpu
,SUM (DECODE (name, 'sorts (disk)', VALUE, 0)) disksorts
,SUM (DECODE (name, 'sorts (memory)', VALUE, 0)) memsorts
,SUM (DECODE (SUBSTR (name, 0, 11), 'table scans', VALUE, 0))
tablescans
,SUM (DECODE (name, 'physical reads', VALUE, 0)) phyreads
,SUM (DECODE (name, 'session logical reads', VALUE, 0))
logreads
,SUM (DECODE (name, 'db block changes', VALUE, 0)) blks_changed
,SUM (DECODE (name, 'table fetch continued row', VALUE, 0))
chained_rows
,SUM (DECODE (name, 'user commits', VALUE, 0)) commits
,SUM (DECODE (name, 'opened cursors current', VALUE, 0))
cursors
FROM V$SESSTAT st, V$STATNAME sn
WHERE st.statistic# = sn.statistic#
GROUP BY st.sid) stat
,v$session sess
WHERE stat.sid = sess.sid
--//很明显这条语句的作用是实时收集用户的CPU,磁盘排序,表扫描,物理读,提交,打开光标等等数据信息。
--//在我看来一点用处都没有,如果一个用户执行完退出,你收集个毛,使用这东西就是忽悠人的破玩意,对于诊断一点意义都没有。
--//还不如设计一个按钮,让管理者许多时点击进入查看相关信息。
--//f454ryjfx6syf
SELECT EVENT
,WAITS
,TIME
,DECODE
(
WAITS
,NULL, TO_NUMBER (NULL)
,0, TO_NUMBER (NULL)
,TIME / WAITS * 1000
)
AVGWT
,PCTWTT
,WAIT_CLASS
FROM ( SELECT EVENT
,WAITS
,TIME
,PCTWTT
,WAIT_CLASS
FROM (SELECT A.EVENT_NAME EVENT
,A.TOTAL_WAITS - NVL (A.TOTAL_WAITS_LAG, 0) WAITS
, ( A.TIME_WAITED_MICRO
- NVL (A.TIME_WAITED_MICRO_LAG, 0))
/ 1000000
TIME
, 100
* ( A.TIME_WAITED_MICRO
- NVL (A.TIME_WAITED_MICRO_LAG, 0))
/ B.dbtime
PCTWTT
,A.WAIT_CLASS WAIT_CLASS
FROM (SELECT SNAP_ID
,DBID
,INSTANCE_NUMBER
,EVENT_NAME
,TOTAL_WAITS
,LAG (TOTAL_WAITS, 1, NULL)
OVER (PARTITION BY EVENT_ID ORDER BY SNAP_ID)
TOTAL_WAITS_LAG
,TIME_WAITED_MICRO
,LAG (TIME_WAITED_MICRO, 1, NULL)
OVER (PARTITION BY EVENT_ID ORDER BY SNAP_ID)
TIME_WAITED_MICRO_LAG
,WAIT_CLASS
FROM DBA_HIST_SYSTEM_EVENT
WHERE INSTANCE_NUMBER IN (SELECT instance_number
FROM v$INSTANCE)
AND DBID IN (SELECT DBID
FROM v$database)
AND WAIT_CLASS != 'Idle') A
, (SELECT SNAP_ID
,DBID
,INSTANCE_NUMBER
,STAT_NAME
,dbtime
FROM ( SELECT SNAP_ID
,DBID
,INSTANCE_NUMBER
,STAT_NAME
, VALUE
- LAG
(
VALUE
,1
,NULL
)
OVER
(
PARTITION BY STAT_NAME
ORDER BY SNAP_ID
)
dbtime
FROM DBA_HIST_SYS_TIME_MODEL
WHERE INSTANCE_NUMBER IN (SELECT instance_number
FROM v$INSTANCE)
AND DBID IN (SELECT DBID
FROM v$database)
AND STAT_NAME = 'DB time'
ORDER BY SNAP_ID DESC)
WHERE ROWNUM = 1) B
WHERE A.SNAP_ID = B.SNAP_ID
AND A.DBID = B.DBID
AND A.INSTANCE_NUMBER = B.INSTANCE_NUMBER
AND A.TOTAL_WAITS > NVL (A.TOTAL_WAITS_LAG, 0)
UNION ALL
SELECT 'CPU time' EVENT
,TO_NUMBER (NULL) WAITS
,dbcpu / 1000000 TIME
,100 * dbcpu / dbtime PCTWTT
,NULL WAIT_CLASS
FROM (SELECT SUM
(
CASE STAT_NAME
WHEN 'DB CPU' THEN VALUE
ELSE NULL
END
)
dbcpu
,SUM
(
CASE STAT_NAME
WHEN 'DB time' THEN VALUE
ELSE NULL
END
)
dbtime
FROM (SELECT SNAP_ID
,DBID
,INSTANCE_NUMBER
,stat_name
, VALUE
- LAG
(
VALUE
,1
,NULL
)
OVER
(
PARTITION BY STAT_NAME
ORDER BY SNAP_ID
)
VALUE
,RANK ()
OVER
(
PARTITION BY STAT_NAME
ORDER BY SNAP_ID DESC
)
RANK
FROM DBA_HIST_SYS_TIME_MODEL
WHERE INSTANCE_NUMBER IN (SELECT instance_number
FROM v$INSTANCE)
AND DBID IN (SELECT DBID
FROM v$database)
AND STAT_NAME IN ('DB CPU', 'DB time'))
WHERE RANK = 1)
WHERE dbcpu > 0)
ORDER BY TIME DESC, WAITS DESC)
WHERE ROWNUM <= 10;
--//这个脚本用来收集最后1次awr的排名前10的等待事件。这个结果对于1个小时内生成awr报表的情况结果不会变的。
--//看看awr报表:
SQL ordered by Elapsed Time
Resources reported for PL/SQL code includes the resources used by all SQL statements called by the code.
% Total DB Time is the Elapsed Time of the SQL statement divided into the Total Database Time multiplied by 100
%Total - Elapsed Time as a percentage of Total DB time
%CPU - CPU Time as a percentage of Elapsed Time
%IO - User I/O Time as a percentage of Elapsed Time
Captured SQL account for 36.3% of Total DB Time (s): 1,731
Captured PL/SQL account for 0.0% of Total DB Time (s): 1,731
Elapsed Time (s) Executions Elapsed Time per Exec (s) %Total %CPU %IO SQL Id SQL Module SQL Text
.....
41.81 12 3.48 2.41 99.84 0.00 c3jafyjuwt13b JDBC Thin Client SELECT sess.serial# serial, se...
.....
14.07 12 1.17 0.81 99.53 0.10 f454ryjfx6syf JDBC Thin Client SELECT EVENT, WAITS, TIME, DEC...
11.35 12 0.95 0.66 99.61 0.07 8fm0xfacp0b0g JDBC Thin Client SELECT ROUND(( D.value * A.blo...
....
--//很明显5分钟做一次采集,问题在于你收集这些意义很在,对于诊断问题有多少帮助,就是一个无用垃圾的监控软件。
--//我把里面的执行sql语句看个遍,几乎对于诊断一点用处都没有,我给华为一个建议,你不如自己机器建立一个数据库,把这些
--//DBA_HIST_SYS_TIME_MODEL 之类的信息保存下来,然后自己读取这些表就ok了。
--//或者学习toad 软件里面做一个点点就能生成awr报表的界面来的更实际一些。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2841763/ ,如需转载,请注明出处,否则将追究法律责任。