Daily Monotoring DBA

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 6

=============== ASM Volume Utilization Report ==========================

SELECT
name group_name
, sector_size sector_size
, block_size block_size
, allocation_unit_size allocation_unit_size
, state state
, type type
, total_mb total_mb
, (total_mb - free_mb) used_mb
, ROUND((1- (free_mb / total_mb))*100, 2) pct_used
FROM
v$asm_diskgroup
ORDER BY
name

=============== Query used for Table Space Utilization Report


==========================

SELECT d.tablespace_name "Tablespace",


ROUND(d.usedsz/1024/1024,0) "Size MB",
ROUND(d.maxsz/1024/1024,0) "Max Size MB",
ROUND((d.usedsz-NVL(f.freesz,0))/1024/1024,0) "Used MB",
ROUND(100*(d.usedsz-NVL(f.freesz,0))/d.maxsz,2) "Used %"
FROM (SELECT tablespace_name,
SUM(DECODE(maxbytes,0,bytes,maxbytes)) maxsz,
SUM(bytes) usedsz
FROM dba_data_files
GROUP BY tablespace_name) d,
(SELECT tablespace_name,
SUM(bytes) freesz
FROM dba_free_space
GROUP BY tablespace_name) f
WHERE d.tablespace_name = f.tablespace_name (+)
UNION ALL
SELECT d.tablespace_name "Tablespace",
ROUND(d.usedsz/1024/1024,0) "Size MB",
ROUND(d.maxsz/1024/1024,0) "Max Size MB",
ROUND((d.usedsz-NVL(f.freesz,0))/1024/1024,0) "Used MB",
ROUND(100*(d.usedsz-NVL(f.freesz,0))/d.maxsz,2) "Used %"
FROM (SELECT tablespace_name,
SUM(DECODE(maxbytes,0,bytes,maxbytes)) maxsz,
SUM(bytes) usedsz
FROM dba_temp_files
GROUP BY tablespace_name) d,
(SELECT tablespace_name,
SUM(bytes) freesz
FROM dba_free_space
GROUP BY tablespace_name) f
WHERE d.tablespace_name = f.tablespace_name (+) order by 5 desc
************************* query to check tablespace size and
freespace*********************

col "Tablespace" for a22


col "Used MB" for 99,999,999
col "Free MB" for 99,999,999
col "Total MB" for 99,999,999

select df.tablespace_name "Tablespace",


totalusedspace "Used MB",
(df.totalspace - tu.totalusedspace) "Free MB",
df.totalspace "Total MB",
round(100 * ( (df.totalspace - tu.totalusedspace)/ df.totalspace))
"Pct. Free"
from
(select tablespace_name,
round(sum(bytes) / 1048576) TotalSpace
from dba_data_files
group by tablespace_name) df,
(select round(sum(bytes)/(1024*1024)) totalusedspace, tablespace_name
from dba_segments
group by tablespace_name) tu
where df.tablespace_name = tu.tablespace_name ;

or

select
tablespace_name,
used_percent
from
dba_tablespace_usage_metrics
where
used_percent > 10;

=============== Query used for Archive Log Report ==========================

select trunc(next_time)
archive_date,sum(round((blocks*block_size)/(1024*1024*1024),3)) ARCH_GB
from v$archived_log a
where registrar='ARCH'
AND NEXT_time > sysdate-14
and deleted='NO'
group by trunc(next_time)
order by 1 desc

=============== Query used for The below objects have max number of changes in
them during the high archive generation period.==========================

SELECT to_char(begin_interval_time,'YYYY_MM_DD HH24:MI') snap_time,


dhsso.object_name,
sum(db_block_changes_delta) as maxchages
FROM dba_hist_seg_stat dhss,
dba_hist_seg_stat_obj dhsso,
dba_hist_snapshot dhs
WHERE dhs.snap_id = dhss.snap_id
AND dhs.instance_number = dhss.instance_number
AND dhss.obj# = dhsso.obj#
AND dhss.dataobj# = dhsso.dataobj#
AND begin_interval_time BETWEEN to_date('2019_01_11 17','YYYY_MM_DD HH24')
AND to_date('2019_01_16 21','YYYY_MM_DD
HH24')
GROUP BY to_char(begin_interval_time,'YYYY_MM_DD HH24:MI'),
dhsso.object_name order by maxchages asc;

=============== Query used for DR Sequence Gap Report ==========================

SELECT (CASE
WHEN A.DATABASE_MODE = 'MOUNTED-STANDBY' and A.DEST_ID = 2 THEN
'DG BROKER STANDBY'
WHEN A.DATABASE_MODE = 'OPEN' and A.DEST_ID = 2 THEN
'SNAPSHOT STANDBY DB'
WHEN A.DATABASE_MODE = 'MOUNTED-STANDBY' and A.DEST_ID = 3 THEN
'PHYSICAL NJ STANDBY'
WHEN A.DATABASE_MODE = 'OPEN' and A.DEST_ID = 3 THEN
'SNAPSHOT STANDBY DB'
WHEN A.DATABASE_MODE = 'MOUNTED-STANDBY' and A.DEST_ID = 4 THEN
'PHYSICAL STANDBY DB'
WHEN A.DATABASE_MODE =
'OPEN' and A.DEST_ID = 4 THEN
'SNAPSHOT STANDBY DB'
ELSE
'STANDBY DB*'
END ) STANDBY_DB,
A.THREAD#,
A.MAX_ARCHIVED,
B.MAX_APPLIED,
(A.MAX_ARCHIVED - B.MAX_APPLIED) AS SEQUENCE_GAP
FROM (SELECT Y.DATABASE_MODE DATABASE_MODE,
X.DEST_ID DEST_ID,
X.THREAD# THREAD#,
MAX(X.SEQUENCE#) AS MAX_ARCHIVED
FROM GV$ARCHIVED_LOG X, GV$ARCHIVE_DEST_STATUS Y
WHERE ARCHIVED = 'YES'
AND X.RESETLOGS_TIME =
(SELECT MAX(RESETLOGS_TIME) FROM GV$ARCHIVED_LOG)
AND X.DEST_ID = Y.DEST_ID
GROUP BY Y.DATABASE_MODE, X.DEST_ID, X.THREAD#) A,
(SELECT M.DEST_ID, M.THREAD#, MAX(M.SEQUENCE#) AS MAX_APPLIED
FROM GV$ARCHIVED_LOG M
WHERE APPLIED = 'YES'
AND M.RESETLOGS_TIME =
(SELECT MAX(RESETLOGS_TIME) FROM GV$ARCHIVED_LOG)
GROUP BY M.DEST_ID, M.THREAD#) B
WHERE A.THREAD# = B.THREAD#
AND A.DEST_ID = B.DEST_ID
AND A.DEST_ID != 1
ORDER BY 1, 2

***********************get status of the non-traditional DR


database*****************************
-- as prereques - tnsnames entry should exist on primary side
(v3prod_dr) pointing to dr instance

-- script will return value only if standby is less than 15 days behind primary

select thread#||' Last Seq: '||max(sequence#) Production from gv$archived_log where


first_time>sysdate-15 group by thread#||' Last Seq: ' order by 1;

=============== Query used for RMAN Backup Report ==========================

select SESSION_KEY,
INPUT_TYPE,
STATUS,
to_char(START_TIME,'mm/dd/yy hh24:mi') start_time,
to_char(END_TIME,'mm/dd/yy hh24:mi') end_time,
elapsed_seconds/3600 hrs,
round(output_bytes/(1024*1024*1024),2) Backup_Size_GB
from V$RMAN_BACKUP_JOB_DETAILS
order by session_key desc

=============== Query used for Long Running Queries Report


==========================

SELECT *
FROM ( SELECT a.module,
to_char(SUBSTR(b.SQL_TEXT,1,500) ) SQL_TEXT,
a.SQL_ID,
ROUND (SUM (a.CPU_TIME_DELTA) / 1000000) "CPU_TIME(S)",
ROUND (SUM (a.ELAPSED_TIME_DELTA) / 1000000)
"ELAPSED_TIME(S)",
ROUND (SUM (a.EXECUTIONS_DELTA)) "NUM_OF_EXEC",
ROUND ((SUM (a.ELAPSED_TIME_DELTA) / 1000000) / (SUM
(a.EXECUTIONS_DELTA)),3) "per_execution",
SUM (a.ROWS_PROCESSED_DELTA) "NUM_OF_ROW",
ROUND(SUM (a.DISK_READS_DELTA) / 1024 / 1024,2)
"DISK_READ(MB)",
ROUND(SUM (a.BUFFER_GETS_DELTA) / 1024 / 1024,2)
"BUFFER_READ(MB)"
FROM dba_hist_sqlstat a , DBA_HIST_SQLTEXT b
WHERE (a.snap_id BETWEEN (SELECT MIN (snap_id)
FROM dba_hist_snapshot
WHERE TRUNC (begin_interval_time) =
TRUNC (SYSDATE - 1))
AND (SELECT MAX (snap_id)
FROM dba_hist_snapshot
WHERE TRUNC (begin_interval_time) =
TRUNC (SYSDATE)))
AND NVL(a.EXECUTIONS_DELTA,0) > 0
AND a.sql_id=b.sql_id
GROUP BY a.module,to_char(SUBSTR(b.SQL_TEXT,1,500) ), a.SQL_ID
ORDER BY 7 DESC)
WHERE ROWNUM < 21
=============== Query used for Alert Log Report ==========================

SELECT HOST_ID, PROBLEM_KEY, ORIGINATING_TIMESTAMP, MESSAGE_TEXT


FROM X$DBGALERTEXT
WHERE ORIGINATING_TIMESTAMP > SYSDATE - 7
AND MESSAGE_TEXT LIKE '%ORA-%'
ORDER BY 3 DESC

=============== Query used for Debug Mode Objects Report


==========================

SELECT owner, name, type


FROM dba_plsql_object_settings pos
WHERE pos.plsql_debug = 'TRUE'
AND owner IN (SELECT schema_name FROM dbo.v3_schema)
ORDER BY 1

=============== Query used for Db Account Status Report


==========================

select username,
account_status,
TRUNC(LOCK_DATE) LOCK_DATE,
TRUNC(expiry_date) EXPIRY_DATE,
profile
from dba_users
order by expiry_date DESC, account_status

=============== Query used for Bendev Password Expiry Date Report


==========================

select username,
account_status,
TRUNC(LOCK_DATE) LOCK_DATE,
TRUNC(expiry_date) EXPIRY_DATE,
profile
from dba_users
where username = 'BENDEV'

select username,
account_status,
TRUNC(LOCK_DATE) LOCK_DATE,
TRUNC(expiry_date) EXPIRY_DATE,
profile
from dba_users
where username = 'UFCWTFO'

=============== Query used for Audit Report for 12c database


==========================
SELECT upper(OS_USERNAME) OS_USERNAME,
DBUSERNAME,
ACTION_NAME,
USERHOST,
CLIENT_PROGRAM_NAME,
OBJECT_SCHEMA,
OBJECT_NAME,
EVENT_TIMESTAMP,
to_char(SUBSTR(SQL_TEXT, 1, 500)) SQL_TEXT
FROM DBO.UNIFIED_AUDIT_TRAIL_TEMP
where EVENT_TIMESTAMP > current_date - 7
and DBUSERNAME not like 'DBSNMP'
and (DBUSERNAME, ACTION_NAME, USERHOST) not in
(select DBUSERNAME, ACTION_NAME, USERHOST
from DBO.UNIFIED_AUDIT_TRAIL_TEMP
where DBUSERNAME = 'SYS'
and ACTION_NAME in ('LOGON','LOGOFF') and USERHOST like '%BRIDGE-PROD-
DB01%') order by EVENT_TIMESTAMP desc

=============== Query used for Audit Report for 11g


database==========================

SELECT OS_USERNAME,
USERNAME,
ACTION_NAME,
USERHOST,
OBJ_NAME,
TIMESTAMP,
to_char(SUBSTR(SQL_TEXT, 1, 500)) SQL_TEXT
FROM DBA_AUDIT_TRAIL
where TIMESTAMP > current_date - 7
and USERNAME not like 'DBSNMP'
order by Timestamp desc

You might also like