Für Oracle mounten wir die Instanz in die Datenbank oder mounten die Datenbank in die Instanz?

7

Der folgende Text ist ein Auszug aus der Oracle-Dokumentation.

Starten Sie die Instanz, mounten Sie die Datenbank und öffnen Sie sie. Dies kann im uneingeschränkten Modus erfolgen, der den Zugriff auf alle Benutzer ermöglicht, oder im eingeschränkten Modus, der nur Datenbankadministratoren den Zugriff ermöglicht.

....

Verwenden Sie die SQL-Anweisung ALTER DATABASE mit der MOUNT-Klausel wie folgt, um eine Datenbank an eine zuvor gestartete, aber nicht geöffnete Instanz anzuhängen:

ALTER DATABASE MOUNT;

Sie können es direkt unter http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/start.htm lesen

Der erste Teil gibt mir den Eindruck, dass wir die Instanz in die Datenbank einbinden. Aber der To mount a database to a previously started, but not opened instanceTeil gibt mir den Eindruck, dass wir eine Datenbank in eine Instanz einbinden.

Welches Verständnis ist richtig? Kann jemand helfen, es bitte zu erklären?

Vielen Dank

Nur ein Lernender
quelle

Antworten:

12

Wir mounten eine Datenbank an eine Instanz. Siehe den Konzeptleitfaden :

Die Instanz stellt eine Datenbank bereit, um die Datenbank dieser Instanz zuzuordnen.

Eine Möglichkeit, wie ich es erklärt gesehen habe (wahrscheinlich hier oder auf SO), ist, dass die Instanz die Speicherstrukturen und -prozesse sind und die Datenbank die Daten auf der Festplatte. Der Instanz muss eine Datenbank zugeordnet sein, damit sie etwas Nützliches tun kann.

Alex Poole
quelle
2
+1. In beiden Fällen werden die Datenbank und die Instanz angehängt. Es ist jedoch möglich (in RAC), dass dieselbe Datenbank von mehreren Instanzen geöffnet wird.
Gary
5

Ich kann sehen, warum dies angesichts des mentalen Modells, das wir auf das Wort Mount anwenden, verwirrend sein kann. Es kann hilfreich sein, sich Mount als abstrakten Oracle-Begriff vorzustellen und nur das anzuwenden, was die Software tatsächlich tut. Hier sind die Phasen des Instanz- und Datenbankstarts:

Herunterfahren

NoMount

  • Liest die Parameter in der Initialisierungsdatei.
  • Ordnet Speicher zu.
  • Startet die Hintergrundprozesse.
  • Öffnet das Alarmprotokoll.

Montieren

  • Öffnet und liest die Steuerdateien.

Öffnen

  • Öffnet die Datendateien und Protokolldateien.
  • Überprüft die Konsistenz der Datendateien.

Zu sagen, dass eine Instanz eine Datenbank bereitstellt, bedeutet, dass nur die Steuerdateien geöffnet und gelesen wurden. Zu diesem Zeitpunkt im Speicher kennt es die Datenbank, aber die Datendateien, Redo-Protokolle und daher die Datenbank sind nicht geöffnet.

Das Oracle Concepts-Handbuch wurde bereits zitiert, aber hier ist die 11.2-Version desselben. http://download.oracle.com/docs/cd/E11882_01/server.112/e16508/startup.htm#CNCPT602

Leigh Riffel
quelle
1
Seit ich dies gepostet habe, habe ich die Mount-Phase gesehen, die als Mounten der Steuerdateien beschrieben wird. Ich mag das, weil es uns erlaubt, die traditionelle Bedeutung des Wortes Mount beizubehalten, ohne das, was tatsächlich passiert, zu verwirren.
Leigh Riffel
2

Starten Sie zuerst die Instanz, mounten Sie anschließend die Datenbank und öffnen Sie die Datenbank, um den Zugriff auf die Daten zu ermöglichen.

Dies kann alles in einem einfachen Schritt erfolgen: Dadurch wird startupdie Instanz gestartet, die Datenbank bereitgestellt und geöffnet, um den Zugriff für Anwendungen zu ermöglichen.

ik_zelf
quelle