Fazer Backup de um Banco de Dados no Serviço Object Storage Usando o RMAN

Este artigo explica como usar o RMAN (Recovery Manager) para gerenciar backups do seu banco de dados do sistema de banco de dados no seu próprio serviço Object Storage.

Para fazer backup do serviço, será necessário criar um bucket do Object Storage para os backups, gerar uma senha para o serviço, instalar o Módulo de Backup do Oracle Database Cloud e, em seguida, configurar o RMAN para enviar backups ao serviço. O módulo de backup é uma interface SBT (System Backup to Tape) que é altamente integrada com o RMAN, para que você possa usar comandos conhecidos do RMAN para executar operações de backup e recuperação.

Você notará a menção Swift na Console e no URL de ponto final do serviço. Isso ocorre porque o módulo de backup geralmente é usado para fazer backup no Oracle Database Backup Cloud Service, que é um objeto de armazenamento OpenStack Swift.

Dica:

Em um sistema de banco de dados de nó único, você pode usar o DBCLI para fazer backup no serviço Object Storage. Essa é uma alternativa para instalar o módulo de backup e usar o RMAN para backups. Para obter mais informações, consulte Comandos Objectstoreswift. Observe que os comandos dbcli não estão disponíveis para sistemas de banco de dados RAC com vários nós.

Pré-requisitos

Será necessário o seguinte:

  • Um sistema de banco de dados e um banco de dados para backup.
  • A rede na nuvem (VCN) do sistema de banco de dados deve ser configurada com acesso ao Object Storage:
    • Para ter acesso ao Object Storage na mesma região do sistema de banco de dados, a Oracle recomenda o uso de um gateway de serviço.
    • Para ter acesso ao Object Storage em uma região distinta do sistema de banco de dados: Use um gateway de internet. Observe que o tráfego de rede entre o sistema de banco de dados e o Object Storage não sai da nuvem e nunca chega à internet pública.

    Para obter mais informações, consulte VCN e Sub-redes.

  • Um bucket existente do Object Storage para usar como destino do backup. Você pode usar a Console ou a API do Object Storage para criar o bucket.

    Para obter mais informações, consulte Gerenciando Buckets.

  • Um token de autenticação gerado pelo OCI. Você pode usar a Console ou a API do IAM para gerar a senha.

    Para obter mais informações, consulte Como trabalhar com tokens de autenticação em Gerenciando Credenciais do Usuário.

  • O nome do usuário (especificado ao instalar e usar o módulo de backup) deve ter acesso ao Object Storage no nível da tenancy. Uma forma fácil de fazer isso é adicionar o nome do usuário ao grupo Administradores. No entanto, o acesso a todos os serviços de nuvem será permitido. Em vez disso, um administrador deve criar uma política como a seguinte, que limita o acesso somente aos recursos necessários no Object Storage para fazer backup do banco de dados e restaurá-lo:

    Allow group <group_name> to manage objects in compartment <compartment_name> where target.bucket.name = '<bucket_name>'
    
    Allow group <group_name> to read buckets in compartment <compartment_name>

    Para obter mais informações sobre como adicionar um usuário a um grupo, consulte Gerenciando Grupos. Para obter mais informações sobre políticas, consulte Conceitos Básicos de Políticas.

Instalar o Módulo de Backup no Sistema de Banco de Dados

  1. Estabeleça conexão via SSH com o sistema de banco de dados.
    ssh -i <SSH_key_used_when_launching_the_DB_system> opc@<DB_system_IP_address_or_hostname>
  2. Faça log-in como usuário opc.
    login as: opc
  3. sudo para o usuário oracle.
    sudo su - oracle
  4. Passe para o diretório que contém o arquivo opc_install.jar do módulo de backup.
    cd /opt/oracle/oak/pkgrepos/oss/odbcs
  5. Use a sintaxe de comando a seguir para instalar o módulo de backup.
    java -jar opc_install.jar -opcId <user_id> -opcPass '<auth_token>' -container <bucket_name>;-walletDir ~/hsbtwallet/ -libDir ~/lib/ -configfile ~/config -host https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>

    Os parâmetros são:

    Parâmetro Descrição
    -opcId

    O nome de usuário da conta de usuário do Oracle Cloud Infrastructure, por exemplo: -opcId <username>@<example>.com.

    Este é o nome de usuário usado para acessar a Console.

    O nome do usuário deve ser membro do grupo Administradores, conforme descrito na seção Pré-requisitos.

    Você também pode especificar o nome do usuário entre aspas simples. Essa especificação poderá ser necessária se o nome contiver caracteres especiais, por exemplo: -opcId 'j~smith@<example>.com'

    Use aspas simples e não apóstrofos inclinados.

    -opcPass

    O token de autenticação gerado usando a Console ou a API do IAM, entre aspas simples, por exemplo: -opcPass <password>

    Use aspas simples e não apóstrofos inclinados.

    Para obter mais informações, consulte Gerenciando Credenciais do Usuário.

    Esta não é a senha do usuário do Oracle Cloud Infrastructure.

    -container

    O nome de um bucket existente no Object Storage a ser usado como destino do backup, por exemplo: -container DBBackups

    -walletDir

    O diretório em que a ferramenta de instalação criará um Oracle Wallet contendo o nome de usuário e o token de autenticação do Oracle Cloud Infrastructure.

    -walletDir ~/hsbtwallet cria a wallet no diretório home do usuário (oracle) atual.

    -libDir

    O diretório em que a biblioteca SBT é armazenada. O diretório já deverá existir antes da execução do comando. Este parâmetro faz com que a biblioteca SBT mais recente seja baixada.

    -libDir ~/lib/ faz download do arquivo libopc.so para o diretório home do usuário atual, por exemplo, /home/oracle/lib/libopc.so.

    -configfile

    O nome do arquivo de parâmetros de inicialização que será criado pela ferramenta de instalação. Esse arquivo será referenciado pelos seus jobs do RMAN.

    -configfile ~/config cria o arquivo no diretório home do usuário atual, por exemplo, /home/oracle/config.

    -host

    O URL do ponto final para o qual os backups devem ser enviados:

    https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>

    em que object_storage_namespace é o namespace do serviço Object Storage da sua tenancy. Para obter mais informações, consulte Noções Básicas sobre Namespaces do Serviço Object Storage.

    Não adicione uma barra após o namespace do serviço Object Storage.

    Para pesquisar o nome da região, consulte Regiões e Domínios de Disponibilidade.

Configurar o RMAN

Este tópico descreve como configurar o RMAN para usar o bucket como o destino de backup padrão. A situação a seguir pressupõe que você ainda está conectado ao sistema de banco de dados.

  1. No sistema de banco de dados, defina as variáveis de ambiente ORACLE_HOME e ORACLE_SID usando o utilitário oraenv.
    . oraenv
  2. Estabeleça conexão com o banco de dados usando o RMAN.
    rman target /
  3. Configure o RMAN para usar o dispositivo SBT e aponte para o arquivo config que foi criado ao instalar o módulo de backup. Uma amostra de comando para um banco de dados versão 12 é exibida aqui.
    CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 
        'SBT_LIBRARY=/home/oracle/lib/libopc.so, 
        SBT_PARMS=(OPC_PFILE=/home/oracle/config)';
  4. Configure o RMAN para usar SBT_TAPE por padrão. O exemplo a seguir permite o backup automático de controlfile e spfile no SBT_TAPE e configura a criptografia. Há outras definições que podem se aplicar à sua instalação, como compactação, número de canais de backup e recuperação a serem usados, política de retenção de backup, política de exclusão de log arquivado e muito mais. Consulte a documentação sobre Backup e Recuperação da sua versão do sistema Oracle para obter mais informações sobre como escolher as definições apropriadas.
    CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;
    CONFIGURE BACKUP OPTIMIZATION ON;
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F';
    CONFIGURE ENCRYPTION FOR DATABASE ON;

    Observação:

    Os backups devem ser criptografados. Você especificará a criptografia ao executar um backup. Você receberá um erro se um backup não for criptografado.

Uma vez concluída a configuração do RMAN, você poderá usar os mesmos comandos do RMAN usados regularmente para fazer backups em fita.

Fazer Backup do Banco de Dados

Este tópico fornece exemplos de comandos de backup comumente usados.

  1. Defina a criptografia do banco de dados:
    SET ENCRYPTION IDENTIFIED BY "password" ONLY;

    Observe que essa definição não é permanente; você deve defini-la para cada nova sessão do RMAN.

  2. Faça backup do banco de dados e dos logs de arquivamento. Veja abaixo alguns exemplos de comandos. Consulte a documentação sobre Backup e Recuperação da sua versão do sistema Oracle para obter mais informações sobre como escolher um procedimento de backup que atenda às suas necessidades. Faça backup regularmente para minimizar a potencial perda de dados e sempre inclua uma cópia do spfile e do controlfile. Observe que o exemplo abaixo usa backups incrementais de várias seções, que é um recurso introduzido na versão 12c. Ao usar a versão 11g, omita a cláusula section size.
    BACKUP INCREMENTAL LEVEL 0 SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
    BACKUP INCREMENTAL LEVEL 1 SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
    BACKUP INCREMENTAL LEVEL 1 CUMULATIVE SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
  3. Faça backup de logs de arquivamento com frequência para minimizar a potencial perda de dados e manter várias cópias de backup como precaução.
    BACKUP ARCHIVELOG ALL NOT BACKED UP 2 TIMES;

Quando o job de backup for concluído, você poderá exibir os arquivos de backup em seu bucket na Console, na página Armazenamento, selecionando Object Storage.