Asociación de almacenamiento de archivos de red a Autonomous Database on Dedicated Exadata Infrastructure

Puede asociar el recurso compartido de Network File Storage (NFS) a su instancia de Autonomous Database, siempre que la base de datos y el sistema de archivos estén en la misma red privada. Por defecto, Autonomous Database on Dedicated Exadata Infrastructure soporta NFSv4.

La compatibilidad con el sistema de archivos de red (NFS) le permite hacer lo siguiente:
  • Cargue datos altamente confidenciales de otras bases de datos en Autonomous Database en Exadata Cloud@Customer de forma altamente segura.
  • Mueva los datos dentro y fuera de varios despliegues de Exadata Cloud@Customer para facilitar los datos del proveedor, los volcados de exportación y otros procesos de negocio.
Debe asociar el recurso compartido NFS a las siguientes bases de datos explícitamente, si es necesario:
  • Clonar base de datos creada a partir de la clonación de una instancia de Autonomous Database con puntos de montaje NFS.
  • Base de datos en espera que asume el rol principal después de una operación de failover o switchover en una configuración de Autonomous Data Guard en la que la base de datos principal estaba asociada a un recurso compartido de NFS.

Requisitos del sistema de archivos de red

Antes de asociar el recurso compartido de Network File Storage (NFS) a una instancia de Autonomous Database, asegúrese de que:
  • El NFS proporcionado por el cliente es accesible desde los nodos del cluster de VM autónomo.
  • El usuario del sistema operativo oracle puede leer y escribir en el sistema de archivos montado en NFS en todos los nodos de cluster de VM autónomo.
  • Si los permisos se controlan en el nivel de usuario, el uid:gid del usuario oracle para el cluster de VM autónomo es 1001:1001.

Asociar sistema de archivos de red

Utilice DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM para asociar un sistema de archivos a un directorio de Autonomous Database.

Note:

El procedimiento DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM solo puede asociar un servicio de almacenamiento de archivos privado cuando la instancia de Autonomous Database está en un punto final privado.
  1. Cree un directorio o utilice un directorio existente para asociar el sistema de archivos externo en Autonomous Database. Debe tener el privilegio WRITE en el objeto de directorio de la instancia de Autonomous Database para asociar un sistema de archivos a una ubicación de directorio en la base de datos.

    Por ejemplo, el siguiente comando crea el directorio de base de datos denominado NFS_DIR y crea el directorio nfs del sistema de archivos:
    CREATE DIRECTORY NFS_DIR AS ‘nfs’;

    Consulte Create a Directory para obtener más información.

  2. Ejecute DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM para asociar un sistema de archivos a un directorio de Autonomous Database. Para ejecutar este procedimiento, debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en DBMS_CLOUD_ADMIN.

    • Por defecto, DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM utiliza NFSv3. Sin embargo, puede elegir utilizar explícitamente el parámetro params y especificar nfs_version con el valor 3 para especificar 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;                                                                          
      /
    • Para utilizar NFSv4, incluya el parámetro params con DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM y especifique nfs_version con el valor 4 para especificar 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;
      /

    Los ejemplos mostrados anteriormente asocian el sistema de archivos de red especificado en el parámetro file_system_name a Autonomous Database.

    El parámetro file_system_location especifica la ubicación del sistema de archivos. El valor que proporciona con file_system_location consta de un nombre de dominio completo (FQDN) y una ruta de archivo con el formato: FQDN:file_path.

    Por ejemplo:
    • NMF: myhost.sub000445.myvcn.oraclevcn.com
    • Ruta del archivo: /results

    El parámetro directory_name especifica el nombre del directorio en la instancia de Autonomous Database donde desea asociar el sistema de archivos. Este es el directorio que se creó en el paso 1 u otro directorio que se creó anteriormente.

    El parámetro description especifica la descripción de la tarea.

    El parámetro params es un valor JSON que especifica un atributo adicional nfs_version, cuyo valor puede ser 3 o 4 (NFSv3 o NFSv4).

Notas para utilizar DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM:
  • Oracle Cloud Infrastructure File Storage utiliza NFSv3 para compartir. Consulte Visión general de almacenamiento de archivos para obtener más información.

  • Si se asocia a sistemas que no son de Oracle Cloud Infrastructure File Storage, el procedimiento soporta NFSv3 y NFSv4.

  • Si tiene un servidor NFS conectado que utiliza NFSv3 y la versión de NFS se actualiza a NFSv4 en el servidor NFS, debe ejecutar DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM y, a continuación, DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (mediante el parámetro params con nfs_version definido en 4). Con ello se asocia NFS con el protocolo coincidente para que Autonomous Database pueda acceder al servidor NFSv4. Sin desconectar y volver a conectar, no se podrá acceder al servidor NFS y puede que aparezca un error como: "Protocol not supported".

Consulte ATTACH_FILE_SYSTEM Procedimiento para obtener más información.

Consulta DBA_CLOUD_FILE_SYSTEMS

Después de adjuntar un sistema de archivos, puede consultar la vista DBA_CLOUD_FILE_SYSTEMS para recuperar información sobre el sistema de archivos adjunto.

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

Esta consulta devuelve detalles para el nombre del sistema de archivos FSS. Consulte la vista DBMS_CLOUD_FILE_SYSTEMS para obtener más información.

Con un sistema de archivos asociado, puede leer y escribir en archivos de un sistema de archivos asociado mediante cualquier API PL/SQL que acepte un nombre de directorio. Por ejemplo, puede utilizar cualquiera de los siguientes métodos para trabajar con un directorio FSS conectado:

  • El paquete UTL_FILE.

  • Utilidades de importación y exportación de pump de datos.

  • API DBMS_CLOUD que funcionan con directorios como DBMS_CLOUD.LIST_FILES y DBMS_CLOUD.PUT_OBJECT.

Ejemplo que muestra la escritura de un archivo en un sistema de archivos anexo mediante 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;
/
Ejemplo que muestra una lectura de un archivo en un sistema de archivos anexo mediante 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;
/
Ejemplo que muestra los archivos de lista en un sistema de archivos anexo mediante DBMS_CLOUD.LIST_FILES:
SELECT object_name FROM DBMS_CLOUD.LIST_FILES('FSS_DIR');

DBMS_CLOUD_FILE_SYSTEMS Vista

La vista DBA_CLOUD_FILE_SYSTEMS muestra la información sobre el sistema de archivos externo asociado a una ubicación de directorio en la base de datos.
Columna Tipo de datos Descripción
FILE_SYSTEM_NAME VARCHAR2(128) Nombre del sistema de archivos
FILE_SYSTEM_LOCATION VARCHAR2(4000) Ubicación del sistema de archivos
DIRECTORY_NAME VARCHAR2(128) Nombre de directorio asociado
DIRECTORY_PATH VARCHAR2(4000) Ruta de directorio asociada
NFS_VERSION NUMBER La versión de NFS
DESCRIPTION VARCHAR2(4000) Valor proporcionado para el parámetro de descripción al ejecutar DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM
CREATION_TIME TIMESTAMP(6) WITH TIME ZONE Registro de hora de creación
UPDATE_TIME TIMESTAMP(6) WITH TIME ZONE Actualizar registro de hora

Desasociar sistema de archivos de red

Utilice el procedimiento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM para desasociar un sistema de archivos de un directorio de Autonomous Database.

Note:

El procedimiento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM solo puede desasociar un servicio de almacenamiento de archivos privado de las bases de datos que están en puntos finales privados.

Debe tener el privilegio WRITE en el objeto de directorio para desasociar un sistema de archivos de una ubicación de directorio.

Ejecute el procedimiento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM para desasociar un sistema de archivos de una ubicación de directorio en Autonomous Database. Para ejecutar este procedimiento, debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en DBMS_CLOUD_ADMIN.
BEGIN
  DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM (
    file_system_name      => 'NFS'                                       
  );END;                                                                          
/    

En este ejemplo se separa el sistema de archivos de red especificado en el parámetro file_system_name de Autonomous Database. Debe proporcionar un valor para este parámetro. La información sobre este sistema de archivos se elimina de la vista DBA_CLOUD_FILE_SYSTEMS.

Consulte DETACH_FILE_SYSTEM Procedimiento para obtener más información.