Von Autonomous Database auf Network File System zugreifen

Sie können ein Netzwerkdateisystem an ein Verzeichnis in Ihrer Autonomous Database anhängen.

Auf diese Weise können Sie Daten aus Oracle Cloud Infrastructure File Storage in Ihr virtuelles Cloud-Netzwerk (VCN) oder aus einem anderen Netzwerkdateisystem in On-Premise-Data Centern laden. Je nach Version des Netzwerkdateisystems, auf das Sie zugreifen möchten, werden sowohl NFSv3 als auch NFSv4 unterstützt.

Sie haben folgende Möglichkeiten, das Netzwerkdateisystem zu unterstützen:

  • Stellen Sie eine Verbindung zu einer Autonomous Database-Instanz aus einer Legacy-Anwendung her, und verwenden Sie das Dateisystem zum Laden und Entladen von Daten.

  • Analysieren Sie Daten aus verschiedenen Quellen in einer Autonomous Database.

  • Sichern Sie den Zugriff auf Daten in einer Autonomous Database von den Dateisystemen in einem On-Premise-Data Center oder privaten virtuellen Cloud-Netzwerken (VCNs).

Themen

Netzwerkdateisystem an Autonomous Database anhängen

Verwenden Sie DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM, um ein Dateisystem an ein Verzeichnis in Ihrer Autonomous Database anzuhängen.

Mit einem angehängten Dateisystem können Sie Daten aus einem der folgenden Elemente laden:

  • Oracle Cloud Infrastructure-Dateispeicher in Ihrem virtuellen Cloud-Netzwerk (VCN).

    Weitere Informationen zum Einrichten von Oracle Cloud Infrastructure File Storage mit Autonomous Database finden Sie unter Dateispeicher an Autonomous Database anhängen.

  • Von einem Netzwerkdateisystem in einem On-Premise-Data Center. Je nach Version des Netzwerkdateisystems, auf das Sie zugreifen möchten, werden sowohl NFSv3 als auch NFSv4 unterstützt.

    Ein Konfigurationsbeispiel mit einem NFSv4-Netzwerkdateisystem finden Sie unter Beispiel: NFSv4-Server auf Oracle Cloud Compute einrichten.

Hinweis

Die Prozedur DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM kann nur dann einen privaten File Storage Service anhängen, wenn sich die Autonomous Database-Instanz auf einem privaten Endpunkt befindet.

Um von den Dateisystemen in einem On-Premise-Data Center auf Daten in einer Autonomous Database zuzugreifen, müssen Sie FastConnect oder ein Site-to-Site-VPN einrichten, um eine Verbindung zum On-Premise-Data Center herzustellen. Weitere Informationen finden Sie unter FastConnect und Site-to-Site-VPN.

  1. Erstellen Sie ein Verzeichnis, oder verwenden Sie ein vorhandenes Verzeichnis, um ein Netzwerkdateisystem in Autonomous Database anzuhängen. Sie benötigen die Berechtigung WRITE für das Verzeichnisobjekt in Ihrer Autonomous Database-Instanz, um ein Dateisystem an ein Verzeichnis in der Datenbank anzuhängen.

    Beispiel: Der folgende Befehl erstellt das Datenbankverzeichnis FSS_DIR und das Dateisystemverzeichnis fss:

    CREATE DIRECTORY FSS_DIR AS 'fss';

    Weitere Informationen finden Sie unter Directory in Autonomous Database erstellen.

  2. Führen Sie DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM aus, um ein Dateisystem an ein Verzeichnis in Ihrer Autonomous Database anzuhängen. Um diese Prozedur ausführen zu können, müssen Sie als ADMIN-Benutzer angemeldet sein oder über die Berechtigung EXECUTE für DBMS_CLOUD_ADMIN verfügen.
    • Standardmäßig verwendet DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM NFSv3:

      BEGIN
         DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM(
          file_system_name      => 'FSS',
          file_system_location  => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
          directory_name        => 'FSS_DIR',  
          description           => 'Source NFS for sales data'
      );
      END;
      /

      Optional können Sie den Parameter params verwenden und die nfs_version mit dem Wert 3 angeben, um NFSv3 anzugeben.

    • Um NFSv4 zu verwenden, nehmen Sie den Parameter params in DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM auf, und geben Sie nfs_version mit Wert 4 an, um NFSv4 anzugeben:
      BEGIN
         DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM(
          file_system_name      => 'FSS',
          file_system_location  => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
          directory_name        => 'FSS_DIR',  
          description           => 'Source NFS for sales data',
          params                => JSON_OBJECT('nfs_version' value 4)
      );
      END;
      /

    In diesen Beispielen wird das im Parameter file_system_name angegebene Netzwerkdateisystem an Autonomous Database angehängt.

    Der Parameter file_system_location gibt den Speicherort des Dateisystems an. Der Wert, den Sie mit file_system_location angeben, besteht aus einem vollqualifizierten Domainnamen (FQDN) und einem Dateipfad im Format: FQDN:file_path.

    Beispiel:

    • FQDN: myhost.sub000445.myvcn.oraclevcn.com

      Legen Sie für Oracle Cloud Infrastructure File Storage den FQDN in Erweiterte Optionen anzeigen fest, wenn Sie ein Dateisystem erstellen. Weitere Informationen finden Sie unter Dateisysteme erstellen.

    • Dateipfad: /results

    Der Parameter directory_name gibt den Verzeichnisnamen in der Autonomous Database an, an die Sie das Dateisystem anhängen möchten. Dies ist das Verzeichnis, das Sie in Schritt 1 erstellt haben, oder ein anderes Verzeichnis, das Sie zuvor erstellt haben.

    Der Parameter description gibt die Beschreibung für die Aufgabe an.

    Der Parameter params ist ein JSON-Wert, der ein zusätzliches Attribut nfs_version angibt, dessen Wert entweder 3 oder 4 (NFSv3 oder NFSv4) sein kann.

Nachdem Sie ein Dateisystem angehängt haben, können Sie die Ansicht DBA_CLOUD_FILE_SYSTEMS abfragen, um Informationen zum angehängten Dateisystem abzurufen.

Beispiel:

SELECT file_system_name, file_system_location, directory_path                      
   FROM dba_cloud_file_systems
   WHERE file_system_name = 'FSS';

Diese Abfrage gibt Details für den Dateisystemnamen FSS zurück.

Weitere Informationen finden Sie in der Ansicht DBA_CLOUD_FILE_SYSTEMS.

Mit einem angehängten Dateisystem können Sie mit jeder PL/SQL-API, die einen Verzeichnisnamen akzeptiert, in Dateien in einem angehängten Dateisystem lesen und schreiben. Sie können beispielsweise eine der folgenden Methoden verwenden, um mit einem angehängten NFS-Verzeichnis zu arbeiten:

  • Das Package UTL_FILE.

  • Data Pump Export- und -Import-Utilitys

  • Die DBMS_CLOUD-APIs, die mit Verzeichnissen wie DBMS_CLOUD.LIST_FILES und DBMS_CLOUD.PUT_OBJECT arbeiten.

Beispiel für das Schreiben einer Datei in ein angehängtes Dateisystem mit UTL_FILE:

DECLARE
  l_file         UTL_FILE.FILE_TYPE;
  l_location     VARCHAR2(100) := 'FSS_DIR';
  l_filename     VARCHAR2(100) := 'test.csv';
BEGIN
  -- Open the file.
  l_file := UTL_FILE.FOPEN(l_location, l_filename, 'w');
   
  UTL_FILE.PUT(l_file, 'Scott, male, 1000');
 
  -- Close the file.
  UTL_FILE.FCLOSE(l_file);
END;
/

Beispiel für das Lesen einer Datei in einem angehängten Dateisystem mit UTL_FILE:

DECLARE
  l_file         UTL_FILE.FILE_TYPE;
  l_location     VARCHAR2(100) := 'FSS_DIR';
  l_filename     VARCHAR2(100) := 'test.csv';
  l_text         VARCHAR2(32767);
BEGIN
  -- Open the file.
  l_file := UTL_FILE.FOPEN(l_location, l_filename, 'r');
 
  UTL_FILE.GET_LINE(l_file, l_text, 32767);
 
  -- Close the file.
  UTL_FILE.FCLOSE(l_file);
END;
/

Beispiel mit Listendateien in einem angehängten Dateisystem mit DBMS_CLOUD.LIST_FILES:

SELECT object_name FROM DBMS_CLOUD.LIST_FILES('FSS_DIR');

Hinweise zur Verwendung von DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM:

  • Oracle Cloud Infrastructure File Storage verwendet NFSv3 zum Teilen. Weitere Informationen finden Sie unter Überblick über File Storage.

  • Wenn Sie Daten an Nicht-Oracle Cloud Infrastructure File Storage-Systeme anhängen, unterstützt die Prozedur NFSv3 und NFSv4.

  • Wenn ein NFS-Server angehängt ist, der NFSv3 verwendet, und die NFS-Version auf dem NFS-Server auf NFSv4 aktualisiert wird, müssen Sie DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM und dann DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM ausführen (mit dem Parameter params, wobei nfs_version auf 4 gesetzt ist). Dadurch wird NFS mit dem Zuordnungsprotokoll verknüpft, sodass Autonomous Database auf den NFSv4-Server zugreifen kann. Ohne Trennen und erneutes Anhängen ist der Zugriff auf den NFS-Server nicht möglich. Möglicherweise wird ein Fehler wie "Protocol not supported" angezeigt.

In den folgenden Themen finden Sie weitere Informationen:

Von Autonomous Database Netzwerkdateisystem trennen

Verwenden Sie die Prozedur DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM, um ein Dateisystem von einem Verzeichnis in Autonomous Database zu trennen.

Hinweis

Die Prozedur DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM kann einen privaten File Storage Service nur von Datenbanken trennen, die sich auf privaten Endpunkten befinden.

Sie benötigen die Berechtigung WRITE für das Verzeichnisobjekt, um ein Dateisystem von einem Verzeichnis zu trennen.

Führen Sie die Prozedur DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM aus, um ein Dateisystem von einem Verzeichnis in Autonomous Database zu trennen. Um diese Prozedur ausführen zu können, müssen Sie als ADMIN-Benutzer angemeldet sein oder die Berechtigung EXECUTE für DBMS_CLOUD_ADMIN besitzen.

Beispiel:

BEGIN
   DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM (
    file_system_name      => 'FSS'
  );
END;
/

In diesem Beispiel wird das im Parameter file_system_name angegebene Netzwerkdateisystem von der Autonomous Database getrennt. Sie müssen einen Wert für diesen Parameter angeben.

Die Informationen zu diesem Dateisystem werden aus der Ansicht DBA_CLOUD_FILE_SYSTEMS entfernt.

Beispiel: NFSv4-Server auf Oracle Cloud Compute einrichten

Enthält ein Beispiel für das Einrichten eines NSFv4-Servers zur Verwendung mit Autonomous Database.

  1. Einen privaten Endpunkt für die Autonomous Database-Instanz einrichten.

    Weitere Informationen finden Sie unter Netzwerkzugriff mit privaten Endpunkten konfigurieren.

    Die folgenden Ingress- und Egress-Regeln müssen für die Sicherheitsliste des VCN festgelegt werden, damit Autonomous Database und der NFSv4-Server miteinander kommunizieren können

    • Zustandsbehafteter Ingress von ALLEN Ports im Quell-CIDR-Block zu TCP-Port 2049.
    • Zustandsbehafteter Egress-Traffic von TCP ALL-Ports zu Port 2049 im Ziel-CIDR-Block
  2. Richten Sie den NFS-Server auf einer Oracle Cloud-VM mit Oracle Linux 8 im privaten Subnetz ein, das eine Verbindung zur Autonomous Database-Instanz herstellen kann.
    Compute Instance Image: Oracle-Linux-8.8-2023.09.26-0
    $ sudo su -
    $ mkdir /exports
    $ chown nobody /exports
    $ chgrp nobody /exports
     
    # If the VM is using Linux 7, "data" directory may need having the privilege 777 so that ADB can have access to NFS.
    uname -a
    chmod 777 /exports/data
     
    $ mkdir /exports/data
    $ chown nobody /exports/data
    $ chgrp nobody /exports/data
     
    # Either the private IP or the private FQDN can be used in "/etc/exports".
    # Both can be found in the information of the autonomous database on the OCI console.
    $ tee -a /etc/exports <<'EOF'
      /exports/data *(rw,insecure)
      /exports/data example.adb.us-phoenix-1.oraclecloud.com(rw,insecure)
      EOF
     
    $ systemctl start nfs-server
    $ systemctl enable nfs-server
     
    # Configure the firewall to allow NFS connections. "public" is the default zone on Oracle Cloud VM.
    $ firewall-cmd --get-default-zone
    public
     
    $ firewall-cmd --zone=public --add-service=nfs
    $ firewall-cmd --permanent --zone=public --add-service=nfs
     
    $ firewall-cmd --reload
     
    # Display a list of the exported file systems.
    $ showmount -e
     
    # Displays all of the current clients and all of the file systems that the clients have mounted.
    $ showmount -a
  3. Mounten Sie das Dateisystem NFSv4 mit DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM.

    Weitere Informationen finden Sie unter Network File System an Autonomous Database anhängen.

DBA_CLOUD_FILE_SYSTEMS Ansicht

Die Ansicht DBA_CLOUD_FILE_SYSTEMS listet Informationen über das Netzwerkdateisystem auf, das an ein Verzeichnis in der Datenbank angehängt ist.

Spalte Datentyp Beschreibung
FILE_SYSTEM_NAME VARCHAR2(128)

Name des Dateisystems

FILE_SYSTEM_LOCATION VARCHAR2(4000)

Dateisystemspeicherort

DIRECTORY_NAME VARCHAR2(128)

Name des angehängten Verzeichnisses

DIRECTORY_PATH VARCHAR2(4000)

Angehängter Verzeichnispfad

NFS_VERSION NUMBER Die NFS-Version.
DESCRIPTION VARCHAR2(4000)

Der angegebene Wert für den Beschreibungsparameter, wenn Sie DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM ausführen

CREATION_TIME TIMESTAMP(6) WITH TIME ZONE Erstellungszeitstempel
UPDATE_TIME TIMESTAMP(6) WITH TIME ZONE Zeitstempel aktualisieren