Accedi al file system di rete da Autonomous Database

È possibile collegare un file system di rete a una posizione di directory in Autonomous Database.

Ciò ti consente di caricare i dati da Oracle Cloud Infrastructure File Storage nella tua rete cloud virtuale (VCN) o da qualsiasi altro file system di rete nei data center on premise. A seconda della versione del file system di rete a cui si desidera accedere, sono supportati sia NFSv3 che NFSv4.

Il supporto del file system di rete consente di effettuare le operazioni riportate di seguito.

  • Connettersi a un'istanza di Autonomous Database da un'applicazione precedente e utilizzare il file system per caricare e scaricare i dati.

  • Analizza i dati provenienti da origini diverse in un Autonomous Database.

  • Proteggi l'accesso ai dati in un Autonomous Database dai file system in un data center on premise o nelle reti cloud virtuali private (VCN).

Argomenti

Collega file system di rete ad Autonomous Database

Utilizzare DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM per collegare un file system a una directory in Autonomous Database.

Con un file system allegato è possibile caricare i dati da uno dei seguenti elementi:

Nota

La procedura DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM può collegare un servizio di storage di file privato solo quando l'istanza di Autonomous Database si trova in un endpoint privato.

Per accedere ai dati in un Autonomous Database dai file system in un data center on premise, è necessario impostare FastConnect o una VPN da sito a sito per connettersi al data center on premise. Per ulteriori informazioni, vedere FastConnect e VPN site-to-site.

  1. Creare una directory o utilizzare una directory esistente per collegare un file system di rete in Autonomous Database. Per collegare un file system a una posizione di directory nel database, è necessario disporre del privilegio WRITE sull'oggetto directory nell'istanza di Autonomous Database.

    Ad esempio, il comando seguente crea la directory del database denominata FSS_DIR e crea la directory del file system fss:

    CREATE DIRECTORY FSS_DIR AS 'fss';

    Per ulteriori informazioni, vedere Crea directory in Autonomous Database.

  2. Eseguire DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM per collegare un file system a una directory in Autonomous Database. Per eseguire questa procedura, è necessario aver eseguito il login come utente ADMIN o disporre del privilegio EXECUTE su DBMS_CLOUD_ADMIN.
    • Per impostazione predefinita DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM utilizza 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;
      /

      Facoltativamente, è possibile utilizzare il parametro params e specificare nfs_version con il valore 3 per specificare NFSv3.

    • Per utilizzare NFSv4, includere il parametro params con DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM e specificare nfs_version con il valore 4 per specificare NFSv4:
      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;
      /

    Questi esempi collegano il file system di rete specificato nel parametro file_system_name ad Autonomous Database.

    Il parametro file_system_location specifica la posizione del file system. Il valore fornito con file_system_location è costituito da un nome dominio completamente qualificato (FQDN) e da un percorso file nel formato: FQDN:file_path.

    Ad esempio:

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

      Per Oracle Cloud Infrastructure File Storage, impostare il nome FQDN in Mostra opzioni avanzate quando si crea un file system. Per ulteriori informazioni, vedere Creazione di file system.

    • Percorso file: /results

    Il parametro directory_name specifica il nome della directory in Autonomous Database in cui si desidera collegare il file system. Questa è la directory creata al Passo 1 o un'altra directory creata in precedenza.

    Il parametro description specifica la descrizione del task.

    Il parametro params è un valore JSON che specifica un attributo aggiuntivo nfs_version, il cui valore può essere 3 o 4 (NFSv3 o NFSv4).

Dopo aver allegato un file system, è possibile eseguire una query sulla vista DBA_CLOUD_FILE_SYSTEMS per recuperare informazioni sul file system allegato.

Ad esempio:

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

Questa query restituisce i dettagli per il nome del file system FSS.

Per ulteriori informazioni, vedere DBA_CLOUD_FILE_SYSTEMS View.

Con un file system allegato è possibile leggere e scrivere in file su un file system allegato utilizzando qualsiasi API PL/SQL che accetta un nome di directory. Ad esempio, è possibile utilizzare uno dei metodi riportati di seguito per utilizzare una directory NFS collegata.

  • Pacchetto UTL_FILE.

  • Utility di esportazione e importazione Data Pump.

  • Le API DBMS_CLOUD utilizzate con directory quali DBMS_CLOUD.LIST_FILES e DBMS_CLOUD.PUT_OBJECT.

Esempio che mostra un file in scrittura su un file system allegato utilizzando 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;
/

Esempio che mostra un file letto in un file system allegato utilizzando 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;
/

Esempio che mostra i file di lista in un file system allegato utilizzando DBMS_CLOUD.LIST_FILES:

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

Note per l'utilizzo di DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM:

  • Oracle Cloud Infrastructure File Storage utilizza NFSv3 per la condivisione. Per ulteriori informazioni, vedere Panoramica dello storage di file.

  • Se ti colleghi a sistemi di storage di file non Oracle Cloud Infrastructure, la procedura supporta NFSv3 e NFSv4.

  • Se si dispone di un server NFS collegato che utilizza NFSv3 e la versione NFS viene aggiornata a NFSv4 nel server NFS, è necessario eseguire DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM e quindi DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (utilizzando il parametro params con nfs_version impostato su 4). Questo allega NFS con il protocollo di corrispondenza in modo che Autonomous Database possa accedere al server NFSv4. Senza scollegare e quindi ricollegare, il server NFS sarà inaccessibile e potrebbe essere visualizzato un errore come: "Protocol not supported".

Per ulteriori informazioni, vedere gli argomenti riportati di seguito.

Scollega file system di rete da Autonomous Database

Utilizzare la procedura DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM per scollegare un file system da una directory in Autonomous Database.

Nota

La procedura DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM può scollegare un servizio di storage di file privato solo dai database che si trovano in endpoint privati.

Per scollegare un file system da una posizione di directory, è necessario disporre del privilegio WRITE sull'oggetto directory.

Eseguire la procedura DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM per scollegare un file system da una posizione di directory in Autonomous Database. Per eseguire questa procedura, è necessario aver eseguito il login come utente ADMIN o disporre del privilegio EXECUTE su DBMS_CLOUD_ADMIN.

Ad esempio:

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

In questo esempio il file system di rete specificato nel parametro file_system_name viene scollegato da Autonomous Database. Specificare un valore per questo parametro.

Le informazioni su questo file system vengono rimosse dalla vista DBA_CLOUD_FILE_SYSTEMS.

Esempio: impostazione di un server NFSv4 in Oracle Cloud Compute

Fornisce un esempio di impostazione di un server NSFv4 da utilizzare con Autonomous Database.

  1. Impostare un endpoint privato per l'istanza di Autonomous Database.

    Per ulteriori informazioni, vedere Configurazione dell'accesso di rete con endpoint privati.

    Le seguenti regole di entrata e uscita devono essere impostate per la lista di sicurezza della VCN in modo che Autonomous Database e il server NFSv4 possano comunicare tra loro

    • Ingresso con conservazione dello stato da TUTTE le porte nel blocco CIDR di origine alla porta TCP 2049.
    • Uscita con conservazione dello stato dalle porte TCP ALL alla porta 2049 nel blocco CIDR di destinazione.
  2. Impostare il server NFS su una VM Oracle Cloud con Oracle Linux 8 nella subnet privata, in grado di connettersi all'istanza di Autonomous Database.
    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. Attivare il file system NFSv4 con DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM.

    Per ulteriori informazioni, vedere Allegare il file system di rete ad Autonomous Database.

Vista DBA_CLOUD_FILE_SYSTEMS

La vista DBA_CLOUD_FILE_SYSTEMS elenca le informazioni sul file system di rete collegato a una posizione di directory nel database.

Colonna Tipo di dati Descrizione
FILE_SYSTEM_NAME VARCHAR2(128)

Nome del file system

FILE_SYSTEM_LOCATION VARCHAR2(4000)

Posizione file di sistema

DIRECTORY_NAME VARCHAR2(128)

Nome directory collegata

DIRECTORY_PATH VARCHAR2(4000)

Percorso directory collegato

NFS_VERSION NUMBER La versione NFS.
DESCRIPTION VARCHAR2(4000)

Valore fornito per il parametro description quando si esegue DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM

CREATION_TIME TIMESTAMP(6) WITH TIME ZONE Indicatore orario creazione
UPDATE_TIME TIMESTAMP(6) WITH TIME ZONE Aggiorna indicatore orario