Oracle Database-Dateisystem

Oracle Database File System (DBFS) nutzt die Vorteile der Datenbank zum Speichern von Dateien und die Stärken der Datenbank zur effizienten Verwaltung relationaler Daten, um eine Standarddateisystem-Schnittstelle für in der Datenbank gespeicherte Dateien zu implementieren. Mit dieser Schnittstelle kann mit jedem Betriebssystemprogramm, das auf Dateien reagiert, transparent auf Dateien in der Datenbank zugegriffen werden.

DBFS ähnelt NFS insofern, als es ein gemeinsam verwendetes Netzwerkdateisystem bereitstellt, das wie ein lokales Dateisystem aussieht und sowohl eine Server-Komponente als auch eine Client-Komponente aufweist. Das DBFS-Dateisystem kann von den Mid-Tier-Hosts aus gemountet und als normales Shared File System aufgerufen werden.

DBFS führt aufgrund der für den DBFS-Mount erforderlichen Konfiguration und Wartung zu einer gewissen Komplexität. Sie müssen den DB-Client auf dem Host installieren, auf dem er gemountet wird. Außerdem müssen Sie ein anfängliches Setup einiger Artefakte in der Datenbank (Tablespace, Benutzer usw.) und im Client (Wallet, tnsnames.ora usw.) ausführen. Er erfordert zusätzliche Kapazität in der Datenbank, da der in den DBFS-Mount kopierte Inhalt in der Datenbank gespeichert wird.

Es wird nicht empfohlen, die Domainkonfiguration oder die Binärdateien direkt im DBFS-Mount zu speichern. Dadurch würde eine sehr starke Abhängigkeit zwischen den Oracle Fusion Middleware-Dateien und der Datenbank entstehen. Es gibt jedoch einige Artefakte und Vorgänge, die von den DBFS-Features profitieren können.

Informationen zur Verwendung von DBFS für den Ordner runtime

Sie können einen Oracle Database File System-(DBFS-)Mount für die freigegebenen Laufzeitdaten als Alternative zu NFS verwenden. Alle im DBFS-Mount gespeicherten Inhalte befinden sich in der Datenbank und werden automatisch über die zugrunde liegende Oracle Data Guard-Replikation auf die Standbysite repliziert. Auf diese Weise hat die sekundäre Site immer eine synchronisierte Kopie davon. Sie müssen keine zusätzliche Replikation des Laufzeitinhalts konfigurieren.

Um diese Lösung zu implementieren, installieren Sie den DB-Client auf allen Middle-Tier-Hosts (primär und sekundär). Sie müssen ein anfängliches Setup einiger Artefakte in der Datenbank (DBFS-Tablespace, Benutzer usw.) und im Client (Wallet, tnsnames.ora usw.) ausführen.

Ein Beispielskript zur Konfiguration eines DBFS-Mounts auf einem Middle Tier-Host finden Sie unter dbfs_dr_setup_root.sh. Dieses Skript installiert den Datenbankclient, erstellt das DBFS-Schema in der Datenbank, konfiguriert die Clientartefakte und mountet das DBFS-Dateisystem auf einem Middle-Tier-Host.

Unter Code herunterladen finden Sie den Link zum Herunterladen des Skripts.

Beachten Sie bei der Verwendung dieses Skripts folgende Punkte:

  • Das "yum"-Utility muss im Host korrekt konfiguriert sein, bevor Sie das Skript ausführen. Das Skript verwendet yum, um einige Packages herunterzuladen, die für die DB-Clientinstallation erforderlich sind.
  • Sie müssen Ihre Umgebungswerte (Benutzernamen, Pfade usw.) im Abschnitt "CUSTOMIZABLE VARIABLES" des Skripts angeben.
  • Mit der Variablen DBFS_CONFIG_DIR wird der Speicherort der DBFS-Konfigurationsartefakte (Wallet, tnsnames.ora und Skript zum Mounten von DBFS) angepasst. Verwenden Sie einen Speicherort, der nicht zwischen Sites repliziert wird, sodass jeder Standort eine eigene Konfiguration hat. Platzieren Sie sie nicht unter dem Domainordner, da sie bei der Replikation der Domain auf sekundär repliziert wird.
  • Sie müssen das Skript auf primären Middle Tier-Hosts (verweist auf die Primärdatenbank) und auf sekundären Middle Tier-Hosts (verweist auf die Sekundärdatenbank) ausführen. Warnungen werden angezeigt, weil einige Elemente bereits erstellt wurden (DB-Benutzer, Tablespace usw.), Sie können diese Meldungen jedoch ignorieren.
  • Um die Konfiguration in den sekundären Middle Tier-Hosts auszuführen, muss die Standbydatenbank im Snapshot Standby-Modus geöffnet sein. Dies liegt daran, dass DBFS nur gemountet werden kann, wenn die Datenbank geöffnet ist. Wenn Oracle Data Guard kein Active Data Guard ist, befindet sich die Standbydatenbank im Mount-Status. Um in solchen Fällen auf den DBFS-Mount auf der Standbysite zuzugreifen, müssen Sie die Datenbank in Snapshot Standby konvertieren.

Nachdem der DBFS-Mount auf allen Middle Tier-Hosts konfiguriert wurde, können Sie ihn als gemeinsamen Ordner für die Laufzeitdaten verwenden (z.B. für Dateien, die von einem Dateiadapter oder einer benutzerdefinierten Anwendung gelesen/geschrieben werden). Sie müssen diesen Inhalt nicht manuell auf der sekundären Site replizieren. Er wird automatisch mit Oracle Data Guard repliziert. Wenn ein Switchover oder Failover stattfindet, ist der Laufzeitinhalt in der neuen Primärdatenbank zusammen mit den restlichen in der Datenbank gespeicherten Informationen verfügbar.

Vorteile der Verwendung von DBFS-Mount für Laufzeitdaten:

  • Die Replikation zwischen Sites ist implizit. Der im DBFS-Mount in der primären Site gespeicherte Inhalt wird über Oracle Data Guard auf die sekundäre Site repliziert.

Nachteile:

  • DBFS-Performance ist schlechter als bei NFS-Lösungen (Oracle Cloud Infrastructure File Storage, Oracle ZFS).
  • Oracle empfiehlt, DBFS nach einem Switchover in der neuen Primärdatenbank neu zu mounten, um sicherzustellen, dass der DBFS-Mount fehlerfrei ist. Der DBFS-Mount kann veraltet sein und ein erneutes Mounten erfordern, wenn die Datenbank, auf die er verweist, einige Zeit nicht geöffnet war (Beispiel: während sich die Datenbank im Standby-Modus befindet).

Oracle WebLogic Server-Konfiguration mit DBFS replizieren

Oracle Database File System (DBFS) ist eine weitere Methode, mit der Sie die Konfiguration replizieren können. In diesem Fall können Sie einen DBFS-Mount als Zwischenverzeichnis verwenden, um die Konfiguration zu replizieren. Jeder im DBFS-Mount gespeicherte Inhalt befindet sich in der Datenbank und wird automatisch über die zugrunde liegende Oracle Data Guard-Replikation auf die Standbysite repliziert.

Diese Methode nutzt die Robustheit des Oracle Data Guard-Replikats. Er ist über die Wiederholungslogik des Oracle-Treibers gut verfügbar und bietet ein resilientes Verhalten. Sie können sie in Szenarios mit mittleren oder hohen Latenzzeiten zwischen den Data Centern verwenden. Die Verwendung von DBFS für die Konfigurationsreplikation hat jedoch zusätzliche Auswirkungen aus den Perspektiven Setup, Datenbankspeicher und Lebenszyklus:

  • Es führt zu einer gewissen Komplexität aufgrund der Konfiguration und Wartung, die für den DBFS-Mount erforderlich sind. Dazu muss der DB-Client auf dem Host installiert sein, auf dem er gemountet wird. Dazu ist ein anfängliches Setup einiger Artefakte in der Datenbank (Tablespace, Benutzer usw.) und im Client (Wallet, tnsnames.ora usw.) erforderlich. Ein Beispielskript finden Sie unter dbfs_dr_setup_root.sh, das den Datenbankclient installiert, das DBFS-Schema in der Datenbank erstellt, die Clientartefakte konfiguriert und das DBFS-Dateisystem in einem Mid-Tier-Host mountet.
  • Er erfordert zusätzliche Kapazität in der Datenbank, da der in den DBFS-Mount kopierte Inhalt in der Datenbank gespeichert wird.
  • Es wird nicht empfohlen, die Domainkonfiguration oder die Binärdateien direkt im DBFS-Mount zu speichern. Dadurch entsteht eine sehr starke Abhängigkeit zwischen den Oracle Fusion Middleware-Dateien und der Datenbank. Stattdessen wird empfohlen, DBFS als Unterstützung-Dateisystem zu verwenden: ein Zwischenspeicherungs-Dateisystem, in dem die Informationen gespeichert werden, die auf die Standbysite repliziert werden. Die Replikation auf die Standbydatenbank umfasst zwei Schritte: vom Ursprungsordner der Primärdatenbank bis zum DBFS-Zwischen-Mount und dann auf der Standbysite vom DBFS-Mount zum Zielordner der Standbydatenbank.
  • Das DBFS kann nur gemountet werden, wenn die Datenbank geöffnet ist. Wenn Oracle Data Guard kein Active Data Guard ist, befindet sich die Standbydatenbank im Mount-Status. Daher muss die Datenbank in Snapshot Standby konvertiert werden, um in solchen Fällen auf den DBFS-Mount in der Standby Site zuzugreifen. Bei Verwendung von Active Data Guard kann das Dateisystem für Lesevorgänge gemountet werden, und es ist kein Übergang zu einem Snapshot erforderlich.

Aus diesen Gründen wird DBFS nicht als allgemeine Lösung empfohlen, um alle Dateisystemartefakte in der Standby-Datenbank zu replizieren. Beispielsweise ist es ein Overkill, die Binärdateien mit DBFS zu replizieren.

Dieser Ansatz eignet sich jedoch zur Replikation einiger dynamischer Artefakte während des Lebenszyklus, z.B. der gemeinsam verwendeten Domainkonfiguration (ASERVER_HOME), wenn andere Methoden wie die Speicherreplikation oder rsync nicht durchführbar sind. Im Dokument Oracle WebLogic Server for Oracle Cloud Infrastructure Disaster Recovery finden Sie ein Beispiel für die Verwendung von DBFS als Unterstützungsdateisystem zum Replizieren der Domainkonfiguration.

Unter Code herunterladen finden Sie den Link zum Herunterladen des Skripts.