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
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
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
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>
Mude para o usuário raiz:
sudo su -
Adicione o usuário
oracle
ao arquivo /etc/sudoers:echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
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
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 arquivooracle
.bashrc do usuário para entradas futuras usando o comando a seguir:echo "export ORACLE_SID=test" >> ~oracle/.bashrc
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
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 ainda não estiver em execução:
SQL> startup
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;
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;
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:
- Configurar os Arquivos do Azure.
- Montar o compartilhamento de arquivo do Azure para sua VM.
- Fazer backup do banco de dados.
- 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:
No portal do Azure, selecione + Criar um recurso e, em seguida, pesquise 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, insira oracbkup1.
- Assegure-se de que Local esteja configurado para a mesma região de todos os outros recursos no grupo de recursos.
- Alto Desempenho para Standard.
- Para Tipo de conta, selecione StorageV2 (uso geral v2).
- Em Replicação, selecione Armazenamento com redundância local (LRS) .
Selecione a guia Avançado. Em Arquivos do Azure, defina Compartilhamentos de arquivos grandes como Habilitado. Clique em Examinar + Criar, depois em Criar.
Quando a conta de armazenamento for criada, vá para o recurso e selecione Compartilhamentos de arquivo.
Selecione + Compartilhamento de arquivo e, em seguida, no painel Novo compartilhamento de arquivo:
Para Nome, insira orabkup1.
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.
Em Camadas, selecione Transação otimizada.
Selecione Criar.
Quando o compartilhamento de arquivo for criado, selecione orabkup1 no painel Configurações de compartilhamento de arquivo.
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.
Monte o compartilhamento de arquivo do Azure para 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 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
Altere as permissões no arquivo de credenciais:
sudo chmod 600 /etc/smbcredentials/orabackup1.cred
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'
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
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.
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';
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;
Confirme os detalhes da alteração de configuração:
RMAN> show all;
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
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 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;
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