Wie eine Oracle 12c Datenbank stoppen

So wie es eine Reihenfolge der Ereignisse zu Starten einer Oracle 12c Datenbankinstanz ist, gibt es auch ein Auftrag für, wie eine Datenbankinstanz gestoppt wird. Idealerweise ist das, was während einer Datenbank Abschaltung geschieht:

  • Neue Verbindungen zur Datenbank verweigert.

  • Bestehende Transaktionen sind entweder festgeschrieben oder zurückgesetzt mit der richtigen Updates zu Online-Redo-Log-Dateien.

  • Benutzersitzungen werden abgebrochen.

  • Datenbank-Datei-Header werden aktualisiert und die Dateien werden geschlossen.

  • SGA wird abgeschaltet.

  • Hintergrundprozesse werden beendet.

Es ist bevorzugt, alle Schritte natürlich während des Abschaltens auftreten, was sicherstellt, dass

  • Alle Transaktionen sind ordentlich verpflichtet oder zurückgerollt.

  • Online-Redo-Log-Dateien werden korrekt aktualisiert.

  • Alle Dateien werden ordnungsgemäß ohne Korruption geschlossen.

Wenn die vorausgehenden Schritte nicht treten während der Abschaltung wegen eines Servers oder einer Datenbank-Instanz abstürzt oder shutdown abort, müssen die Bereinigungsvorgänge während des Startvorgangs in einer Phase auftreten genannt Beispiel Erholung.

Während beispielsweise Erholung, Oracle wird nicht eine Datenbankinstanz zu öffnen, bis er zufrieden ist, dass alle Transaktionen werden berücksichtigt und alle Datendateien geöffnet werden. Wenn es nicht diese Aufgaben durchführen können, Fehlermeldungen angezeigt werden und der DBA muss sie ansprechen. Instanz Recovery ist erfolgreich die meiste Zeit, aber es kann einige Minuten dauern die Bereinigung zu verarbeiten.

Shutdown Typen in Oracle 12c

Wenn eine Datenbank heruntergefahren werden muss, gibt es mehrere Methoden, um mit unterschiedlichen Auswirkungen auf die aktuellen Benutzer und deren Transaktionen zu tun.

SHUTDOWN [NORMAL]

  • Neue Verbindungen zur Datenbank verweigert.

  • Bestehende Geschäfte normal weiter, bis sie entweder zurückrollen oder begehen.

  • Benutzer melden Sie sich normalerweise auf eigene Faust.

  • Nachdem der letzte Benutzer abmeldet, Datenbank-Datei-Header aktualisiert und Dateien geschlossen sind.

  • SGA wird abgeschaltet.

  • Hintergrundprozesse werden beendet.

  • durch die Stillegung oder SHUTDOWN NORMAL Befehl angegeben.

SHUTDOWN TRANSACTIONAL

  • Neue Verbindungen zur Datenbank verweigert.

  • Bestehende Geschäfte normal weiter, bis sie entweder zurück oder begehen rollen.

  • Nach einer bestehenden Transaktion abgeschlossen ist, werden Benutzersitzungen beendet.

  • Datenbank-Datei-Header werden aktualisiert und die Dateien werden geschlossen.

  • SGA wird abgeschaltet.

  • Hintergrundprozesse werden beendet.

  • durch den SHUTDOWN TRANSACTIONAL Befehl angegeben.

shutdown immediate

  • Neue Verbindungen zur Datenbank verweigert.

  • Bestehende Transaktionen werden rückgängig gemacht.

  • Benutzersitzungen werden abgebrochen.

  • Datenbank-Datei-Header werden aktualisiert, und Dateien geschlossen sind.

  • SGA wird abgeschaltet.

  • Hintergrundprozesse werden beendet.

  • durch den Befehl shutdown immediate angegeben.

SHUTDOWN ABORT

  • Neue Verbindungen zur Datenbank verweigert.

  • Bestehende Geschäfte werden nicht rückgängig gemacht.

  • Benutzersitzungen werden abgebrochen.

  • SGA wird abgeschaltet.

  • Hintergrundprozesse werden beendet.

  • durch den SHUTDOWN ABORT-Befehl angegeben.

  • Instanz Erholung beim Start erforderlich.

Shutdown Entscheidungen in Oracle 12c

Wann Sie jeden Befehl shutdown verwenden?

  • Im Allgemeinen ist shutdown immediate, was Sie wollen, weil es sauber begeht oder bestehende Transaktionen zurückrollt, beendet Benutzer-Sessions, wenn sie abgeschlossen sind, und dann schließt die Datenbank in eine saubere Art und Weise.

  • Nicht NORMAL sehr oft verwenden SHUTDOWN weil selbst ein Benutzer noch angemeldet (nachdem er für den Tag noch übrig ist), um das Herunterfahren hängen.

  • SHUTDOWN TRANSACTIONAL kauft man nicht viel, weil es Sie zwingt, auf den zu warten, um ihre Geschäfte zu beenden. Wenn Sie warten wollen, können Sie einfach shutdown normal eingeben. Allerdings, wenn Sie wollen, dass sie die Datenbankinstanz zu zwingen, aus, verwenden Sie shutdown immediate. Es gibt Zeiten, SHUTDOWN TRANSACTIONAL ist nützlich, aber es ist nicht so häufig, wie Sie vielleicht denken. Dieses Verfahren wird am häufigsten in Clusterumgebungen verwendet.

    Hier ist, wie ein typischer shutdown immediate ausgeführt wird. Beachten Sie, dass Sie sich als SYSDBA müssen angemeldet sein, um das Herunterfahren Befehl auszuführen.

    SQL> shutdown immediate-Datenbank closed.Database dismounted.ORACLE Instanz down.SQL geschlossen> Ausfahrt
  • Verwenden Sie nur shutdown abort, wenn Sie zu haben. Er stürzt im Wesentlichen auf die Datenbank und erwartet Instanz Erholung, die Stücke zu holen. Sie können das tun, wenn das System aufgehängt ist, aber es sollte Ihre erste Wahl nicht sein (es sei denn, Sie echte Datenbank-Recovery irgendwann tun wollen).

    Wenn Sie Befehle in der Datenbankinstanz ausgeben können, geben einen SYSTEM SWITCH LOGFILE ALTER, um einen Kontrollpunkt zu zwingen, Datei-Header zu schließen und die Online-Redo-Logs leeren, bevor die SHUTDOWN ABORT Ausgabe. einen Prüfpunkt erzwingen ermöglicht eine einfachere Instanz Erholung beim nächsten Start.

Bevor Sie irgendwelche Befehle erteilen den Betriebszustand der Instanz zu ändern, stellen Sie sicher, dass Sie auf die richtige Instanz sich verbinden. Unter Linux, doch wenn die Instanz nicht gestartet wird, in der Befehlszeile Folgendes ein:

$ Echo $ ORACLE_SID

Wenn die Instanz bereits ausgeführt wird, und Sie wollen es herunterzufahren oder es einzuschränken, geben Sie dies:

$ Sqlplus / as sysdbaSQL> select instance_name von v $ instance-INSTANCE_NAME ---------------- dev12c

Menü