Von Autonomous Database auf das Netzwerkdateisystem zugreifen

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

Auf diese Weise können Sie Daten aus Oracle Cloud Infrastructure File Storage in Ihrem virtuellen 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.

Unterstützendes Netzwerkdateisystem ermöglicht Folgendes:

  • Stellen Sie eine Verbindung zu einer Autonomous Database-Instanz von 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.

  • Sicherer Zugriff auf Daten in einer Autonomous Database aus 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 Autonomous Database anzuhängen.

Mit einem angehängten Dateisystem können Sie Daten aus folgenden Quellen 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 Dateisystem an Autonomous Database anhängen.

  • Aus 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 einen privaten File Storage Service nur 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 hängen Sie ein Netzwerkdateisystem in Autonomous Database mit einem vorhandenen Verzeichnis an. Sie benötigen die Berechtigung WRITE für das Verzeichnisobjekt in der 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 Verzeichnis in Autonomous Database erstellen.

  2. Führen Sie DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM aus, um ein Dateisystem an ein Verzeichnis in Autonomous Database anzuhängen. Um diese Prozedur auszuführen, 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 mit DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM auf, und geben Sie nfs_version mit dem 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;
      /

    Diese Beispiele hängen das im Parameter file_system_name angegebene Netzwerkdateisystem an Autonomous Database an.

    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 folgenden Format: FQDN:file_path.

    Beispiele:

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

      Legen Sie für Oracle Cloud Infrastructure File Storage den FQDN beim Erstellen eines Dateisystems unter Erweiterte Optionen anzeigen fest. Weitere Informationen finden Sie unter Dateisysteme erstellen.

    • Dateipfad: /results

    Der Parameter directory_name gibt den Verzeichnisnamen in Autonomous Database an, an den das Dateisystem angehängt werden soll. 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 View DBA_CLOUD_FILE_SYSTEMS abfragen, um Informationen zum angehängten Dateisystem abzurufen.

Beispiele:

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 unter Ansicht DBA_CLOUD_FILE_SYSTEMS.

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

  • Das Package UTL_FILE.

  • Utilitys für den Data Pump-Export und -Import.

  • 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 für die Anzeige von 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 Freigeben. Weitere Informationen finden Sie unter Überblick über File Storage.

  • Wenn Sie Dateien 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 in 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, bei dem nfs_version auf 4 gesetzt ist). Dadurch wird NFS mit dem übereinstimmenden Protokoll angehängt, sodass Autonomous Database auf den NFSv4-Server zugreifen kann. Ohne Trennen und erneutes Anhängen ist der NFS-Server nicht zugänglich, und es kann zu einem Fehler wie "Protocol not supported" kommen.

In den folgenden Themen finden Sie weitere Informationen:

Netzwerkdateisystem von Autonomous Database 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 Verzeichnisverzeichnis 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 auszuführen, müssen Sie als ADMIN-Benutzer angemeldet sein oder die Berechtigung EXECUTE für DBMS_CLOUD_ADMIN besitzen.

Beispiele:

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 Autonomous Database getrennt. Sie müssen einen Wert für diesen Parameter eingeben.

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

Beispiel: NFSv4-Server auf Oracle Cloud Compute einrichten

Stellt ein Beispiel für die Einrichtung eines NSFv4-Servers zur Verwendung mit Autonomous Database bereit.

  1. Richten Sie einen privaten Endpunkt für die Autonomous Database-Instanz ein.

    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

    • Zustandsreicher Ingress-Traffic von allen Ports im Quell-CIDR-Block zu TCP-Port 2049.
    • Stateful Egress-Traffic von allen TCP-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 NFSv4-Dateisystem mit DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM.

    Weitere Informationen finden Sie unter Netzwerkdateisystem an Autonomous Database anhängen.

DBA_CLOUD_FILE_SYSTEMS Ansicht

In der Ansicht DBA_CLOUD_FILE_SYSTEMS werden Informationen zum Netzwerkdateisystem aufgeführt, das an ein Verzeichnis in der Datenbank angehängt ist.

Spalte Datentyp Beschreibung
FILE_SYSTEM_NAME VARCHAR2(128)

Dateiname

FILE_SYSTEM_LOCATION VARCHAR2(4000)

Speicherort für das Dateisystem

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 Wert, der für den Beschreibungsparameter angegeben wird, 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