Die Oracle-Datenbank läuft seit einiger Zeit, soweit auch alles zufriedenstellend, die User klagen nicht. Aber sind Sie sicher, dass im Hintergrund wirklich alles in Ordnung ist? Haben Sie alle Einstellungen und Patches vorgenommen? Stellt man sich diese Frage, kann man spontan in Hektik verfallen, manuell alle Ecken des Systems durchforsten und prüfen, ob tatsächlich alles im grünen Bereich ist. Wie ist das mit patchen? Wie ist das mit Switch-Time der RedoLog?
Hier gibt es Hilfe von Oracle selbst: „ORAchk“ bzw. „RACchk“. Beide Scripte entstammen ursprünglich dem Script „EXAchk“, welches von Oracle für die Exdata-Maschinen erstellt wurde. Mittels dieser Scripte werden die Umgebungen geprüft. Was genau dort geprüft wird, möchte ich im Folgenden genauer beschreiben.
Nach dem Start des Scriptes (hier am Beispiel RACchk) listet das Tool alle auf dem System laufenden Datenbank-Instanzen auf:
1 2 3 4 5 6 7 8 9 10 11 12 | [oracle@BN-ORA01P cf]$ ./orachk List of running databases orcl_lic galabau azubi All of above None of above Select databases from list for checking best practices. For multiple databases, select 4 for All or comma separated number like 1,2 etc [1-5][4]. |
Hier können Sie nun eine Datenbank auswählen, die das Script prüfen soll – oder Sie wählen alle aus, sodass alle Datenbanken überprüft werden.
Das Script überprüft nun einige Umgebungseinstellungen, gibt erste Meldungen aus und bereitet den Check der gewählten Datenbanken vor – in unserem Beispiel sollen alle Datenbanken geprüft werden:
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 | Searching out ORACLE_HOME for selected databases. . . . . . . Checking Status of Oracle Software Stack - Clusterware, ASM, RDBMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ------------------------------------------------------------------------------------------------------- Oracle Stack Status ------------------------------------------------------------------------------------------------------- Host Name CRS Installed ASM HOME RDBMS Installed CRS UP ASM UP RDBMS UP DB Instance Name ------------------------------------------------------------------------------------------------------- bn-ora01p No No Yes No No Yes orcl_lic galabau azubi ------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------- Found multiple combinations of Clusterware and/or RDBMS versions. Preparing necessary checks.This will take some time. Be Patient ------------------------------------------------------------------------------------------------------- |
Nachdem das Script mit den Vorbereitungen fertig ist, wird der Check begonnen:
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 | Checking for prompts in /home/oracle/.bash_profile on bn-ora01p for oracle user... ============================================================= Node name - bn-ora01p ============================================================= Collecting - Database Parameters for azubi database Collecting - Database Parameters for galabau database Collecting - Database Parameters for orcl_lic database Collecting - Database Undocumented Parameters for azubi database Collecting - Database Undocumented Parameters for galabau database Collecting - Database Undocumented Parameters for orcl_lic database Collecting - RDBMS Feature Usage for azubi database Collecting - RDBMS Feature Usage for galabau database Collecting - RDBMS Feature Usage for orcl_lic database Collecting - CPU Information Collecting - DiskMount Information Collecting - Kernel parameters Collecting - Maximum number of semaphore sets on system Collecting - Maximum number of semaphores on system Collecting - Maximum number of semaphores per semaphore set Collecting - Memory Information Collecting - OS Packages Collecting - Operating system release information and kernel version Collecting - Patches for RDBMS Home ... |
Der Clou kommt aber zum Schluss: Es wird ein ZIP-File mit Timestamp erzeugt, in dem alle Collections enthalten sind. Außerdem führt eine Liste (in Form eines HTML-Files) übersichtlich auf, was bereits in Ordnung ist und wo Sie noch nachbessern müssen – das wird auch schon während der Ausführung angezeigt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Data collections completed. Checking best practices on bn-ora01p. -------------------------------------------------------------------------------------- INFO => Important Automatic Storage Management (ASM) Notes and Technical White Papers INFO => At some times checkpoints are not being completed for orcl_lic INFO => At some times checkpoints are not being completed for galabau WARNING => One or more redo log groups are NOT multiplexed for galabau WARNING => One or more redo log groups are NOT multiplexed for azubi WARNING => Shell limit soft nproc for DB is NOT configured according to recommendation INFO => umask for RDBMS owner is not set to 0022 WARNING => Database parameter DB_BLOCK_CHECKING on PRIMARY is NOT set to the recommended value. for orcl_lic WARNING => Database parameter DB_BLOCK_CHECKING on PRIMARY is NOT set to the recommended value. for galabau WARNING => Database parameter DB_BLOCK_CHECKING on PRIMARY is NOT set to the recommended value. for azubi INFO => Operational Best Practices INFO => Database Consolidation Best Practices INFO => Computer failure prevention best practices INFO => Data corruption prevention best practices INFO => Logical corruption prevention best practices |
Hier sehen Sie auch, dass alle Datenbanken auf dem System geprüft werden – entsprechend meiner Auswahl für dieses Beispiel.
Der HTML-Report ist sehr ausführlich gestaltet – mit einer genauen Problembeschreibung, ggfs. mit Hinweisen auf MOS-Note, …
Hier ein Beispiel-Auszug…
Das Script „RACchk“ leistet das Gleiche, nur dass hier alle Node des RAC-Clusters betrachtet und auch im Report ausgewiesen werden. So können Sie direkt ermitteln, ob und wo Handlungsbedarf besteht. Auch für einen Service Request bei Oracle ist das Tool hilfreich, weil man die Informationen für Oracle hochladen kann und der Support so einen Eindruck bekommt, wie der Zustand des Systems ist. Es ist auch möglich, das Script cron-basiert auf dem System z.B. wöchentlich laufen zu lassen, um einen aktuellen Stand vorliegen zu haben.
Abschließend lässt sich sagen, dass diese Scripte in jede Sammlung eines DBA gehören, um die betreuten Datenbanken zu prüfen.