Compartilhar via


Faça backup e recupere o Oracle Database em uma VM Linux do Azure usando os Arquivos do Azure

Aplica-se a: ✔️ VMs do Linux

Este artigo demonstra o uso dos Arquivos do Azure como um meio para fazer backup e restaurar um banco de dados do Oracle em execução em uma VM (máquina virtual) do Azure. As etapas neste artigo foram testadas no Oracle 12.1 e posterior.

Nesse artigo, você usa o Gerenciador de Recuperação do Oracle (RMAN) para fazer backup do banco de dados em um compartilhamento de arquivo do Azure montado em uma VM por meio do protocolo SMB (Bloco de Mensagem de Servidor). O uso de Arquivos do Azure para mídia de backup é econômico e eficiente. No entanto, para bancos de dados grandes, o Backup do Azure fornece uma solução melhor.

Pré-requisitos

  • Para realizar o processo de backup e recuperação, primeiro, você precisa criar uma VM do Linux com uma instância do Oracle Database instalada. Recomendamos o uso do Oracle 12.x ou posterior.

  • Crie uma instância do Oracle Database seguindo as etapas em Criar uma instância do Oracle Database em uma VM do Azure.

Preparar o ambiente do banco de dados

  1. Para criar uma sessão SSH (Secure Shell) com a VM, use o comando a seguir. Substitua <publicIpAddress> pelo valor do endereço público de sua VM.

    ssh azureuser@<publicIpAddress>
    
  2. Mude para o usuário raiz:

    sudo su -
    
  3. Adicione o usuário oracle ao arquivo /etc/sudoers:

    echo "oracle   ALL=(ALL)      NOPASSWD: ALL" >> /etc/sudoers
    
  4. Essa etapa pressupõe que você tenha uma instância do Oracle (teste) em execução em uma VM chamada vmoracle19c.

    Alterne para o usuário oracle:

    sudo su - oracle
    
  5. Antes de conectar, defina a variável de ambiente ORACLE_SID:

    export ORACLE_SID=test;
    

    Você também deve adicionar a variável ORACLE_SID ao arquivo oracle.bashrc do usuário para entradas futuras usando o comando a seguir:

    echo "export ORACLE_SID=test" >> ~oracle/.bashrc
    
  6. Inicie o ouvinte do Oracle se ele ainda não estiver sendo executado:

    lsnrctl start
    

    O resultado deverá ser semelhante ao seguinte exemplo:

    LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 18-SEP-2020 03:23:49
    
    Copyright (c) 1991, 2019, Oracle.  All rights reserved.
    
    Starting /u01/app/oracle/product/19.0.0/dbhome_1/bin/tnslsnr: please wait...
    
    TNSLSNR for Linux: Version 19.0.0.0.0 - Production
    System parameter file is /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora
    Log messages written to /u01/app/oracle/diag/tnslsnr/vmoracle19c/listener/alert/log.xml
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vmoracle19c.eastus.cloudapp.azure.com)(PORT=1521)))
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
    
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=vmoracle19c.eastus.cloudapp.azure.com)(PORT=1521)))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
    Start Date                18-SEP-2020 03:23:49
    Uptime                    0 days 0 hr. 0 min. 0 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora
    Listener Log File         /u01/app/oracle/diag/tnslsnr/vmoracle19c/listener/alert/log.xml
    Listening Endpoints Summary...
     (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vmoracle19c.eastus.cloudapp.azure.com)(PORT=1521)))
    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
    The listener supports no services
    The command completed successfully
    
  7. Crie o local para a área de recuperação rápida:

    mkdir /u02/fast_recovery_area
    
  8. Conecte-se ao banco de dados:

    sqlplus / as sysdba
    
  9. Inicie o banco de dados se ainda não estiver em execução:

    SQL> startup
    
  10. Defina as variáveis de ambiente do banco de dados para a área de recuperação rápida:

    SQL> alter system set db_recovery_file_dest_size=4096M scope=both;
    SQL> alter system set db_recovery_file_dest='/u02/fast_recovery_area' scope=both;
    
  11. Verifique se o banco de dados está no modo ARCHIVELOG para permitir backups online.

    Verifique o status do arquivo de log:

    SQL> SELECT log_mode FROM v$database;
    
    LOG_MODE
    ------------
    NOARCHIVELOG
    

    Se o arquivo de log estiver no modo NOARCHIVELOG, execute os comandos a seguir no SQL Plus:

    SQL> SHUTDOWN IMMEDIATE;
    SQL> STARTUP MOUNT;
    SQL> ALTER DATABASE ARCHIVELOG;
    SQL> ALTER DATABASE OPEN;
    SQL> ALTER SYSTEM SWITCH LOGFILE;
    
  12. Crie uma tabela para testar as operações de backup e restauração:

    SQL> create user scott identified by tiger quota 100M on users;
    SQL> grant create session, create table to scott;
    SQL> connect scott/tiger
    SQL> create table scott_table(col1 number, col2 varchar2(50));
    SQL> insert into scott_table VALUES(1,'Line 1');
    SQL> commit;
    SQL> quit
    

Fazer backup nos Arquivos do Azure

Para fazer backup nos Arquivos do Azure, conclua estas etapas:

  1. Configurar os Arquivos do Azure.
  2. Montar o compartilhamento de arquivo do Azure para sua VM.
  3. Fazer backup do banco de dados.
  4. Restaurar e recuperar o banco de dados.

Configurar os Arquivos do Azure

Nessa seção, você faz o backup do banco de dados do Oracle para os Arquivos do Azure usando o Oracle RMAN. Os compartilhamentos de arquivos do Azure são compartilhamentos de arquivos totalmente gerenciados que permanecem na nuvem. Você pode acessá-los usando o protocolo SMB ou o protocolo Network File System (NFS).

Os procedimentos a seguir abordam a criação de um compartilhamento de arquivo que usa o protocolo SMB para montar em sua VM. Para obter informações sobre como montar usando NFS, confira Criar um compartilhamento NFS.

Ao montar o compartilhamento de arquivo do Azure, use a opção cache=none para desabilitar o cache dos dados de compartilhamento de arquivo. Para garantir que o usuário oracle seja o proprietário dos arquivos criados no compartilhamento, defina as opções uid=oracle e gid=oinstall.

Configure sua conta de armazenamento:

  1. No portal do Azure, selecione + Criar um recurso e, em seguida, pesquise e selecione Conta de armazenamento.

    Captura de tela que mostra onde criar um recurso e selecionar uma conta de armazenamento.

  2. No painel Criar conta de armazenamento:

    1. Para Grupo de recursos, selecione seu grupo de recursos existente, rg-oracle.
    2. Para Nome da conta de armazenamento, insira oracbkup1.
    3. Assegure-se de que Local esteja configurado para a mesma região de todos os outros recursos no grupo de recursos.
    4. Alto Desempenho para Standard.
    5. Para Tipo de conta, selecione StorageV2 (uso geral v2).
    6. Em Replicação, selecione Armazenamento com redundância local (LRS) .

    Captura de tela que mostra informações básicas para criar uma conta de armazenamento.

  3. Selecione a guia Avançado. Em Arquivos do Azure, defina Compartilhamentos de arquivos grandes como Habilitado. Clique em Examinar + Criar, depois em Criar.

    Captura de tela que mostra a guia para habilitar compartilhamentos de arquivos grandes.

  4. Quando a conta de armazenamento for criada, vá para o recurso e selecione Compartilhamentos de arquivo.

    Captura de tela que mostra onde selecionar compartilhamentos de arquivo para um recurso.

  5. Selecione + Compartilhamento de arquivo e, em seguida, no painel Novo compartilhamento de arquivo:

    1. Para Nome, insira orabkup1.

    2. Defina Cota como 10240 gibibytes (GiB).

      A cota reflete um limite superior até o qual o compartilhamento de arquivo pode crescer. Como você está usando armazenamento padrão nesse exemplo, os recursos são pagos conforme o uso e não provisionados. Definir a cota para 10 tebibytes (TiB) não incorrerá em custos além do que você usa. Se sua estratégia de backup exigir mais armazenamento, defina a cota em um nível apropriado para armazenar todos os backups.

    3. Em Camadas, selecione Transação otimizada.

    4. Selecione Criar.

    Captura de tela que mostra seleções para adicionar um novo compartilhamento de arquivo.

  6. Quando o compartilhamento de arquivo for criado, selecione orabkup1 no painel Configurações de compartilhamento de arquivo.

  7. Selecione a guia Conectar para abrir o painel Conectar e, em seguida, selecione a guia Linux. Copie os comandos fornecidos para montar o compartilhamento de arquivo usando o protocolo SMB.

    Captura de tela que mostra o painel de acesso aos comandos para conectar um compartilhamento de arquivo a um computador Linux.

Monte o compartilhamento de arquivo do Azure para sua VM

  1. Crie o ponto de montagem:

    sudo mkdir /mnt/orabackup
    
  2. Configure as credenciais:

    if [ ! -d "/etc/smbcredentials" ]; then
     sudo mkdir /etc/smbcredentials
    fi
    
  3. Execute o comando a seguir. Substitua <Your Storage Account Key1> pela chave da conta de armazenamento que você recuperou anteriormente.

    if [ ! -f "/etc/smbcredentials/orabackup1.cred" ]; then
      sudo bash -c 'echo "username=orabackup1" >> /etc/smbcredentials/orabackup1.cred'
      sudo bash -c 'echo "password=<Your Storage Account Key1>" >> /etc/smbcredentials/orabackup1.cred'
    fi
    
  4. Altere as permissões no arquivo de credenciais:

    sudo chmod 600 /etc/smbcredentials/orabackup1.cred
    
  5. Adicionar a montagem ao arquivo /etc/fstab:

    sudo bash -c 'echo "//orabackup1.file.core.windows.net/orabackup /mnt/orabackup cifs nofail,vers=3.0,credentials=/etc/smbcredentials/orabackup1.cred,dir_mode=0777,file_mode=0777,serverino,cache=none,uid=oracle,gid=oinstall" >> /etc/fstab'
    
  6. Execute os comandos para montar o compartilhamento de arquivo do Azure usando o protocolo SMB:

    sudo mount -t cifs //orabackup1.file.core.windows.net/orabackup /mnt/orabackup -o vers=3.0,credentials=/etc/smbcredentials/orabackup1.cred,dir_mode=0777,file_mode=0777,serverino,cache=none,uid=oracle,gid=oinstall
    

    Se você receber um erro semelhante ao exemplo a seguir, o pacote Common Internet File System (CIFS) pode não estar instalado em seu host Linux:

    mount: wrong fs type, bad option, bad superblock on //orabackup1.file.core.windows.net/orabackup
    

    Para verificar se o pacote CIFS está instalado, execute o comando a seguir:

    sudo rpm -qa|grep cifs-utils
    

    Se o comando não retornar nenhuma saída, instale o pacote CIFS usando o comando a seguir. Em seguida, execute novamente o comando mount para montar o compartilhamento de arquivo do Azure.

    sudo yum install cifs-utils
    
  7. Verifique se o compartilhamento de arquivo está montado corretamente usando o comando a seguir:

    df -h
    

    A saída deve ser semelhante a esse exemplo:

    $ df -h
    Filesystem                                    Size  Used Avail Use% Mounted on
    devtmpfs                                      3.3G     0  3.3G   0% /dev
    tmpfs                                         3.3G     0  3.3G   0% /dev/shm
    tmpfs                                         3.3G   17M  3.3G   1% /run
    tmpfs                                         3.3G     0  3.3G   0% /sys/fs/cgroup
    /dev/sda2                                      30G  9.1G   19G  34% /
    /dev/sdc1                                      59G  2.7G   53G   5% /u02
    /dev/sda1                                     497M  199M  298M  41% /boot
    /dev/sda15                                    495M  9.7M  486M   2% /boot/efi
    tmpfs                                         671M     0  671M   0% /run/user/54321
    /dev/sdb1                                      14G  2.1G   11G  16% /mnt/resource
    tmpfs                                         671M     0  671M   0% /run/user/54322
    //orabackup1.file.core.windows.net/orabackup   10T     0   10T   0% /mnt/orabackup
    

Fazer backup do banco de dados

Nessa seção, você usará o Oracle RMAN para fazer um backup completo do banco de dados e dos logs de arquivos. Em seguida, grave o backup como um conjunto de backup para o compartilhamento de arquivo do Azure que você montou anteriormente.

  1. Configure o RMAN para fazer backup para o ponto de montagem dos Arquivos do Azure:

    rman target /
    RMAN> configure snapshot controlfile name to '/mnt/orabkup/snapcf_ev.f';
    RMAN> configure channel 1 device type disk format '/mnt/orabkup/%d/Full_%d_%U_%T_%s';
    RMAN> configure channel 2 device type disk format '/mnt/orabkup/%d/Full_%d_%U_%T_%s';
    
  2. Nesse exemplo, você está limitando o tamanho das partes de backup do RMAN a 4 GiB. No entanto, o valor de backup do RMAN maxpiecesize pode ir até 4 TiB, que é o limite de tamanho de arquivo para compartilhamentos de arquivos padrão do Azure e compartilhamentos de arquivos premium. Para obter mais informações, confira Metas de desempenho e escalabilidade de Arquivos do Azure.

    RMAN> configure channel device type disk maxpiecesize 4000G;
    
  3. Confirme os detalhes da alteração de configuração:

    RMAN> show all;
    
  4. Execute o backup. O comando a seguir faz um backup completo do banco de dados, incluindo arquivos de log de arquivoss, como um conjunto de backup em formato compactado:

    RMAN> backup as compressed backupset database plus archivelog;
    

Você fez backup do banco de dados online usando o Oracle RMAN, com o backup localizado nos Arquivos do Azure. Como você está armazenando os backups nos Arquivos do Azure, poderá acessá-los de outras VMs se precisar clonar o banco de dados.

O uso do RMAN e dos Arquivos do Azure para backup de banco de dados tem muitas vantagens. O tempo de backup e restauração está vinculado ao tamanho do banco de dados. Para bancos de dados grandes, essas operações podem levar um tempo considerável.

Uma alternativa é usar backups de VM consistentes com aplicativos por meio do Backup do Azure. Esse mecanismo usa a tecnologia de instantâneo para executar backups rápidos, independentemente do tamanho do banco de dados. A integração com um cofre dos Serviços de Recuperação fornece armazenamento em nuvem de seus backups do Oracle Database, para que você possa acessá-los de outras VMs e outras regiões do Azure.

Restaurar e recuperar o banco de dados

  1. Desligue a instância do Oracle:

    sqlplus / as sysdba
    SQL> shutdown abort
    ORACLE instance shut down.
    
  2. Remova os arquivos de dados do banco de dados:

    cd /u02/oradata/TEST
    rm -f *.dbf
    
  3. Os seguintes comandos usam o RMAN para restaurar os arquivos de dados ausentes e recuperar o banco de dados:

    rman target /
    RMAN> startup mount;
    RMAN> restore database;
    RMAN> recover database;
    RMAN> alter database open;
    
  4. Verifique se o conteúdo do banco de dados foi totalmente recuperado:

    RMAN> SELECT * FROM scott.scott_table;
    

O backup e a recuperação do banco de dados do Oracle Database 19c em uma VM Linux do Azure foram concluídos.

Excluir a VM

Quando a VM não for mais necessária, use o comando a seguir para remover o grupo de recursos, a VM e todos os recursos relacionados:

az group delete --name rg-oracle

Próximas etapas

Criar VMs altamente disponíveis

Explorar exemplos da CLI do Azure para implantação de VM