Beschreibung

check_oracle_health ist ein Plugin, mit dem unterschiedliche Parameter einer Oracle-Datenbank überprüft werden können.

Dokumentation

Achtung

Es sieht so aus, als wäre in DBD::Oracle 1.76 ein Bug drin, der mindestens beim Mode tablespace-usage/free zuschlägt. Finger weg und 1.74 benutzen!

Kommandozeilenparameter

  • –connect
    Der Datenbankname
  • –user
    Der Datenbankuser
  • –password
    Dessen Passwort
  • –connect
    Alternative zu den obigen Parametern.
  • –connect=sysdba@ Anmeldung mit / as sysdba (wenn der aufrufende User dazu privilegiert ist)
  • –connect=/@token Anmeldung mit Hilfe des Password Store (setzt –method=sqlplus voraus)
  • –mode
    Mit dem mode-Parameter teilt man dem Plugin mit, was es tun soll. Siehe Liste der möglichen Werte weiter unten.
  • –tablespace
    Hier kann die Prüfung auf einen einzigen Tablespace eingeschränkt werden. Fehlt dieser Parameter, dann werden sämtliche Tablespaces geprüft.
  • –datafile
    Hier kann die Prüfung auf ein einziges Datafile eingeschränkt werden. Fehlt dieser Parameter, dann werden sämtliche Datafiles geprüft.
  • –name
    Hier kann die Prüfung auf ein einziges Objekt (Latch, Enqueue, Tablespace, Datafile) eingeschränkt werden. Fehlt dieser Parameter, dann werden sämtliche Objekte geprüft. (Anstelle von –tablespace oder –datafile kann und sollte dieser Parameter benutzt werden. Er dient dazu, die Aufrufschnittstelle des Plugins zu vereinheitlichen).
  • –name2
    Verwendet man –mode=sql, dann erscheint das SQL-Statement in der Ausgabe und den Performancedaten. Mit dem Parameter name2 kann man dafür einen eigenen String vergeben.
  • –regexp Durch diesen Schalter wird der Wert des –name Parameters als regulärer Ausdruck interpretiert.
  • –warning
    Ermittelte Werte außerhalb dieses Bereichs lösen ein WARNING aus.
  • –critical
    Ermittelte Werte außerhalb dieses Bereichs lösen ein CRITICAL aus.
  • –absolute Bei im Laufe der Zeit ansteigenden Werten kann der Anstieg pro Sekunde oder mit dem Parameter –absolute die Differenz zwischen dem jetzigen und dem letzten Lauf betrachtet werden.
  • –runas
    Mit diesem Parameter ist es möglich, das Script unter einer anderen Userkennung laufen zu lassen. (Interner Aufruf von sudo -u .
  • –environment
    Damit kann man dem Script Environmentvariablen mitgeben. Z.b. –environment ORACLE_HOME=/u01/oracle. Mehrfachnennungen sind möglich.
  • –method
    Mit diesem Parameter teilt man dem Plugin mit, wie es sich zur Datenbank verbinden soll. (dbi für Verbindung per DBD::Oracle (default), sqlplus für Verbindung per sqlplus-Aufruf).
  • –units=<%|KB|MB|GB> Die Angabe von Einheiten dient der “Verschönerung” von Ausgaben des mode=sql und der einfachen Angabe von Schwellwerten bei mode=tablespace-free
  • –dbthresholds Dieser Parameter sorgt dafür, daß Schwellwerte aus der Datenbanktabelle check_oracle_health_thresholds gelesen werden
  • –statefilesdir Damit teilt man dem Plugin mit, daß es temporäre Dateien (welche Informationen von Aufruf zu Aufruf zwischenspeichern) in einem bestimmten Verzeichnis abgelegt werden sollen. Das kann z.B. in einer Cluster-Umgebung mit gemeinsamen Filesystem wichtig sein.
  • –morphmessage Dieser Parameter erlaubt es, die Plugin-Ausgabe nachträglich zu ändern.

Um dem Plugin mitzuteilen, welche Werte es ermitteln und prüfen soll, benutzt man die Option –mode mit verschiedenen Schlüsselwörtern.

Schlüsselwort Beschreibung Schwellwerte
tnsping Listener  
connection-time Misst, wie lange Verbindungsaufbau und Login dauern 0..n Sekunden (1, 5)
connected-users Die Anzahl der an der Datenbank angemeldeten User 0..n (50, 100)
session-usage Prozentsatz der möglichen Sessions 0%..100% (80, 100)
process-usage Prozentsatz der möglichen Prozesse 0%..100% (80, 100)
rman-backup-problems Anzahl der RMAN-Fehler während der letzten drei Tage 0..n (1, 2)
sga-data-buffer-hit-ratio Hitrate im Data Buffer Cache 0%..100% (98:, 95:)
sga-library-cache-gethit-ratio Hitrate im Library Cache (Gets) 0%..100% (98:, 95:)
sga-library-cache-pinhit-ratio Hitrate im Library Cache (Pins) 0%..100% (98:, 95:)
sga-library-cache-reloads Reload-Rate im Library Cache n/sec (10,10)
sga-dictionary-cache-hit-ratio Hitrate im Dictionary Cache 0%..100% (95:, 90:)
sga-latches-hit-ratio Hitrate der Latches 0%..100% (98:, 95:)
sga-shared-pool-reloads Reload Rate im Shared Pool 0%..100% (1, 10)
sga-shared-pool-free Freier Speicher im Shared Pool 0%..100% (10:, 5:)
pga-in-memory-sort-ratio Prozentsatz der Sorts im Speicher 0%..100% (99:, 90:)
invalid-objects Anzahl fehlerhafter Objekte, Indices, Partitions  
stale-statistics Anzahl der Objekte mit veralteten Optimizer Statistiken n (10, 100)
tablespace-usage Verbrauchter Speicherplatz im Tablespace 0%..100% (90, 98)
tablespace-free Freier Speicherplatz im Tablespace 0%..100% (5:, 2:)
tablespace-fragmentation Free Space Fragmentation Index 100..1 (30:, 20:)
tablespace-io-balanc IO-Verteilung unter den Datafiles eines Tablespaces n (1.0, 2.0)
tablespace-remaining-time Anzahl der verbleibenden Tage, bis ein Tablespace zu 100% belegt ist. Die Wachstumsrate wird aus den Daten der letzten 30 Tage berechnet. (mit dem Parameter –lookback können andere Zeiträume angegeben werden) Tage (90:, 30:)
tablespace-can-allocate-next Prüft, ob im Tablespace noch genügend Platz für das next Extent ist  
flash-recovery-area-usage Belegter Speicherplatz in der Flash Recovery Area 0%..100% (90, 98)
flash-recovery-area-free Freier Speicherplatz in der Flash Recovery Area 0%..100% (5:, 2:)
datafile-io-traffic Anzahl der IO-Operationen von Datafiles pro Sekunde n/sec (1000, 5000)
datafiles-existing Prozentsatz der maximal möglichen Datafiles 0%..100% (80, 90)
soft-parse-ratio Der Anteil der soft-parse-Aufrufe 0%..100%
switch-interval Intervall zwischen RedoLog File Switches 0..n Sekunden (600:, 60:)
retry-ratio Retry-Rate im RedoLog Buffer 0%..100% (1, 10)
redo-io-traffic Redolog IO in MB/sec n/sec (199,200)
roll-header-contention Rollback Segment Header Contention 0%..100% (1, 2)
roll-block-contention Rollback Segment Block Contention 0%..100% (1, 2)
roll-hit-ratio Rollback Segment gets/waits Ratio 0%..100% (99:, 98:)
roll-extends Rollback Segment Extends n, n/sec (1, 100)
roll-wraps Rollback Segment Wraps n, n/sec (1, 100)
seg-top10-logical-reads Anzahl der Userprozesse unter den top 10 logical reads n (1, 9)
seg-top10-physical-reads Anzahl der Userprozesse unter den top 10 physical reads n (1, 9)
seg-top10-buffer-busy-waits Anzahl der Userprozesse unter den top 10 buffer busy waits n (1, 9)
seg-top10-row-lock-waits Anzahl der Userprozesse unter den top 10 row lock waits n (1, 9)
event-waits Waits/sec von System Events n/sec (10,100)
event-waiting Wieviel Prozent der verstrichenen Zeit hat ein Event mit Warten verbracht 0%..100% (0.1,0.5)
enqueue-contention Enqueue wait/request-Verhältnis 0%..100% (1, 10)
enqueue-waiting Wieviel Prozent der Zeit seit dem letzten Lauf hat ein Enqueue mit Warten verbracht 0%..100% (0.00033,0.0033)
latch-contention Latch misses/gets-Verhältnis. Mit –name wird ein Latchname oder eine Latchnummer übergeben. (Siehe list-latches) 0%..100% (1,2)
latch-waiting Wieviel Prozent der Zeit seit dem letzten Lauf hat ein Latch mit Warten verbracht 0%..100% (0.1,1)
sysstat Änderung/sec für beliebige Werte aus v$sysstat n/sec (10,10)
sql Ergebnis eines beliebigen SQL-Befehls, der eine Zahl zurückliefert. Der Befehl wird mit dem Parameter –name übergeben. Ein Label für Performancedaten kann mit dem Parameter –name2 übergeben werden. n (1,5)
sql-runtime Die Zeit, die ein SQL-Befehl zu seiner Ausführung benötigt. Sekunden (1, 5)
list-tablespaces Gibt eine Liste der Tablespaces aus  
list-datafiles Gibt eine Liste der Datafiles aus  
list-latches Gibt eine Liste der Latch-Namen und -Nummern aus  
list-enqueues Gibt eine Liste der Enqueue-Namen aus  
list-events Gibt eine Liste der Events aus (v$system_event). Neben event_number/event_id wird eine verkürzte Form des Eventnamens ausgegeben, die z.b. für Nagios-Servicedescriptions verwendet werden kann. Bsp: lo_fi_sw_co = log file switch completion  
list-background-events Gibt eine Liste der Background-Events aus  
list-sysstats Gibt eine Liste der systemweiten Statistiken aus  

Messungen, die abhängig von einem Zeitintervall sind, können unterschiedlich aufgerufen werden. Zur Berechnung des Endergebnisses wird ein Anfangs- und ein Endwert sowie die Zeit zwischen den beiden Messungen benötigt. Ohne Angabe von weiteren Optionen wird als Ausgangswert der gemessene Wert des letzen Laufs verwendet. Die seither verstrichene Zeit entspricht i.d.R. dem normal_check_interval des entsprechenden Services.

Wenn nicht der Zuwachs pro Sekunde für das Resultat des Checks entscheidend sein soll, sondern die Differenz zwischen den zwei Messwerten, dann teilt man dies dem Plugin mit der Option –absolute mit. Das ist z.b. sinnvoll für Rollback Segment Wraps, die so selten auftreten, daß die Rate nahezu 0/sek ist. Trotzdem möchte man alarmiert werden, wenn die Zahl solcher Ereignisse wächst.

Die Schwellwerte sollten so gewählt werden, daß sie auch innerhalb eines retry_check_interval erreicht werden können, sonst wird nach jedem SOFT;1 wieder in den OK-Zustand gewechselt.

Es ist zu beachten, daß Schwellwerte entsprechend den Nagios Developer Guidelines anzugeben sind.

  • “10” bedeutet demzufolge “Alarm, wenn > 10” und
  • “90:” bedeutet “Alarm, wenn < 90”

Vorbereitung der Datenbank

Damit sich das Plugin die benötigten Informationen aus der Datenbank holen kann, muss ein Benutzer angelegt werden, der über folgende Berechtigungen verfügt:

create user nagios identified by oradbmon;
grant create session to nagios;
grant select any dictionary to nagios;
grant select on V_$SYSSTAT to nagios;
grant select on V_$INSTANCE to nagios;
grant select on V_$LOG to nagios;
grant select on SYS.DBA_DATA_FILES to nagios;
grant select on SYS.DBA_FREE_SPACE to nagios;
--
-- falls noch jemand Oracle 8.1.7 einsetzt...
grant select on sys.dba_tablespaces to nagios;
grant select on dba_temp_files to nagios;
grant select on sys.v_$Temp_extent_pool to nagios;
grant select on sys.v_$TEMP_SPACE_HEADER  to nagios;
grant select on sys.v_$session to nagios;

Beispiele

nagios$ check_oracle_health --connect bba --mode tnsping
OK - connection established to bba.

nagios$ check_oracle_health --mode connection-time
OK - 0.17 seconds to connect  |
  connection_time=0.1740;1;5

nagios$ check_oracle_health --mode sga-data-buffer-hit-ratio
CRITICAL - SGA data buffer hit ratio 0.99%  |
  sga_data_buffer_hit_ratio=0.99%;98:;95:

nagios$ check_oracle_health --mode sga-library-cache-hit-ratio
OK - SGA library cache hit ratio 98.75%  |
  sga_library_cache_hit_ratio=98.75%;98:;95:

nagios$ check_oracle_health --mode sga-latches-hit-ratio
OK - SGA latches hit ratio 100.00%  |
  sga_latches_hit_ratio=100.00%;98:;95:

nagios$ check_oracle_health --mode sga-shared-pool-reloads
OK - SGA shared pool reloads 0.28%  |
  sga_shared_pool_reloads=0.28%;1;10

nagios$ check_oracle_health --mode sga-shared-pool-free
WARNING - SGA shared pool free 8.91%  |
  sga_shared_pool_free=8.91%;10:;5:

nagios$ check_oracle_health --mode pga-in-memory-sort-ratio
OK - PGA in-memory sort ratio 100.00%  |
  pga_in_memory_sort_ratio=100.00;99:;90:

nagios$ check_oracle_health --mode invalid-objects
OK - no invalid objects found  |
  invalid_ind_partitions=0 invalid_indexes=0
  invalid_objects=0 unrecoverable_datafiles=0

nagios$ check_oracle_health --mode switch-interval
OK - Last redo log file switch interval was 18 minutes |
    redo_log_file_switch_interval=1090s;600:;60:

nagios$ check_oracle_health --mode switch-interval --connect rac1
OK - Last redo log file switch interval was 32 minutes (thread 1)|
    redo_log_file_switch_interval=1938s;600:;60:

nagios$ check_oracle_health --mode tablespace-usage
CRITICAL - tbs SYSTEM usage is 99.33%
tbs SYSAUX usage is 93.73%
tbs USERS usage is 8.75%
tbs UNDOTBS1 usage is 6.65% | 'tbs_users_usage_pct'=8%;90;98
'tbs_users_usage'=0MB;4;4;0;5
'tbs_undotbs1_usage_pct'=6%;90;98
'tbs_undotbs1_usage'=11MB;153;166;0;170
'tbs_system_usage_pct'=99%;90;98
'tbs_system_usage'=695MB;630;686;0;700
'tbs_sysaux_usage_pct'=93%;90;98
'tbs_sysaux_usage'=802MB;770;839;0;856

nagios$ check_oracle_health --mode tablespace-usage
    --tablespace USERS
OK - tbs USERS usage is 8.75% |
  'tbs_users_usage_pct'=8%;90;98
  'tbs_users_usage'=0MB;4;4;0;5

nagios$ check_oracle_health --mode tablespace-usage
    --name USERS
OK - tbs USERS usage is 8.75% |
  'tbs_users_usage_pct'=8%;90;98
  'tbs_users_usage'=0MB;4;4;0;5

nagios$ check_oracle_health --mode tablespace-free
    --name TEST
OK - tbs TEST has 97.91% free space left |
    'tbs_test_free_pct'=97.91%;5:;2:
    'tbs_test_free'=32083MB;1638.40:;655.36:;0.00;32767.98

nagios$ check_oracle_health --mode tablespace-free
    --name TEST --units MB --warning 100: --critical 50:
OK - tbs TEST has 32083.61MB free space left |
    'tbs_test_free_pct'=97.91%;0.31:;0.15:
    'tbs_test_free'=32083.61MB;100.00:;50.00:;0;32767.98

nagios$ check_oracle_health --mode tablespace-free
    --name TEST --warning 10: --critical 5:
OK - tbs TEST has 97.91% free space left |
    'tbs_test_free_pct'=97.91%;10:;5:
    'tbs_test_free'=32083MB;3276.80:;1638.40:;0.00;32767.98

nagios$ check_oracle_health --mode tablespace-remaining-time
    --tablespace ARUSERS --lookback 7
WARNING - tablespace ARUSERS will be full in 78 days |
  'tbs_arusers_days_until_full'=78;90:;30:

nagios$ check_oracle_health --mode flash-recovery-area-free
OK - flra /u00/app/oracle/flash_recovery_area has 100.00% free space left |
    'flra_free_pct'=100.00%;5:;2:
    'flra_free'=2048MB;102.40:;40.96:;0;2048.00

nagios$ check_oracle_health --mode flash-recovery-area-free
    --units KB --warning 1000: --critical 500:
OK - flra /u00/app/oracle/flash_recovery_area has 2097152.00KB free space left |
    'flra_free_pct'=100.00%;0.05:;0.02:
    'flra_free'=2097152.00KB;1000.00:;500.00:;0;2097152.00

nagios$ check_oracle_health --mode datafile-io-traffic
  --datafile users01.dbf
WARNING - users01.dbf: 1049.83 IO Operations per Second |
  'dbf_users01.dbf_io_total_per_sec'=1049.83;1000;5000

nagios$ check_oracle_health --mode latch-contention
  --name 214
OK - SGA latch library cache (214) contention 0.08% |
 'latch_214_contention'=0.08%;1;2
 'latch_214_sleep_share'=0.00% 'latch_214_gets'=49995

nagios$ check_oracle_health --mode latch-contention
  --name 'library cache'
OK - SGA latch library cache (214) contention 0.08% |
 'latch_214_contention'=0.08%;1;2
 'latch_214_sleep_share'=0.00% 'latch_214_gets'=49937

nagios$ check_oracle_health --mode enqueue-contention --name TC
CRITICAL - enqueue TC: 19.90% of the requests must wait |
 'TC_contention'=19.90%;1;10
 'TC_requests'=2015 'TC_waits'=401

nagios$ check_oracle_health --mode latch-contention
  --name 'messages'
OK - SGA latch messages (17) contention 0.02% |
 'latch_17_contention'=0.02%;1;2 'latch_17_gets'=4867

nagios$ check_oracle_health --mode latch-waiting
  --name 'user lock'
OK - SGA latch user lock (205) sleeping 0.000841% of the time |
 'latch_205_sleep_share'=0.000841%

nagios$ check_oracle_health --mode event-waits
  --name 'log file sync'
OK - log file sync : 1.839511 waits/sec |
 'log file sync_waits_per_sec'=1.839511;10;100

nagios$ check_oracle_health --mode event-waiting
  --name 'Log file parallel write'
OK - log file parallel write waits 0.045843% of the time |
rarr 'log file parallel write_percent_waited'=0.045843%;0.1;0.5

nagios$ check_oracle_health --mode sysstat
  --name 'transaction rollbacks'
OK - 0.000003 transaction rollbacks/sec |
 'transaction rollbacks_per_sec'=0.000003;10;100
 'transaction rollbacks'=4

nagios$ check_oracle_health --mode sql
  --name 'select count(*) from v$session' --name2 sessions
CRITICAL - sessions: 21 | 'sessions'=21;1;5

nagios$ check_oracle_health --mode sql
  --name 'select 12 from dual' --name2 twelve --units MB
CRITICAL - twelfe: 12MB | 'twelfe'=12MB;1;5

nagios$ check_oracle_health --mode sql
  --name 'select 200,300,1000 from dual'
  --name2 'kaspar melchior balthasar'
  --warning 180 --critical 500
WARNING - kaspar melchior balthasar: 200 300 1000 |
'kaspar'=200;180;500 'melchior'=300;; 'balthasar'=1000;;

nagios$ check_oracle_health --mode sql
  --name "select 'abc123' from dual" --name2 \\d
  --regexp
OK - output abc123 matches pattern \d

nagios$ check_oracle_health --mode sql
  --name 'SELECT version FROM v$instance' --regexp
  --name2 '.*'
  --morphmessage 'output (.*) matches.*'='version $1'
OK - version 12.2.0.1.0

Authentifizierung

Beispiel mit –runas und einem “external user”

Es gibt zwei User in der Datenbank:

  • OPS$DBNAGIO IDENTIFIED EXTERNALLY
  • NAGIOS IDENTIFIED BY ‘DBMONI’

Es gibt zwei Unix-User:

  • qqnagio mit normalem Zugriff.
  • dbnagio mit /bin/false als Login-Shell.
qqnagio$ check_oracle_health --mode=connection-time
    --connect=nagios/dbmoni@BBA
OK - 0.21 seconds to connect as NAGIOS

dbnagio$ check_oracle_health --mode=connection-time
    --connect=BBA --runas=dbnagio
    --environment ORACLE_HOME=$ORACLE_HOME
OK - 0.17 seconds to connect as OPS$DBNAGIO

Hintergrund dieses Beispiels ist folgendes Szenario mit einem SAP-Server:

  • Verbindung zur Datenbank ist ausschliesslich lokal erlaubt. Die Datenbank ist von außen per Netzwerk nicht erreichbar. Login mit Username und Passwort ist nicht möglich.

  • Nur durch das Betriebssystem authentifizierte DB-User (nur OPS$-User) dürfen sich anmelden.

  • Diese User dürfen sich nicht per ssh am Betriebssystem anmelden. (Deshalb /bin/false).

Da der Nagios-User qqnagio dazu berechtigt ist, fällt er als DB-User flach. Trotzdem läuft der NRPE, der letztlich das Plugin aufruft, unter dem qqnagio-Account.

Verwendung von Environmentvariablen

Man kann den Parameter –connect (und ggf. –user und –password) ganz weglassen, wenn man die entsprechenden Daten in Environmentvariablen bereitstellt. Seit der Version 3.x kann man Servicedefinitionen in Nagios um eigene Attribute (custom object variables) erweitern. Diese tauchen dann bei der Ausführung des Checkcommands im Environment auf.

Die Environmentvariablen heissen:

  • NAGIOS__SERVICEORACLE_SID (_oracle_sid in der Servicedefinition)
  • NAGIOS__SERVICEORACLE_USER (_oracle_user in der Servicedefinition)
  • NAGIOS__SERVICEORACLE_PASS (_oracle_pass in der Servicedefinition)

Sonderzeichen im Passwort

Sollte das Passwort Sonderzeichen enthalten, welche von der ausführenden Shell speziell interpretiert werden, so kann man es in einen harmlosen a-z0-9-String umwandeln.

create user nagios identified by "sch*s'dreck";

Die Umwandlung erfolgt mit dem Mode encode:

$ echo "sch*s'dreck" | check_oracle_health --mode encode
sch%2As%27dreck

Diese Form der Codierung ist in RFC3986 beschrieben. Ruft man nun check_oracle_health folgendermaßen auf

$ check_oracle_health ... --password rfc3986://sch%2As%27dreck ...

dann kommt 1. die Shell mit keinerlei Sonderzeichen in Berührung und wird 2. das Passwort erst beim Verbindungsaufbau innerhalb des Plugins in seine ursprüngliche Form zurückverwandelt.

Hinweis

Falls die Modi tablespace-usage bzw. tablespace-free sehr lange Laufzeiten haben, dann kann es daran liegen, daß es zu viele gelöschte Tabellen in RECYCLE_BIN gibt. Durch Purgen sollte es wieder schneller gehen.

Installation

Dieses Plugin setzt die Installation der Perl-Module DBI und DBD::Oracle voraus.

Nach dem Auspacken des Archivs wird ./configure aufgerufen. Mit ./configure –help können Optionen angezeigt werden, die für den Bau des Plugins einige Defaulteinstellungen liefern.

  • –prefix=BASEDIRECTORY Geben Sie hier das Verzeichnis an, in dem check_oracle_health liegen soll. (default: /usr/local/nagios)
  • –with-nagios-user=SOMEUSER Dieser User wird der Eigentümer der Datei check_oracle_health sein. (default: nagios)
  • –with-nagios-group=SOMEGROUP Die Gruppe des check_oracle_health Binaries. (default: nagios)
  • –with-perl=PATHTOPERL Geben sie hier den Pfad zum Perl-Interpreter an, den sie benutzen möchten. (default: perl im PATH)

Download

check_oracle_health-3.3.3.2.tar.gz

Changelog

  • 3.3.3.2 - 2024-01-08
    bugfix in uptime
  • 3.3.3.1 - 2024-01-08
    server->instance in mode uptime
  • 3.3.3 - 2024-01-05
    add mode uptime
  • 3.3.2.1 - 2023-02-07
    bugfix in flash-recovery-area-*
    negate based on regexp
  • 3.3.2 - 2023-02-06
    check if flashback is enabled
  • 3.3.1 - 2023-01-12
    runtime of tablespace-can-allocate-next was drastically reduced, thanks to
    Peter from eckel-edv.de
  • 3.3.0.3 - 2022-11-30
    make max blocking time configurable (–mode blocking-sessions –warning …)
  • 3.3.0.2 - 2022-11-29
    bugfix in mode blocking-sessions
  • 3.3.0.1 - 2022-10-18
    remove a leftover print statement
  • 3.3 - 2022-10-18
    add parameter –morphmessage
  • 3.2.1.9 - 2022-06.22
    bugfix in invalid-objects
  • 3.2.1.8 - 2021-09-27
    bugfix in password-expiration andlocked accounts
  • 3.2.1.7 - 2021-09-20
    catch undocumented values of account_status in mode password-expiration
  • 3.2.1.6 - 2021-07-05
    remove crap from a pull request. (and refuse pull requests from now on)
  • 3.2.1.5 - 2021-03-16
    fix a bug in asm diskgroups (division by zero when dismounted)
  • 3.2.1.4 - 2020-12-07
    fix a bug in asm diskgroups (dismounted is no failure)
  • 3.2.1.3 - 2020-10-03
    disable optimizer_adaptive_features in tablespace-usage for 12.2 and higher
  • 3.2.1.2 - 2020-03-05
    remove the most idiotic “improvement” ever.
  • 3.2.1.1 - 2019-11-15
    remove stupid eyecandy. (no, don’t ask. NO!)
  • 3.2.1 - 2019-10-10
    add mode blocking-sessions (Thanks dbmasters.at for the sql)
  • 3.2.0.3 - 2019-10-07
    bugfix in database-lag
  • 3.2.0.2 - 2019-10-07
    bugfix in failed-jobs
  • 3.2.0.1 - 2019-10-07
    improve tablespace-usage
  • 3.2 - 2019-06-24
    add mode num-scheduled-jobs
  • 3.1.2.2 - 2018-06-25
    fix handling of historic data for remaining-time
  • 3.1.2.1 - 2018-04-05
    fix the “missing” file
  • 3.1.2 - 2017-12-12
    optimize tablespace-free
  • 3.1.0.3 - 2017-07-26
    sync with lidl
  • 3.1.0.1 - 2017-07-20
    output date of failed jobs
  • 3.1 - 2017-07-19
    add modes datafiles-recovery and datafiles-offline
    add mode failed-jobs
  • 3.0.2.1 - 2017-03-22
    exit, not kill, on timeout
  • 3.0.2 - 2017-01-06
    optimize corrupted-blocks sql
  • 3.0.1 - 2016-10-11
    fix container-tablespace-free (Thanks Frank)
  • 3.0 - 2016-10-10
    add mode container-tablespace-free
  • 2.1.3.5 - 2016-05-11
    sysdba fix (Thanks c0xc). This patch was to satisfy a customer’s need. Think about a support contract. If you have one, we do everything you want.
  • 2.1.3.4 - 2016-03-30
    bugfix in invalid-objects/registry (Thanks Horst Mund)
    bugfix in dataguard last-appled-time (with sqlplus-method)
  • 2.1.3.3 - 2016-03-08
    remove leftover errstr from dbi-login
    protect sga-shared-pool-free
  • 2.1.3.2 - 2016-03-06
    fix dbi-login as “sys”
  • 2.1.3.1 - 2015-12-17
    another performance tweak for tablespace-free (Thanks to the “Vorprung durch Technik”-company)
  • 2.1.3 - 2015-10-19
    perfdata for flash-usage respect advanced thresholds (Thanks Simon Meggle)
  • 2.1.2 - 2015-09-22
    another boost for tablespace-free with –notemp (Thanks Dirk)
  • 2.1.1 - 2015-07-29
    bugfix in password-expiration
    bugfix in rfc-password-encoding and method sqlplus
  • 2.1 - 2015-07-25
    optimized sql for tablespace-free with –notemp (Thanks Frank)
  • 2.0 - 2015-04-23
    add rfc3986-encoded passwords
  • 1.9.4.9 - 2015-04-23
    bugfix in asm-diskgroup-usage perfdata, add perfdata for disk group max size (Thanks Bernhard Keppel)
  • 1.9.4.8 - 2015-03-19
    Convert ‘:/' to ‘_’ in –uniquelabels (Thanks Simon Meggle)
  • 1.9.4.7 - 2015-03-09
    add –uniquelabels for datafiles with identical names (used in io-traffic)
  • 1.9.4.6 - 2015-02-20
    bugfix in –ident
  • 1.9.4.5 - 2014-12-01
    bugfix in method sqlplus for special characters in passwords
  • 1.9.4.4 - 2014-11-17
    switch off -epn again (observed problems in even rarer cases)
  • 1.9.4.3 - 2014-11-13
    make the plugin more epn-safe
  • 1.9.4.2 - 2014-11-11
    bugfix in initial handshake, remove an undef split
  • 1.9.4.1 - 2014-10-27
    switch off -epn again (observed problems in rare cases)
  • 1.9.4 - 2014-05-18
    enable wallets for the dbi method (Thanks Tommi)
    bugfix in initial handshake and 9.x
    bugfix in invalid/dba_ind_subpartitions and 9.x
    –noperfdata suppresses perfdata
  • 1.9.3.7 - 2014-04-06
    switch on +epn
  • 1.9.3.6 - 2014-04-04
    bugfix in method sqlplus. handle expired passwords
  • 1.9.3.5 - 2014-04-01
    remove leftover sqlnet.log files
    implement –negate old_level=new_level
    output also ok-messages for my-modes
  • 1.9.3.4 - 2014-03-18
    allow floating point numbers in thresholds
  • 1.9.3.3 - 2014-03-17
    bugfix in diskgroups
    bugfix in ora-error-handling
  • 1.9.3.2 - 2014-01-27
    bugfix in a tmp-file-cleanup-routine (only –method sqlplus and many concurrent checks)
  • 1.9.3.1 - 2014-01-14
    show ORA-errors in stderr (results in warning) coming from sqlplus
  • 1.9.3 - 2014-01-13
    added subpartitions to invalid-objects
  • 1.9.2.1 - 2014-01-09
    bugfix in sga-library-cache-pinhit-ratio (Thanks Michel van der Voort)
  • 1.9.2 - 2013-12-18
    show detailed output for mode corrupted-blocks and report html
    protect sga-data-buffer-hit-ratio against non-plausible values
    add modes list-asm-diskgroups and asm-diskgroup-usage/free (Thanks Oliver Skibbe!)
  • 1.9.1.1 - 2013-12-17
    bugfix in connection destructor
  • 1.9.1 - 2013-12-13
    bugfix in tablespace-free (datafile in status recovery leads to undef error)
  • 1.9 - 2013-12-09
    rewrite of the timeout handling
    bugfix for the windows version
  • 1.8.4.3 - 2013-10-16
    bugfix in sqlplus fetchrow_array, handles empty result set
  • 1.8.4.2 - 2013-10-16
    bugfix in invalid objects for oracle < 10.x
  • 1.8.4.1 - 2013-10-09
    show a subset of perfata with –name2 and invalid-objects
  • 1.8.4 - 2013-10-04
    invalid-objects can be selected with –name/name2
  • 1.8.3 - 2013-09-30
    show detailed output for mode invalid-objects and report html
  • 1.8.2.1 - 2013-
    bugfix in –name :…
  • 1.8.2 - 2013-08-20
    enable easy connect syntax with –method sqlplus
  • 1.8.1.2 - 2013-07-26
    –mode sql –name2 “:<label>” suppresses the output of the numerical result
  • 1.8.1.1 - 2013-07-04
    invalid-objects takes refresh delay (default: 2 days) into account. Thanks @chtyo)
  • 1.8.1 - 2013-07-02
    mode sqlplus can execute stored procedures
  • 1.8.0.1 - 2013-06-10
    bugfix in sysdba-connect
  • 1.8 - 2013-06-04
    Don Seiler implemented modes dataguard-lag and dataguard-mrp-status
    A big thank to Don! Monitoring of Oracle Data Guard is now possible
  • 1.7.8.2 - 2013-04-26
    fix a bug in the online help
  • 1.7.8.1 - 2013-04-09
    cleanup leftover temp-files (written by method sqlplus)
  • 1.7.8 - 2013-03-27
    added mode decode
  • 1.7.7.3 - 2013-02-21
    bugfix in add_nagios, raising a deprecated-message in perl. (Thanks Philip Griesbacher)
  • 1.7.7.2 - 2013-01-22
    optimized tablespace-can-allocate-next (Thanks Thomas Koerblein)
  • 1.7.7.1 - 2013-01-14
    bugfix in sqlplus connect with a sys user
  • 1.7.7 - 2012-11-29
    add parameter –mitigation and –notemp and –noreadonly
  • 1.7.6.1 - 2012-11-19
    fix a bug with –extra-opts and –environ
  • 1.7.6 - 2012-11-10
    implemented all sorts of thresholds (Thanks Simon Meggle)
  • 1.7.5.1
    fix a bug in sga-library-cache-reloads (thresholds compared against pinhits) (Thanks claney)
    fix a bug in calcmeth which only is visible with –environ (Thanks Pullistricker)
  • 1.7.5
    restrict rman problems to backup-operations (not list, report..) (Thanks marekel)
  • 1.7.4 - 2012-03-15
    bugfix in timeout-alarm handling under windows (Thanks Marian Jamrich)
    bugfix in invalid-objects. No longer counts subpartitions (Thanks Teijo Lallukka)
    bugfix in session-usage (Thanks Bauchi)
    add mode sql-runtime
  • 1.7.3 - 2011 09-29
    mode sql now correctly handles dml sql errors like missing tables etc.
    single ticks around the –name argument under Windows CMD will be removed automatically
  • 1.7.2 - 2011-09-21
    add mode sga-library-cache-pinhit-ratio
    sga-library-cache-hit-ratio becomes sga-library-cache-gethit-ratio
    add mode sga-library-cache-reloads
  • 1.7.1 - 2001-08-17
    add option –commit (Thanks Ovidiu)
  • 1.7.0 - 2011-08-16
    add error handling for unwritable status files
    fix a bug with statefilesdir and capital letters
    enhance stale statistics
    enhance invalid objects (Thanks Yannick Charton)
    fix a bug in open cmdcmd (only affects method sqlplus)
  • 1.6.9 - 2011-06-16
    sites in an OMD (http://omdistro.org) environment have now private statefile directories
    add mode session-usage, process-usage, rman-backup-problems, corrupted-blocks (Thanks Ovidiu Marcu)
    -add mode datafiles-created (Thanks Ovidiu Marcu)
  • 1.6.8.1 - 2011-01-08
    Workaround for the windows version which cleans up leftover spool files which cannot be deleted.
  • 1.6.8 - 2010-01.03
    massive speedup in modes seg-top10-* (Thanks Michael Nieberg http://kenntwas.de)
    bugfix in –mode sql (numeric vs. regexp result) (Thanks Michel Meelker)
  • 1.6.7 - 2010-12-18
    mode sql can now have a non-numerical output which is compared to a string/regexp
    new mode report can be used to output only the bad news (short,long,html)
  • 1.6.6.2 2010-11-11
    better error message with method sqlplus when db is down
  • 1.6.6.1 2010-10-01
    –dbthresholds can have an argument
    workaround for an oracle-bug in shared-pool-free (Thanks Yannik)
  • 1.6.6 2010-08-12
    new parameter –dbthresholds. thresholds can now also be deposited in the table check_oracle_health_thresholds
    bugfix in connection-time. dbuser was uninitialized in rare cases
  • 1.6.5 2010-08-09
    plugin can now run on windows
    –with-mymodules-dyn-dir on the commandline overrides the configure-option of the same name
    added mode flash-recovery-area-[usage|free]
  • 1.6.4
    added checking of dba_registry to mode invalid-objects. Thanks Ovidiu Marcu
    speedup of tablespace-remaining-time. Thanks Steffen Poulsen
    switch-interval detects redo log timestamps in the future and reports critical- method sqlplus now works with “(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP”-like connectstrings
    new parameter –ident to show instance and database names in the output
    bugfix in tablespace-usage (temp tbs with multiple datafiles). Thanks Philipp Lemke
  • 1.6.3 2009-09-09
    optimized tablespace-can-allocate-next
    added more tracing.
    fixed a bug which caused invalid statefile names. Thanks Franky van Liedekerke
    fixed a bug in tablespace-usage for Oracle 8.1.x
    switch-interval now tries to predict the next interval to avoid false alerts. Thanks Naquada.
    passwords do no longer show up in error messages. Thanks Jens Seiffert.
    fixed a bug in mode sql (numbers of the form .5 were rejected). Thanks Shane Jordan.
    fixed a bug in sga-latches-hitratio (thresholds were ignored). Thanks Yannik Charton.
    login parameter –user is now –username (–user still works)
  • 1.6.2 2009-04-04
    fixed a bug in tablespace-usage and german localization
    fixed a bug with –method sqlplus and tablespacenames. Thanks “contact_name”
    fixed a bug in tablespace-usage/free with non-autoextensible TEMP-tablespaces. Thanks Daniel Graef.
  • 1.6.1 2009-03-27
    NAGIOS__HOSTMYSQL_HOST is now possible
    added detection for offline/damaged tablespaces to –mode=tablespace-usage|free. Thanks Daniel Graef.
  • 1.6 2009-03-12
    support for DBD::SQLRelay (use it. it spares your database
    the extra load caused by permanent logins)
    added support for mode=sql and an array of results. Thanks Juergen Lesny from Matrix.
    added support for login as “sys”. Thanks Joerg Horchler.
    fixed a bug where warning/critical=0 was ignored. Thanks Danijel Tasov.
  • 1.5.1 2008-12-10
    the plugin can be used with the embedded perl interpreter.
    fixed some typos. Thanks Oliver Riesen.
  • 1.5.0.1 2008-10-16
    fixed a bug with , instead of . in decimal numbers. Thanks Birk Bohne.
    mode=sql numerical results are round up to two decimal places.
    fixed a bug in sga-shared-pool-free. You’ll see more free space now. Thanks Birk Bohne.
  • 1.5.0 2008-10-15
    added authentication with password store
    added authentication as sysdba
    new parameter –units for mode=sql
    new parameter tablespace-free which allows thresholds in combination with –units
    mode=switch-interval now separates redologs of rac nodes. Thanks Harald Zahn.
    it is now possible to integrate self-written code
  • 1.4.2.1 2008-09-19
    bugfix in tablespace-usage. resized datafiles caused usage 100%
  • 1.4.2 2008-09-16
    new mode –regexp which extends –name
    bugfix in datafile-io-balance and case sensitive tbs (Thanks Wiltmut Gerdes)
  • 1.4.1 2008-09-07
    new mode tablespace-can-allocate-next
    bugfix to handle locked accounts
    rewrote seg-top10… sql to avoid overloading
    bugfix in timeout
    bugfix in mode sql and zero return value. (Thanks Viktor Kaefer)
    new mode encode
    undo tablespace usage takes into account expired extents
  • 1.4.0.1 2008-07-07
    bugfix when –name=0
    bugfix in –method=sqlplus
    bugfix in thresholds of invalid-objects (Thanks Konrad Barck)
  • 1.4 2008-07-03
    statesdir is now /var/tmp/check_oracle_health by default (autom. migration if it was /tmp)
    bugfix in latch-contention
    bugfix in sysstats (thresholds were ignored)
    bugfix in roll-extends and roll-wraps
    performance enhancements
    tablespace-usage can be output as a bargraph (Thanks Allan Peda)
  • 1.3.1.2 2008-07-02
    fixed a bug in disconnect. there were leftover sessions.
  • 1.3.1.1 2008-07-01
    fixed a bug in method=sqlplus and os$user
    objects in the recyclebin are no longer treated as invalid
    better performance data for pga-in-memory-sort-ratio
    fixed a bug in tablespace-usage and temp tbs (Thanks Franky van Liedekerke)
  • 1.3.1 2008-06-26
    typos removed, code cleanup
    fixed a bug in connected-users thresholds (Thanks Frank Brehm)
  • 1.3 2008-06-23
    –method=sqlplus using sqlplus instead of DBD::Oracle is possible but NOT supported
    !! NOT !! supported. If you use it and it don’t work, then don’t whine about it
    tablespace-usage now takes autoextent into account (Thanks Wiltmut Gerdes)
    data-buffer/library/dictionary-cache-hitratio is now more accurate
    –method=sqlplus does not work for you? I’m not listening, lalalalala
  • 1.2.7.1 2008-06-20
    fixed a bug in windows datafile handling
  • 1.2.7 2008-06-20
    removed unrecoverable datafiles from invalid-objects
    added mode sql
    bugfixes in top10-x and pga-in-memory-sort-ratio
  • 1.2.6.1 2008-06-16
    added sysstat-rate and list-sysstats
  • 1.2.6 2008-06-14
    added event-waiting
    added event-waits
    added list-events
  • 1.2.5.1 2008-06-11
    added an abstraction layer so that perl-dbi may be replaced
  • 1.2.5 2008-06-03
    added latch-contention
    added enqueue-contention
    added enqueue-waiting
    added connected-users
    added roll-avgactivesize (forget it)
    added –list-latches –list-enqueues
  • 1.2.4.2 2008-05-27
    windows pathnames of datafiles are now handled correctly
  • 1.2.4.1 2008-05-27
    added –list-tablespaces –list-datafiles
  • 1.2.4 2008-05-27
    added datafile-io-traffic
    added redo-io-traffic
    better handling of temp tablespaces
  • 1.2.3.1 2008-05-25
    stale-statistics now works for < 10.x
  • 1.2.3 2008-05-25
    added roll-block-contention
    added roll-hit-ratio
    fixed a bug in switch-interval
  • 1.2.2.1 - 2008-05-23
    disabled modes which require minimum 10.x
  • 1.2.2 - 2008-05-21
    fixed a bug in –environment
  • 1.2.1 - 2008-05-19
    support for externally authenticated users
    new parameters –runas and –environment
    sga-buffer-cache-hit-ratio now shows percent (Thanks Maik Ihde)
    fixed a bug in tablespace-remaining-time
  • 1.2 - 2008-05-06
    stale-statistics
    connection timeout handling
  • 1.1 - 2008-05-02
    tablespace-remaining-time predicts when a tablespace will be full
    tablespace-io-balance uses standard deviation
  • 1.0 - 2008-04-16
    Initial release

2008-3000 Gerhard Laußer
Check_oracle_health wird unter der GNU General Public License zur Verfügung gestellt. GPL

Autor

Gerhard Laußer (mailto:gerhard.lausser@consol.de) beantwortet gerne Fragen zu diesem Plugin.

Übersetzung

Tausend Dank an Christian Lauf, der die englische Übersetzung dieser Seite erstellt hat.