delete Daily
This commit is contained in:
@@ -1,9 +0,0 @@
|
||||
DATETIME=`date +%Y%m%d%H%M`
|
||||
|
||||
for r in $(ps -eaf | grep pmon | egrep -v 'grep|ASM1|APX1' | cut -d '_' -f3)
|
||||
do
|
||||
export ORAENV_ASK=NO
|
||||
export ORACLE_SID=$r
|
||||
. oraenv -s > /dev/null
|
||||
sqlplus -s "/ as sysdba" @DailyCheck_html.sql > DailyCheck_${ORACLE_SID}_${DATETIME}.html
|
||||
done
|
||||
@@ -1,293 +0,0 @@
|
||||
set echo off
|
||||
set feedback off
|
||||
-- set serveroutput off
|
||||
-- set termout off
|
||||
-- set pagesize 1000
|
||||
-- set markup html on
|
||||
|
||||
|
||||
SET MARKUP HTML ON SPOOL ON PREFORMAT OFF ENTMAP OFF -
|
||||
HEAD "<TITLE>Database Report</TITLE> -
|
||||
<STYLE type='text/css'> -
|
||||
</STYLE>" -
|
||||
BODY "TEXT='#FF00Ff'" -
|
||||
TABLE "WIDTH='90%' BORDER='1'"
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Current DATE</h2>
|
||||
-- ---------------------------------------------------
|
||||
set head off
|
||||
select to_char(sysdate,'DD/MM/YYYY HH24:MI:SS') "Current Date" from dual;
|
||||
set head on
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Database Size</h2>
|
||||
-- ---------------------------------------------------
|
||||
set head off
|
||||
col TOTAL_SIZE_GB format 99,999.99
|
||||
SELECT ROUND(SUM(TAILLE_BYTES)/1024/1024/1024,2) TOTAL_SIZE_GB FROM
|
||||
(
|
||||
SELECT SUM(FILE_SIZE_BLKS*BLOCK_SIZE) TAILLE_BYTES FROM V$CONTROLFILE
|
||||
UNION ALL
|
||||
SELECT SUM(BYTES) FROM V$TEMPFILE
|
||||
UNION ALL
|
||||
SELECT SUM(BYTES) FROM V$DATAFILE
|
||||
UNION ALL
|
||||
SELECT SUM(MEMBERS*BYTES) FROM V$LOG
|
||||
UNION ALL
|
||||
SELECT BYTES FROM V$STANDBY_LOG SL, V$LOGFILE LF WHERE SL.GROUP# = LF.GROUP#
|
||||
);
|
||||
set head on
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>INSTANCE STATUS</h2>
|
||||
-- ---------------------------------------------------
|
||||
select inst_id,
|
||||
instance_name,
|
||||
status,
|
||||
VERSION_FULL,
|
||||
EDITION,
|
||||
ARCHIVER,
|
||||
INSTANCE_ROLE,
|
||||
database_status,
|
||||
active_state,
|
||||
to_char(startup_time,'DD/MM/YYYY HH24:MI:SS') startup_time
|
||||
FROM gv$instance;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Database Status </h2>
|
||||
-- ---------------------------------------------------
|
||||
SELECT inst_id, name, to_char(CREATED ,'DD/MM/YYYY') CREATED , open_mode, DATABASE_ROLE, log_mode, FORCE_LOGGING, CURRENT_SCN FROM gv$database;
|
||||
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Database non default parameters</h2>
|
||||
-- ---------------------------------------------------
|
||||
set pages 999 lines 150
|
||||
col name for a50
|
||||
col value for a90
|
||||
col display_value for a90
|
||||
select NAME, DISPLAY_VALUE from v$parameter where ISDEFAULT='FALSE' order by name;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Users</h2>
|
||||
-- ---------------------------------------------------
|
||||
set pages 999 lines 150
|
||||
ALTER SESSION SET NLS_DATE_FORMAT ='YYYY/MM/DD HH24:MI';
|
||||
col USERNAME for a25
|
||||
col DEF_TBS for a15
|
||||
col TMP_TBS for a10
|
||||
col PROFILE for a10
|
||||
col ACCOUNT_STATUS for a20
|
||||
select USERNAME, ACCOUNT_STATUS, PROFILE, DEFAULT_TABLESPACE DEF_TBS, TEMPORARY_TABLESPACE TMP_TBS, CREATED, PASSWORD_VERSIONS from dba_users order by created;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>NLS Database parameters</h2>
|
||||
-- ---------------------------------------------------
|
||||
col parameter for a30
|
||||
col value for a30
|
||||
select * from nls_database_parameters ;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Fast Rrecovery Area</h2>
|
||||
-- ---------------------------------------------------
|
||||
SELECT VALUE/1024/1024 TAILLE_FRA_MiB, ROUND((VALUE*TOT_PCT/100)/1024/1024,0) ESPACE_UTILISE_MiB,
|
||||
TOT_PCT POURCENTAGE_UTILISE
|
||||
FROM
|
||||
V$PARAMETER P,
|
||||
(SELECT SUM(PERCENT_SPACE_USED) TOT_PCT FROM V$FLASH_RECOVERY_AREA_USAGE) PCT_U
|
||||
WHERE NAME='db_recovery_file_dest_size';
|
||||
prompt
|
||||
SELECT * FROM V$FLASH_RECOVERY_AREA_USAGE;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Invalid objects</h2>
|
||||
-- ---------------------------------------------------
|
||||
select owner,OBJECT_NAME, status FROM dba_objects WHERE status <> 'VALID';
|
||||
prompt
|
||||
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Tablespace Details</h2>
|
||||
-- ---------------------------------------------------
|
||||
|
||||
COL TABLESPACE_NAME FORMAT A20 HEAD "Nom espace|disque logique"
|
||||
COL PCT_OCCUPATION_THEORIQUE FORMAT 990.00 HEAD "%occ|Theo"
|
||||
COL TAILLE_MIB FORMAT 99999990.00 HEAD "Taille|MiB"
|
||||
COL TAILLE_MAX_MIB FORMAT 99999990.00 HEAD "Taille max|MiB"
|
||||
COL TAILLE_OCCUPEE_MIB FORMAT 99999990.00 HEAD "Espace occupé|MiB"
|
||||
WITH TS_FREE_SPACE AS
|
||||
(select tablespace_name, file_id, sum(bytes) FREE_O from dba_free_space group by tablespace_name, file_id
|
||||
), TEMP_ALLOC AS
|
||||
(select tablespace_name, file_id, sum(bytes) USED_O from v$temp_extent_map group by tablespace_name, file_id
|
||||
)
|
||||
SELECT
|
||||
TABLESPACE_NAME,
|
||||
SUM(TAILLE_MIB) TAILLE_MIB,
|
||||
SUM(TAILLE_MAX_MIB) TAILLE_MAX_MIB,
|
||||
SUM(TAILLE_OCCUPEE_MIB) TAILLE_OCCUPEE_MIB,
|
||||
ROUND(SUM(TAILLE_OCCUPEE_MIB)*100/SUM(GREATEST(TAILLE_MAX_MIB,TAILLE_MIB)),2) PCT_OCCUPATION_THEORIQUE
|
||||
FROM
|
||||
(
|
||||
SELECT D.FILE_NAME, D.TABLESPACE_NAME, D.BYTES/1024/1024 TAILLE_MIB, DECODE(D.AUTOEXTENSIBLE,'NO',D.BYTES,D.MAXBYTES)/1024/1024 TAILLE_MAX_MIB,
|
||||
(D.BYTES-FO.FREE_O)/1024/1024 TAILLE_OCCUPEE_MIB
|
||||
FROM
|
||||
DBA_DATA_FILES D, TS_FREE_SPACE FO
|
||||
WHERE
|
||||
D.TABLESPACE_NAME=FO.TABLESPACE_NAME
|
||||
AND D.FILE_ID=FO.FILE_ID
|
||||
UNION ALL
|
||||
SELECT T.FILE_NAME, T.TABLESPACE_NAME, T.BYTES/1024/1024 TAILLE_MIB, DECODE(T.AUTOEXTENSIBLE,'NO',T.BYTES,T.MAXBYTES)/1024/1024 TAILLE_MAX_MIB,
|
||||
(TA.USED_O)/1024/1024 TAILLE_OCCUPEE_MIB
|
||||
FROM
|
||||
DBA_TEMP_FILES T, TEMP_ALLOC TA
|
||||
WHERE
|
||||
T.TABLESPACE_NAME=TA.TABLESPACE_NAME
|
||||
AND T.FILE_ID=TA.FILE_ID
|
||||
)
|
||||
GROUP BY TABLESPACE_NAME
|
||||
ORDER BY TABLESPACE_NAME;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>TEMP Tablespace</h2>
|
||||
-- ---------------------------------------------------
|
||||
SELECT A.tablespace_name tablespace, D.mb_total,SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_used,
|
||||
D.mb_total - SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_free
|
||||
FROM v$sort_segment A,
|
||||
(
|
||||
SELECT B.name, C.block_size, SUM (C.bytes) / 1024 / 1024 mb_total
|
||||
FROM v$tablespace B, v$tempfile C
|
||||
WHERE B.ts#= C.ts# GROUP BY B.name, C.block_size
|
||||
) D
|
||||
WHERE A.tablespace_name = D.name GROUP by A.tablespace_name, D.mb_total;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Last RMAN backup status</h2>
|
||||
-- ---------------------------------------------------
|
||||
alter session set nls_date_format='DD/MM/YYYY HH24:MI:SS' ;
|
||||
set linesize 250 heading off;
|
||||
set heading on pagesize 999;
|
||||
column status format a25;
|
||||
column input_bytes_display format a12;
|
||||
column output_bytes_display format a12;
|
||||
column device_type format a10;
|
||||
|
||||
select
|
||||
b.input_type,
|
||||
b.status,
|
||||
to_char(b.start_time,'DD-MM-YYYY HH24:MI') "Start Time",
|
||||
to_char(b.end_time,'DD-MM-YYYY HH24:MI') "End Time",
|
||||
b.output_device_type device_type,
|
||||
b.input_bytes_display,
|
||||
b.output_bytes_display
|
||||
FROM v$rman_backup_job_details b
|
||||
WHERE b.start_time > (SYSDATE - 30)
|
||||
ORDER BY b.start_time asc;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Last Alert Log Error</h2>
|
||||
-- ---------------------------------------------------
|
||||
set pages 999 lines 150
|
||||
select to_char(ORIGINATING_TIMESTAMP, 'DD-MM-YYYY HH-MM-SS') || ' : ' || message_text "Last alertlog (30 days)"
|
||||
FROM X$DBGALERTEXT
|
||||
WHERE originating_timestamp > systimestamp - 30 AND regexp_like(message_text, '(ORA-)');
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Current sequence no in</h2>
|
||||
-- ---------------------------------------------------
|
||||
|
||||
COL MEMBER FORMAT A90 WRAPPED
|
||||
BREAK ON GROUP# SKIP 1 ON THREAD# ON SEQUENCE# ON TAILLE_MIB ON "STATUS(ARCHIVED)"
|
||||
SELECT 'OnlineLog' T, G.GROUP#, G.THREAD#, G.SEQUENCE#, G.BYTES/1024/1024 TAILLE_MIB, G.STATUS||'('||G.ARCHIVED||')' "STATUS(ARCHIVED)", F.MEMBER
|
||||
FROM V$LOG G, V$LOGFILE F
|
||||
WHERE G.GROUP#=F.GROUP#
|
||||
UNION ALL
|
||||
SELECT 'StandbyLog',G.GROUP#, G.THREAD#, G.SEQUENCE#, G.BYTES/1024/1024 TAILLE_MIB, G.STATUS||'('||G.ARCHIVED||')' "STATUS(ARCHIVED)", F.MEMBER
|
||||
FROM V$STANDBY_LOG G, V$LOGFILE F
|
||||
WHERE G.GROUP#=F.GROUP#
|
||||
ORDER BY 1,3,4,2;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Archive generated for the past 30 days</h2>
|
||||
-- ---------------------------------------------------
|
||||
set head off
|
||||
select max('Taille des fichiers redolog (Mo) : ' || bytes/1024/1024) from v$log;
|
||||
|
||||
set head on
|
||||
set pages 999 lines 200
|
||||
col Date for a12
|
||||
col Total for 9999
|
||||
col 00 for 999
|
||||
col 01 for 999
|
||||
col 02 for 999
|
||||
col 03 for 999
|
||||
col 04 for 999
|
||||
col 05 for 999
|
||||
col 06 for 999
|
||||
col 07 for 999
|
||||
col 08 for 999
|
||||
col 09 for 999
|
||||
col 10 for 999
|
||||
col 11 for 999
|
||||
col 12 for 999
|
||||
col 13 for 999
|
||||
col 14 for 999
|
||||
col 15 for 999
|
||||
col 16 for 999
|
||||
col 17 for 999
|
||||
col 18 for 999
|
||||
col 19 for 999
|
||||
col 20 for 999
|
||||
col 21 for 999
|
||||
col 22 for 999
|
||||
col 23 for 999
|
||||
col 24 for 999
|
||||
|
||||
|
||||
select to_char(first_time, 'YYYY/MM/dd') "Date",
|
||||
count(1) "Total",
|
||||
sum(decode(to_char(first_time, 'hh24'),'00',1,0)) "00",
|
||||
sum(decode(to_char(first_time, 'hh24'),'01',1,0)) "01",
|
||||
sum(decode(to_char(first_time, 'hh24'),'02',1,0)) "02",
|
||||
sum(decode(to_char(first_time, 'hh24'),'03',1,0)) "03",
|
||||
sum(decode(to_char(first_time, 'hh24'),'04',1,0)) "04",
|
||||
sum(decode(to_char(first_time, 'hh24'),'05',1,0)) "05",
|
||||
sum(decode(to_char(first_time, 'hh24'),'06',1,0)) "06",
|
||||
sum(decode(to_char(first_time, 'hh24'),'07',1,0)) "07",
|
||||
sum(decode(to_char(first_time, 'hh24'),'08',1,0)) "08",
|
||||
sum(decode(to_char(first_time, 'hh24'),'09',1,0)) "09",
|
||||
sum(decode(to_char(first_time, 'hh24'),'10',1,0)) "10",
|
||||
sum(decode(to_char(first_time, 'hh24'),'11',1,0)) "11",
|
||||
sum(decode(to_char(first_time, 'hh24'),'12',1,0)) "12",
|
||||
sum(decode(to_char(first_time, 'hh24'),'13',1,0)) "13",
|
||||
sum(decode(to_char(first_time, 'hh24'),'14',1,0)) "14",
|
||||
sum(decode(to_char(first_time, 'hh24'),'15',1,0)) "15",
|
||||
sum(decode(to_char(first_time, 'hh24'),'16',1,0)) "16",
|
||||
sum(decode(to_char(first_time, 'hh24'),'17',1,0)) "17",
|
||||
sum(decode(to_char(first_time, 'hh24'),'18',1,0)) "18",
|
||||
sum(decode(to_char(first_time, 'hh24'),'19',1,0)) "19",
|
||||
sum(decode(to_char(first_time, 'hh24'),'20',1,0)) "20",
|
||||
sum(decode(to_char(first_time, 'hh24'),'21',1,0)) "21",
|
||||
sum(decode(to_char(first_time, 'hh24'),'22',1,0)) "22",
|
||||
sum(decode(to_char(first_time, 'hh24'),'23',1,0)) "23",
|
||||
sum(decode(to_char(first_time, 'hh24'),'24',1,0)) "24"
|
||||
from v$log_history
|
||||
group by to_char(first_time, 'YYYY/MM/dd')
|
||||
order by to_char(first_time, 'YYYY/MM/dd')
|
||||
;
|
||||
|
||||
prompt <h2>Taille des redolog par jour </h2>
|
||||
select
|
||||
to_char(first_time, 'YYYY/MM/dd') "Jour",
|
||||
count(*) "Nbr de fichiers",
|
||||
ROUND(sum(BLOCKS*BLOCK_SIZE)/1024/1024, 0) "Taille_Mo"
|
||||
from v$archived_log
|
||||
group by to_char(first_time, 'YYYY/MM/dd')
|
||||
order by to_char(first_time, 'YYYY/MM/dd')
|
||||
;
|
||||
|
||||
prompt
|
||||
-- spool off
|
||||
set markup html off spool off
|
||||
exit
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
|
||||
Exemple de script qui génère un rapport html avec quelques infos de la base, les fichiers, les logs et les sauvegardes
|
||||
|
||||
@@ -1,288 +0,0 @@
|
||||
set echo off
|
||||
set feedback off
|
||||
-- set serveroutput off
|
||||
-- set termout off
|
||||
-- set pagesize 1000
|
||||
-- set markup html on
|
||||
|
||||
|
||||
SET MARKUP HTML ON SPOOL ON PREFORMAT OFF ENTMAP OFF
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Current DATE</h2>
|
||||
-- ---------------------------------------------------
|
||||
set head off
|
||||
select to_char(sysdate,'DD/MM/YYYY HH24:MI:SS') "Current Date" from dual;
|
||||
set head on
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Database Size</h2>
|
||||
-- ---------------------------------------------------
|
||||
set head off
|
||||
col TOTAL_SIZE_GB format 99,999.99
|
||||
SELECT ROUND(SUM(TAILLE_BYTES)/1024/1024/1024,2) TOTAL_SIZE_GB FROM
|
||||
(
|
||||
SELECT SUM(FILE_SIZE_BLKS*BLOCK_SIZE) TAILLE_BYTES FROM V$CONTROLFILE
|
||||
UNION ALL
|
||||
SELECT SUM(BYTES) FROM V$TEMPFILE
|
||||
UNION ALL
|
||||
SELECT SUM(BYTES) FROM V$DATAFILE
|
||||
UNION ALL
|
||||
SELECT SUM(MEMBERS*BYTES) FROM V$LOG
|
||||
UNION ALL
|
||||
SELECT BYTES FROM V$STANDBY_LOG SL, V$LOGFILE LF WHERE SL.GROUP# = LF.GROUP#
|
||||
);
|
||||
set head on
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>INSTANCE STATUS</h2>
|
||||
-- ---------------------------------------------------
|
||||
select inst_id,
|
||||
instance_name,
|
||||
status,
|
||||
VERSION_FULL,
|
||||
EDITION,
|
||||
ARCHIVER,
|
||||
INSTANCE_ROLE,
|
||||
database_status,
|
||||
active_state,
|
||||
to_char(startup_time,'DD/MM/YYYY HH24:MI:SS') startup_time
|
||||
FROM gv$instance;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Database Status </h2>
|
||||
-- ---------------------------------------------------
|
||||
SELECT inst_id, name, to_char(CREATED ,'DD/MM/YYYY') CREATED , open_mode, DATABASE_ROLE, log_mode, FORCE_LOGGING, CURRENT_SCN FROM gv$database;
|
||||
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Database non default parameters</h2>
|
||||
-- ---------------------------------------------------
|
||||
set pages 999 lines 150
|
||||
col name for a50
|
||||
col value for a90
|
||||
col display_value for a90
|
||||
select NAME, DISPLAY_VALUE from v$parameter where ISDEFAULT='FALSE' order by name;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Users</h2>
|
||||
-- ---------------------------------------------------
|
||||
set pages 999 lines 150
|
||||
ALTER SESSION SET NLS_DATE_FORMAT ='YYYY/MM/DD HH24:MI';
|
||||
col USERNAME for a25
|
||||
col DEF_TBS for a15
|
||||
col TMP_TBS for a10
|
||||
col PROFILE for a10
|
||||
col ACCOUNT_STATUS for a20
|
||||
select USERNAME, ACCOUNT_STATUS, PROFILE, DEFAULT_TABLESPACE DEF_TBS, TEMPORARY_TABLESPACE TMP_TBS, CREATED, PASSWORD_VERSIONS from dba_users order by created;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>NLS Database parameters</h2>
|
||||
-- ---------------------------------------------------
|
||||
col parameter for a30
|
||||
col value for a30
|
||||
select * from nls_database_parameters ;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Fast Rrecovery Area</h2>
|
||||
-- ---------------------------------------------------
|
||||
SELECT VALUE/1024/1024 TAILLE_FRA_MiB, ROUND((VALUE*TOT_PCT/100)/1024/1024,0) ESPACE_UTILISE_MiB,
|
||||
TOT_PCT POURCENTAGE_UTILISE
|
||||
FROM
|
||||
V$PARAMETER P,
|
||||
(SELECT SUM(PERCENT_SPACE_USED) TOT_PCT FROM V$FLASH_RECOVERY_AREA_USAGE) PCT_U
|
||||
WHERE NAME='db_recovery_file_dest_size';
|
||||
prompt
|
||||
SELECT * FROM V$FLASH_RECOVERY_AREA_USAGE;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Invalid objects</h2>
|
||||
-- ---------------------------------------------------
|
||||
select owner,OBJECT_NAME, status FROM dba_objects WHERE status <> 'VALID';
|
||||
prompt
|
||||
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Tablespace Details</h2>
|
||||
-- ---------------------------------------------------
|
||||
|
||||
COL TABLESPACE_NAME FORMAT A20 HEAD "Nom espace|disque logique"
|
||||
COL PCT_OCCUPATION_THEORIQUE FORMAT 990.00 HEAD "%occ|Theo"
|
||||
COL TAILLE_MIB FORMAT 99999990.00 HEAD "Taille|MiB"
|
||||
COL TAILLE_MAX_MIB FORMAT 99999990.00 HEAD "Taille max|MiB"
|
||||
COL TAILLE_OCCUPEE_MIB FORMAT 99999990.00 HEAD "Espace occupé|MiB"
|
||||
WITH TS_FREE_SPACE AS
|
||||
(select tablespace_name, file_id, sum(bytes) FREE_O from dba_free_space group by tablespace_name, file_id
|
||||
), TEMP_ALLOC AS
|
||||
(select tablespace_name, file_id, sum(bytes) USED_O from v$temp_extent_map group by tablespace_name, file_id
|
||||
)
|
||||
SELECT
|
||||
TABLESPACE_NAME,
|
||||
SUM(TAILLE_MIB) TAILLE_MIB,
|
||||
SUM(TAILLE_MAX_MIB) TAILLE_MAX_MIB,
|
||||
SUM(TAILLE_OCCUPEE_MIB) TAILLE_OCCUPEE_MIB,
|
||||
ROUND(SUM(TAILLE_OCCUPEE_MIB)*100/SUM(GREATEST(TAILLE_MAX_MIB,TAILLE_MIB)),2) PCT_OCCUPATION_THEORIQUE
|
||||
FROM
|
||||
(
|
||||
SELECT D.FILE_NAME, D.TABLESPACE_NAME, D.BYTES/1024/1024 TAILLE_MIB, DECODE(D.AUTOEXTENSIBLE,'NO',D.BYTES,D.MAXBYTES)/1024/1024 TAILLE_MAX_MIB,
|
||||
(D.BYTES-FO.FREE_O)/1024/1024 TAILLE_OCCUPEE_MIB
|
||||
FROM
|
||||
DBA_DATA_FILES D, TS_FREE_SPACE FO
|
||||
WHERE
|
||||
D.TABLESPACE_NAME=FO.TABLESPACE_NAME
|
||||
AND D.FILE_ID=FO.FILE_ID
|
||||
UNION ALL
|
||||
SELECT T.FILE_NAME, T.TABLESPACE_NAME, T.BYTES/1024/1024 TAILLE_MIB, DECODE(T.AUTOEXTENSIBLE,'NO',T.BYTES,T.MAXBYTES)/1024/1024 TAILLE_MAX_MIB,
|
||||
(TA.USED_O)/1024/1024 TAILLE_OCCUPEE_MIB
|
||||
FROM
|
||||
DBA_TEMP_FILES T, TEMP_ALLOC TA
|
||||
WHERE
|
||||
T.TABLESPACE_NAME=TA.TABLESPACE_NAME
|
||||
AND T.FILE_ID=TA.FILE_ID
|
||||
)
|
||||
GROUP BY TABLESPACE_NAME
|
||||
ORDER BY TABLESPACE_NAME;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>TEMP Tablespace</h2>
|
||||
-- ---------------------------------------------------
|
||||
SELECT A.tablespace_name tablespace, D.mb_total,SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_used,
|
||||
D.mb_total - SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_free
|
||||
FROM v$sort_segment A,
|
||||
(
|
||||
SELECT B.name, C.block_size, SUM (C.bytes) / 1024 / 1024 mb_total
|
||||
FROM v$tablespace B, v$tempfile C
|
||||
WHERE B.ts#= C.ts# GROUP BY B.name, C.block_size
|
||||
) D
|
||||
WHERE A.tablespace_name = D.name GROUP by A.tablespace_name, D.mb_total;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Last RMAN backup status</h2>
|
||||
-- ---------------------------------------------------
|
||||
alter session set nls_date_format='DD/MM/YYYY HH24:MI:SS' ;
|
||||
set linesize 250 heading off;
|
||||
set heading on pagesize 999;
|
||||
column status format a25;
|
||||
column input_bytes_display format a12;
|
||||
column output_bytes_display format a12;
|
||||
column device_type format a10;
|
||||
|
||||
select
|
||||
b.input_type,
|
||||
b.status,
|
||||
to_char(b.start_time,'DD-MM-YYYY HH24:MI') "Start Time",
|
||||
to_char(b.end_time,'DD-MM-YYYY HH24:MI') "End Time",
|
||||
b.output_device_type device_type,
|
||||
b.input_bytes_display,
|
||||
b.output_bytes_display
|
||||
FROM v$rman_backup_job_details b
|
||||
WHERE b.start_time > (SYSDATE - 30)
|
||||
ORDER BY b.start_time asc;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Last Alert Log Error</h2>
|
||||
-- ---------------------------------------------------
|
||||
set pages 999 lines 150
|
||||
select to_char(ORIGINATING_TIMESTAMP, 'DD-MM-YYYY HH-MM-SS') || ' : ' || message_text "Last alertlog (30 days)"
|
||||
FROM X$DBGALERTEXT
|
||||
WHERE originating_timestamp > systimestamp - 30 AND regexp_like(message_text, '(ORA-)');
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Current sequence no in</h2>
|
||||
-- ---------------------------------------------------
|
||||
|
||||
COL MEMBER FORMAT A90 WRAPPED
|
||||
BREAK ON GROUP# SKIP 1 ON THREAD# ON SEQUENCE# ON TAILLE_MIB ON "STATUS(ARCHIVED)"
|
||||
SELECT 'OnlineLog' T, G.GROUP#, G.THREAD#, G.SEQUENCE#, G.BYTES/1024/1024 TAILLE_MIB, G.STATUS||'('||G.ARCHIVED||')' "STATUS(ARCHIVED)", F.MEMBER
|
||||
FROM V$LOG G, V$LOGFILE F
|
||||
WHERE G.GROUP#=F.GROUP#
|
||||
UNION ALL
|
||||
SELECT 'StandbyLog',G.GROUP#, G.THREAD#, G.SEQUENCE#, G.BYTES/1024/1024 TAILLE_MIB, G.STATUS||'('||G.ARCHIVED||')' "STATUS(ARCHIVED)", F.MEMBER
|
||||
FROM V$STANDBY_LOG G, V$LOGFILE F
|
||||
WHERE G.GROUP#=F.GROUP#
|
||||
ORDER BY 1,3,4,2;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
prompt <h2>Archive generated for the past 30 days</h2>
|
||||
-- ---------------------------------------------------
|
||||
set head off
|
||||
select max('Taille des fichiers redolog (Mo) : ' || bytes/1024/1024) from v$log;
|
||||
|
||||
set head on
|
||||
set pages 999 lines 200
|
||||
col Date for a12
|
||||
col Total for 9999
|
||||
col 00 for 999
|
||||
col 01 for 999
|
||||
col 02 for 999
|
||||
col 03 for 999
|
||||
col 04 for 999
|
||||
col 05 for 999
|
||||
col 06 for 999
|
||||
col 07 for 999
|
||||
col 08 for 999
|
||||
col 09 for 999
|
||||
col 10 for 999
|
||||
col 11 for 999
|
||||
col 12 for 999
|
||||
col 13 for 999
|
||||
col 14 for 999
|
||||
col 15 for 999
|
||||
col 16 for 999
|
||||
col 17 for 999
|
||||
col 18 for 999
|
||||
col 19 for 999
|
||||
col 20 for 999
|
||||
col 21 for 999
|
||||
col 22 for 999
|
||||
col 23 for 999
|
||||
col 24 for 999
|
||||
|
||||
|
||||
select to_char(first_time, 'YYYY/MM/dd') "Date",
|
||||
count(1) "Total",
|
||||
sum(decode(to_char(first_time, 'hh24'),'00',1,0)) "00",
|
||||
sum(decode(to_char(first_time, 'hh24'),'01',1,0)) "01",
|
||||
sum(decode(to_char(first_time, 'hh24'),'02',1,0)) "02",
|
||||
sum(decode(to_char(first_time, 'hh24'),'03',1,0)) "03",
|
||||
sum(decode(to_char(first_time, 'hh24'),'04',1,0)) "04",
|
||||
sum(decode(to_char(first_time, 'hh24'),'05',1,0)) "05",
|
||||
sum(decode(to_char(first_time, 'hh24'),'06',1,0)) "06",
|
||||
sum(decode(to_char(first_time, 'hh24'),'07',1,0)) "07",
|
||||
sum(decode(to_char(first_time, 'hh24'),'08',1,0)) "08",
|
||||
sum(decode(to_char(first_time, 'hh24'),'09',1,0)) "09",
|
||||
sum(decode(to_char(first_time, 'hh24'),'10',1,0)) "10",
|
||||
sum(decode(to_char(first_time, 'hh24'),'11',1,0)) "11",
|
||||
sum(decode(to_char(first_time, 'hh24'),'12',1,0)) "12",
|
||||
sum(decode(to_char(first_time, 'hh24'),'13',1,0)) "13",
|
||||
sum(decode(to_char(first_time, 'hh24'),'14',1,0)) "14",
|
||||
sum(decode(to_char(first_time, 'hh24'),'15',1,0)) "15",
|
||||
sum(decode(to_char(first_time, 'hh24'),'16',1,0)) "16",
|
||||
sum(decode(to_char(first_time, 'hh24'),'17',1,0)) "17",
|
||||
sum(decode(to_char(first_time, 'hh24'),'18',1,0)) "18",
|
||||
sum(decode(to_char(first_time, 'hh24'),'19',1,0)) "19",
|
||||
sum(decode(to_char(first_time, 'hh24'),'20',1,0)) "20",
|
||||
sum(decode(to_char(first_time, 'hh24'),'21',1,0)) "21",
|
||||
sum(decode(to_char(first_time, 'hh24'),'22',1,0)) "22",
|
||||
sum(decode(to_char(first_time, 'hh24'),'23',1,0)) "23",
|
||||
sum(decode(to_char(first_time, 'hh24'),'24',1,0)) "24"
|
||||
from v$log_history
|
||||
group by to_char(first_time, 'YYYY/MM/dd')
|
||||
order by to_char(first_time, 'YYYY/MM/dd')
|
||||
;
|
||||
|
||||
prompt <h2>Taille des redolog par jour </h2>
|
||||
select
|
||||
to_char(first_time, 'YYYY/MM/dd') "Jour",
|
||||
count(*) "Nbr de fichiers",
|
||||
ROUND(sum(BLOCKS*BLOCK_SIZE)/1024/1024, 0) "Taille_Mo"
|
||||
from v$archived_log
|
||||
group by to_char(first_time, 'YYYY/MM/dd')
|
||||
order by to_char(first_time, 'YYYY/MM/dd')
|
||||
;
|
||||
|
||||
prompt
|
||||
-- spool off
|
||||
set markup html off spool off
|
||||
exit
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
DATETIME=`date +%Y%m%d%H%M`
|
||||
HNAME=$(hostname)
|
||||
|
||||
for r in $(ps -eaf | grep pmon | egrep -v 'grep|ASM1|APX1' | cut -d '_' -f3)
|
||||
do
|
||||
export ORAENV_ASK=NO
|
||||
export ORACLE_SID=$r
|
||||
export HTML_FILE=Rapport_$HNAME_${ORACLE_SID}_${DATETIME}.html
|
||||
. oraenv -s > /dev/null
|
||||
# echo "
|
||||
# <!doctype html>
|
||||
# <html lang=en>
|
||||
# <head>
|
||||
# <meta charset=utf-8>
|
||||
# <meta name=viewport content=width=device-width, initial-scale=1>
|
||||
# <title>Rapport Oracle Database : ${ORACLE_SID} </title>
|
||||
# <link href=https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css rel=stylesheet integrity=sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD crossorigin=anonymous>
|
||||
# </head>
|
||||
# <body>
|
||||
# <div class=container>
|
||||
#
|
||||
# " > ${HTML_FILE}
|
||||
|
||||
# sqlplus -s "/ as sysdba" @rapport_html.sql >> ${HTML_FILE}
|
||||
cat sql/00_html_header.html >> ${HTML_FILE}
|
||||
for f in sql/*.sql
|
||||
do
|
||||
# sqlplus -s "/ as sysdba" @$f >> ${HTML_FILE}
|
||||
sed '1 s/^/SET PAGES 999 FEEDBACK OFF MARKUP HTML ON SPOOL ON PREFORMAT OFF ENTMAP OFF\n/' $f | sqlplus -s / as sysdba >> ${HTML_FILE}
|
||||
done
|
||||
|
||||
sed -i 's/<table.*>$/<table class="table table-striped">/g' ${HTML_FILE}
|
||||
|
||||
cat sql/99_html_footer.html >> ${HTML_FILE}
|
||||
|
||||
echo Rapport dans le fichier html : ${HTML_FILE}
|
||||
done
|
||||
@@ -1,31 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<!-- $Header: DB Report -->
|
||||
<!-- Author: yacine.oumghar@axiome.io -->
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<title>DB Report</title>
|
||||
|
||||
<style type="text/css">
|
||||
body {font:10pt Arial,Helvetica,Geneva,sans-serif; color:black; background:white;}
|
||||
h1 {font-size:16pt; font-weight:bold; color:#336699; border-bottom:1px solid #336699; margin-top:0pt; margin-bottom:0pt; padding:0px 0px 0px 0px;}
|
||||
h2 {font-size:14pt; font-weight:bold; color:#336699; margin-top:4pt; margin-bottom:0pt;}
|
||||
h3 {font-size:12pt; font-weight:bold; color:#336699; margin-top:4pt; margin-bottom:0pt;}
|
||||
pre {font:8pt monospace,Monaco,"Courier New",Courier;}
|
||||
a {color:#663300;}
|
||||
table {font-size:8pt; border-collapse:collapse; empty-cells:show; white-space:nowrap; border:1px solid #336699;}
|
||||
li {font-size:8pt; color:black; padding-left:4px; padding-right:4px; padding-bottom:2px;}
|
||||
th {font-weight:bold; color:white; background:#0066CC; padding-left:4px; padding-right:4px; padding-bottom:2px;}
|
||||
tr {color:black; background:white;}
|
||||
tr:hover {color:white; background:#0066CC;}
|
||||
tr.main {color:black; background:white;}
|
||||
tr.main:hover {color:black; background:white;}
|
||||
td {vertical-align:top; border:1px solid #336699;}
|
||||
td.c {text-align:center;}
|
||||
font.n {font-size:8pt; font-style:italic; color:#336699;}
|
||||
font.f {font-size:8pt; color:#999999; border-top:1px solid #336699; margin-top:30pt;}
|
||||
div.google-chart {width:&&edb360_chart_width.; height:500px;}
|
||||
</style>
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
prompt <h2>System Information</h2>
|
||||
WITH /* 1a.1 */
|
||||
rac AS (SELECT /*+ MATERIALIZE NO_MERGE */ COUNT(*) instances, CASE COUNT(*) WHEN 1 THEN 'Single-instance' ELSE COUNT(*)||'-node RAC cluster' END db_type FROM gv$instance),
|
||||
hrac AS (SELECT /*+ MATERIALIZE NO_MERGE */ CASE 1 WHEN 1 THEN ' (historically Single-instance in AWR)' ELSE ' (historicly 1-node RAC cluster in AWR)' END db_type
|
||||
FROM rac WHERE TO_CHAR(RAC.instances)<>1),
|
||||
mem AS (SELECT /*+ MATERIALIZE NO_MERGE */ SUM(value) target FROM gv$system_parameter2 WHERE name = 'memory_target'),
|
||||
sga AS (SELECT /*+ MATERIALIZE NO_MERGE */ SUM(value) target FROM gv$system_parameter2 WHERE name = 'sga_target'),
|
||||
pga AS (SELECT /*+ MATERIALIZE NO_MERGE */ SUM(value) target FROM gv$system_parameter2 WHERE name = 'pga_aggregate_target'),
|
||||
db_block AS (SELECT /*+ MATERIALIZE NO_MERGE */ value bytes FROM v$system_parameter2 WHERE name = 'db_block_size'),
|
||||
db AS (SELECT /*+ MATERIALIZE NO_MERGE */ name, platform_name FROM v$database),
|
||||
pdbs AS (SELECT /*+ MATERIALIZE NO_MERGE */ * FROM v$pdbs), -- need 12c flag
|
||||
inst AS (SELECT /*+ MATERIALIZE NO_MERGE */ host_name, version db_version FROM v$instance),
|
||||
data AS (SELECT /*+ MATERIALIZE NO_MERGE */ SUM(bytes) bytes, COUNT(*) files, COUNT(DISTINCT ts#) tablespaces FROM v$datafile),
|
||||
temp AS (SELECT /*+ MATERIALIZE NO_MERGE */ SUM(bytes) bytes FROM v$tempfile),
|
||||
log AS (SELECT /*+ MATERIALIZE NO_MERGE */ SUM(bytes) * MAX(members) bytes FROM v$log),
|
||||
control AS (SELECT /*+ MATERIALIZE NO_MERGE */ SUM(block_size * file_size_blks) bytes FROM v$controlfile),
|
||||
core AS (SELECT /*+ MATERIALIZE NO_MERGE */ SUM(value) cnt FROM gv$osstat WHERE stat_name = 'NUM_CPU_CORES'),
|
||||
cpu AS (SELECT /*+ MATERIALIZE NO_MERGE */ SUM(value) cnt FROM gv$osstat WHERE stat_name = 'NUM_CPUS'),
|
||||
pmem AS (SELECT /*+ MATERIALIZE NO_MERGE */ SUM(value) bytes FROM gv$osstat WHERE stat_name = 'PHYSICAL_MEMORY_BYTES')
|
||||
SELECT /*+ NO_MERGE */ /* 1a.1 */
|
||||
'Database name:' system_item, db.name system_value FROM db
|
||||
UNION ALL
|
||||
SELECT ' pdb:'||name, 'Open Mode:'||open_mode FROM pdbs -- need 12c flag
|
||||
UNION ALL
|
||||
SELECT 'Oracle Database version:', inst.db_version FROM inst
|
||||
UNION ALL
|
||||
SELECT 'Database block size:', TRIM(TO_CHAR(db_block.bytes / POWER(2,10), '90'))||' KB' FROM db_block
|
||||
UNION ALL
|
||||
SELECT 'Database size:', TRIM(TO_CHAR(ROUND((data.bytes + temp.bytes + log.bytes + control.bytes) / POWER(10,12), 3), '999,999,990.000'))||' TB'
|
||||
FROM db, data, temp, log, control
|
||||
UNION ALL
|
||||
SELECT 'Datafiles:', data.files||' (on '||data.tablespaces||' tablespaces)' FROM data
|
||||
UNION ALL
|
||||
SELECT 'Instance configuration:', rac.db_type||(select hrac.db_type FROM hrac ) FROM rac
|
||||
UNION ALL
|
||||
SELECT 'Database memory:',
|
||||
CASE WHEN mem.target > 0 THEN 'MEMORY '||TRIM(TO_CHAR(ROUND(mem.target / POWER(2,30), 1), '999,990.0'))||' GB, ' END||
|
||||
CASE WHEN sga.target > 0 THEN 'SGA ' ||TRIM(TO_CHAR(ROUND(sga.target / POWER(2,30), 1), '999,990.0'))||' GB, ' END||
|
||||
CASE WHEN pga.target > 0 THEN 'PGA ' ||TRIM(TO_CHAR(ROUND(pga.target / POWER(2,30), 1), '999,990.0'))||' GB, ' END||
|
||||
CASE WHEN mem.target > 0 THEN 'AMM' ELSE CASE WHEN sga.target > 0 THEN 'ASMM' ELSE 'MANUAL' END END
|
||||
FROM mem, sga, pga
|
||||
UNION ALL
|
||||
SELECT 'Hardware:', 'Unknown' FROM dual
|
||||
UNION ALL
|
||||
SELECT 'Storage:','' FROM DUAL WHERE '' IS NOT NULL
|
||||
UNION ALL
|
||||
SELECT 'Storage Version:','' FROM DUAL WHERE '' IS NOT NULL
|
||||
UNION ALL
|
||||
SELECT 'Processor:', 'Common KVM processor' FROM DUAL
|
||||
UNION ALL
|
||||
SELECT 'Physical CPUs:', core.cnt||' cores'||CASE WHEN rac.instances > 0 THEN ', on '||rac.db_type END FROM rac, core
|
||||
UNION ALL
|
||||
SELECT 'Oracle CPUs:', cpu.cnt||' CPUs (threads)'||CASE WHEN rac.instances > 0 THEN ', on '||rac.db_type END FROM rac, cpu
|
||||
UNION ALL
|
||||
SELECT 'Physical RAM:', TRIM(TO_CHAR(ROUND(pmem.bytes / POWER(2,30), 1), '999,990.0'))||' GB'||CASE WHEN rac.instances > 0 THEN ', on '||rac.db_type END FROM rac, pmem
|
||||
UNION ALL
|
||||
SELECT 'Operating system:', db.platform_name FROM db;
|
||||
exit
|
||||
@@ -1,26 +0,0 @@
|
||||
prompt <h2>Disk Size df -h</h2>
|
||||
set echo off head off
|
||||
prompt <pre>
|
||||
host df -h
|
||||
prompt </pre>
|
||||
|
||||
prompt <h2>lsblk -f </h2>
|
||||
prompt <pre>
|
||||
host lsblk -f
|
||||
prompt </pre>
|
||||
|
||||
prompt <h2>cat /etc/fstab </h2>
|
||||
prompt <pre>
|
||||
host cat /etc/fstab
|
||||
prompt </pre>
|
||||
|
||||
prompt <h2>Memory Size free -h </h2>
|
||||
prompt <pre>
|
||||
host free -h
|
||||
prompt </pre>
|
||||
|
||||
prompt <h2>lscpu </h2>
|
||||
prompt <pre>
|
||||
host lscpu
|
||||
prompt </pre>
|
||||
exit
|
||||
@@ -1,72 +0,0 @@
|
||||
prompt <h2>Database Size </h2>
|
||||
-- set head off
|
||||
-- col "Database Size" format 99,999.99
|
||||
-- select 'Database Size (Go) : ' || (
|
||||
-- SELECT ROUND(SUM(TAILLE_BYTES)/1024/1024/1024,2) "Database Size" FROM
|
||||
-- (
|
||||
-- SELECT SUM(FILE_SIZE_BLKS*BLOCK_SIZE) TAILLE_BYTES FROM V$CONTROLFILE
|
||||
-- UNION ALL
|
||||
-- SELECT SUM(BYTES) FROM V$TEMPFILE
|
||||
-- UNION ALL
|
||||
-- SELECT SUM(BYTES) FROM V$DATAFILE
|
||||
-- UNION ALL
|
||||
-- SELECT SUM(MEMBERS*BYTES) FROM V$LOG
|
||||
-- UNION ALL
|
||||
-- SELECT BYTES FROM V$STANDBY_LOG SL, V$LOGFILE LF WHERE SL.GROUP# = LF.GROUP#
|
||||
-- )
|
||||
-- )
|
||||
-- from dual;
|
||||
|
||||
WITH
|
||||
sizes AS (
|
||||
SELECT /*+ MATERIALIZE NO_MERGE */ /* 1f.60 */
|
||||
'Data' file_type,
|
||||
SUM(bytes) bytes
|
||||
FROM v$datafile
|
||||
UNION ALL
|
||||
SELECT 'Temp' file_type,
|
||||
SUM(bytes) bytes
|
||||
FROM v$tempfile
|
||||
UNION ALL
|
||||
SELECT 'Log' file_type,
|
||||
SUM(bytes) * MAX(members) bytes
|
||||
FROM v$log
|
||||
UNION ALL
|
||||
SELECT 'Control' file_type,
|
||||
SUM(block_size * file_size_blks) bytes
|
||||
FROM v$controlfile
|
||||
),
|
||||
dbsize AS (
|
||||
SELECT /*+ MATERIALIZE NO_MERGE */ /* 1f.60 */
|
||||
'Total' file_type,
|
||||
SUM(bytes) bytes
|
||||
FROM sizes
|
||||
)
|
||||
SELECT d.dbid,
|
||||
d.name db_name,
|
||||
s.file_type,
|
||||
s.bytes,
|
||||
CASE
|
||||
WHEN s.bytes > POWER(10,15) THEN ROUND(s.bytes/POWER(10,15),3)||' P'
|
||||
WHEN s.bytes > POWER(10,12) THEN ROUND(s.bytes/POWER(10,12),3)||' T'
|
||||
WHEN s.bytes > POWER(10,9) THEN ROUND(s.bytes/POWER(10,9),3)||' G'
|
||||
WHEN s.bytes > POWER(10,6) THEN ROUND(s.bytes/POWER(10,6),3)||' M'
|
||||
WHEN s.bytes > POWER(10,3) THEN ROUND(s.bytes/POWER(10,3),3)||' K'
|
||||
WHEN s.bytes > 0 THEN s.bytes||' B' END approx
|
||||
FROM v$database d,
|
||||
sizes s
|
||||
UNION ALL
|
||||
SELECT d.dbid,
|
||||
d.name db_name,
|
||||
s.file_type,
|
||||
s.bytes,
|
||||
CASE
|
||||
WHEN s.bytes > POWER(10,15) THEN ROUND(s.bytes/POWER(10,15),3)||' P'
|
||||
WHEN s.bytes > POWER(10,12) THEN ROUND(s.bytes/POWER(10,12),3)||' T'
|
||||
WHEN s.bytes > POWER(10,9) THEN ROUND(s.bytes/POWER(10,9),3)||' G'
|
||||
WHEN s.bytes > POWER(10,6) THEN ROUND(s.bytes/POWER(10,6),3)||' M'
|
||||
WHEN s.bytes > POWER(10,3) THEN ROUND(s.bytes/POWER(10,3),3)||' K'
|
||||
WHEN s.bytes > 0 THEN s.bytes||' B' END approx
|
||||
FROM v$database d,
|
||||
dbsize s;
|
||||
exit
|
||||
@@ -1,5 +0,0 @@
|
||||
prompt <h2>Database Status</h2>
|
||||
alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';
|
||||
SELECT instance_name, host_name, startup_time, status, logins FROM gv$instance ORDER BY 1;
|
||||
exit
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
select
|
||||
inst_id,
|
||||
instance_name,
|
||||
status,
|
||||
VERSION_FULL,
|
||||
EDITION,
|
||||
ARCHIVER,
|
||||
INSTANCE_ROLE,
|
||||
database_status
|
||||
FROM gv$instance;
|
||||
|
||||
SELECT inst_id, name, to_char(CREATED ,'DD/MM/YYYY') CREATED , open_mode, DATABASE_ROLE, log_mode, FORCE_LOGGING, CURRENT_SCN FROM gv$database;
|
||||
|
||||
exit
|
||||
@@ -1,3 +0,0 @@
|
||||
prompt <h2>Database Parameters </h2>
|
||||
select NAME, DISPLAY_VALUE from v$parameter where ISDEFAULT='FALSE' order by name;
|
||||
exit
|
||||
@@ -1,3 +0,0 @@
|
||||
prompt <h2>NLS Database Parameters </h2>
|
||||
select * from nls_database_parameters ;
|
||||
exit
|
||||
@@ -1,10 +0,0 @@
|
||||
prompt <h2>Database supplemental logging </h2>
|
||||
SELECT
|
||||
supplemental_log_data_min data_min,
|
||||
supplemental_log_data_pk data_pk,
|
||||
supplemental_log_data_ui data_ui,
|
||||
supplemental_log_data_fk data_fk,
|
||||
supplemental_log_data_all data_all,
|
||||
supplemental_log_data_pl data_pl
|
||||
FROM v$database;
|
||||
exit
|
||||
@@ -1,10 +0,0 @@
|
||||
prompt <h2>Registry (DBA_REGISTRY)</h2>
|
||||
SELECT /*+ NO_MERGE */
|
||||
x.*
|
||||
--,c.name con_name
|
||||
FROM dba_registry x
|
||||
--LEFT OUTER JOIN v$containers c ON c.con_id = x.con_id
|
||||
ORDER BY
|
||||
--x.con_id,
|
||||
x.comp_id;
|
||||
exit;
|
||||
@@ -1,8 +0,0 @@
|
||||
prompt <h2>Resource Limit (GV$RESOURCE_LIMIT)</h2>
|
||||
SELECT /*+ NO_MERGE */
|
||||
*
|
||||
FROM gv$resource_limit
|
||||
ORDER BY
|
||||
resource_name,
|
||||
inst_id;
|
||||
exit
|
||||
@@ -1,81 +0,0 @@
|
||||
prompt <h2>Memory Information</h2>
|
||||
WITH
|
||||
system_parameter AS (
|
||||
SELECT inst_id,
|
||||
name,
|
||||
value
|
||||
FROM gv$system_parameter2
|
||||
WHERE name IN
|
||||
( 'memory_max_target'
|
||||
, 'memory_target'
|
||||
, 'pga_aggregate_target'
|
||||
, 'sga_max_size'
|
||||
, 'sga_target'
|
||||
, 'db_cache_size'
|
||||
, 'shared_pool_size'
|
||||
, 'shared_pool_reserved_size'
|
||||
, 'large_pool_size'
|
||||
, 'java_pool_size'
|
||||
, 'streams_pool_size'
|
||||
, 'result_cache_max_size'
|
||||
, 'db_keep_cache_size'
|
||||
, 'db_recycle_cache_size'
|
||||
, 'db_32k_cache_size'
|
||||
, 'db_16k_cache_size'
|
||||
, 'db_8k_cache_size'
|
||||
, 'db_4k_cache_size'
|
||||
, 'db_2k_cache_size'
|
||||
)),
|
||||
spparameter_inst AS (
|
||||
SELECT i.inst_id,
|
||||
p.name,
|
||||
p.display_value
|
||||
FROM v$spparameter p,
|
||||
gv$instance i
|
||||
WHERE p.isspecified = 'TRUE'
|
||||
AND p.sid <> '*'
|
||||
AND i.instance_name = p.sid
|
||||
),
|
||||
spparameter_all AS (
|
||||
SELECT p.name,
|
||||
p.display_value
|
||||
FROM v$spparameter p
|
||||
WHERE p.isspecified = 'TRUE'
|
||||
AND p.sid = '*'
|
||||
)
|
||||
SELECT s.name,
|
||||
s.inst_id,
|
||||
CASE WHEN i.name IS NOT NULL THEN TO_CHAR(i.inst_id) ELSE (CASE WHEN a.name IS NOT NULL THEN '*' END) END spfile_sid,
|
||||
NVL(i.display_value, a.display_value) spfile_value,
|
||||
CASE s.value WHEN '0' THEN '0' ELSE TRIM(TO_CHAR(ROUND(TO_NUMBER(s.value)/POWER(2,30),3),'9990.000'))||'G' END current_gb,
|
||||
NULL recommended_gb
|
||||
FROM system_parameter s,
|
||||
spparameter_inst i,
|
||||
spparameter_all a
|
||||
WHERE i.inst_id(+) = s.inst_id
|
||||
AND i.name(+) = s.name
|
||||
AND a.name(+) = s.name
|
||||
ORDER BY
|
||||
CASE s.name
|
||||
WHEN 'memory_max_target' THEN 1
|
||||
WHEN 'memory_target' THEN 2
|
||||
WHEN 'pga_aggregate_target' THEN 3
|
||||
WHEN 'sga_max_size' THEN 4
|
||||
WHEN 'sga_target' THEN 5
|
||||
WHEN 'db_cache_size' THEN 6
|
||||
WHEN 'shared_pool_size' THEN 7
|
||||
WHEN 'shared_pool_reserved_size' THEN 8
|
||||
WHEN 'large_pool_size' THEN 9
|
||||
WHEN 'java_pool_size' THEN 10
|
||||
WHEN 'streams_pool_size' THEN 11
|
||||
WHEN 'result_cache_max_size' THEN 12
|
||||
WHEN 'db_keep_cache_size' THEN 13
|
||||
WHEN 'db_recycle_cache_size' THEN 14
|
||||
WHEN 'db_32k_cache_size' THEN 15
|
||||
WHEN 'db_16k_cache_size' THEN 16
|
||||
WHEN 'db_8k_cache_size' THEN 17
|
||||
WHEN 'db_4k_cache_size' THEN 18
|
||||
WHEN 'db_2k_cache_size' THEN 19
|
||||
END,
|
||||
s.inst_id;
|
||||
exit
|
||||
@@ -1,9 +0,0 @@
|
||||
prompt <h2>Memory Resize Operations</h2>
|
||||
SELECT /*+ NO_MERGE */
|
||||
*
|
||||
FROM gv$memory_resize_ops
|
||||
ORDER BY
|
||||
inst_id,
|
||||
start_time DESC,
|
||||
component;
|
||||
exit
|
||||
@@ -1,38 +0,0 @@
|
||||
prompt <h2>Tablespace details </h2>
|
||||
COL TABLESPACE_NAME FORMAT A20 HEAD "Nom espace|disque logique"
|
||||
COL PCT_OCCUPATION_THEORIQUE FORMAT 990.00 HEAD "%occ|Theo"
|
||||
COL TAILLE_MIB FORMAT 99999990.00 HEAD "Taille|MiB"
|
||||
COL TAILLE_MAX_MIB FORMAT 99999990.00 HEAD "Taille max|MiB"
|
||||
COL TAILLE_OCCUPEE_MIB FORMAT 99999990.00 HEAD "Espace occupé|MiB"
|
||||
WITH TS_FREE_SPACE AS
|
||||
(select tablespace_name, file_id, sum(bytes) FREE_O from dba_free_space group by tablespace_name, file_id
|
||||
), TEMP_ALLOC AS
|
||||
(select tablespace_name, file_id, sum(bytes) USED_O from v$temp_extent_map group by tablespace_name, file_id
|
||||
)
|
||||
SELECT
|
||||
TABLESPACE_NAME,
|
||||
SUM(TAILLE_MIB) TAILLE_MIB,
|
||||
SUM(TAILLE_MAX_MIB) TAILLE_MAX_MIB,
|
||||
SUM(TAILLE_OCCUPEE_MIB) TAILLE_OCCUPEE_MIB,
|
||||
ROUND(SUM(TAILLE_OCCUPEE_MIB)*100/SUM(GREATEST(TAILLE_MAX_MIB,TAILLE_MIB)),2) PCT_OCCUPATION_THEORIQUE
|
||||
FROM
|
||||
(
|
||||
SELECT D.FILE_NAME, D.TABLESPACE_NAME, D.BYTES/1024/1024 TAILLE_MIB, DECODE(D.AUTOEXTENSIBLE,'NO',D.BYTES,D.MAXBYTES)/1024/1024 TAILLE_MAX_MIB,
|
||||
(D.BYTES-FO.FREE_O)/1024/1024 TAILLE_OCCUPEE_MIB
|
||||
FROM
|
||||
DBA_DATA_FILES D, TS_FREE_SPACE FO
|
||||
WHERE
|
||||
D.TABLESPACE_NAME=FO.TABLESPACE_NAME
|
||||
AND D.FILE_ID=FO.FILE_ID
|
||||
UNION ALL
|
||||
SELECT T.FILE_NAME, T.TABLESPACE_NAME, T.BYTES/1024/1024 TAILLE_MIB, DECODE(T.AUTOEXTENSIBLE,'NO',T.BYTES,T.MAXBYTES)/1024/1024 TAILLE_MAX_MIB,
|
||||
(TA.USED_O)/1024/1024 TAILLE_OCCUPEE_MIB
|
||||
FROM
|
||||
DBA_TEMP_FILES T, TEMP_ALLOC TA
|
||||
WHERE
|
||||
T.TABLESPACE_NAME=TA.TABLESPACE_NAME
|
||||
AND T.FILE_ID=TA.FILE_ID
|
||||
)
|
||||
GROUP BY TABLESPACE_NAME
|
||||
ORDER BY TABLESPACE_NAME;
|
||||
exit
|
||||
@@ -1,10 +0,0 @@
|
||||
prompt <h2>Datafiles </h2>
|
||||
SELECT /*+ NO_MERGE */
|
||||
x.file_name, x.file_id, x.tablespace_name, round(x.bytes/1024/1024,0) "Bytes_Mo", x.status, x.autoextensible, round(x.maxbytes/1024/1024/1024,0) "MaxBytes_Go", x.online_status
|
||||
--,c.name con_name
|
||||
FROM dba_data_files x
|
||||
--LEFT OUTER JOIN v$containers c ON c.con_id = x.con_id
|
||||
ORDER BY
|
||||
--x.con_id,
|
||||
x.file_name;
|
||||
exit
|
||||
@@ -1,19 +0,0 @@
|
||||
prompt <h2>Redolog </h2>
|
||||
SELECT /*+ NO_MERGE */
|
||||
*
|
||||
FROM v$log
|
||||
ORDER BY 1, 2, 3, 4;
|
||||
|
||||
prompt <h2>Redolog Files </h2>
|
||||
COL MEMBER FORMAT A90 WRAPPED
|
||||
BREAK ON GROUP# SKIP 1 ON THREAD# ON SEQUENCE# ON TAILLE_MIB ON "STATUS(ARCHIVED)"
|
||||
SELECT 'OnlineLog' T, G.GROUP#, G.THREAD#, G.SEQUENCE#, G.BYTES/1024/1024 TAILLE_MIB, G.STATUS||'('||G.ARCHIVED||')' "STATUS(ARCHIVED)", F.MEMBER
|
||||
FROM V$LOG G, V$LOGFILE F
|
||||
WHERE G.GROUP#=F.GROUP#
|
||||
UNION ALL
|
||||
SELECT 'StandbyLog',G.GROUP#, G.THREAD#, G.SEQUENCE#, G.BYTES/1024/1024 TAILLE_MIB, G.STATUS||'('||G.ARCHIVED||')' "STATUS(ARCHIVED)", F.MEMBER
|
||||
FROM V$STANDBY_LOG G, V$LOGFILE F
|
||||
WHERE G.GROUP#=F.GROUP#
|
||||
ORDER BY 1,3,4,2;
|
||||
exit
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
prompt <h2>Taille des redolog par jours / heure </h2>
|
||||
set head off
|
||||
select max('Taille des fichiers redolog (Mo) : ' || bytes/1024/1024) from v$log;
|
||||
|
||||
set head on
|
||||
set pages 999 lines 200
|
||||
col Date for a12
|
||||
col Total for 9999
|
||||
col 00 for 999
|
||||
col 01 for 999
|
||||
col 02 for 999
|
||||
col 03 for 999
|
||||
col 04 for 999
|
||||
col 05 for 999
|
||||
col 06 for 999
|
||||
col 07 for 999
|
||||
col 08 for 999
|
||||
col 09 for 999
|
||||
col 10 for 999
|
||||
col 11 for 999
|
||||
col 12 for 999
|
||||
col 13 for 999
|
||||
col 14 for 999
|
||||
col 15 for 999
|
||||
col 16 for 999
|
||||
col 17 for 999
|
||||
col 18 for 999
|
||||
col 19 for 999
|
||||
col 20 for 999
|
||||
col 21 for 999
|
||||
col 22 for 999
|
||||
col 23 for 999
|
||||
col 24 for 999
|
||||
|
||||
|
||||
select to_char(first_time, 'YYYY/MM/dd') "Date",
|
||||
count(1) "Total",
|
||||
sum(decode(to_char(first_time, 'hh24'),'00',1,0)) "00",
|
||||
sum(decode(to_char(first_time, 'hh24'),'01',1,0)) "01",
|
||||
sum(decode(to_char(first_time, 'hh24'),'02',1,0)) "02",
|
||||
sum(decode(to_char(first_time, 'hh24'),'03',1,0)) "03",
|
||||
sum(decode(to_char(first_time, 'hh24'),'04',1,0)) "04",
|
||||
sum(decode(to_char(first_time, 'hh24'),'05',1,0)) "05",
|
||||
sum(decode(to_char(first_time, 'hh24'),'06',1,0)) "06",
|
||||
sum(decode(to_char(first_time, 'hh24'),'07',1,0)) "07",
|
||||
sum(decode(to_char(first_time, 'hh24'),'08',1,0)) "08",
|
||||
sum(decode(to_char(first_time, 'hh24'),'09',1,0)) "09",
|
||||
sum(decode(to_char(first_time, 'hh24'),'10',1,0)) "10",
|
||||
sum(decode(to_char(first_time, 'hh24'),'11',1,0)) "11",
|
||||
sum(decode(to_char(first_time, 'hh24'),'12',1,0)) "12",
|
||||
sum(decode(to_char(first_time, 'hh24'),'13',1,0)) "13",
|
||||
sum(decode(to_char(first_time, 'hh24'),'14',1,0)) "14",
|
||||
sum(decode(to_char(first_time, 'hh24'),'15',1,0)) "15",
|
||||
sum(decode(to_char(first_time, 'hh24'),'16',1,0)) "16",
|
||||
sum(decode(to_char(first_time, 'hh24'),'17',1,0)) "17",
|
||||
sum(decode(to_char(first_time, 'hh24'),'18',1,0)) "18",
|
||||
sum(decode(to_char(first_time, 'hh24'),'19',1,0)) "19",
|
||||
sum(decode(to_char(first_time, 'hh24'),'20',1,0)) "20",
|
||||
sum(decode(to_char(first_time, 'hh24'),'21',1,0)) "21",
|
||||
sum(decode(to_char(first_time, 'hh24'),'22',1,0)) "22",
|
||||
sum(decode(to_char(first_time, 'hh24'),'23',1,0)) "23",
|
||||
sum(decode(to_char(first_time, 'hh24'),'24',1,0)) "24"
|
||||
from v$log_history
|
||||
group by to_char(first_time, 'YYYY/MM/dd')
|
||||
order by to_char(first_time, 'YYYY/MM/dd')
|
||||
;
|
||||
|
||||
prompt <h2>Taille des redolog par jour </h2>
|
||||
select
|
||||
to_char(first_time, 'YYYY/MM/dd') "Jour",
|
||||
count(*) "Nbr de fichiers",
|
||||
ROUND(sum(BLOCKS*BLOCK_SIZE)/1024/1024, 0) "Taille_Mo"
|
||||
from v$archived_log
|
||||
group by to_char(first_time, 'YYYY/MM/dd')
|
||||
order by to_char(first_time, 'YYYY/MM/dd')
|
||||
;
|
||||
|
||||
exit
|
||||
@@ -1,10 +0,0 @@
|
||||
prompt <h2>Fast Recovery Area Usage</h2>
|
||||
SELECT VALUE/1024/1024 TAILLE_FRA_MiB, ROUND((VALUE*TOT_PCT/100)/1024/1024,0) ESPACE_UTILISE_MiB,
|
||||
TOT_PCT POURCENTAGE_UTILISE
|
||||
FROM
|
||||
V$PARAMETER P,
|
||||
(SELECT SUM(PERCENT_SPACE_USED) TOT_PCT FROM V$FLASH_RECOVERY_AREA_USAGE) PCT_U
|
||||
WHERE NAME='db_recovery_file_dest_size';
|
||||
prompt
|
||||
SELECT * FROM V$FLASH_RECOVERY_AREA_USAGE;
|
||||
exit
|
||||
@@ -1,7 +0,0 @@
|
||||
prompt <h2>Last alertlog errors </h2>
|
||||
|
||||
set pages 999 lines 150
|
||||
select to_char(ORIGINATING_TIMESTAMP, 'DD-MM-YYYY HH-MM-SS') || ' : ' || message_text "Last alertlog (30 days)"
|
||||
FROM X$DBGALERTEXT
|
||||
WHERE originating_timestamp > systimestamp - 30 AND regexp_like(message_text, '(ORA-)');
|
||||
exit
|
||||
@@ -1,21 +0,0 @@
|
||||
prompt <h2>Last RMAN backups </h2>
|
||||
alter session set nls_date_format='DD/MM/YYYY HH24:MI:SS' ;
|
||||
set linesize 250 heading off;
|
||||
set heading on pagesize 999;
|
||||
column status format a25;
|
||||
column input_bytes_display format a12;
|
||||
column output_bytes_display format a12;
|
||||
column device_type format a10;
|
||||
|
||||
select
|
||||
b.input_type,
|
||||
b.status,
|
||||
to_char(b.start_time,'DD-MM-YYYY HH24:MI') "Start Time",
|
||||
to_char(b.end_time,'DD-MM-YYYY HH24:MI') "End Time",
|
||||
b.output_device_type device_type,
|
||||
b.input_bytes_display,
|
||||
b.output_bytes_display
|
||||
FROM v$rman_backup_job_details b
|
||||
WHERE b.start_time > (SYSDATE - 30)
|
||||
ORDER BY b.start_time asc;
|
||||
exit
|
||||
@@ -1,6 +0,0 @@
|
||||
prompt <h2>SYSAUX Occupants</h2>
|
||||
SELECT /*+ NO_MERGE */
|
||||
v.*, ROUND(v.space_usage_kbytes / POWER(10,6), 3) space_usage_gbs
|
||||
FROM v$sysaux_occupants v
|
||||
ORDER BY 1;
|
||||
exit
|
||||
@@ -1,20 +0,0 @@
|
||||
prompt <h2>Database Users </h2>
|
||||
set pages 999
|
||||
ALTER SESSION SET NLS_DATE_FORMAT ='YYYY/MM/DD HH24:MI';
|
||||
-- select USERNAME, ACCOUNT_STATUS, PROFILE, DEFAULT_TABLESPACE DEF_TBS, TEMPORARY_TABLESPACE TMP_TBS, CREATED, PASSWORD_VERSIONS from dba_users order by created;
|
||||
SELECT /*+ NO_MERGE */
|
||||
x.username,
|
||||
x.user_id,
|
||||
x.account_status,
|
||||
x.lock_date,
|
||||
x.expiry_date,
|
||||
x.default_tablespace,
|
||||
x.temporary_tablespace,
|
||||
x.created,
|
||||
x.profile, x.password_versions, x.password_change_date
|
||||
--,c.name con_name
|
||||
FROM dba_users x
|
||||
--LEFT OUTER JOIN v$containers c ON c.con_id = x.con_id
|
||||
ORDER BY x.username
|
||||
--,x.con_id;
|
||||
exit
|
||||
@@ -1,71 +0,0 @@
|
||||
-- Qui est connecté à la base :
|
||||
prompt <h2>Sessions Aggregate per User and Type</h2>
|
||||
WITH x as (
|
||||
SELECT COUNT(*),
|
||||
--con_id,
|
||||
username,
|
||||
inst_id,
|
||||
type,
|
||||
server,
|
||||
status,
|
||||
state
|
||||
FROM gv$session
|
||||
GROUP BY
|
||||
--con_id,
|
||||
username,
|
||||
inst_id,
|
||||
type,
|
||||
server,
|
||||
status,
|
||||
state
|
||||
)
|
||||
SELECT x.*
|
||||
--,c.name con_name
|
||||
FROM x
|
||||
--LEFT OUTER JOIN v$containers c ON c.con_id = x.con_id
|
||||
ORDER BY
|
||||
1 DESC,
|
||||
--x.con_id,
|
||||
x.username, x.inst_id, x.type, x.server, x.status, x.state;
|
||||
|
||||
|
||||
prompt <h2>Sessions Aggregate per Module and Action</h2>
|
||||
WITH x AS (
|
||||
SELECT COUNT(*),
|
||||
--con_id,
|
||||
module,
|
||||
action,
|
||||
inst_id,
|
||||
type,
|
||||
server,
|
||||
status,
|
||||
state
|
||||
FROM gv$session
|
||||
GROUP BY
|
||||
--con_id,
|
||||
module,
|
||||
action,
|
||||
inst_id,
|
||||
type,
|
||||
server,
|
||||
status,
|
||||
state
|
||||
)
|
||||
SELECT x.*
|
||||
--,c.name con_name
|
||||
FROM x
|
||||
--LEFT OUTER JOIN v$containers c ON c.con_id = x.con_id
|
||||
ORDER BY
|
||||
1 DESC,
|
||||
--x.con_id,
|
||||
x.module, x.action, x.inst_id, x.type, x.server, x.status, x.state;
|
||||
|
||||
prompt <h2>Who is connected ? </h2>
|
||||
|
||||
set pages 999 lines 200
|
||||
col PROGRAM for a35
|
||||
col MACHINE for a20
|
||||
col OSUSER for a10
|
||||
alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';
|
||||
select OSUSER, MACHINE, PROGRAM, STATE, LOGON_TIME, EVENT from v$session order by LOGON_TIME asc;
|
||||
exit
|
||||
@@ -1,3 +0,0 @@
|
||||
prompt <h2>Invalid objects</h2>
|
||||
select owner, count(*) "invalid objects" FROM dba_objects WHERE status <> 'VALID' group by owner order by owner;
|
||||
exit
|
||||
@@ -1,3 +0,0 @@
|
||||
prompt <h2>Autotasks status </h2>
|
||||
select client_name, status,attributes,service_name from dba_autotask_client;
|
||||
exit
|
||||
@@ -1,50 +0,0 @@
|
||||
-- SCRIPT - to Set the 'SESSION_CACHED_CURSORS' and 'OPEN_CURSORS' Parameters Based on Usage (Doc ID 208857.1)
|
||||
prompt <h2>Sessions and Cursors usage </h2>
|
||||
select
|
||||
'session_cached_cursors' parameter,
|
||||
lpad(value, 5) value,
|
||||
decode(value, 0, ' n/a', to_char(100 * used / value, '990') || '%') usage
|
||||
from
|
||||
( select
|
||||
max(s.value) used
|
||||
from
|
||||
v$statname n,
|
||||
v$sesstat s
|
||||
where
|
||||
n.name = 'session cursor cache count' and
|
||||
s.statistic# = n.statistic#
|
||||
),
|
||||
( select
|
||||
value
|
||||
from
|
||||
v$parameter
|
||||
where
|
||||
name = 'session_cached_cursors'
|
||||
)
|
||||
union all
|
||||
select
|
||||
'open_cursors',
|
||||
lpad(value, 5),
|
||||
to_char(100 * used / value, '990') || '%'
|
||||
from
|
||||
( select
|
||||
max(sum(s.value)) used
|
||||
from
|
||||
v$statname n,
|
||||
v$sesstat s
|
||||
where
|
||||
n.name in ('opened cursors current') and
|
||||
s.statistic# = n.statistic#
|
||||
group by
|
||||
s.sid
|
||||
),
|
||||
( select
|
||||
value
|
||||
from
|
||||
v$parameter
|
||||
where
|
||||
name = 'open_cursors'
|
||||
)
|
||||
;
|
||||
|
||||
exit
|
||||
@@ -1,7 +0,0 @@
|
||||
prompt <h2>Failed scheduled jobs </h2>
|
||||
SELECT owner, job_name, job_type, state, TRUNC(start_date) SDATE, TRUNC(next_run_date) NXTRUN, failure_count
|
||||
FROM dba_scheduler_jobs
|
||||
WHERE failure_count <> 0;
|
||||
exit
|
||||
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
prompt <h2>Table Statistics Summary</h2>
|
||||
alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';
|
||||
WITH x as (
|
||||
SELECT /*+ NO_MERGE */
|
||||
--con_id,
|
||||
owner,
|
||||
object_type,
|
||||
COUNT(*) type_count,
|
||||
SUM(DECODE(last_analyzed, NULL, 1, 0)) not_analyzed,
|
||||
SUM(DECODE(stattype_locked, NULL, 0, 1)) stats_locked,
|
||||
SUM(DECODE(stale_stats, 'YES', 1, 0)) stale_stats,
|
||||
SUM(num_rows) sum_num_rows,
|
||||
MAX(num_rows) max_num_rows,
|
||||
SUM(blocks) sum_blocks,
|
||||
MAX(blocks) max_blocks,
|
||||
MIN(last_analyzed) min_last_analyzed,
|
||||
MAX(last_analyzed) max_last_analyzed,
|
||||
MEDIAN(last_analyzed) median_last_analyzed,
|
||||
PERCENTILE_DISC(0.75) WITHIN GROUP (ORDER BY last_analyzed) last_analyzed_75_percentile,
|
||||
PERCENTILE_DISC(0.90) WITHIN GROUP (ORDER BY last_analyzed) last_analyzed_90_percentile,
|
||||
PERCENTILE_DISC(0.95) WITHIN GROUP (ORDER BY last_analyzed) last_analyzed_95_percentile,
|
||||
PERCENTILE_DISC(0.99) WITHIN GROUP (ORDER BY last_analyzed) last_analyzed_99_percentile
|
||||
FROM dba_tab_statistics s
|
||||
WHERE table_name NOT LIKE 'BIN$%' -- bug 9930151 reported by brad peek
|
||||
AND NOT EXISTS (
|
||||
SELECT /*+ NO_MERGE */ NULL
|
||||
FROM dba_external_tables e
|
||||
WHERE e.owner = s.owner
|
||||
--AND e.con_id = s.con_id
|
||||
AND e.table_name = s.table_name)
|
||||
GROUP BY
|
||||
--con_id,
|
||||
owner, object_type
|
||||
)
|
||||
SELECT x.*
|
||||
--,c.name con_name
|
||||
FROM x
|
||||
--LEFT OUTER JOIN v$containers c ON c.con_id = x.con_id
|
||||
ORDER BY
|
||||
--x.con_id,
|
||||
owner, object_type;
|
||||
exit
|
||||
@@ -1,4 +0,0 @@
|
||||
|
||||
<br />
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user