Einige von Ihnen haben bereits STATSPACK auf Ihrer produktiven Datenbank installiert. Damit können (Performance-) Informationen über viele Bereiche einer Oracle Datenbank gesammelt werden, um diese dann zu einem späteren Zeitpunkt auswerten zu können.
Im Unterschied zu Statspack bietet das Tool OSWatcher Black Box diese Möglichkeiten nicht für die Datenbank, sondern für UNIX-Ähnliche Betriebssysteme. Somit lassen sich unter anderem CPU-, RAM- und Netzwerkauslastung monitoren und protokollieren.
In diesem Tipp erkläre ich, wie man den OSWatcher Black Box (im folgenden OSWbb genannt) installiert und konfiguriert.
UPDATE: Für die oswbb Version 7.3.0 gibt es einen <link blog-detailansicht oswatcher-black-box-analyzer-730.html external-link-new-window internal link in current>eigenen Artikel.
Das Skript OSWatcher.sh ist das Hauptskript, welches in einem definierten Zeitintervall Betriebsystem-Diagnose-Tools ausführt. Zeitstempel und Output eines Tools werden hier in einer Datei zusammengeführt.
Diese Datei wird dann vom "File Manager"-Prozess stündlich archiviert, sodass für jede Stunde eine Datei existiert. Der File Manager ist auch für das Löschen der alten Archive verantwortlich. Die Aufbewahrungsdauer ist über einen Parameter konfigurierbar.
Der OSWbb ist für AIX, Solaris, HP-UX, und Linux supportet.
Generell wird das Skript startOSWbb.sh mit 3 Parametern aufgerufen:
Parameter 1: Snapshot-Intervall in Sekunden
Parameter 2: Anzahl der Stunden, nach denen die archivierten Daten gelöscht werden sollen.
Parameter 3: (optional) Utility-Name, mit dem die gesammelten Daten komprimiert werden sollen.
Werden keine Parameter angegeben, so greifen die Default-Werte:
- Alle 30 Sekunden wird ein Snapshot erzeugt.
- Datensätze, die älter als 48 Stunden sind werden gelöscht.
Beim ersten Aufruf wird ein Unterverzeichnis (archive) für die Daten erzeugt. Dieses Verzeichnis enthält pro gesammelten Datentyp ein weiteres Unterverzeichnis:
oswbb/archive/oswiostat
oswmeminfo
oswmpstat
oswnetstat
oswprvtnet
oswps
oswslabinfo
oswtop
oswvmstat
Meine Umgebung besteht aus einer VM mit Oracle Enterprise Linux (OEL) 5.5 x86_64.
OSWatcher Version: 5.2.0
Die aktuelle Version kann man sich von folgendem MOS Artikel herunterladen:
OSWatcher Black Box User Guide (Includes: [Video]) [ID 301137.1]
Die heruntergeladene Datei habe ich in das ORACLE_BASE Verzeichnis /u01/app/oracle kopiert.
[root@s-tl-022 oracle]# su - oracle
[oracle@s-tl-022 ~]$ cd /u01/app/oracle/
[oracle@s-tl-022 oracle]$ ll
drwxr-x--- 3 oracle oinstall 4096 9. Feb 2012 admin
drwxr-xr-x 5 oracle oinstall 4096 5. Jul 18:03 cfgtoollogs
drwxr-xr-x 2 oracle oinstall 4096 9. Feb 2012 checkpoints
drwxrwxr-x 11 oracle oinstall 4096 9. Feb 2012 diag
drwxr-xr-x 2 oracle oinstall 4096 9. Feb 2012 flash_recovery_area
drwxr-xr-x 3 oracle oinstall 4096 9. Feb 2012 oradata
-rw-r--r-- 1 oracle oinstall 962560 14. Nov 17:02 oswbb520.tar
-rw-r--r-- 1 oracle oinstall 5667 14. Nov 17:02 osw-service-0.0.6-1.noarch.rpm
drwxr-xr-x 3 oracle oinstall 4096 9. Feb 2012 product
tar File entpacken:
[oracle@s-tl-022 oracle]$ tar -xvf oswbb520.tar
oswbb/
oswbb/src/
oswbb/src/tombody.gif
oswbb/src/Thumbs.db
oswbb/src/missing_graphic.gif
oswbb/src/OSW_profile.htm
oswbb/src/watch.gif
oswbb/src/coe_logo.gif
oswbb/src/oswbba_input.txt
oswbb/tmp/
oswbb/headers/
oswbb/tarupfiles.sh
oswbb/Exampleprivate.net
oswbb/vmsub.sh
oswbb/docs/
oswbb/docs/The_Analyzer/
oswbb/docs/The_Analyzer/OSWbba_README.txt
oswbb/docs/The_Analyzer/OSW_Black_Box_Analyzer_Overview.pdf
oswbb/docs/The_Analyzer/OS_Watcher_Black_Box_Analyzer_User_Guide.pdf
oswbb/docs/OSWatcher_Black_Box/
oswbb/docs/OSWatcher_Black_Box/oswbb_README.txt
oswbb/docs/OSWatcher_Black_Box/OSWatcher_Black_Box_User_Guide.pdf
oswbb/topaix.sh
oswbb/OSWatcher.sh
oswbb/pssub.sh
oswbb/nfssub.sh
oswbb/mpsub.sh
oswbb/oswrds.sh
oswbb/profile/
oswbb/oswsub.sh
oswbb/oswnet.sh
oswbb/OSWatcherFM.sh
oswbb/analysis/
oswbb/startOSWbb.sh
oswbb/gif/
oswbb/oswib.sh
oswbb/stopOSWbb.sh
oswbb/oswbba.jar
oswbb/locks/
oswbb/iosub.sh
oswbb/xtop.sh
In das neu erstellte Verzeichnis wechseln und die Berechtigungen anpassen:
[oracle@s-tl-022 oracle]$ cd oswbb
[oracle@s-tl-022 oswbb]$ chmod 744 *
[oracle@s-tl-022 oswbb]$ ll
drwxr--r-- 2 oracle oinstall 4096 15. Jun 13:19 analysis
drwxr--r-- 4 oracle oinstall 4096 15. Jun 11:51 docs
-rwxr--r-- 1 oracle oinstall 1730 23. Apr 2012 Exampleprivate.net
drwxr--r-- 2 oracle oinstall 4096 15. Jun 11:51 gif
drwxr--r-- 2 oracle oinstall 4096 7. Nov 17:19 headers
-rwxr--r-- 1 oracle oinstall 760 14. Jun 20:05 iosub.sh
drwxr--r-- 2 oracle oinstall 4096 7. Nov 17:33 locks
-rwxr--r-- 1 oracle oinstall 547 14. Jun 20:05 mpsub.sh
-rwxr--r-- 1 oracle oinstall 757 13. Aug 20:02 nfssub.sh
-rwxr--r-- 1 oracle oinstall 4361 8. Jun 13:04 OSWatcherFM.sh
-rwxr--r-- 1 oracle oinstall 29954 7. Nov 17:08 OSWatcher.sh
-rwxr--r-- 1 oracle oinstall 200271 7. Nov 20:39 oswbba.jar
-rwxr--r-- 1 oracle oinstall 415 23. Apr 2012 oswib.sh
-rwxr--r-- 1 oracle oinstall 358 7. Jun 18:25 oswnet.sh
-rwxr--r-- 1 oracle oinstall 826 23. Apr 2012 oswrds.sh
-rwxr--r-- 1 oracle oinstall 529 23. Apr 2012 oswsub.sh
drwxr--r-- 2 oracle oinstall 4096 15. Jun 11:51 profile
-rwxr--r-- 1 oracle oinstall 552 14. Jun 20:09 pssub.sh
drwxr--r-- 2 oracle oinstall 4096 15. Jun 11:51 src
-rwxr--r-- 1 oracle oinstall 1640 14. Jun 20:09 startOSWbb.sh
-rwxr--r-- 1 oracle oinstall 560 23. Apr 2012 stopOSWbb.sh
-rwxr--r-- 1 oracle oinstall 127 23. Apr 2012 tarupfiles.sh
drwxr--r-- 2 oracle oinstall 4096 7. Nov 17:33 tmp
-rwxr--r-- 1 oracle oinstall 433 29. Aug 12:10 topaix.sh
-rwxr--r-- 1 oracle oinstall 549 5. Nov 16:50 vmsub.sh
-rwxr--r-- 1 oracle oinstall 1428 27. Aug 13:48 xtop.sh
Um den OSWatcher zu testen, führen wir folgenden Befehl aus:
[oracle@s-tl-022 oswbb]$ nohup ./startOSWbb.sh 60 10 &
Damit läuft der Prozess im Hintergrund und wird beim Abmelden der Session nicht beendet. Bei einem Reboot des Systems würde der OSWatcher jedoch nicht mehr starten. Das ist dann Aufgabe des osw-service, welcher im nächsten Abschnitt erklärt wird.
In der neuen Datei nohup.out kann man sich den Output des ersten Starts ansehen.
Nachdem ein paar Minuten vergangen sind, kann man sich schon die gesammelten Daten ansehen.
Z .B.:
[oracle@s-tl-022 oswbb]$ less /u01/app/oracle/oswbb/archive/oswtop/s-tl-022_top_12.11.19.1700.dat
Um den OSWatcher wieder zu stoppen, führen wir lediglich folgendes Skript aus:
[oracle@s-tl-022 oswbb]$ ./stopOSWbb.sh
Wir editieren nun folgende zwei Skripte:
[oracle@s-tl-022 oswbb]$ vi OSWatcher.sh
--INSERT--
typeset -i zipfiles=1
zip=gzip
Aus typeset -i zipfiles=0 wird typeset -i zipfiles=1
und aus zip=$3 wird zip=gzip.
[oracle@s-tl-022 oswbb]$ vi startOSWbb.sh
--INSERT--
nohup ./OSWatcher.sh 60 240 >/dev/null 2>&1 &
Aus ./OSWatcher.sh $1 $2 $3 & wird nohup ./OSWatcher.sh 60 240 >/dev/null 2>&1 &.
Als root installieren wir nun den "Service". Dieser kann aus folgendem MOS Dokument herunterladen werden:
How To Start OSWatcher Black Box Every System Boot [ID 580513.1]
[root@s-tl-022 ~]# cd /u01/app/oracle
[root@s-tl-022 oracle]# rpm -ivh osw-service-0.0.6-1.noarch.rpm
Vorbereiten... ########################################### [100%]
1:osw-service ########################################### [100%]
... und passen dann die Parameter unserer Umgebung an:
[root@s-tl-022 oracle]# vi /etc/sysconfig/osw
# Set OSWHOME to the directory where you unpacked OSW or OSWbba
OSWHOME=/u01/app/oracle/oswbb
# Set OSWINTERVAL to the number of seconds between collections
OSWINTERVAL=60
# Set OSRETENTION to the number of hours logs are to be retained
OSWRETENTION=240
# Set OSUSER to the owner of the OSWHOME directory
OSWUSER=oracle
Zum Schluss stellen wir noch ein, dass der osw Service beim booten des Betriebsystems gestartet wird.
[root@s-tl-022 oracle]# chkconfig osw on
Mit diesem Befehl starten wir die Aufzeichnungen:
[root@s-tl-022 oracle]# service osw start
OSWatcher starten: [ OK ]
Somit ist der OSWatcher für ein dauerhaftes Monitoring eingerichtet. Wir können nun unsere Session beenden und den OSWatcher monitoren lassen...
In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den
Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.