Bonjour,
Connnaissez-vous une requêtes pour récupérer la taille des partitions systèmes (genre le résultat d'un df ) dans Oracle svp ?
Cordialement.
Bonjour,
Connnaissez-vous une requêtes pour récupérer la taille des partitions systèmes (genre le résultat d'un df ) dans Oracle svp ?
Cordialement.
Bonjour,
"Dans Oracle", ça veut dire à partir d'un Sql*Plus ?
Dans ce cas, on peut y passer des commandes OS comme df en les précédant par le signe ! (sur Unix) ou par le mot host (sur Windows).
Dans un bloc PL/SQL, je crois qu'on peut faire quelque chose comme
OSCommand_Run('df')
Je le dirais différemment:
HOST (qui est une commande de SQL*Plus, et n'appartient pas au langage SQL) fonctionne aussi bien sous Windows que sous Unix.
! est synonyme de HOST pour Unix
$ est synonyme de HOST pour Windows
Quant à OSCommand_Run, Oracle ne fournit rien de tel.
Je voudrais en fait automatiser un script ( un job oracle) qui envoi un mail avec des info sur l'utilisation des tablespaces (ca je sais comment faire) et de l'espace système.
Donc comment récupérer ces info système dans mon job ?
Merci pour vos réponses.
Bonjour,
pourquoi ne pas simplement faire un shell, que tu peux exécuter dans le crontab ou bien depuis ta dbconsole ou grid.
Bonjour,
Script:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select owner,segment_name,partition_name,bytes/1024/1024 from dba_segments where tablespace_name='TBS' order by bytes desc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 rm -f $ORACLE_BASE/space_*log rm -f $ORACLE_BASE/result.log SPFILE=$ORACLE_BASE/space_${ORACLE_SID}.log RESULT=$ORACLE_BASE/result.log $ORACLE_HOME/bin/sqlplus -s "/nolog" <<EOF connect /as sysdba spool $SPFILE set heading off set echo off set pagesize 10000 set feedback off SELECT Total.tablespace_name "Tablespace Name",((total_space-Free_space)/total_space)*100 Percent FROM (select tablespace_name, sum(bytes/1024/1024) Free_Space from dba_free_space group by tablespace_name) Free, (select a.tablespace_name, sum(bytes/1024/1024) TOTAL_SPACE from dba_data_files a, dba_tablespaces b where ( a.tablespace_name = b.tablespace_name ) group by a.tablespace_name) Total WHERE (Free.tablespace_name = Total.tablespace_name) ; spool off exit EOF > $RESULT cat $SPFILE | while read LINE do percent=`echo $LINE | awk '{print $2}'| cut -c1-2` if [ $percent -gt $RATE ] then echo $LINE | awk '{print $1 " " $2} ' >> $RESULT #echo $LINE >> $RESULT fi done nbr=`wc -l $RESULT | awk '{print $1}'` if [ $nbr -gt "0" ] then cat $RESULT | mailx -s "tablespaces limites sur $ORACLE_SID $HOST" mail@domaine.com fi
Partager