I already included a number of queries against the OEM repository in my presentation.
Now, I would like to add two more.
The first query shows an approximation of the average and max CPU utilization for a group of servers (names starting with “dev”).
Since the query assumed that each server has the same “weight”, the results are not completely correct for most environments.
They are a good start for a consolidation and/or virtualization projects though.
select
a.rollup_timestamp time,
count(*) number_of_servers,
sum(a.average)/count(*) average_load ,
sum(a.maximum)/count(*) max_recorded,
sum(a.average+3*a.standard_deviation)/count(*) max_derived
from
mgmt$metric_hourly a ,
mgmt$target b
where
a.metric_name = 'Load'
and a.column_label = 'CPU Utilization (%)'
and a.target_guid = b.target_guid
and b.target_name like 'dev%'
group by a.rollup_timestamp
order by max_derived desc
The second query shows all databases that belong to the TEST OEM group and are in ARCHIVELOG mode. The query can be modified to look at all databases or to any subset.
select
*
from
sysman.MGMT$GROUP_DERIVED_MEMBERSHIPS O ,
sysman.MGMT$TARGET T ,
sysman.MGMT$AVAILABILITY_CURRENT st
where
o.composite_target_name = 'TEST'
and o.member_target_type IN ('oracle_database', 'rac_database')
and ( t.target_type ='rac_database'
or (t.target_type ='oracle_database'
and t.type_qualifier3 != 'RACINST'))
and o. member_target_guid = t.target_guid
and t.target_guid = st.target_guid
and st.availability_status = 'Target Up'
and (not exists
(select
*
from
sysman.mgmt$metric_current i
where
i.target_guid = o.member_target_guid
and metric_name = 'archFull'
and metric_Column = 'archTotal'
and metric_label = 'Archive Area'
and column_label = 'Total Archive Area (KB)'
and key_value = 'NOARCHIVELOG'
));
This query is not strictly based on the documentation, but it work in OEM 12c.
