Acessar Sistema de Arquivos de Rede pelo Autonomous Database

Você pode anexar um Sistema de Arquivos de Rede a um local de diretório no seu Autonomous Database.

Isso permite que você carregue dados do Oracle Cloud Infrastructure File Storage em sua Rede Virtual na Nuvem (VCN) ou de qualquer outro Sistema de Arquivos de Rede em data centers locais. Dependendo da versão do Sistema de Arquivos de Rede que você deseja acessar, NFSv3 e NFSv4 são suportados.

O Sistema de Arquivos de Rede de Suporte permite fazer o seguinte:

  • Conecte-se a uma instância do Autonomous Database de um aplicativo legado e use o sistema de arquivos para carregar e descarregar dados.

  • Analisar dados de diferentes origens em um Autonomous Database.

  • Proteja o acesso aos dados em um Autonomous Database dos sistemas de arquivos em um data center local ou Redes Virtuais na Nuvem Privadas (VCNs).

Tópicos

Anexar Sistema de Arquivos de Rede ao Autonomous Database

Use DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM para anexar um sistema de arquivos a um diretório no Autonomous Database.

Com um sistema de arquivos anexado, você pode carregar dados de qualquer um dos seguintes:

Observação

O procedimento DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM só pode anexar um Serviço de Armazenamento de Arquivos privado quando a instância do Autonomous Database está em um ponto final privado.

Para acessar dados em um Autonomous Database dos sistemas de arquivos em um data center on-premises, configure FastConnect ou uma VPN Site a Site para estabelecer conexão com o data center on-premises. Consulte FastConnect e VPN Site a Site para obter mais informações.

  1. Crie um diretório ou use um diretório existente para anexar um Sistema de Arquivos de Rede ao seu Autonomous Database. Você deve ter o privilégio WRITE no objeto de diretório da instância do Autonomous Database para anexar um sistema de arquivos a um local de diretório no banco de dados.

    Por exemplo, o comando a seguir cria o diretório do banco de dados chamado FSS_DIR e cria o diretório do sistema de arquivos fss:

    CREATE DIRECTORY FSS_DIR AS 'fss';

    Consulte Criar Diretório no Autonomous Database para obter mais informações.

  2. Execute DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM para anexar um sistema de arquivos a um diretório no Autonomous Database. Para executar esse procedimento, você deve fazer log-in como o usuário ADMIN ou ter o privilégio EXECUTE em DBMS_CLOUD_ADMIN.
    • Por padrão, DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM usa 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, você pode usar o parâmetro params e especificar nfs_version com o valor 3 para especificar NFSv3.

    • Para usar NFSv4, inclua o parâmetro params com DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM e especifique o nfs_version com o valor 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;
      /

    Esses exemplos anexam o sistema de arquivos de rede especificado no parâmetro file_system_name ao Autonomous Database.

    O parâmetro file_system_location especifica o local do sistema de arquivos. O valor fornecido com file_system_location consiste em um FQDN (Nome de Domínio Totalmente Qualificado) e um caminho de arquivo no formato: FQDN:file_path.

    Por exemplo:

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

      Para o Oracle Cloud Infrastructure File Storage, defina o FQDN em Mostrar Opções Avançadas ao criar um sistema de arquivos. Consulte Criando Sistemas de Arquivos para obter mais informações.

    • Caminho do Arquivo: /results

    O parâmetro directory_name especifica o nome do diretório no Autonomous Database ao qual você deseja anexar o sistema de arquivos. Esse é o diretório criado na Etapa 1 ou outro diretório criado anteriormente.

    O parâmetro description especifica a descrição da tarefa.

    O parâmetro params é um valor JSON que especifica um atributo adicional nfs_version, cujo valor pode ser 3 ou 4 (NFSv3 ou NFSv4).

Depois de anexar um sistema de arquivos, você pode consultar a view DBA_CLOUD_FILE_SYSTEMS para recuperar informações sobre o sistema de arquivos anexado.

Por exemplo:

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

Essa consulta retorna detalhes do nome do sistema de arquivos FSS.

Consulte DBA_CLOUD_FILE_SYSTEMS View para obter mais informações.

Com um sistema de arquivos anexado, você pode ler e gravar em arquivos em um sistema de arquivos anexado usando qualquer API PL/SQL que aceite um nome de diretório. Por exemplo, você pode usar qualquer um dos métodos a seguir para trabalhar com um diretório NFS anexado:

  • O pacote UTL_FILE.

  • Utilitários de Exportação e Importação do Data Pump.

  • As APIs DBMS_CLOUD que funcionam com diretórios como DBMS_CLOUD.LIST_FILES e DBMS_CLOUD.PUT_OBJECT.

Exemplo mostrando um arquivo gravado em um sistema de arquivos anexado usando 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;
/

Exemplo mostrando uma leitura de um arquivo em um sistema de arquivos anexado usando 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;
/

Exemplo mostrando arquivos de lista em um sistema de arquivos anexado usando DBMS_CLOUD.LIST_FILES:

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

Observações para usar DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM:

  • O Oracle Cloud Infrastructure File Storage usa NFSv3 para compartilhar. Consulte Visão Geral do Serviço File Storage para obter mais informações.

  • Se você anexar a sistemas que não são do Oracle Cloud Infrastructure File Storage, o procedimento suportará NFSv3 e NFSv4.

  • Se você tiver um servidor NFS anexado que use NFSv3 e a versão do NFS for atualizada para NFSv4 no servidor NFS, execute DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM e, em seguida, DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (usando o parâmetro params com nfs_version definido como 4). Isso anexa NFS ao protocolo de correspondência para que o Autonomous Database possa acessar o Servidor NFSv4. Sem desanexar e depois reanexar, o servidor NFS ficará inacessível e você poderá ver um erro como: "Protocol not supported".

Desanexar Sistema de Arquivos de Rede do Autonomous Database

Use o procedimento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM para desanexar um sistema de arquivos de um diretório no Autonomous Database.

Observação

O procedimento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM só pode desanexar um Serviço de Armazenamento de Arquivos privado de bancos de dados que estejam em pontos finais privados.

Você deve ter o privilégio WRITE no objeto de diretório para desanexar um sistema de arquivos de um local de diretório.

Execute o procedimento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM para desanexar um sistema de arquivos de um local de diretório no Autonomous Database. Para executar esse procedimento, você deve fazer log-in como o usuário ADMIN ou ter o privilégio EXECUTE em DBMS_CLOUD_ADMIN.

Por exemplo:

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

Este exemplo desanexa do Autonomous Database o sistema de arquivos de rede especificado no parâmetro file_system_name. Forneça um valor para este parâmetro.

As informações sobre esse sistema de arquivos são removidas da exibição DBA_CLOUD_FILE_SYSTEMS.

Exemplo: Configurar um Servidor NFSv4 no Oracle Cloud Compute

Fornece um exemplo de configuração de um servidor NSFv4 para uso com o Autonomous Database.

  1. Configure um ponto final privado para a instância do Autonomous Database.

    Consulte Configurando o Acesso à Rede com Pontos Finais Privados para obter mais informações.

    As regras de entrada e saída a seguir precisam ser definidas para a lista de segurança da sua VCN para que o Autonomous Database e o servidor NFSv4 possam se comunicar

    • Entrada com monitoramento de estado de todas as portas no bloco CIDR de origem para a porta TCP 2049.
    • Saída com monitoramento de estado de todas as portas TCP para a porta 2049 no bloco CIDR de destino.
  2. Configure o servidor NFS em uma VM do Oracle Cloud com o Oracle Linux 8 na sub-rede privada, que pode estabelecer conexão com a instância do 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. Monte o sistema de arquivos NFSv4 com DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM.

    Consulte Anexar Sistema de Arquivos de Rede ao Autonomous Database para obter mais informações.

DBA_CLOUD_FILE_SYSTEMS Exibir

A view DBA_CLOUD_FILE_SYSTEMS lista informações sobre o sistema de arquivos de rede anexado a um local de diretório no banco de dados.

Coluna Tipo de Dados Descrição
FILE_SYSTEM_NAME VARCHAR2(128)

Nome do sistema de arquivos

FILE_SYSTEM_LOCATION VARCHAR2(4000)

Localização do sistema de arquivos

DIRECTORY_NAME VARCHAR2(128)

Nome do diretório anexado

DIRECTORY_PATH VARCHAR2(4000)

Caminho de diretório anexado

NFS_VERSION NUMBER A versão NFS.
DESCRIPTION VARCHAR2(4000)

O valor fornecido para o parâmetro de descrição quando você executa DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM

CREATION_TIME TIMESTAMP(6) WITH TIME ZONE Timestamp de criação
UPDATE_TIME TIMESTAMP(6) WITH TIME ZONE Atualizar timestamp