Attachement d'un stockage de fichiers réseau à Autonomous Database on Dedicated Exadata Infrastructure

Vous pouvez attacher votre partage NFS à votre instance Autonomous Database, à condition que la base de données et le système de fichiers se trouvent sur le même réseau privé. Autonomous Database on Dedicated Exadata Infrastructure prend en charge NFSv4, par défaut.

La prise en charge du système de fichiers réseau (NFS) vous permet d'effectuer les opérations suivantes :
  • Chargez des données hautement sensibles à partir d'autres bases de données vers Autonomous Database sur Exadata Cloud@Customer de manière hautement sécurisée.
  • Déplacez des données vers et depuis plusieurs déploiements Exadata Cloud@Customer pour faciliter les données fournisseur, les vidages d'export et d'autres processus métier.
Vous devez attacher explicitement le partage NFS aux bases de données suivantes, si nécessaire :
  • Cloner une base de données créée à partir du clonage d'une instance Autonomous Database avec des points de montage NFS.
  • Base de données de secours qui prend le rôle principal après une opération de basculement ou de permutation dans une configuration Autonomous Data Guard dans laquelle la base de données principale a été attachée à un partage NFS.

Configuration requise pour le système de fichiers réseau

Avant d'attacher votre partage NFS à une instance Autonomous Database, assurez-vous que :
  • Le réseau NFS fourni par le client est accessible à partir des noeuds de cluster de machines virtuelles Autonomous.
  • Le système de fichiers monté via NFS est accessible en lecture et en écriture par l'utilisateur de système d'exploitation oracle sur tous les noeuds de cluster de machines virtuelles Autonomous.
  • Si les droits d'accès sont contrôlés au niveau de l'utilisateur, la paire UID:GID de l'utilisateur oracle pour le cluster de machines virtuelles Autonomous est 1001:1001.

Attacher un système de fichiers réseau

Utilisez DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM pour attacher un système de fichiers à un répertoire dans votre instance Autonomous Database.

Remarques :

La procédure DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM peut uniquement attacher un service File Storage privé lorsque l'instance Autonomous Database se trouve sur une adresse privée.
  1. Créez un répertoire ou utilisez un répertoire existant pour attacher le système de fichiers externe dans votre instance Autonomous Database. Vous devez disposer du privilège WRITE sur l'objet de répertoire sur votre instance Autonomous Database pour attacher un système de fichiers à un emplacement de répertoire dans la base de données.

    Par exemple, la commande suivante crée le répertoire de base de données nommé NFS_DIR et le répertoire de système de fichiers nfs :
    CREATE DIRECTORY NFS_DIR AS ‘nfs’;

    Pour plus d'informations, reportez-vous à Création d'un répertoire.

  2. Exécutez DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM pour attacher un système de fichiers à un répertoire dans votre instance Autonomous Database. Pour exécuter cette procédure, vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur DBMS_CLOUD_ADMIN.

    • Par défaut, DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM utilise NFSv3. Cependant, vous pouvez choisir d'utiliser explicitement le paramètre params et indiquer nfs_version avec la valeur 3 pour indiquer NFSv3.

      BEGIN
      DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
          file_system_name      => 'NFS',
          file_system_location  => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
          directory_name        => 'NFS_DIR',  
          description           => 'Source NFS for sales data'                                   
      );END;                                                                          
      /
    • Pour utiliser NFSv4, incluez le paramètre params avec DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM et indiquez nfs_version avec la valeur 4 pour indiquer NFSv4.

      BEGIN
        DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
          file_system_name => 'NFS',
          file_system_location => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
          directory_name => 'NFS_DIR',
          description => 'Source NFS for sales data',
          params => JSON_OBJECT('nfs_version' value 4)
        );
      END;
      /

    Les exemples présentés ci-dessus attachent le système de fichiers réseau indiqué dans le paramètre file_system_name à Autonomous Database.

    Le paramètre file_system_location indique l'emplacement du système de fichiers. La valeur que vous fournissez avec file_system_location se compose d'un nom de domaine qualifié complet et d'un chemin de fichier au format suivant : FQDN:file_path.

    Exemple :
    • FQDN : myhost.sub000445.myvcn.oraclevcn.com
    • Chemin du fichier : /results

    Le paramètre directory_name indique le nom du répertoire dans l'instance Autonomous Database à laquelle attacher le système de fichiers. Il s'agit du répertoire que vous avez créé à l'étape 1 ou d'un autre répertoire que vous avez créé précédemment.

    Le paramètre description indique la description de la tâche.

    Le paramètre params est une valeur JSON qui indique un attribut supplémentaire nfs_version, dont la valeur peut être 3 ou 4 (NFSv3 ou NFSv4).

Remarques relatives à l'utilisation de DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM :
  • Oracle Cloud Infrastructure File Storage utilise NFSv3 pour le partage. Pour plus d'informations, reportez-vous à Présentation de File Storage.

  • Si vous attachez des systèmes de stockage de fichiers autres qu'Oracle Cloud Infrastructure, la procédure prend en charge NFSv3 et NFSv4.

  • Si vous disposez d'un serveur NFS attaché qui utilise NFSv3 et que la version NFS est mise à jour vers NFSv4 dans le serveur NFS, vous devez exécuter DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM, puis DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (à l'aide du paramètre params avec nfs_version défini sur 4). Cette opération attache NFS avec le protocole correspondant afin qu'Autonomous Database puisse accéder au serveur NFSv4. Sans détachement puis rattachement, le serveur NFS sera inaccessible et vous risquez de voir une erreur telle que : "Protocol not supported".

Pour plus d'informations, reportez-vous à Procédure ATTACH_FILE_SYSTEM.

Requête DBA_CLOUD_FILE_SYSTEMS

Une fois que vous avez joint un système de fichiers, vous pouvez interroger la vue DBA_CLOUD_FILE_SYSTEMS pour extraire des informations sur le système de fichiers joint.

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

Cette requête renvoie les détails du nom de système de fichiers FSS. Pour plus d'informations, voir DBMS_CLOUD_FILE_SYSTEMS View.

Avec un système de fichiers joint, vous pouvez lire et écrire dans les fichiers d'un système de fichiers joint à l'aide de n'importe quelle API PL/SQL acceptant un nom de répertoire. Par exemple, vous pouvez utiliser l'une des méthodes suivantes pour utiliser un répertoire FSS attaché :

  • Package UTL_FILE.

  • Utilitaires d'export et d'import Data Pump.

  • API DBMS_CLOUD qui fonctionnent avec des répertoires tels que DBMS_CLOUD.LIST_FILES et DBMS_CLOUD.PUT_OBJECT.

Exemple illustrant l'écriture d'un fichier sur un système de fichiers joint à l'aide de 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;
/
Exemple illustrant la lecture d'un fichier sur un système de fichiers joint à l'aide de 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;
/
Exemple montrant des fichiers de liste sur un système de fichiers joint à l'aide de DBMS_CLOUD.LIST_FILES :
SELECT object_name FROM DBMS_CLOUD.LIST_FILES('FSS_DIR');

Vue DBMS_CLOUD_FILE_SYSTEMS

La vue DBA_CLOUD_FILE_SYSTEMS répertorie les informations sur le système de fichiers externe attaché à un emplacement de répertoire dans la base de données.
Colonne Type de données Description
FILE_SYSTEM_NAME VARCHAR2(128) Nom du système de fichiers
FILE_SYSTEM_LOCATION VARCHAR2(4000) Emplacement du système de fichiers
DIRECTORY_NAME VARCHAR2(128) Nom du répertoire joint
DIRECTORY_PATH VARCHAR2(4000) Chemin de répertoire attaché
NFS_VERSION NUMBER La version NFS
DESCRIPTION VARCHAR2(4000) Valeur fournie pour le paramètre de description lors de l'exécution de DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM
CREATION_TIME TIMESTAMP(6) WITH TIME ZONE Horodatage de création
UPDATE_TIME TIMESTAMP(6) WITH TIME ZONE Mettre à jour l'horodatage

Détacher le système de fichiers réseau

Utilisez la procédure DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM pour détacher un système de fichiers d'un répertoire dans votre instance Autonomous Database.

Remarques :

La procédure DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM peut uniquement détacher un service File Storage privé des bases de données situées sur des adresses privées.

Vous devez disposer du privilège WRITE sur l'objet de répertoire pour détacher un système de fichiers d'un emplacement de répertoire.

Exécutez la procédure DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM pour détacher un système de fichiers d'un emplacement de répertoire dans votre instance Autonomous Database. Pour exécuter cette procédure, vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur DBMS_CLOUD_ADMIN.
BEGIN
  DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM (
    file_system_name      => 'NFS'                                       
  );END;                                                                          
/    

Cet exemple détache le système de fichiers réseau indiqué dans le paramètre file_system_name d'Autonomous Database. Vous devez indiquer une valeur pour ce paramètre. Les informations relatives à ce système de fichiers sont supprimées de la vue DBA_CLOUD_FILE_SYSTEMS.

Pour plus d'informations, reportez-vous à Procédure DETACH_FILE_SYSTEM.