Externen Dateispeicher an Autonomous Database on Dedicated Exadata Infrastructure anhängen

Sie können einen in Oracle Cloud Infrastructure oder On-Premise bereitgestellten externen Dateispeicher an Autonomous Database anhängen, sofern sich die Datenbank und das Dateisystem im selben privaten Netzwerk befinden. Autonomous Database on Dedicated Exadata Infrastructure unterstützt standardmäßig NFSv4.

Auf diese Weise können Sie Daten aus OCI File Storage in Ihrem virtuellen Cloud-Netzwerk (VCN) oder einem anderen Netzwerkdateisystem in On-Premise-Data Centern laden.

Durch die Unterstützung externer Dateispeicher können Sie Folgendes tun:
  • 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.
  • Sichern Sie den Zugriff auf Daten in einer Autonomous Database von den Dateisystemen in einem On-Premise-Data Center oder privaten VCNs.

Externe Dateispeicheranforderungen

So greifen Sie über das Dateisystem in einer Autonomous Database auf Daten zu:
  • On-Premise-Data Center: Richten Sie FastConnect oder ein Site-to-Site-VPN ein, um eine Verbindung zum On-Premise-Data Center herzustellen. Weitere Informationen finden Sie unter FastConnect und Site-to-Site-VPN.

  • Oracle Cloud Infrastructure
    • Sicherheitsregeln für virtuelle Cloud-Netzwerke (VCN) für den Zugriff auf OCI File Storage Service (FSS) erstellen: Bevor Sie einen Dateispeicher mounten können, müssen Sie Sicherheitsregeln konfigurieren, um Traffic zur VNIC des Mountziels mit bestimmten Protokollen und Ports zu ermöglichen. Sicherheitsregeln lassen Traffic für Folgendes zu:
      • rpcbind-Utilityprotokoll für Open Network Computing Remote Procedure Call (ONC RPC)
      • Network File System-(NFS-)Protokoll
      • Network File System-(MOUNT-)Protokoll
      • Network Lock Manager-(NLM-)Protokoll

      Weitere Informationen finden Sie unter VCN-Sicherheitsregeln für File Storage konfigurieren.

    • Dateisystem in OCI FSS erstellen: Erstellen Sie ein Dateisystem mit der OCI-Konsole. Wenn Sie Mountzieldetails für das Dateisystem konfigurieren, wählen Sie das VCN und das private Subnetz des VCN aus, in dem Ihre Datenbank bereitgestellt ist, und geben Sie einen Hostnamen an, um automatisch einen vollqualifizierten Domainnamen (FQDN) zu generieren. Weitere Informationen finden Sie unter Dateisysteme erstellen.
    • FQDN für das Mount-Ziel abrufen: Zeigen Sie die Details des Mount-Ziels des Dateisystems über die OCI-Konsole an, wie unter So zeigen Sie Details eines Mount-Ziels an beschrieben, um den FQDN abzurufen.

Externes Dateisystem anhängen

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

Hinweis:

Die Prozedur DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM kann einen privaten File Storage Service nur an Datenbanken anhängen, die sich auf privaten Endpunkten befinden.
  1. Erstellen Sie ein Verzeichnis, oder hängen Sie das externe Dateisystem 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 Erstellen eines Verzeichnisses.

  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 die Berechtigung EXECUTE für DBMS_CLOUD_ADMIN besitzen.

    • Standardmäßig verwendet DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM NFSv3. Sie können jedoch den Parameter params explizit verwenden und nfs_version mit dem Wert 3 angeben, um NFSv3 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 FSS for sales data'                                   
      );END;                                                                          
      /
    • 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 FSS for sales data',
          params => JSON_OBJECT('nfs_version' value 4)
        );
      END;
      /

    In diesem Beispiel 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
      • Dateipfad: /results

    Der Parameter directory_name gibt den Verzeichnisnamen in Autonomous Database an, an den 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.

Hinweise zur Verwendung von DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM:
  • Oracle Cloud Infrastructure File Storage verwendet NFS Version 3 zum Freigeben. Weitere Informationen finden Sie unter Überblick über File Storage.

  • Wenn Sie an Nicht-Oracle Cloud Infrastructure-Dateispeichersysteme 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.

Weitere Informationen finden Sie unter Prozedur ATTACH_FILE_SYSTEM.

Fragen Sie DBA_CLOUD_FILE_SYSTEMS ab.

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

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

  • Das Package UTL_FILE.

  • Export- und Import-Utilitys von Data Pump.

  • 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');

DBMS_CLOUD_FILE_SYSTEMS Ansicht

In der Ansicht DBA_CLOUD_FILE_SYSTEMS werden die Informationen zum externen Dateisystem aufgeführt, 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) 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

Externes Dateisystem 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 nur einen privaten File Storage Service von den Datenbanken trennen, die sich auf privaten Endpunkten befinden.

Sie benötigen die Berechtigung WRITE für das Verzeichnisobjekt, um ein Dateisystem von einem Verzeichnisspeicherort 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.
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.

Weitere Informationen finden Sie unter Prozedur DETACH_FILE_SYSTEM.