Collega storage di file esterno ad Autonomous Database sull'infrastruttura Exadata dedicata

È possibile collegare uno storage di file esterno distribuito in Oracle Cloud Infrastructure o in locale all'Autonomous Database, a condizione che il database e il file system si trovino nella stessa rete privata. Autonomous Database sull'infrastruttura Exadata dedicata supporta NFSv4, per impostazione predefinita.

Ciò consente di caricare i dati dallo storage di file OCI nella rete cloud virtuale (VCN) o in qualsiasi altro file system di rete nei data center on premise.

Il supporto dello storage di file esterno 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 VCN privati.

Requisiti di storage di file esterni

Per accedere ai dati in un Autonomous Database dal file system, effettuare le operazioni riportate di seguito.
  • Data center on-premise: imposta 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.

  • Infrastruttura Oracle Cloud
    • Crea regole di sicurezza della rete cloud virtuale (VCN) per l'accesso a OCI File Storage Service (FSS): prima di poter eseguire il MOUNT di uno storage di file, è necessario configurare le regole di sicurezza per consentire il traffico verso la VNIC della destinazione di accesso utilizzando protocolli e porte specifici. Le regole di sicurezza abilitano il traffico per gli elementi riportati di seguito.
      • Protocollo della utility rpcbind Open Network Computing Remote Procedure Call (ONC RPC)
      • Protocollo NFS
      • Protocollo MOUNT (Network File System)
      • Protocollo NLM (Network Lock Manager)

      Per ulteriori dettagli, vedere Configurazione delle regole di sicurezza VCN per lo storage di file.

    • Creare un file system in OCI FSS: creare un file system utilizzando la console OCI. Quando si configurano i dettagli della destinazione di accesso per il file system, selezionare la VCN e la subnet privata della VCN in cui viene distribuito il database e fornire un nome host per generare automaticamente un nome dominio completamente qualificato (FQDN). Per maggiori informazioni, vedere Creazione dei file system.
    • Ottenere il nome FQDN per la destinazione di accesso: visualizzare i dettagli della destinazione di accesso del file system dalla console OCI come descritto nella sezione Per visualizzare i dettagli di una destinazione di accesso per ottenere il nome FQDN.

Allega file system esterno

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

Nota

La procedura DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM può solo collegare un servizio di storage di file privato ai database che si trovano su endpoint privati.
  1. Creare una directory o utilizzare una directory esistente per collegare il file system esterno 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 una directory.

  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. È tuttavia possibile scegliere di utilizzare in modo esplicito il parametro params e specificare il valore nfs_version con il valore 3 per specificare 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 FSS for sales data'                                   
      );END;                                                                          
      /
    • 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 FSS for sales data',
          params => JSON_OBJECT('nfs_version' value 4)
        );
      END;
      /

    In questo esempio il file system di rete specificato nel parametro file_system_name viene collegato 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
      • 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.

Note per l'utilizzo di DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM:
  • Oracle Cloud Infrastructure File Storage utilizza NFS versione 3 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). 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 ATTACH_FILE_SYSTEM Procedura.

Interrogazione DBA_CLOUD_FILE_SYSTEMS

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 DBMS_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 seguenti metodi per utilizzare una directory FSS 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');
Per ulteriori informazioni, vedere gli argomenti riportati di seguito.

DBMS_CLOUD_FILE_SYSTEMS Visualizza

La vista DBA_CLOUD_FILE_SYSTEMS elenca le informazioni sul file system esterno 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 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

Scollega file system esterno

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 di 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 eseguire il login come utente ADMIN o disporre del privilegio EXECUTE su DBMS_CLOUD_ADMIN.
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.

Per ulteriori informazioni, vedere DETACH_FILE_SYSTEM Procedura.