Wie erkenne ich, ob eine Oracle-Datenbank gemountet und aktiviert ist?

Wie erkenne ich, ob eine Oracle-Datenbank gemountet und aktiviert ist?

IANADBA, aber ich schreibe ein Skript, das aktiv wird, solange die Oracle-Standby-Datenbank nicht aktiviert wurde. Was ich suche, sind zwei Abfragen (oder Abfragesätze, falls erforderlich).

1 - Ist die Datenbank gemountet (d. h. hat jemand „Alter Database Mount Standby Database“ ausgeführt)

2 – Wie kann ich feststellen, ob die Datenbank aktiviert ist (z. B. „Datenbank ändern, Standby-Datenbank aktivieren“)?

Wie gesagt, ich bin auf der Suche nach Anfragen, aber wenn es eine Möglichkeit gibt, das im System zu erkennen, bin ich auch dafür offen. Danke!

Aktualisieren

Ich habe den folgenden Vorschlag übernommen (leicht modifiziert, da ich mit Oracle 8i arbeite) und erhalte Folgendes:

 SQL>  SELECT INSTANCE_NAME, DATABASE_STATUS, INSTANCE_ROLE from v$instance; 

 INSTANCE_NAME    DATABASE_STATUS   INSTANCE_ROLE
 ---------------- ----------------- ------------------
 RGR01            ACTIVE            PRIMARY_INSTANCE

Derzeit stellt diese Instanz aktiv Archivprotokolle wieder her, ist aber nicht „live“. Ich suche immer noch nach einer Möglichkeit, festzustellen, ob sie nicht als Standby-Datenbank bereitgestellt ist.

Antwort1

Ich habe es!

CONTROLFILE_TYPE von v$database ist der Schlüssel

 SQL> select CONTROLFILE_TYPE from v$database; 

 CONTROL
 -------
 CURRENT

gegen

 SQL> select CONTROLFILE_TYPE from v$database; 

 CONTROL
 -------
 STANDBY

Antwort2

Dies funktioniert für einen physischen Standby, Oracle 10g (und höher)

Wählen Sie open_mode aus v$database;

Wenn der Wert ist:

  1. ‚MOUNTED‘, Ihre Datenbank ist gemountet.
  2. „LESEN SCHREIBEN“, dann können Sie davon ausgehen, dass es aktiviert wurde.
  3. „NUR LESEN“, dann wird es möglicherweise zur Abfrage im Nur-Lese-Modus geöffnet, aber nicht aktiviert.
  4. „NUR LESEN MIT ANWENDEN“ bei Verwendung von Active Dataguard.

Auf der Primärseite:

select database_role from v$database;

DATABASE_ROLE
----------------
PRIMARY

Auf dem Slave:

OPEN_MODE
--------------------    --------------------
MOUNTED              or READ ONLY WITH APPLY

Es könnte auch andere Werte geben, ich bin nicht sicher.

HTH

Antwort3

Ich kenne die Antwort auf diese Frage nicht wirklich - "Wie kann ich feststellen, ob eine Oracle-Datenbank gemountet und aktiviert ist?", aberIch muss eine Antwort posten, um die Leute wissen zu lassen, dass sie sich bitte nicht von den Antworten dieses Beitrags in die Irre führen lassen sollen, denn die meisten davon sind grob falsch.

  • Diejenigen, die sagen, dass „v$instance“ verwendet werden soll, liegen absolut falsch, da dadurch festgestellt wird, ob „Instance“ gemountet oder gestartet wird oder aktiv ist oder nicht.Bitte beachten Sie, dass Datenbank und Datenbankinstanz unterschiedliche Dinge sind, also, wenn Sie den Unterschied nicht kennen, dann lesen Sie besser, und lesen Sie auch überOracle RAC und Oracle Data Guard.

  • Die von Ihnen genannten Verwendungszwecke select CONTROLFILE_TYPE from v$database;sind ebenfalls nicht richtig, da gemäßOrakelDiese Spalte enthält Informationen zur Steuerdatei und gibt an, ob die Datenbank im Standby-Modus oder im aktiven Modus ist. Dies ist etwas anderes als die Angabe, ob die Datenbank gemountet ist oder ob sie aktiv ist.

Wie gesagt, ich halte es für sehr wichtig, den Unterschied zwischen Datenbank und Datenbankinstanz zu verstehen und auch zu wissen, was Oracle RAC und Oracle Data Guard ist.

Angenommen, ich habe eine primäre Datenbank und eine weitere Standby-Databguard-Datenbank und beide Datenbanken/Instanzen sind aktiv und einsatzbereit. Sehen Sie jedoch den Unterschied in den folgenden Screenshots:

Primäre Datenbank:

Bildbeschreibung hier eingeben

Standby-Data-Guard-Datenbank:

Bildbeschreibung hier eingeben

Antwort4

Könnten Sie die Verbindungen zur Datenbank über netstat/lsof überwachen? Vermutlich würden Sie bemerken, dass Clients beginnen, sie zu verwenden.

Möglicherweise können Sie auch das Archivprotokoll für diese Befehle überwachen.

verwandte Informationen