我正在使用 Oracle Cloud Manager 13c。 我有很多数据库,但我只想跟踪五六个重要数据库的 CPU 负载。
我看到了性能中心,当我单击目标数据库时,我可以在其中看到负载和性能,在其中我们可以看到 CPU 负载与活动会话的图表。
由于我需要单击每个数据库才能获取该输出,我想知道是否可以进行某种导出(例如单独的活动 html 页面)以将所有数据库放在一个地方(例如摘要)?
提前致谢。
您可以假脱机到 *.csv CPU 使用率指标,然后根据需要在 html 页面中可视化数据。
oracle sqlplus 1020.sql 的 SQL 查询示例:
set pagesize 10000
set head on
SET COLSEP ','
set UNDERLINE off
set linesize 10000
set trimout on
set echo off
set verify off
set feedback off
set timing off
set markup html OFF
SET TERMOUT OFF
alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';
spool 1020.csv
select * from (
select to_char(end_time,'YYYY/MM/DD HH24:MI:SS') as snap_end_time,
--round(max(case metric_name when 'Physical Read Total Bytes Per Sec' then round(maxval/1024/1024,3) end),3) Phys_Read_Tot_MBps,
--round(max(case metric_name when 'Physical Write Total Bytes Per Sec' then round(maxval/1024/1024,3) end),3) Phys_Write_Tot_MBps,
--round(max(case metric_name when 'Redo Generated Per Sec' then round(maxval/1024/1024,3) end),3) Redo_MBytes_per_sec,
--round(max(case metric_name when 'Physical Read Total IO Requests Per Sec' then round(maxval) end),3) Phys_Read_IOPS,
--round(max(case metric_name when 'Physical Write Total IO Requests Per Sec' then round(maxval) end),3) Phys_write_IOPS,
--round(max(case metric_name when 'Redo Writes Per Sec' then round(maxval) end),3) Phys_redo_IOPS,
--round(max(case metric_name when 'CPU Usage Per Sec' then round(maxval) end),3) DB_CPU_Usage_per_sec,
--(select max(value) from dba_hist_osstat os where os.instance_number=s.instance_number and os.snap_id=s.snap_id and s.dbid=os.dbid and os.stat_name like '%CPU%S%') as CPU_count,
--round(max(case metric_name when 'CPU Usage Per Sec' then round(1*(select max(value) from dba_hist_osstat os where os.instance_number=s.instance_number and os.snap_id=s.snap_id and s.dbid=os.dbid and os.stat_name like '%CPU%S%')) end),3) cpu_count,
--round(max(case metric_name when 'CPU Usage Per Sec' then round(average/(select max(value) from dba_hist_osstat os where os.instance_number=s.instance_number and os.snap_id=s.snap_id and s.dbid=os.dbid and os.stat_name like '%CPU%S%')) end),3) DB_CPU_Usage_percent_this_inst_AVG,
--round(max(case metric_name when 'CPU Usage Per Sec' then round(maxval/(select max(value) from dba_hist_osstat os where os.instance_number=s.instance_number and os.snap_id=s.snap_id and s.dbid=os.dbid and os.stat_name like '%CPU%S%')) end),3) DB_CPU_Usage_percent_this_inst_MAX,
--round(max(case metric_name when 'CPU Usage Per Sec' then round(maxval/(select value from v$parameter where name='cpu_count')) end),3) DB_CPU_Usage_percent_this_inst_MAX,
round(max(case metric_name when 'Host CPU Utilization (%)' then maxval end),3) Host_CPU_util_MAX, --NOTE 100% = 1 loaded RAC node
round(max(case metric_name when 'Host CPU Utilization (%)' then average end),3) Host_CPU_util_AVG --NOTE 100% = 1 loaded RAC node
--round(max(case metric_name when 'Current OS Load' then average end),3) OS_LOad_avg,
--round(max(case metric_name when 'Current OS Load' then maxval end),3) OS_LOad_max,
--round(round(max(case metric_name when 'CPU Usage Per Sec' then round(average/(select value from v$parameter where name='cpu_count')) end),3)/round(max(case metric_name when 'Host CPU Utilization (%)' then average end),3)*100,3) as impact_on_cpu_perc_AVG,
--round(round(max(case metric_name when 'CPU Usage Per Sec' then round(maxval/(select value from v$parameter where name='cpu_count')) end),3)/round(max(case metric_name when 'Host CPU Utilization (%)' then maxval end),3)*100,3) as impact_on_cpu_perc_MAX,
--round(max(case metric_name when 'Network Traffic Volume Per Sec' then round(average/1024/1024,3) end),3) Network_Mbytes_per_sec_AVG,
--round(max(case metric_name when 'Network Traffic Volume Per Sec' then round(maxval/1024/1024,3) end),3) Network_Mbytes_per_sec_MAX,
--round(max(case metric_name when 'User Transaction Per Sec' then round(average,2) end),3) Transactions_per_sec_AVG,
--round(max(case metric_name when 'User Transaction Per Sec' then round(maxval,2) end),3) Transactions_per_sec_MAX
from dba_hist_sysmetric_summary s
where 1=1
--and dbid='&DBID_PAR'
--and os.instance_number=s.instance_number
--and os.snap_id=s.snap_id
--and snap_id>=&MY_VAR_MIN_SNAP_ID
--and snap_id<=&MY_VAR_MAX_SNAP_ID
--and s.instance_number='&var_inst_id'
group by to_char(end_time,'YYYY/MM/DD HH24:MI:SS')
order by 1 desc
)
--where rownum < &GRAPH_LINES_LIMIT
;
spool off