Acceso al sistema de archivos de red desde Autonomous Database

Puede asociar un sistema de archivos de red a una ubicación de directorio en Autonomous Database.

Esto le permite cargar datos de Oracle Cloud Infrastructure File Storage en su red virtual en la nube (VCN) o desde cualquier otro sistema de archivos de red en los centros de datos locales. Según la versión del sistema de archivos de red al que desee acceder, se admiten NFSv3 y NFSv4.

La compatibilidad con el sistema de archivos de red le permite hacer lo siguiente:

  • Conéctese a una instancia de Autonomous Database desde una aplicación heredada y utilice el sistema de archivos para cargar y descargar datos.

  • Analice datos de diferentes orígenes en una instancia de Autonomous Database.

  • Acceso seguro a los datos de una instancia de Autonomous Database desde los sistemas de archivos de un centro de datos local o redes virtuales en la nube (VCN) privadas.

Temas

Asociación de un sistema de archivos de red a Autonomous Database

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

Con un sistema de archivos adjunto puede cargar datos de cualquiera de las siguientes opciones:

Nota

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.

Para acceder a los datos de una instancia de Autonomous Database desde los sistemas de archivos de un centro de datos local, debe configurar FastConnect o una VPN de sitio a sitio para conectarse al centro de datos local. Consulte FastConnect y VPN de sitio a sitio para obtener más información.

  1. Cree un directorio o utilice un directorio existente para asociar un sistema de archivos de red 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 de la base de datos.

    Por ejemplo, el siguiente comando crea el directorio de base de datos denominado FSS_DIR y crea el directorio fss del sistema de archivos:

    CREATE DIRECTORY FSS_DIR AS 'fss';

    Consulte Creación de directorios en Autonomous Database 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:

      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;
      /

      Opcionalmente, puede utilizar el parámetro params y especificar nfs_version con el valor 3 para especificar NFSv3.

    • Para utilizar NFSv4, incluya el parámetro params con DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM y especifique el valor nfs_version con 4 para especificar 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;
      /

    En estos ejemplos, se asocia 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:

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

      En Oracle Cloud Infrastructure File Storage, defina el FQDN en Mostrar opciones avanzadas al crear un sistema de archivos. Consulte Creación de sistemas de archivos para obtener más información.

    • Ruta de 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).

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 DBA_CLOUD_FILE_SYSTEMS View 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 NFS conectado:

  • El paquete UTL_FILE.

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

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

Ejemplo que muestra una escritura de un archivo en un sistema de archivos asociado 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 anexado 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 la lista de archivos en un sistema de archivos asociado mediante DBMS_CLOUD.LIST_FILES:

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

Notas para utilizar DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM:

  • Oracle Cloud Infrastructure File Storage utiliza NFSv3 para compartir. Consulte Descripción general de File Storage para obtener más información.

  • Si se asocia a sistemas que no sean 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 establecido en 4). Esto 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".

Puede obtener más información en los siguientes enlaces:

Desasociación del sistema de archivos de red de Autonomous Database

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

Nota

El procedimiento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM solo puede desasociar un servicio de almacenamiento de archivos privado de 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.

Por ejemplo:

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

En este ejemplo se desasocia 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.

Ejemplo: configuración de un servidor NFSv4 en Oracle Cloud Compute

Proporciona un ejemplo para configurar un servidor NSFv4 para su uso con Autonomous Database.

  1. Configure un punto final privado para la instancia de Autonomous Database.

    Consulte Configuración del acceso de red con puntos finales privados para obtener más información.

    Se deben definir las siguientes reglas de entrada y salida para la lista de seguridad de la VCN para que Autonomous Database y el servidor NFSv4 puedan comunicarse entre sí

    • Entrada con estado de TODOS los puertos del bloque de CIDR de origen al puerto TCP 2049.
    • Salida con estado de todos los puertos TCP al puerto 2049 en el bloque CIDR de destino.
  2. Configure el servidor NFS en una máquina virtual de Oracle Cloud con Oracle Linux 8 en la subred privada, que puede conectarse a la instancia de Autonomous Database.
    Compute Instance Imeage: 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. Monte el sistema de archivos NFSv4 con DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM.

Vista DBA_CLOUD_FILE_SYSTEMS

La vista DBA_CLOUD_FILE_SYSTEMS muestra información sobre el sistema de archivos de red asociado a una ubicación de directorio en la base de datos.

Columna Tipo de dato 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 acceso de directorio asociada

NFS_VERSION NUMBER La versión 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