Was tun wenn die Oracle Datenbank defekt ist? getestet unter Oracle 8i und Oracle 10g

Im leben eines Admins der nebenbei auch eine oder mehrere Oracle Datenbanken am leben erhalten soll kann es durchaus vorkommen das einem am frühen Morgen die Kollegen anrufen mit der Bitte das System wieder Online zu stellen.
Wenn dann beim Versuch sich im Client einzuloggen eine Meldung kommt wie z.b. “Die Datenbank wird gerade herunter gefahren” oder ähnliches, kann man schon mal vom Schlimmsten ausgehen :)
Im besten falle ist einem einfach die Partition voll gelaufen die die Oracle Datenbank Dateien enthält, hier reicht es schon in 98% der fälle einfach Platz zu schaffen und die Oracle DB läuft wieder wie gewohnt weiter, spätestens dann sollte man sich aber Gedanken machen wie so was in Zukunft verhindert werden kann, mit z.B. einem RMAN Backup aus meinem vorherigen Post Unter Oracle 10g RMAN Backups erstellen um die Archive Logs auszulagern bzw. zu löschen, sollte dies der Grund gewesen sein.

Ich gehe jetzt mal von folgendem Beispiel Szenario aus:
Backup Methode der Oracle ist ein Tägliches Cold Backup ohne RMAN, heißt Datenbank runter fahren -> Datenbank Dateien samt Archive /Redo /Control Files weg kopieren -> Datenbank hochfahren.
Außerdem muss sich die Datenbank im “Archivelog Modus” befinden, sollte aber Standard sein.
Montag 21:00 das Backup der Oracle Datenbank will gerade starten, was nicht klappt da in diesem Moment ein beliebiger Fehler (Blue Screen, HW Defekt, usw…), das System zum Stillstand bringt.
Nachdem wir den Defekt beseitigt haben und das System wieder startet und wir sonst keinen Datenverlust verzeichnen,quittiert unsere Oracle DB diesen Ausfall mit einer Meldung dass die Datenbank ein Recovery benötigt um wieder Konsitent zu werden. *Panik*
Der grund hierfür kann sein dass Daten aus dem Arbeitsspeicher nicht mehr in die Datenbank Datei geschrieben werden konnte.

Jetzt bieten sich grundsätzlich 3 Lösungswege an.
Erste: Externe Hilfe holen.
Zweite: Oracle runter fahren -> Datenbank Dateien weg schieben -> Datenbank Dateien aus dem letzten Backup zurück holen -> Oracle hochfahren.
Ergebnis: Datenbank läuft aber 1 Tag an Daten ist verloren, das wird wohl in den wenigsten Fällen für freude bei den Kollegen und der Geschäftsleitung sorgen.
Dritte: Oracle runter fahren -> Datenbank nur mounten -> Recovery anhand der Archive und Redo Logs fahren -> Oracle öffnen
Ergebnis: Datenbank läuft und wir haben keine Daten verloren, der Admin ist der Held des Tages ;-)

Ablauf eines Recovery anhand der Archive und Online Redo Logs:

Mit cmd in Oracle einloggen.

SET oracle_sid=Instanz_Name

für Oracle 8i

svrmgrl

für Oracle 10g

sqlplus / AS sysdba
svrmgr> CONNECT internal

Nun sind wir eingeloggt und gehen sicher dass die Datenbank beendet ist.

shutdown IMMEDIATE

Datenbank Mounten.

svrmgr> startup mount

Wir starten das Recovery.

svrmgr> recover DATABASE USING backup CONTROLFILE until cancel;

Jetzt fragt Oracle wo sich die Archive Logs befinden, pfad wie gewohnt angeben.

svrmgr> x:\archivelogs\%instanz_name%T001S00382.ARC

Dies wird solange gefragt bis die letzte Log Datei abgearbeitet wurde und Oracle meldet dass kein weiteres Recovery benötigt wird.Ihr werdet wahrscheinlich auf das Problem stoßen das Oracle nach der letzten vorhandenen Archive Log Datei nochmal eine Sequenz anfragt, zu finden ist diese letzte in euren Redo Logs.

Nun beenden wir das Recovery und fahren die Datenbank wieder hoch.

svrmgr> cancel
svrmgr> ALTER DATABASE OPEN resetlogs

Mit open resetlogs werden die “Online” Redo Logs zurückgesetzt und die Log Sequenz Nummer beginnt wieder bei 1.
Danach ist dringend eine Sicherung zu machen da vorherige Backups nun nicht mehr verwendet werden können.

Zur Sicherheit und um gleich ein Backup zu erstellen fahren wir die Oracle DB runter und wieder hoch

svrmgr> shutdown IMMEDIATE
svrmgr> startup

Die Datenbank sollte nun wieder laufen!

Unter Oracle 10g RMAN Backups erstellen

Hier ein einfacher weg um ein Backup seiner Oracle Datenbank zu erstellen ohne Verwendung von EM ( Oracle Enterprise Manager).
Es wird das Controlfile als Katalog benutzt, kein Katalog-Repository!
Ausserdem kann mit RMAN unter Windows nur auf Lokale Laufwerke gesichert werden, keine Netzlaufwerke oder UNC-Pfade!

Erst einmal an Oracle RMAN anmelden mit:

rman target /

oder

rman target USER/pw@tnsname

Der gewählte User muss natürlich die erforderlichen Rechte besitzen.
Die Aktuellen RMAN Einstellungen kann man sich mit

RMAN> show ALL;

ausgeben lassen.

Ein Beispiel welche Einstellungen verwendet werden können bzw. sollten.

RMAN> configure channel device TYPE disk format ‘E:\backup\rman_%d_t%t_s%s_p%p’;

=> Bestimmt das Zielverzeichnis für die Sicherung und den Aufbau des Dateinamens.

RMAN> configure CONTROLFILE autobackup format FOR device TYPE disk TO ‘E:\backup\%F’;

=> Bestimmt das Zielverzeichnis für das Controlfile-Autobackup. %F ist die DBID und sollte im Namen vorkommen.

RMAN> configure CONTROLFILE autobackup ON;

=> Das automatische Backup des Controlfiles wird eingeschaltet.

RMAN> configure retention policy TO redundancy 2;

=> Es werden 2 Backup-Sätze aufbewahrt.

RMAN> configure backup optimization ON;

=> Es werden nur neue Archivelogs gesichert.

Starten können wir nun das Backup via

RMAN> run {
backup DATABASE plus archivelog DELETE ALL input;
backup CURRENT CONTROLFILE;
backup spfile;
}

Zunächst werden alle Datendateien der Oracle Instanz gesichert. Dann wird das aktuelle Logfile archiviert, die Archivelogs gesichert, das dann aktuelle Logfile ebenfalls archiviert und auch gesichert.
Anschließend werden die gesicherten Archivelogs aus dem Quellverzeichnis gelöscht.
Das „backup current controlfile“ benötigt man im grunde nicht, wenn „autobackup controlfile“ aktiviert ist aber sicher ist sicher ;-)
Am Ende wird das SPFILE gesichert, natürlich nur wenn die Datenbank auch mit einem SPFILE gestartet wurde.

Eine Überprüfung des Backups kann man wie folgt ausführen:

RMAN> report need backup;

Hier darf es kein Ergebnis geben sofern der Befehl kurz nach dem Backup ausgeführt wird.
Mit folgenden Befehlen kann man sich die Backups auflisten lassen und das erstellte Backup prüfen ob es im Fehlerfall für ein Recovery benutzbar wäre.

RMAN> list backup summary;
RMAN> restore DATABASE VALIDATE;

Sollte ich noch Zeit und Lust haben stelle ich vielleicht noch eine Batch Datei online mit der sich dann das Lokal liegende Oracle Backup auf eine z.B. NAS sichern lässt.

Kein IPhone 5, nur IPhone 4S

Vorerst scheint es erstmal nur ein IPhone 4S zu geben, zumindest wurde heute kein IPhone 5 vorgestellt.
Hier eine kleine übersicht der neuen Features des IPhone 4S bzw. IOS5

  1. 8 Megapixel Kamera.
  2. Video Aufnahmen in 1080p (1920×1080).
  3. Kamera App kann direkt über die “Home” Taste gestartet werden ohne vorab entsperren zu müssen.
  4. Offline Cache für Safari.
  5. iCloud mit 5GB Speicherplatz für alle, mehr speicherplatz gegen Aufpreis.
  6. Sprachsteuerungs App namens Siri das auch Antworten per Sprachausgabe gibt.
  7. A5 Dual Core Prozessor mit 1,2GHz.
  8. Besserer Akku
  9. Besserer Emfpang

Die Preise mit Vertrag 199 US-Dollar (16 GB), 299 US-Dollar (32 GB) und 399 US-Dollar (64 GB).

Battlefield 3 und die Altersverifikation

Nun wäre die Beta gestartet…da Battlefield3 erst ab 18 freigegeben ist, hat ma sich dazu entschieden via Personalausweisnummer das Alter zu Verifizieren, das Prüfverfahren wird von sendezeitbegrenzung.de durchgeführt.

Also gut dacht ich mir, 18te ist lange her, ich mach da mal mit…browser auf…betakey.battlefield3.de reingehackt…die abfrage der Pers. Nr. kommt.
Gut das das nun erscheinende Formular auf den alten Pers.Ausweis abgestimmt ist und ich im besitz des neuen bin.
Nach 5min. des rumprobierens verschiedenster Kombinationen und etlichen flüchen…
hier die Lösung für Alle
auch für die die den 18ten Feiern wenn ich in Rente bin.

Personalausweis Generator

Soviel zum neuen achso tollen Personalausweis mit seinem breitem Einsatzspektrum…und den dazugehörigen Prüfverfahren ;-)

Man sieht sich auf dem Schlachtfeld!

Share on Twitter
Submit to StumbleUpon
Save on Delicious
Digg This

Kategorieren

Partner Links