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
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>
Mude para o usuário root:
sudo su -
Adicione o
oracle
usuário ao arquivo /etc/sudoers :echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
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
Antes de se conectar, defina a variável
ORACLE_SID
de ambiente :export ORACLE_SID=test;
Você também deve adicionar a
ORACLE_SID
variável aooracle
arquivo .bashrc do usuário para entradas futuras usando o seguinte comando:echo "export ORACLE_SID=test" >> ~oracle/.bashrc
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
Crie o local para a área de recuperação rápida:
mkdir /u02/fast_recovery_area
Conecte-se ao banco de dados:
sqlplus / as sysdba
Inicie o banco de dados se ele ainda não estiver em execução:
SQL> startup
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;
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;
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:
- Configure os Arquivos do Azure.
- Monte o compartilhamento de arquivos do Azure em sua VM.
- Faça backup do banco de dados.
- 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:
No portal do Azure, selecione + Criar um recurso e, em seguida, procure e selecione Conta de Armazenamento.
No painel Criar conta de armazenamento:
- Para Grupo de recursos, selecione seu grupo de recursos existente, rg-oracle.
- Para Nome da conta de armazenamento, digite oracbkup1.
- Certifique-se de que Localização está definida para a mesma região que todos os outros recursos no grupo de recursos.
- Defina o desempenho como padrão.
- Para Tipo de conta, selecione StorageV2 (uso geral v2).
- Em Replicação, selecione LRS (armazenamento com redundância local).
Selecione a guia Avançado . Em Arquivos do Azure, defina Compartilhamentos de arquivos grandes como Habilitado. Selecione Rever + Criar e, em seguida, selecione Criar.
Quando a conta de armazenamento for criada, vá para o recurso e selecione Compartilhamentos de arquivos.
Selecione + Compartilhamento de arquivos e, em seguida, no painel Novo compartilhamento de arquivos:
Em Nome, digite orabkup1.
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.
Em Camadas, selecione Transação otimizada.
Selecione Criar.
Quando o compartilhamento de arquivos for criado, selecione orabkup1 no painel Configurações de compartilhamento de arquivos.
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.
Monte o compartilhamento de arquivos do Azure em sua VM
Crie o ponto de montagem:
sudo mkdir /mnt/orabackup
Configure as credenciais:
if [ ! -d "/etc/smbcredentials" ]; then sudo mkdir /etc/smbcredentials fi
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
Altere as permissões no arquivo de credenciais:
sudo chmod 600 /etc/smbcredentials/orabackup1.cred
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'
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
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.
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';
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;
Confirme os detalhes da alteração de configuração:
RMAN> show all;
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
Desligue a instância do Oracle:
sqlplus / as sysdba SQL> shutdown abort ORACLE instance shut down.
Remova os arquivos de dados do banco de dados:
cd /u02/oradata/TEST rm -f *.dbf
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;
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