Partilhar via


Fazer backup e recuperar o Banco de Dados Oracle em uma VM Linux do Azure usando Arquivos do Azure

Aplica-se a: ✔️ Linux VMs

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

Neste artigo, você usa o Oracle Recovery Manager (RMAN) para fazer backup do banco de dados em um compartilhamento de arquivos do Azure montado em uma VM por meio do protocolo SMB (Server Message Block). Usar os Arquivos do Azure para mídia de backup é econômico e de desempenho. No entanto, para bancos de dados grandes, o Backup do Azure fornece uma solução melhor.

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

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

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

Preparar o ambiente de banco de dados

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

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

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

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

    Mude para o oracle utilizador:

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

    export ORACLE_SID=test;
    

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

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

    lsnrctl start
    

    O resultado deverá ter um aspeto 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 ele ainda não estiver em execução:

    SQL> startup
    
  10. Defina variáveis de ambiente de 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 ARCHIVELOG modo para habilitar 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 NOARCHIVELOG modo, execute os seguintes comandos 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. Configure os Arquivos do Azure.
  2. Monte o compartilhamento de arquivos do Azure em sua VM.
  3. Faça backup do banco de dados.
  4. Restaure e recupere o banco de dados.

Configurar Arquivos do Azure

Nesta seção, você faz backup do banco de dados Oracle para 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 NFS (Network File System).

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

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

Configure sua conta de armazenamento:

  1. No portal do Azure, selecione + Criar um recurso e, em seguida, procure 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, digite oracbkup1.
    3. Certifique-se de que Localização está definida para a mesma região que todos os outros recursos no grupo de recursos.
    4. Defina o desempenho como padrão.
    5. Para Tipo de conta, selecione StorageV2 (uso geral v2).
    6. Em Replicação, selecione LRS (armazenamento com redundância local).

    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. Selecione Rever + Criar e, em seguida, selecione Criar.

    Captura de ecrã que mostra o separador para ativar partilhas de ficheiros grandes.

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

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

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

    1. Em Nome, digite orabkup1.

    2. Defina a cota como 10240 gibibytes (GiB).

      A cota reflete um limite superior para o qual o compartilhamento de arquivos pode crescer. Como você está usando o armazenamento padrão neste exemplo, os recursos são pagos conforme o uso e não provisionados. Definir a cota para 10 tebibytes (TiB) não incorre em custos além do que você usa. Se sua estratégia de backup exigir mais armazenamento, defina a cota para 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 arquivos.

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

  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 arquivos usando o protocolo SMB.

    Captura de tela que mostra o painel para acessar os comandos para conectar um compartilhamento de arquivos a um computador Linux.

Monte o compartilhamento de arquivos do Azure em 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 seguinte comando. Substitua <Your Storage Account Key1> pela chave da conta de armazenamento recuperada 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. Adicione 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 arquivos 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 no 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 seguinte comando:

    sudo rpm -qa|grep cifs-utils
    

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

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

    df -h
    

    A saída deve ser semelhante a este 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

Nesta seção, você usa o Oracle RMAN para fazer um backup completo do banco de dados e dos logs de arquivamento. Em seguida, você grava o backup como um conjunto de backup no compartilhamento de arquivos do Azure montado anteriormente.

  1. Configure o RMAN para fazer backup no 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. Neste exemplo, você está limitando o tamanho das peças de backup do RMAN a 4 GiB. No entanto, o valor de backup maxpiecesize do RMAN 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, consulte Metas de desempenho e escalabilidade dos 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 usa um backup completo do banco de dados, incluindo arquivos de log de arquivamento, 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, pode acessá-los de outras VMs se precisar clonar o banco de dados.

Usar o RMAN e os 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 grandes bancos de dados, essas operações podem levar um tempo considerável.

Uma alternativa é usar backups de VM consistentes com o aplicativo por meio do Backup do Azure. Esse mecanismo usa a tecnologia de snapshot 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 Banco de Dados Oracle, 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 comandos a seguir 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 está totalmente recuperado:

    RMAN> SELECT * FROM scott.scott_table;
    

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

Elimine a VM

Quando não precisar mais da VM, você poderá usar o seguinte comando para remover o grupo de recursos, a VM e todos os recursos relacionados:

az group delete --name rg-oracle

Próximos passos

Criar VMs de elevada disponibilidade

Explore exemplos de CLI do Azure para implantação de VM