Oracle Shutdown-Methode

9

Das Herunterfahren einer Datenbank vor einem Upgrade oder Patch kann auf verschiedene Arten erfolgen.

shutdown immediate;

oder

shutdown abort;
startup restrict;
shutdown immediate;

oder

shutdown abort;
startup restrict;
shutdown;

oder

alter system checkpoint;
shutdown abort;
startup restrict;
shutdown immediate;

Natürlich gibt es auch andere Möglichkeiten. Welches sollte bevorzugt werden und warum?

Leigh Riffel
quelle

Antworten:

12

Das Ziel beim Herunterfahren zur Wartung (oder zum Kalt-Backup) besteht darin, dass die Datenbank in einem konsistenten Zustand belassen wird, ohne dass beim Start ein Rollback / eine Wiederherstellung erforderlich ist.

Es gibt 3 SQL * Plus- shutdownBefehle, die dies theoretisch erreichen und die sofort verhindern, dass neue Sitzungen eine Verbindung zur Instanz herstellen:

  1. shutdown normaloder einfach shutdown: Wartet, bis alle Sitzungen getrennt wurden. Dieser Modus wird in der Praxis selten verwendet, da er sich auf gut erzogene Clients stützt, die keine Verbindungen offen lassen. Dies war früher der einzige shutdownModus, in dem laufende Transaktionen nicht abgebrochen wurden.
  2. shutdown transactional: Trennt Sitzungen, sobald aktuell ausgeführte Transaktionen abgeschlossen sind, und verhindert so den Beginn neuer Transaktionen.
  3. shutdown immediate: trennt alle Sitzungen sofort und setzt unterbrochene Transaktionen vor dem Herunterfahren zurück. Beachten Sie, dass die Unterbrechungen sofort erfolgen, das Herunterfahren jedoch möglicherweise nicht erfolgt, da das Zurücksetzen unterbrochener Transaktionen einige Zeit in Anspruch nehmen kann.

Der vierte Modus von shutdownist shutdown abort. Dies ist wie das Ziehen des Netzkabels - die Instanz stoppt jetzt ohne Bereinigung. Normalerweise möchten Sie die Datenbank anschließend erneut aufrufen und sofort danach wie in Ihrem Beispiel sauber herunterfahren. Der Konzeptleitfaden sagt :

Dieser Modus ist für Notfallsituationen vorgesehen, z. B. wenn keine andere Form des Herunterfahrens erfolgreich ist.

Alle die Beispiele , die Sie geben , führen Sie einen Kontrollpunkt im Rahmen des shutdown [normal]oder shutdown immediateso explizit Prüfpunkten vermutlich ist die Zeit für die Wiederherstellung erforderlich zu reduzieren .

Allgemeine Hinweise:

  • Nicht verwenden shutdown normal.
  • Verwendung shutdown transactional für besuchten Abschaltung nur , wenn Sie abgebrochene Transaktionen minimieren wollen (besuchten nur weil diese Art der Abschaltung der Datenbank nicht nach unten zu garantiert geschlossen überhaupt , wenn Timeouts verletzt werden).
  • Verwenden shutdown immediateSie diese Option zum unbeaufsichtigten Herunterfahren oder wenn Sie sich nicht für aktuell ausgeführte Transaktionen interessieren.
  • Verwenden Sie es nicht shutdown abort(plus Starten / Herunterfahren), es sei denn, Sie müssen - dies war in viel früheren Versionen von Oracle häufiger als heute. In anderen Situationen (nicht Patch / Upgrade) kann dieser Modus geeignet sein , wenn Sie Ausfallzeiten minimieren müssen.
Jack sagt, versuchen Sie es mit topanswers.xyz
quelle
Können Sie weitere Einzelheiten zu den Nachteilen von angeben shutdown abort? Wenn wir als Antagonist darauf vertrauen können, dass Oracle sich bei Stromausfall korrekt erholt, sollten wir ihm dann nicht während einer Zeit vertrauen shutdown abort, insbesondere wenn es schneller ist und wir sofort a startup restrictund a shutdown immediateausführen werden? Mit anderen Worten, gibt es Fakten, vor denen wir die düstere Warnung von Oracle untermauern können shutdown abort?
Leigh Riffel
@Leigh - Die einzige mir bekannte Gefahr besteht shutdown abortin der versehentlichen Sicherung von Online-Protokollen. Dies gilt jedoch nur für den Fall, dass Sie anschließend kein sauberes Herunterfahren durchführen. Wenn Sie wissen, was Sie tun, shutdown abortkann dies meiner Meinung nach als absolut sicher angesehen werden - und ich bin mir nicht sicher, ob die Position von Oracle als "schlimme Warnung" gilt ;-)
Jack sagt, versuchen Sie es mit topanswers.xyz am
3

Ich bevorzuge die Methode zum Abbrechen des Herunterfahrens, da dies der schnellste Weg ist, eine Datenbank herunterzufahren. Es gibt einige Vorgänge, die nach einem Abschaltabbruch nicht ausgeführt werden können, z

  • Erstellen Sie die Steuerdatei der Datenbank neu mit erstellen Sie Kontrolldatei-Resetlogs (um die Datenbank umzubenennen, um die Protokolldateien umzubenennen, um Datendateien umzubenennen)
  • Ändern Sie das dbid mit der Prozedur von dbms_backup_restore (dies war die einzige Methode in 8i, um das dbid zu ändern).

In beiden Fällen wurde die Datenbank beschädigt und muss nach einem vollständigen Backup wiederhergestellt werden.

seit 9i kann die Umbenennung der Datenbank oder die Änderung des dbid mit dem Dienstprogramm dbnewid erfolgen . Soweit ich weiß, prüft das Dienstprogramm, ob die Datenbank ordnungsgemäß heruntergefahren wurde. Das Umbenennen von Datendateien, Tempfiles und Logfiles kann durch Ausführen der entsprechenden SQL-Anweisungen erfolgen, ohne dass die Steuerdatei neu erstellt werden muss.

Wunder173
quelle