Anexar Armazenamento de Arquivos de Rede ao Autonomous Database no Exadata Infrastructure Dedicado

Você pode anexar seu compartilhamento NFS (Network File Storage) ao seu Autonomous Database, desde que o banco de dados e o sistema de arquivos estejam na mesma rede privada. O Autonomous Database na Infraestrutura Dedicada do Exadata suporta NFSv4, por padrão.

Suporte ao NFS (Network File System) permite que você faça o seguinte:
  • Carregue dados altamente confidenciais de outros bancos de dados para o Autonomous Database no Exadata Cloud@Customer de maneira altamente segura.
  • Mova dados de entrada e saída de várias implantações do Exadata Cloud@Customer para facilitar dados de fornecedores, dumps de exportação e outros processos de negócios.
Você deve anexar o compartilhamento NFS aos seguintes bancos de dados explicitamente, se necessário:
  • Clonar banco de dados criado com base na clonagem de um Autonomous Database com pontos de montagem NFS.
  • Banco de dados stand-by que assume a atribuição principal após uma operação de failover ou switchover em uma configuração do Autonomous Data Guard na qual o banco de dados principal foi anexado a um compartilhamento NFS.

Requisitos de Sistema de Arquivos da Rede

Antes de anexar seu compartilhamento de NFS (Network File Storage) a um Autonomous Database, certifique-se de:
  • O NFS fornecido pelo cliente é uma rede acessível dos nós do Cluster de VMs Autônomas.
  • O sistema de arquivos montado do NFS pode ser lido e gravado pelo usuário do sistema operacional oracle em todos os nós do cluster de VMs Autônomas.
  • Se as permissões estiverem sendo controladas no nível do usuário, o uid:gid do usuário oracle para o cluster de VMs Autônomas será 1001:1001.

Anexar Sistema de Arquivos da Rede

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

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.
  1. Crie um diretório ou use um diretório existente para anexar o sistema de arquivos externo ao seu Autonomous Database. Você deve ter o privilégio WRITE no objeto de diretório na 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 NFS_DIR e cria o diretório do sistema de arquivos nfs:
    CREATE DIRECTORY NFS_DIR AS ‘nfs’;

    Consulte Criar um Diretório 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 usuário ADMIN ou ter o privilégio EXECUTE em DBMS_CLOUD_ADMIN.

    • Por padrão, DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM usa NFSv3. No entanto, você pode optar por usar explicitamente o parâmetro params e especificar nfs_version com o 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 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 => '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;
      /

    Os exemplos mostrados acima 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
    • 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).

Observações para usar DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM:
  • O serviç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 de Armazenamento de Arquivos que não são do Oracle Cloud Infrastructure, 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".

Consulte ATTACH_FILE_SYSTEM Procedimento para obter mais informações.

Consulta DBA_CLOUD_FILE_SYSTEMS

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 DBMS_CLOUD_FILE_SYSTEMS View para obter mais informações.

Com um sistema de arquivos anexado, você pode ler e gravar 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 seguintes métodos para trabalhar com um diretório FSS 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 de gravação 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');

DBMS_CLOUD_FILE_SYSTEMS Exibir

A view DBA_CLOUD_FILE_SYSTEMS lista as informações sobre o sistema de arquivos externo 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

Desconectar Sistema de Arquivos de Rede

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 dos bancos de dados que estão 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 usuário ADMIN ou ter o privilégio EXECUTE em DBMS_CLOUD_ADMIN.
BEGIN
  DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM (
    file_system_name      => 'NFS'                                       
  );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 este sistema de arquivos são removidas da exibição DBA_CLOUD_FILE_SYSTEMS.

Consulte DETACH_FILE_SYSTEM Procedimento para obter mais informações.