18 Commits

Author SHA1 Message Date
Yacine31
a4bc29b998 formatage SQL 2024-02-10 02:30:28 +01:00
Yacine31
2d51059e6c Create 39_feature_usage_statistics.sql 2024-02-10 02:00:34 +01:00
Yacine31
5ed8a80cf9 Update 20a_tbs_details.sql 2024-02-02 03:11:51 +01:00
Yacine31
4d93f45e49 Update 01_asm.sql 2024-02-02 01:47:43 +01:00
Yacine31
2dba253a32 Update 09_os_info.sh 2024-02-02 00:52:28 +01:00
Yacine31
531c6f407b Update 09_os_info.sh 2024-02-02 00:50:31 +01:00
Yacine31
1f0c66490c Update 09_os_info.sh 2024-02-02 00:48:15 +01:00
Yacine31
ba2f2459a2 Update 09_os_info.sh 2024-02-02 00:45:55 +01:00
Yacine31
ed42bcb1ca Update 09_os_info.sh 2024-02-02 00:43:51 +01:00
Yacine31
29f5ad5b72 Delete 11_listener.sh 2024-02-02 00:24:46 +01:00
Yacine31
9e95c3c95f update listener status 2024-02-02 00:24:23 +01:00
Yacine31
e66f735e74 Update 11_listener.sh 2024-02-02 00:11:20 +01:00
Yacine31
f0f338d9a4 Update 09_os_info.sh 2024-02-02 00:10:56 +01:00
Yacine31
2d82ee31e5 Create 11_listener.sh 2024-02-02 00:09:35 +01:00
Yacine31
b093e617bf Update 09_os_info.sh 2024-02-02 00:04:18 +01:00
Yacine31
5563060ceb Update 09_os_info.sh 2024-02-02 00:03:00 +01:00
Yacine31
315eb47b5c Update 09_os_info.sh
ajout de lsnrctl status
2024-02-01 23:58:56 +01:00
Yacine31
b3f2099e19 Create 26_rman_configuration.sql 2024-01-23 18:51:42 +01:00
36 changed files with 563 additions and 398 deletions

View File

@@ -1,53 +1,50 @@
PRO <h2>Configuratiom ASM</h2> PRO <h2>Configuratiom ASM</h2>
SELECT SELECT
dg.name, DG.NAME,
dg.state, DG.STATE,
dg.type, DG.TYPE,
dg.total_mb, DG.TOTAL_MB,
dg.free_mb, DG.FREE_MB,
dg.usable_file_mb, DG.USABLE_FILE_MB,
compatibility, COMPATIBILITY,
dg.database_compatibility DG.DATABASE_COMPATIBILITY
FROM FROM
v$asm_diskgroup dg; V$ASM_DISKGROUP DG;
-- Viewing disks in disk groups with V$ASM_DISK -- Viewing disks in disk groups with V$ASM_DISK
SELECT SELECT
dg.name "Disk Grp Name", DG.NAME "Disk Grp Name",
a.name "Name", A.NAME "Name",
a.failgroup, A.FAILGROUP,
a.path, A.PATH,
a.os_mb, A.OS_MB,
a.total_mb, A.TOTAL_MB,
a.free_mb, A.FREE_MB,
a.cold_used_mb, A.COLD_USED_MB,
a.header_status, A.HEADER_STATUS,
a.mode_status, A.MODE_STATUS,
a.state, A.STATE,
a.redundancy, A.REDUNDANCY,
to_char(a.create_date, 'DD/MM/YYYY HH24:MI') TO_CHAR(A.CREATE_DATE, 'DD/MM/YYYY HH24:MI') "Create Date"
FROM FROM
v$asm_disk a, V$ASM_DISK A,
v$asm_diskgroup dg V$ASM_DISKGROUP DG
WHERE WHERE
a.group_number = dg.group_number A.GROUP_NUMBER = DG.GROUP_NUMBER
ORDER BY ORDER BY
dg.name, DG.NAME,
a.name A.NAME;
;
-- Viewing disk group clients with V$ASM_CLIENT -- Viewing disk group clients with V$ASM_CLIENT
SELECT SELECT
dg.name AS diskgroup, DG.NAME AS DISKGROUP,
c.instance_name AS instance, C.INSTANCE_NAME AS INSTANCE,
db_name AS dbname, DB_NAME AS DBNAME,
software_version AS software, SOFTWARE_VERSION AS SOFTWARE,
compatible_version AS compatible COMPATIBLE_VERSION AS COMPATIBLE
FROM FROM
v$asm_diskgroup dg, V$ASM_DISKGROUP DG,
v$asm_client c V$ASM_CLIENT C
WHERE WHERE
dg.group_number = c.group_number; DG.GROUP_NUMBER = C.GROUP_NUMBER;

View File

@@ -1,10 +1,13 @@
prompt <h2>Les dernières erreurs ASM (Les 30 derniers jours et les 50 dernières lignes)</h2> prompt <h2>Les dernières erreurs ASM (Les 30 derniers jours et les 50 dernières lignes)</h2>
-- set pages 99 SELECT
select to_char(ORIGINATING_TIMESTAMP, 'DD-MM-YYYY HH-MM-SS') "Date", message_text "Message" TO_CHAR(ORIGINATING_TIMESTAMP, 'DD-MM-YYYY HH-MM-SS') "Date",
FROM X$DBGALERTEXT MESSAGE_TEXT "Message"
WHERE originating_timestamp > systimestamp - 30 FROM
AND regexp_like(message_text, '(ORA-)') X$DBGALERTEXT
AND rownum <=50 WHERE
order by originating_timestamp desc; ORIGINATING_TIMESTAMP > SYSTIMESTAMP - 30
AND REGEXP_LIKE(MESSAGE_TEXT, '(ORA-)')
AND ROWNUM <=50
ORDER BY
ORIGINATING_TIMESTAMP DESC;

View File

@@ -11,6 +11,24 @@ echo "<pre>"
ps -ef | grep tnslsnr| grep -v grep ps -ef | grep tnslsnr| grep -v grep
echo "</pre>" echo "</pre>"
echo "<h2>Statut des listeners :</h2>"
ps -ef | grep tnslsnr| grep -v grep | while read l
do
# Récupérer le chemin du binaire tnslsnr à partir de la sortie de ps
binary_path=$(echo $l | awk '{print $8}' | sed 's#/bin/tnslsnr##')
# Extraire le nom du listener
listener_name=$(echo $l | awk '{print $9}')
# Construire la commande lsnrctl status
lsnrctl_command="$binary_path/bin/lsnrctl status $listener_name"
# exécuter la commande
echo "<br><pre>"
echo $lsnrctl_command
echo export TNS_ADMIN=$binary_path/network/admin
export TNS_ADMIN=$binary_path/network/admin
eval "$lsnrctl_command"
echo "</pre><br>"
done
echo "<h2>Uptime :</h2>" echo "<h2>Uptime :</h2>"
echo "<pre>" echo "<pre>"
uptime uptime

View File

@@ -39,14 +39,6 @@ CASE WHEN sga.target > 0 THEN 'SGA ' ||TRIM(TO_CHAR(ROUND(sga.target / POWER(2
CASE WHEN pga.target > 0 THEN 'PGA ' ||TRIM(TO_CHAR(ROUND(pga.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 CASE WHEN mem.target > 0 THEN 'AMM' ELSE CASE WHEN sga.target > 0 THEN 'ASMM' ELSE 'MANUAL' END END
FROM mem, sga, pga 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 UNION ALL
SELECT 'Physical CPUs:', core.cnt||' cores'||CASE WHEN rac.instances > 0 THEN ', on '||rac.db_type END FROM rac, core SELECT 'Physical CPUs:', core.cnt||' cores'||CASE WHEN rac.instances > 0 THEN ', on '||rac.db_type END FROM rac, core
UNION ALL UNION ALL

View File

@@ -1,21 +1,4 @@
prompt <h2>Taille de la base de données :</h2> prompt <h2>Taille de la base de données :</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 WITH
sizes AS ( sizes AS (

View File

@@ -1,2 +1,6 @@
prompt <h2>Database/Version</h2> prompt <h2>Database/Version</h2>
select * from v$version;
SELECT
*
FROM
V$VERSION;

View File

@@ -1,2 +1,13 @@
prompt <h2>Paramèters de la base de données : </h2> prompt <h2>Paramèters de la base de données : </h2>
select NAME, DISPLAY_VALUE, DESCRIPTION, UPDATE_COMMENT from v$parameter where ISDEFAULT='FALSE' order by name;
SELECT
NAME,
DISPLAY_VALUE,
DESCRIPTION,
UPDATE_COMMENT
FROM
V$PARAMETER
WHERE
ISDEFAULT='FALSE'
ORDER BY
NAME;

View File

@@ -1,3 +1,8 @@
prompt <h2>Paramètres NLS au niveau de la base de données :</h2> prompt <h2>Paramètres NLS au niveau de la base de données :</h2>
select * from nls_database_parameters order by parameter;
SELECT
*
FROM
NLS_DATABASE_PARAMETERS
ORDER BY
PARAMETER;

View File

@@ -1,8 +1,8 @@
prompt <h2>Fonctionnalités installées dans la base de données (DBA_REGISTRY) :</h2> prompt <h2>Fonctionnalités installées dans la base de données (DBA_REGISTRY) :</h2>
SELECT *
FROM dba_registry SELECT
*
FROM
DBA_REGISTRY
ORDER BY ORDER BY
comp_id; COMP_ID;

View File

@@ -1,10 +1,11 @@
prompt <h2>Resource Limit (GV$RESOURCE_LIMIT)</h2> prompt <h2>Resource Limit (GV$RESOURCE_LIMIT)</h2>
SELECT SELECT
* *
FROM FROM
gv$resource_limit GV$RESOURCE_LIMIT
WHERE WHERE
resource_name IN ( 'processes', 'sessions' ) RESOURCE_NAME IN ( 'processes', 'sessions' )
ORDER BY ORDER BY
resource_name, RESOURCE_NAME,
inst_id; INST_ID;

View File

@@ -1,9 +1,14 @@
prompt <h2>Les 50 dernières opérations de Resize de la mémoire :</h2> prompt <h2>Les 50 dernières opérations de Resize de la mémoire :</h2>
alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';
SELECT * ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
FROM gv$memory_resize_ops
where rownum <=50 SELECT
ORDER BY *
inst_id, FROM
start_time DESC, GV$MEMORY_RESIZE_OPS
component; WHERE
ROWNUM <=50
ORDER BY
INST_ID,
START_TIME DESC,
COMPONENT;

View File

@@ -1,4 +1,19 @@
prompt <h2>SGA Target Advice</h2> prompt <h2>SGA Target Advice</h2>
select * from gv$sga_target_advice;
SELECT
*
FROM
GV$SGA_TARGET_ADVICE;
prompt <h2>PGA Target Advice</h2> prompt <h2>PGA Target Advice</h2>
select * from gv$pga_target_advice;
SELECT
*
FROM
GV$PGA_TARGET_ADVICE;
prompt <h2>Memory Target Advice</h2>
SELECT
*
FROM
GV$MEMORY_TARGET_ADVICE;

View File

@@ -1,40 +1,9 @@
prompt <h2>Détail des tablespaces : </h2> prompt <h2>Détail des tablespaces : </h2>
COL TABLESPACE_NAME FORMAT A20 HEAD "Nom Tablespace" -- COL TABLESPACE_NAME FORMAT A20 HEAD "Nom Tablespace"
COL PCT_OCCUPATION_THEORIQUE FORMAT 990.00 HEAD "% Occup" -- COL PCT_OCCUPATION_THEORIQUE FORMAT 990.00 HEAD "% Occup"
COL TAILLE_MIB FORMAT 99999990.00 HEAD "Taille MB" -- COL TAILLE_MIB FORMAT 99999990.00 HEAD "Taille MB"
COL TAILLE_MAX_MIB FORMAT 99999990.00 HEAD "Taille max MB" -- COL TAILLE_MAX_MIB FORMAT 99999990.00 HEAD "Taille max MB"
COL TAILLE_OCCUPEE_MIB FORMAT 99999990.00 HEAD "Espace occupé 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;--
COL TABLESPACE_NAME FORMAT A20 HEAD "Tablespace" COL TABLESPACE_NAME FORMAT A20 HEAD "Tablespace"
COL alloc FORMAT 99999999.00 HEAD "Allocated MB" COL alloc FORMAT 99999999.00 HEAD "Allocated MB"
@@ -45,6 +14,7 @@ COL Pct_Used FORMAT 999.00 HEAD "% Used"
select select
a.tablespace_name, a.tablespace_name,
t.bigfile,
a.bytes_alloc/1024/1024 alloc, a.bytes_alloc/1024/1024 alloc,
(a.bytes_alloc - nvl(b.bytes_free, 0))/1024/1024 used, (a.bytes_alloc - nvl(b.bytes_free, 0))/1024/1024 used,
(nvl(b.bytes_free, 0))/1024/1024 free, (nvl(b.bytes_free, 0))/1024/1024 free,
@@ -77,6 +47,7 @@ where
union all union all
select select
h.tablespace_name, h.tablespace_name,
dt.bigfile,
(sum(h.bytes_free + h.bytes_used))/1024/1024 alloc, (sum(h.bytes_free + h.bytes_used))/1024/1024 alloc,
(sum(nvl(p.bytes_used, 0)))/1024/1024 used, (sum(nvl(p.bytes_used, 0)))/1024/1024 used,
(sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)))/1024/1024 free, (sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)))/1024/1024 free,
@@ -95,7 +66,8 @@ where
and h.tablespace_name = dt.tablespace_name and h.tablespace_name = dt.tablespace_name
group by group by
h.tablespace_name, h.tablespace_name,
dt.contents dt.contents,
dt.bigfile
order by order by
1 1
; ;

View File

@@ -1,2 +1,6 @@
prompt <h2>Existance de blocks corrompus :</h2> prompt <h2>Existance de blocks corrompus :</h2>
select * from v$database_block_corruption;
SELECT
*
FROM
V$DATABASE_BLOCK_CORRUPTION;

View File

@@ -1,13 +1,12 @@
prompt <h2>Fichiers de journalisation (Redolog) :</h2> prompt <h2>Fichiers de journalisation (Redolog) :</h2>
alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';
ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
SELECT SELECT
* *
FROM FROM
v$log V$LOG
ORDER BY ORDER BY
group#, GROUP#,
thread#, THREAD#,
sequence#; SEQUENCE#;

View File

@@ -1,10 +1,14 @@
prompt <h2>Taille des redolog par jour :</h2> prompt <h2>Taille des redolog par jour :</h2>
select
to_char(first_time, 'YYYY/MM/dd') "Jour", SELECT
count(*) "Nbr de fichiers", TO_CHAR(FIRST_TIME, 'YYYY/MM/dd') "Jour",
ROUND(sum(BLOCKS*BLOCK_SIZE)/1024/1024, 0) "Taille_Mo" COUNT(*) "Nbr de fichiers",
from v$archived_log ROUND(SUM(BLOCKS*BLOCK_SIZE)/1024/1024, 0) "Taille_Mo"
where first_time > systimestamp - 30 FROM
group by to_char(first_time, 'YYYY/MM/dd') V$ARCHIVED_LOG
order by to_char(first_time, 'YYYY/MM/dd') WHERE
; FIRST_TIME > SYSTIMESTAMP - 30
GROUP BY
TO_CHAR(FIRST_TIME, 'YYYY/MM/dd')
ORDER BY
TO_CHAR(FIRST_TIME, 'YYYY/MM/dd');

View File

@@ -1,11 +1,36 @@
prompt <h2>Fast Recovery Area Usage</h2> prompt <h2>Fast Recovery Area Usage</h2>
select 'Taille FRA MiB' as property, p.value / 1024 / 1024 as value from
v$parameter p WHERE name = 'db_recovery_file_dest_size' SELECT
union all 'Taille FRA MiB' AS PROPERTY,
select 'Espace utilise MiB' as property, round((p.value * tot_pct / 100) / 1024 / 1024, 0) as value from P.VALUE / 1024 / 1024 AS VALUE
( SELECT SUM(percent_space_used) tot_pct FROM v$flash_recovery_area_usage ) , V$PARAMETER P FROM
WHERE name = 'db_recovery_file_dest_size' V$PARAMETER P
union all WHERE
select 'Pourcentage utilise' as property, tot_pct as value from NAME = 'db_recovery_file_dest_size'
( SELECT SUM(percent_space_used) tot_pct FROM v$flash_recovery_area_usage ) UNION
; ALL
SELECT
'Espace utilise MiB' AS PROPERTY,
ROUND((P.VALUE * TOT_PCT / 100) / 1024 / 1024, 0) AS VALUE
FROM
(
SELECT
SUM(PERCENT_SPACE_USED) TOT_PCT
FROM
V$FLASH_RECOVERY_AREA_USAGE
) ,
V$PARAMETER P
WHERE
NAME = 'db_recovery_file_dest_size'
UNION
ALL
SELECT
'Pourcentage utilise' AS PROPERTY,
TOT_PCT AS VALUE
FROM
(
SELECT
SUM(PERCENT_SPACE_USED) TOT_PCT
FROM
V$FLASH_RECOVERY_AREA_USAGE
) ;

View File

@@ -1,10 +1,13 @@
prompt <h2>Les dernières erreurs de la base de données (Les 30 derniers jours et les 50 dernières lignes)</h2> prompt <h2>Les dernières erreurs de la base de données (Les 30 derniers jours et les 50 dernières lignes)</h2>
-- set pages 99 SELECT
select to_char(ORIGINATING_TIMESTAMP, 'DD-MM-YYYY HH-MM-SS') "Date", message_text "Message" TO_CHAR(ORIGINATING_TIMESTAMP, 'DD-MM-YYYY HH-MM-SS') "Date",
FROM X$DBGALERTEXT MESSAGE_TEXT "Message"
WHERE originating_timestamp > systimestamp - 30 FROM
AND regexp_like(message_text, '(ORA-)') X$DBGALERTEXT
AND rownum <=50 WHERE
order by originating_timestamp desc; ORIGINATING_TIMESTAMP > SYSTIMESTAMP - 30
AND REGEXP_LIKE(MESSAGE_TEXT, '(ORA-)')
AND ROWNUM <=50
ORDER BY
ORIGINATING_TIMESTAMP DESC;

View File

@@ -0,0 +1,6 @@
prompt <h2>Configuration RMAN: pramètres modifiés :</h2>
SELECT
*
FROM
V$RMAN_CONFIGURATION;

View File

@@ -1,33 +1,30 @@
prompt <h2>Les dernières sauvegardes RMAN (30 derniers jours/50 dernières lignes)</h2> prompt <h2>Les dernières sauvegardes RMAN (30 derniers jours/50 dernières lignes)</h2>
alter session set nls_date_format='DD/MM/YYYY HH24:MI:SS' ;
-- set linesize 250 heading off; ALTER SESSION SET NLS_DATE_FORMAT='DD/MM/YYYY HH24:MI:SS';
-- 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 SELECT
b.SESSION_KEY "Session Key", B.SESSION_KEY "Session Key",
b.input_type "Type", B.INPUT_TYPE "Type",
to_char(b.start_time, 'DD-MM-YYYY HH24:MI') "Start Time", TO_CHAR(B.START_TIME, 'DD-MM-YYYY HH24:MI') "Start Time",
to_char(b.end_time, 'DD-MM-YYYY HH24:MI') "End Time", TO_CHAR(B.END_TIME, 'DD-MM-YYYY HH24:MI') "End Time",
to_char(trunc(sysdate) + numtodsinterval(ELAPSED_SECONDS, 'second'),'hh24:mi:ss') "Duration", TO_CHAR(TRUNC(SYSDATE) + NUMTODSINTERVAL(ELAPSED_SECONDS, 'second'), 'hh24:mi:ss') "Duration",
b.output_device_type "Device Type", B.OUTPUT_DEVICE_TYPE "Device Type",
b.input_bytes_display "Input Bytes", B.INPUT_BYTES_DISPLAY "Input Bytes",
b.output_bytes_display "Output Bytes", B.OUTPUT_BYTES_DISPLAY "Output Bytes",
CASE CASE
WHEN b.status = 'FAILED' THEN WHEN B.STATUS = 'FAILED' THEN
'<span class="highlight">' || b.status || '</span>' '<span class="highlight">'
|| B.STATUS
|| '</span>'
ELSE ELSE
b.status B.STATUS
END "Status" END "Status"
FROM FROM
v$rman_backup_job_details b V$RMAN_BACKUP_JOB_DETAILS B
WHERE WHERE
b.start_time > ( sysdate - 30 ) B.START_TIME > ( SYSDATE - 30 )
AND ROWNUM <= 50 AND ROWNUM <= 50
ORDER BY ORDER BY
b.SESSION_KEY desc; B.SESSION_KEY DESC;
-- b.start_time DESC;
-- b.start_time DESC;

View File

@@ -1,5 +1,9 @@
prompt <h2>SYSAUX Occupants</h2> prompt <h2>SYSAUX Occupants</h2>
SELECT /*+ NO_MERGE */
v.*, ROUND(v.space_usage_kbytes / POWER(10,6), 3) space_usage_gbs SELECT /*+ NO_MERGE */
FROM v$sysaux_occupants v V.*,
ORDER BY 1; ROUND(V.SPACE_USAGE_KBYTES / POWER(10, 6), 3) SPACE_USAGE_GBS
FROM
V$SYSAUX_OCCUPANTS V
ORDER BY
1;

View File

@@ -1,18 +1,19 @@
prompt <h2>DBA Users </h2> prompt <h2>DBA Users </h2>
set pages 999
ALTER SESSION SET NLS_DATE_FORMAT ='YYYY/MM/DD HH24:MI';
SELECT
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
FROM dba_users x
ORDER BY x.username
;
ALTER SESSION SET NLS_DATE_FORMAT ='YYYY/MM/DD HH24:MI';
SELECT
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
FROM
DBA_USERS X
ORDER BY
X.USERNAME;

View File

@@ -1,2 +1,9 @@
prompt <h2>DBA_Profiles </h2> prompt <h2>DBA_Profiles </h2>
select * from DBA_Profiles order by profile, resource_name;
SELECT
*
FROM
DBA_PROFILES
ORDER BY
PROFILE,
RESOURCE_NAME;

View File

@@ -1,16 +1,16 @@
prompt <h2>Taille des objets par schéma (Mo):</h2> prompt <h2>Taille des objets par schéma (Mo):</h2>
select
ds.owner "Owner", SELECT
round(sum(ds.bytes) / 1024 / 1024) "Schema Size MB", DS.OWNER "Owner",
du.default_tablespace "Default Tablespace" ROUND(SUM(DS.BYTES) / 1024 / 1024) "Schema Size MB",
from DU.DEFAULT_TABLESPACE "Default Tablespace"
dba_segments ds, FROM
dba_users du DBA_SEGMENTS DS,
where DBA_USERS DU
ds.OWNER = du.USERNAME WHERE
group by DS.OWNER = DU.USERNAME
ds.owner, GROUP BY
du.default_tablespace DS.OWNER,
order by DU.DEFAULT_TABLESPACE
ds.owner ORDER BY
; DS.OWNER;

View File

@@ -1,29 +1,39 @@
-- Qui est connecté à la base : -- Qui est connecté à la base :
prompt <h2>Sessions Aggregate per User and Type</h2> prompt <h2>Sessions Aggregate per User and Type</h2>
WITH x as (
SELECT COUNT(*), WITH X AS (
--con_id, SELECT
username, COUNT(*),
inst_id, --con_id,
type, USERNAME,
server, INST_ID,
status, TYPE,
state SERVER,
FROM gv$session STATUS,
GROUP BY STATE
--con_id, FROM
username, GV$SESSION
inst_id, GROUP BY
type, --con_id,
server, USERNAME,
status, INST_ID,
state TYPE,
SERVER,
STATUS,
STATE
) )
SELECT x.* SELECT
--,c.name con_name X.*
FROM x --,c.name con_name
--LEFT OUTER JOIN v$containers c ON c.con_id = x.con_id FROM
ORDER BY X
--LEFT OUTER JOIN v$containers c ON c.con_id = x.con_id
ORDER BY
1 DESC, 1 DESC,
--x.con_id, --x.con_id,
x.username, x.inst_id, x.type, x.server, x.status, x.state; X.USERNAME,
X.INST_ID,
X.TYPE,
X.SERVER,
X.STATUS,
X.STATE;

View File

@@ -1,30 +1,41 @@
prompt <h2>Sessions Aggregate per Module and Action</h2> prompt <h2>Sessions Aggregate per Module and Action</h2>
WITH x AS (
SELECT COUNT(*), WITH X AS (
--con_id, SELECT
module, COUNT(*),
action, --con_id,
inst_id, MODULE,
type, ACTION,
server, INST_ID,
status, TYPE,
state SERVER,
FROM gv$session STATUS,
GROUP BY STATE
--con_id, FROM
module, GV$SESSION
action, GROUP BY
inst_id, --con_id,
type, MODULE,
server, ACTION,
status, INST_ID,
state TYPE,
SERVER,
STATUS,
STATE
) )
SELECT x.* SELECT
--,c.name con_name X.*
FROM x --,c.name con_name
--LEFT OUTER JOIN v$containers c ON c.con_id = x.con_id FROM
ORDER BY X
1 DESC, --LEFT OUTER JOIN v$containers c ON c.con_id = x.con_id
--x.con_id, ORDER BY
x.module, x.action, x.inst_id, x.type, x.server, x.status, x.state; 1 DESC,
--x.con_id,
X.MODULE,
X.ACTION,
X.INST_ID,
X.TYPE,
X.SERVER,
X.STATUS,
X.STATE;

View File

@@ -1,9 +1,23 @@
prompt <h2>Who is connected ? </h2> prompt <h2>Who is connected ? </h2>
set pages 999 lines 200 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;
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;

View File

@@ -1,3 +1,13 @@
prompt <h2>Invalid objects</h2> prompt <h2>Invalid objects</h2>
select owner, count(*) "invalid objects" FROM dba_objects WHERE status <> 'VALID' group by owner order by owner;
exit SELECT
OWNER,
COUNT(*) "invalid objects"
FROM
DBA_OBJECTS
WHERE
STATUS <> 'VALID'
GROUP BY
OWNER
ORDER BY
OWNER;

View File

@@ -1,26 +1,31 @@
prompt <h2>Les objets par utilisateur</h2> prompt <h2>Les objets par utilisateur</h2>
select * from
( SELECT
select owner, object_type ,count(*) as object_count from dba_objects *
where owner not in ('ANONYMOUS','APEX_180200','APEX_INSTANCE_ADMIN_USER','APEX_PUBLIC_USER','APPQOSSYS','AUDSYS','CTXSYS','DBSFWUSER','DBSNMP','DIP','DVF','DVSYS','FLOWS_FILES','GGSYS','GSMADMIN_INTERNAL','GSMCATUSER','GSMUSER','LBACSYS','MDDATA','MDSYS','OJVMSYS','OLAPSYS','ORACLE_OCM','ORDDATA','ORDPLUGINS','ORDSYS','OUTLN','REMOTE_SCHEDULER_AGENT','SI_INFORMTN_SCHEMA','SYS','SYS$UMF','SYSBACKUP','SYSDG','SYSKM','SYSRAC','SYSTEM','WMSYS','XDB','XS$NULL') FROM
group by owner, object_type order by owner, object_type
)
pivot
( (
max(object_count) SELECT
for object_type in ( OWNER,
'TABLE', OBJECT_TYPE,
'VIEW', COUNT(*) AS OBJECT_COUNT
'INDEX', FROM
'FUNCTION', DBA_OBJECTS
'LOB', WHERE
'PACKAGE', OWNER NOT IN ('ANONYMOUS', 'APEX_180200', 'APEX_INSTANCE_ADMIN_USER', 'APEX_PUBLIC_USER', 'APPQOSSYS', 'AUDSYS', 'CTXSYS', 'DBSFWUSER', 'DBSNMP', 'DIP', 'DVF', 'DVSYS', 'FLOWS_FILES', 'GGSYS', 'GSMADMIN_INTERNAL', 'GSMCATUSER', 'GSMUSER', 'LBACSYS', 'MDDATA', 'MDSYS', 'OJVMSYS', 'OLAPSYS', 'ORACLE_OCM', 'ORDDATA', 'ORDPLUGINS', 'ORDSYS', 'OUTLN', 'REMOTE_SCHEDULER_AGENT', 'SI_INFORMTN_SCHEMA', 'SYS', 'SYS$UMF', 'SYSBACKUP', 'SYSDG', 'SYSKM', 'SYSRAC', 'SYSTEM', 'WMSYS', 'XDB', 'XS$NULL')
'PROCEDURE', GROUP BY
'TRIGGER', OWNER,
'SYNONYM' OBJECT_TYPE
) ORDER BY
) OWNER,
order by owner OBJECT_TYPE
; ) PIVOT ( MAX(OBJECT_COUNT) FOR OBJECT_TYPE IN ( 'TABLE',
'VIEW',
'INDEX',
'FUNCTION',
'LOB',
'PACKAGE',
'PROCEDURE',
'TRIGGER',
'SYNONYM' ) )
ORDER BY
OWNER;

View File

@@ -1,2 +1,9 @@
prompt <h2>Statut des jobs autotask </h2> prompt <h2>Statut des jobs autotask </h2>
select client_name, status,attributes,service_name from dba_autotask_client;
SELECT
CLIENT_NAME,
STATUS,
ATTRIBUTES,
SERVICE_NAME
FROM
DBA_AUTOTASK_CLIENT;

View File

@@ -1,40 +1,55 @@
-- SCRIPT - to Set the 'SESSION_CACHED_CURSORS' and 'OPEN_CURSORS' Parameters Based on Usage (Doc ID 208857.1) -- 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> 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'
)
;
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'
);

View File

@@ -1,7 +1,14 @@
prompt <h2>Failed scheduled jobs </h2> 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;
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;

View File

@@ -1,41 +1,53 @@
prompt <h2>Table Statistics Summary</h2> prompt <h2>Table Statistics Summary</h2>
alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';
WITH x as ( ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
SELECT /*+ NO_MERGE */
--con_id, WITH X AS (
owner, SELECT /*+ NO_MERGE */
object_type, --con_id,
COUNT(*) type_count, OWNER,
SUM(DECODE(last_analyzed, NULL, 1, 0)) not_analyzed, OBJECT_TYPE,
SUM(DECODE(stattype_locked, NULL, 0, 1)) stats_locked, COUNT(*) TYPE_COUNT,
SUM(DECODE(stale_stats, 'YES', 1, 0)) stale_stats, SUM(DECODE(LAST_ANALYZED, NULL, 1, 0)) NOT_ANALYZED,
SUM(num_rows) sum_num_rows, SUM(DECODE(STATTYPE_LOCKED, NULL, 0, 1)) STATS_LOCKED,
MAX(num_rows) max_num_rows, SUM(DECODE(STALE_STATS, 'YES', 1, 0)) STALE_STATS,
SUM(blocks) sum_blocks, SUM(NUM_ROWS) SUM_NUM_ROWS,
MAX(blocks) max_blocks, MAX(NUM_ROWS) MAX_NUM_ROWS,
MIN(last_analyzed) min_last_analyzed, SUM(BLOCKS) SUM_BLOCKS,
MAX(last_analyzed) max_last_analyzed, MAX(BLOCKS) MAX_BLOCKS,
MEDIAN(last_analyzed) median_last_analyzed, MIN(LAST_ANALYZED) MIN_LAST_ANALYZED,
PERCENTILE_DISC(0.75) WITHIN GROUP (ORDER BY last_analyzed) last_analyzed_75_percentile, MAX(LAST_ANALYZED) MAX_LAST_ANALYZED,
PERCENTILE_DISC(0.90) WITHIN GROUP (ORDER BY last_analyzed) last_analyzed_90_percentile, MEDIAN(LAST_ANALYZED) MEDIAN_LAST_ANALYZED,
PERCENTILE_DISC(0.95) WITHIN GROUP (ORDER BY last_analyzed) last_analyzed_95_percentile, PERCENTILE_DISC(0.75) WITHIN GROUP (ORDER BY LAST_ANALYZED) LAST_ANALYZED_75_PERCENTILE,
PERCENTILE_DISC(0.99) WITHIN GROUP (ORDER BY last_analyzed) last_analyzed_99_percentile PERCENTILE_DISC(0.90) WITHIN GROUP (ORDER BY LAST_ANALYZED) LAST_ANALYZED_90_PERCENTILE,
FROM dba_tab_statistics s PERCENTILE_DISC(0.95) WITHIN GROUP (ORDER BY LAST_ANALYZED) LAST_ANALYZED_95_PERCENTILE,
WHERE table_name NOT LIKE 'BIN$%' -- bug 9930151 reported by brad peek PERCENTILE_DISC(0.99) WITHIN GROUP (ORDER BY LAST_ANALYZED) LAST_ANALYZED_99_PERCENTILE
AND NOT EXISTS ( FROM
SELECT /*+ NO_MERGE */ NULL DBA_TAB_STATISTICS S
FROM dba_external_tables e WHERE
WHERE e.owner = s.owner TABLE_NAME NOT LIKE 'BIN$%' -- bug 9930151 reported by brad peek
--AND e.con_id = s.con_id AND NOT EXISTS (
AND e.table_name = s.table_name) SELECT /*+ NO_MERGE */
GROUP BY NULL
--con_id, FROM
owner, object_type 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.* SELECT
--,c.name con_name X.*
FROM x --,c.name con_name
--LEFT OUTER JOIN v$containers c ON c.con_id = x.con_id FROM
ORDER BY X
--x.con_id, --LEFT OUTER JOIN v$containers c ON c.con_id = x.con_id
owner, object_type; ORDER BY
--x.con_id,
OWNER,
OBJECT_TYPE;

View File

@@ -1,10 +1,11 @@
prompt <h2>Dictionary Stats / Fixed Objects Stats</h2> prompt <h2>Dictionary Stats / Fixed Objects Stats</h2>
SELECT SELECT
to_char(max(end_time),'dd/mm/yyyy hh24:mi') latest, operation TO_CHAR(MAX(END_TIME), 'dd/mm/yyyy hh24:mi') LATEST,
OPERATION
FROM FROM
dba_optstat_operations DBA_OPTSTAT_OPERATIONS
WHERE WHERE
operation in ('gather_dictionary_stats', 'gather_fixed_objects_stats') OPERATION IN ('gather_dictionary_stats', 'gather_fixed_objects_stats')
GROUP BY GROUP BY
operation; OPERATION;

View File

@@ -0,0 +1,15 @@
prompt <h2>Les options utilisée (à partir de DBA_FEATURE_USAGE_STATISTICS): </h2>
ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
SELECT
NAME,
LAST_USAGE_DATE,
DETECTED_USAGES,
DESCRIPTION
FROM
DBA_FEATURE_USAGE_STATISTICS
WHERE
DETECTED_USAGES>0
ORDER BY
NAME;

View File

@@ -1,6 +1,8 @@
prompt <h2>Liste des jobs dans : dba_jobs </h2> prompt <h2>Liste des jobs dans : dba_jobs </h2>
alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';
SELECT * FROM dba_jobs;
ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
SELECT
*
FROM
DBA_JOBS;