Statische Listener-Registrierung

Um einen Switchover durchführen zu können, ist es (neben den ASM-Aliases für Redo-Logs) notwendig, die beteiligten Datenbanken statisch am Listener zu registrieren.

Bei der normalerweise üblichen dynamischen Listener-Registrierung meldet sich die Datenbank am Listener an, sobald sie gestartet worden ist; erst dann weiss der Listener über die Datenbank Bescheid und kann Remote-Zugriffe weiter reichen.

Damit ein Remote-Zugriff auch dann funktioniert, wenn die Datenbank nicht läuft (z.B. um die Datenbank aus der Ferne zu starten – was beim Switchover passiert), muss sie explizit dem Listener bekannt gemacht werden.

Eine dynamisch registrierte Datenbank mit dem Namen SENTEST sieht im Output von “lsnrctl status” folgendermassen aus:

[...]
Service "SENTEST" has 1 instance(s).
  Instance "SENTEST", status READY, has 1 handler(s) for this service...
[...]

Um diese Datenbank statisch am Listener zu registrieren, ist ein Eintrag im File $ORACLE_HOME/network/admin/listener.ora nötig:

SID_LIST_LISTENER=
  (SID_LIST=
    (SID_DESC=
      (ORACLE_HOME=/opt/oracle/app/product/11.2.0/db_1)
      (SID_NAME=SENTEST))
  )

Passen Sie dabei den Pfad für das ORACLE_HOME Ihrem Setup entsprechend an.

Falls Sie mehr als eine Datenbank statisch registrieren möchten, erweitern Sie die Liste einfach:

SID_LIST_LISTENER=
  (SID_LIST=
    (SID_DESC=
      (ORACLE_HOME=/opt/oracle/app/product/11.2.0/db_1)
      (SID_NAME=SENTEST))
    (SID_DESC=
      (ORACLE_HOME=/opt/oracle/app/product/11.2.0/db_1)
      (SID_NAME=SENPROD))
  )

Nach einem Neu-Einlesen des Config-Files mittels “lsnrctl reload” zeigt “lsnrctl status” nun die statisch registrierte Datenbank (zusätzlich) an:

Service "SENTEST" has 2 instance(s).
  Instance "SENTEST", status UNKNOWN, has 1 handler(s) for this service...
  Instance "SENTEST", status READY, has 1 handler(s) for this service...

Die Instanz mit Status “READY” ist die aktuell laufende, die sich dynamisch am Listener registriert hat; die statisch registrierte wird immer als “UNKNOWN” angeführt.

Falls Sie einen RAC einsetzen, müssen Sie beachten, dass der Listener hier üblicherweise im Grid Environment läuft; das zu bearbeitende Config-File liegt also in $GRID_HOME/network/admin, und auch lsnrctl muss aus dem Grid Environment gestartet werden.

0 Kommentare

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Leave a Reply