Neues PFile bei Datenbank shutdown

Wo gehobelt wird, da fallen Späne. Heute habe ich an Datenbankparametern gehobelt und mir dabei einen Splitter eingefangen.

Immer dann, wenn man Änderungen ins SPFile schreibt, ist es eigentlich gute Praxis, eine Sicherung der Parameter aus dem Memory ins PFile zu schreiben. Nur für den Fall, dass die Datenbank nach dem Neustart nicht mehr hochkommen mag. Hat man dann kein passendes PFile zur Hand, muss man erst durch die Sicherungen wühlen. Das geht zwar auch recht einfach, ist aber lästig und eigentlich auch unnötig.

Jedenfalls ist mir heute so ein Fauxpas passiert. Die Datenbank wollte nicht mehr starten, es lag kein passendes PFile parat, und ich musste ein SPFile aus der RMAN-Sicherung recovern, um die DB wieder starten zu können. Aber wäre es für solche Fälle nicht cool, wenn die Datenbank von selbst ein PFile-Backup macht, jenseits des Autobackups von RMAN? Mir ist bislang kein solcher Mechanismus bekannt.

Die Arbeit an einem Trigger auf einer anderen Baustelle brachte mich dann auf eine Idee. Warum nicht einen Trigger nutzen, der bei Shutdown ein PFile mit den Werten aus dem Speicher schreibt? Ich habe so etwas bisher noch nirgendwo gesehen. Warum eigentlich nicht? Es funktioniert jedenfalls prima. Wenn ich nun die Datenbank stoppe, weiß ich, dass es ein PFile mit funktionierender Konfiguration gibt, mit dem die Datenbank auf jeden Fall wieder starten wird.

So sieht der Trigger aus. Vielleicht finde ich den ja irgendwann mal bei einem Kunden wieder.

CREATE OR REPLACE TRIGGER create_pfile
BEFORE SHUTDOWN ON DATABASE
BEGIN
	execute immediate 'create pfile=''init_restart.ora'' from memory';
END;
/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert