Accedere 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 da origini diverse in un Autonomous Database.

  • Accesso sicuro ai dati in un Autonomous Database dai file system in un data center on premise o in reti cloud virtuali private (VCN).

Temi

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 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 eseguire 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 il valore nfs_version con 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 maggiori informazioni, vedere Creazione dei file system.

    • Percorso file: /results

    Il parametro directory_name specifica il nome della directory nell'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 le 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 nei file di un file system allegato utilizzando qualsiasi API PL/SQL che accetti un nome di directory. Ad esempio, è possibile utilizzare uno dei metodi indicati di seguito per utilizzare una directory NFS collegata.

  • Il pacchetto UTL_FILE.

  • Utility di esportazione e importazione di Data Pump.

  • Le API DBMS_CLOUD che funzionano con directory quali DBMS_CLOUD.LIST_FILES e DBMS_CLOUD.PUT_OBJECT.

Esempio che mostra una scrittura di un file 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 una lettura di un file 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';
  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 dell'elenco 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 condividere. 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). Ciò collega NFS con il protocollo corrispondente in modo che Autonomous Database possa accedere al server NFSv4. Senza scollegare e quindi ricollegare, il server NFS non sarà accessibile e potrebbe essere visualizzato un errore, ad esempio "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 su 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 nell'Autonomous Database. Per eseguire questa procedura, è necessario eseguire 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 dall'Autonomous Database. Fornire 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 per impostare 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.

    È necessario impostare le seguenti regole di entrata e uscita 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 Collega il file system di rete ad Autonomous Database.

DBA_CLOUD_FILE_SYSTEMS Visualizza

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

A colonne Tipo di dati descrizione;
FILE_SYSTEM_NAME VARCHAR2(128)

Nome del file system

FILE_SYSTEM_LOCATION VARCHAR2(4000)

Posizione file system

DIRECTORY_NAME VARCHAR2(128)

Nome directory collegata

DIRECTORY_PATH VARCHAR2(4000)

Percorso directory collegato

NFS_VERSION NUMBER La versione di NFS.
DESCRIPTION VARCHAR2(4000)

Valore fornito per il parametro descrizione 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 Indicatore orario aggiornamento