Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4a47aa1862 | ||
|
|
0d2cd05d78 | ||
|
|
d82e092f67 | ||
|
|
cea287fb1e | ||
|
|
0eb1584e0e | ||
|
|
b26f1c679f | ||
|
|
0180e31523 | ||
|
|
64c96f39f5 | ||
|
|
1ab4f35373 | ||
|
|
8c87dad21d |
@@ -7,25 +7,6 @@ source "$(dirname "$0")/utils.sh"
|
||||
|
||||
os_type=$(uname -s)
|
||||
|
||||
print_h2 "Bases de données en cours d'exécution"
|
||||
run_and_print "ps -ef | grep pmon | grep -v grep"
|
||||
|
||||
print_h2 "Listeners en cours d'exécution"
|
||||
run_and_print "ps -ef | grep tnslsnr | grep -v grep"
|
||||
|
||||
print_h2 "Statut du listener : ${listener_name}"
|
||||
# Boucle pour le statut du listener, car elle est plus complexe
|
||||
ps -ef | grep tnslsnr | egrep -i " LISTENER |${ORACLE_SID}" | grep -v grep | while read -r l; do
|
||||
binary_path=$(echo "$l" | perl -lne 'print $1 if /(\S*tnslsnr\S*)/' | sed 's#/bin/tnslsnr##')
|
||||
listener_name=$(echo "$l" | perl -lne 'print $1 if /\btnslsnr\s+(\S+)/' | sed 's/tnslsnr //')
|
||||
|
||||
if [ -n "$binary_path" ] && [ -n "$listener_name" ]; then
|
||||
export TNS_ADMIN="$binary_path/network/admin"
|
||||
lsnrctl_command="$binary_path/bin/lsnrctl status $listener_name"
|
||||
# echo "<b>Listener: ${listener_name}</b>"
|
||||
run_and_print "$lsnrctl_command"
|
||||
fi
|
||||
done
|
||||
|
||||
print_h2 "Uptime"
|
||||
run_and_print "uptime"
|
||||
|
||||
@@ -38,3 +38,24 @@ else
|
||||
echo "<pre>Fichier ${ORA_INVENTORY}/ContentsXML/inventory.xml non trouvé.</pre>"
|
||||
fi
|
||||
|
||||
print_h2 "Bases de données en cours d'exécution"
|
||||
run_and_print "ps -ef | grep pmon | grep -v grep"
|
||||
|
||||
print_h2 "Listeners en cours d'exécution"
|
||||
run_and_print "ps -ef | grep tnslsnr | grep -v grep"
|
||||
|
||||
# Boucle pour le statut du listener, car elle est plus complexe
|
||||
# ps -ef | grep tnslsnr | egrep -i " LISTENER |${ORACLE_SID}" | grep -v grep | while read -r l; do
|
||||
# On parcours tous les listener qui tournent sur le serveur pour afficher leur statut
|
||||
ps -ef | grep tnslsnr | grep -v grep | while read -r l; do
|
||||
binary_path=$(echo "$l" | perl -lne 'print $1 if /(\S*tnslsnr\S*)/' | sed 's#/bin/tnslsnr##')
|
||||
listener_name=$(echo "$l" | perl -lne 'print $1 if /\btnslsnr\s+(\S+)/' | sed 's/tnslsnr //')
|
||||
|
||||
if [ -n "$binary_path" ] && [ -n "$listener_name" ]; then
|
||||
export TNS_ADMIN="$binary_path/network/admin"
|
||||
export ORACLE_HOME="$binary_path"
|
||||
print_h2 "Statut du listener : ${listener_name}"
|
||||
lsnrctl_command="$binary_path/bin/lsnrctl status $listener_name"
|
||||
run_and_print "$lsnrctl_command"
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
prompt <h2>Détail des tablespaces : </h2>
|
||||
-- COL TABLESPACE_NAME FORMAT A20 HEAD "Nom Tablespace"
|
||||
-- COL PCT_OCCUPATION_THEORIQUE FORMAT 990.00 HEAD "% Occup"
|
||||
-- COL TAILLE_MIB FORMAT 99999990.00 HEAD "Taille MB"
|
||||
-- COL TAILLE_MAX_MIB FORMAT 99999990.00 HEAD "Taille max MB"
|
||||
-- COL TAILLE_OCCUPEE_MIB FORMAT 99999990.00 HEAD "Espace occupé MiB"
|
||||
|
||||
COL TABLESPACE_NAME FORMAT A20 HEAD "Tablespace"
|
||||
COL alloc FORMAT 99999999.00 HEAD "Allocated MB"
|
||||
@@ -11,10 +6,12 @@ COL used FORMAT 99999999.00 HEAD "Used MB"
|
||||
COL free FORMAT 99999999.00 HEAD "Free MB"
|
||||
COL max FORMAT 99999999.00 HEAD "MaxSize MB"
|
||||
COL Pct_Used FORMAT 999.00 HEAD "% Used"
|
||||
COL nb_of_file FORMAT 999 HEAD "Nbr Of Files"
|
||||
|
||||
select /* db-html-report */
|
||||
a.tablespace_name,
|
||||
t.bigfile,
|
||||
a.nb_of_file,
|
||||
a.bytes_alloc/1024/1024 alloc,
|
||||
(a.bytes_alloc - nvl(b.bytes_free, 0))/1024/1024 used,
|
||||
(nvl(b.bytes_free, 0))/1024/1024 free,
|
||||
@@ -24,6 +21,7 @@ from
|
||||
(
|
||||
select
|
||||
f.tablespace_name,
|
||||
count(*) as nb_of_file,
|
||||
sum(f.bytes) bytes_alloc,
|
||||
sum(decode(f.autoextensible, 'YES', f.maxbytes, 'NO', f.bytes)) maxbytes
|
||||
from
|
||||
@@ -48,6 +46,7 @@ union all
|
||||
select
|
||||
h.tablespace_name,
|
||||
dt.bigfile,
|
||||
count(*) as nb_of_file,
|
||||
(sum(h.bytes_free + h.bytes_used))/1024/1024 alloc,
|
||||
(sum(nvl(p.bytes_used, 0)))/1024/1024 used,
|
||||
(sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)))/1024/1024 free,
|
||||
|
||||
59
sql/20b_tablespaces.sql
Normal file
59
sql/20b_tablespaces.sql
Normal file
@@ -0,0 +1,59 @@
|
||||
prompt <h2>Détail des tablespaces (dans toutes les PDB si la base est CDB) : </h2>
|
||||
|
||||
COL NAME FORMAT A20 HEAD "DB/PDB NAME"
|
||||
COL TABLESPACE_NAME FORMAT A20 HEAD "Tablespace"
|
||||
COL alloc_mb FORMAT 99999999.00 HEAD "Allocated MB"
|
||||
COL used_mb FORMAT 99999999.00 HEAD "Used MB"
|
||||
COL free_mb FORMAT 99999999.00 HEAD "Free MB"
|
||||
COL max_mb FORMAT 99999999.00 HEAD "MaxSize MB"
|
||||
COL Pct_Used FORMAT 999.00 HEAD "% Used"
|
||||
COL nbr_of_files FORMAT 999 HEAD "Nbr Of Files"
|
||||
COL BIGFILE FORMAT A8 HEAD "Bigfile"
|
||||
|
||||
select /* db-html-report */
|
||||
a.con_id,
|
||||
c.NAME,
|
||||
a.tablespace_name,
|
||||
t.bigfile,
|
||||
a.nbr_of_files,
|
||||
a.bytes_alloc/1024/1024 alloc_mb,
|
||||
(a.bytes_alloc - nvl(b.bytes_free, 0))/1024/1024 used_mb,
|
||||
(nvl(b.bytes_free, 0))/1024/1024 free_mb,
|
||||
maxbytes/1024/1024 Max_mb,
|
||||
(a.bytes_alloc - nvl(b.bytes_free, 0)) / maxbytes * 100 Pct_Used
|
||||
from
|
||||
(
|
||||
select
|
||||
f.con_id,
|
||||
f.tablespace_name,
|
||||
count(*) as nbr_of_files,
|
||||
sum(f.bytes) bytes_alloc,
|
||||
sum(decode(f.autoextensible, 'YES', f.maxbytes, 'NO', f.bytes)) maxbytes
|
||||
from
|
||||
cdb_data_files f
|
||||
group by
|
||||
con_id, tablespace_name
|
||||
) a,
|
||||
(
|
||||
select
|
||||
f.con_id,
|
||||
f.tablespace_name,
|
||||
sum(f.bytes) bytes_free
|
||||
from
|
||||
cdb_free_space f
|
||||
group by
|
||||
con_id, tablespace_name
|
||||
) b,
|
||||
v$containers c,
|
||||
cdb_tablespaces t
|
||||
where
|
||||
a.con_id = b.con_id
|
||||
and a.con_id = c.con_id(+)
|
||||
and a.con_id = t.con_id
|
||||
and a.tablespace_name = b.tablespace_name (+)
|
||||
and a.tablespace_name = t.tablespace_name
|
||||
order by
|
||||
a.con_id,
|
||||
c.NAME,
|
||||
a.tablespace_name
|
||||
;
|
||||
@@ -1,62 +1,25 @@
|
||||
prompt <h2>Détail des tempfile : </h2>
|
||||
|
||||
COL con_id HEAD "CON ID"
|
||||
COL pdb_name HEAD "PDB Name"
|
||||
COL name HEAD "PDB Name"
|
||||
COL file_id HEAD "File ID"
|
||||
COL file_name HEAD "Tempfile"
|
||||
COL tablespace_name FORMAT A20 HEAD "Tablespace"
|
||||
|
||||
COL file_size_mb FORMAT 999999999.00 HEAD "File Size MB"
|
||||
-- COL space_used_mb FORMAT 999999999.00 HEAD "Space Used MB"
|
||||
-- COL space_free_mb FORMAT 999999999.00 HEAD "Space Free MB"
|
||||
COL maxsize_mb FORMAT 999999999.00 HEAD "Max Size MB"
|
||||
-- COL percent_used FORMAT 999.00 HEAD "% Used"
|
||||
|
||||
COL autoextensible FORMAT A15 HEAD "Auto Extensible"
|
||||
COL file_name HEAD "Tempfile"
|
||||
COL status head "Status"
|
||||
-- COL online_status format a15 head "Online Status"
|
||||
COL file_size_mb FORMAT 999999999.00 HEAD "File Size MB"
|
||||
COL maxsize_mb FORMAT 999999999.00 HEAD "Max Size MB"
|
||||
COL autoextensible FORMAT A15 HEAD "Auto Extensible"
|
||||
|
||||
WITH
|
||||
-- Sous-requête pour les fichiers de données dans une CDB
|
||||
cdb_files AS (
|
||||
-- cdb_files.sql
|
||||
select /* db-html-report */
|
||||
p.con_id AS pdb_id,
|
||||
p.pdb_name AS pdb_name,
|
||||
d.file_id,
|
||||
d.tablespace_name,
|
||||
d.file_name,
|
||||
d.bytes/1024/1024 AS file_size_mb,
|
||||
d.maxbytes/1024/1024 AS maxsize_mb,
|
||||
d.autoextensible,
|
||||
d.status
|
||||
FROM
|
||||
cdb_temp_files d
|
||||
RIGHT JOIN cdb_pdbs p ON d.con_id = p.pdb_id
|
||||
WHERE
|
||||
(SELECT cdb FROM v$database) = 'YES'
|
||||
ORDER BY p.pdb_id, d.tablespace_name, d.file_name
|
||||
),
|
||||
-- Sous-requête pour les fichiers de données dans une non-CDB
|
||||
non_cdb_files AS (
|
||||
-- non_cdb_files.sql
|
||||
SELECT
|
||||
0 AS pdb_id,
|
||||
NULL AS pdb_name,
|
||||
d.file_id,
|
||||
d.tablespace_name,
|
||||
d.file_name,
|
||||
d.bytes/1024/1024 AS file_size_mb,
|
||||
d.maxbytes/1024/1024 AS maxsize_mb,
|
||||
d.autoextensible,
|
||||
d.status
|
||||
FROM
|
||||
dba_temp_files d
|
||||
WHERE
|
||||
(SELECT cdb FROM v$database) = 'NO'
|
||||
ORDER BY d.tablespace_name, d.file_name
|
||||
)
|
||||
-- Requête finale combinant les résultats des sous-requêtes
|
||||
SELECT * FROM cdb_files
|
||||
UNION ALL
|
||||
SELECT * FROM non_cdb_files;
|
||||
select
|
||||
t.con_id,
|
||||
c.name,
|
||||
t.file_id,
|
||||
t.tablespace_name,
|
||||
t.file_name,
|
||||
t.status,
|
||||
round(t.bytes/1024/1024) file_size_mb,
|
||||
round(t.maxbytes/1024/1024) maxsize_mb,
|
||||
t.autoextensible
|
||||
from cdb_temp_files t, v$containers c
|
||||
where t.con_id = c.con_id
|
||||
order by t.con_id, t.file_id, t.file_name;
|
||||
@@ -1,21 +1,19 @@
|
||||
prompt <h2>Top SQL</h2>
|
||||
|
||||
alter session set nls_date_format='DD/MM/YYYY HH24:MI:SS';
|
||||
|
||||
select /* db-html-report */
|
||||
* from (
|
||||
select
|
||||
a.inst_id,
|
||||
a.sql_id,
|
||||
a.elapsed_time / 1000000 as elapsed,
|
||||
-- to_char(numtodsinterval(a.elapsed_time/ 1000000, 'SECOND'), 'HH24:MI') as elapsed,
|
||||
to_char(trunc(sysdate) + numtodsinterval(a.elapsed_time/ 1000000, 'SECOND'), 'HH24:MI:SS') as elapsed,
|
||||
substrb(replace(a.sql_text,'',' '),1,55) as sql_text,
|
||||
a.cpu_time / 1000000 as cpu_time,
|
||||
a.buffer_gets, -- Lecture en memoire
|
||||
a.disk_reads, -- Lecture sur disque
|
||||
a.physical_read_bytes,
|
||||
round(a.physical_read_bytes /1024/1024) as physical_read_MB,
|
||||
a.executions,
|
||||
a.rows_processed,
|
||||
a.last_active_time, -- Last time the statistics of a contributing cursor were updated
|
||||
to_char(a.last_active_time, 'DD/MM/YYYY HH24:MI:SS') as last_active_time, -- Last time the statistics of a contributing cursor were updated
|
||||
b.module
|
||||
from gv$sqlstats a, gv$sql b
|
||||
where a.sql_id=b.sql_id
|
||||
|
||||
Reference in New Issue
Block a user