Ich beschäftige mich mit einem Problem: Ich habe eine Datenbank, die mit Data Guard und Redo Apply verwaltet wird. Daher werden Redo-Protokolle in die Zieldatenbank kopiert, angewendet und für ein Failover synchronisiert gehalten.
Die Zieldatenbank (DR) war eine Zeit lang offline. Bei der Untersuchung stellte sich heraus, dass sie offline war und aufgrund einer fehlenden Steuerdatei nicht gestartet werden konnte.
Bei der Originaldatenbank handelte es sich um eine exakte Kopie, die relativen Dateipfade und Namen stimmten also mit der primären Datenbank überein.
Ich habe einige Ideen zur Lösung dieses Problems und frage mich, ob jemand Erfahrungen mitbringen kann.
1) Kopieren Sie die fehlende Steuerdatei vom primären auf den DR-Server und versuchen Sie, den Server zu starten. Ich vermute, dass im Laufe der Zeit möglicherweise weitere Dateien zum primären Server hinzugefügt wurden, die möglicherweise nicht im DR vorhanden sind. Ich mache mir auch Sorgen, dass ich etwas durcheinanderbringe, das derzeit wiederhergestellt werden könnte.
2) Exportieren Sie die aktuelle primäre Steuerdatei nach trace > sql, ändern Sie sie so, dass sie zur Zieldatenbank passt, und erstellen Sie dann die Steuerdatei mit sql
3) Beginnen Sie erneut und erstellen Sie ein neues DR-Ziel. Da ich das anfängliche DR-Setup (Data Guard) nicht erstellt habe, bin ich mir nicht ganz sicher, wie einfach das ist, aber ich weiß, dass es zumindest funktionieren würde.
Jeder Rat ist willkommen, TIA
Antwort1
Sie sollten auf jeder Seite mehr als eine Kopie der Kontrolldatei haben. Bei primärer Verwendung:
ALTER DATABASE CREATE STANDBY CONTROLFILE as '/path../control01.ctl';
Dadurch wird eine Kopie in der Steuerdatei erstellt, in der ein spezielles Flag gesetzt ist. Dadurch kann die Datenbank Redologs anwenden, die sowohl neuer als auch älter als die SCN der Steuerdatei sind.