Fazer backup de bancos de dados SQL em uma VM do Azure usando a CLI do Azure
A CLI do Azure é usada para criar e gerenciar recursos do Azure por meio da linha de comando ou por meio de scripts. Este artigo descreve como fazer backup de um banco de dados SQL na VM do Azure e disparar backups sob demanda usando a CLI do Azure. Você também pode executar essas ações usando o portal do Azure.
Este artigo pressupõe que você já tem um banco de dados SQL instalado em uma VM do Azure. (Você também pode criar uma VM usando a CLI do Azure).
Neste artigo, você aprenderá a:
- Criar um cofre dos Serviços de Recuperação
- Registrar o SQL Server e descobrir bancos de dados nele
- Habilitar o backup em um banco de dados SQL
- Disparar um backup sob demanda
Confira os cenários com suporte no momento para SQL na VM do Azure.
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.
Criar um cofre dos Serviços de Recuperação
Um cofre dos Serviços de Recuperação é um contêiner lógico que armazena os dados de backup para cada recurso protegido, como VMs do Azure ou cargas de trabalho em execução em VMs do Azure, por exemplo, bancos de dados SQL ou HANA. Quando o trabalho de backup para um recurso protegido é executado, ele cria um ponto de recuperação no cofre dos Serviços de Recuperação. Você pode usar um desses pontos de recuperação para restaurar dados para um determinado ponto no tempo.
Crie um cofre dos Serviços de Recuperação com o comando az backup vault create. Use o grupo de recursos e o local da VM que você deseja proteger. Saiba como criar uma VM do Windows e uma VM Linux usando a CLI do Azure.
Para este artigo, vamos usar:
- Um grupo de recursos denominado SQLResourceGroup
- Uma VM chamada testSQLVM
- Recursos no local westus2.
Execute o comando a seguir para criar um cofre chamado SQLVault.
az backup vault create --resource-group SQLResourceGroup \
--name SQLVault \
--location westus2
Por padrão, o cofre dos Serviços de Recuperação é definido para o armazenamento com redundância geográfica. O armazenamento com redundância geográfica verifica se os dados de backup são replicados para uma região secundária do Azure mesmo se estão a centenas de quilômetros de distância da região primária. Se a configuração de redundância de armazenamento precisar ser modificada, use o comando az backup vault backup-properties set.
az backup vault backup-properties set \
--name SQLVault \
--resource-group SQLResourceGroup \
--backup-storage-redundancy "LocallyRedundant/GeoRedundant"
Para verificar se o cofre foi criado com êxito, use o comando az backup vault list. A resposta aparece como:
Location Name ResourceGroup
--------- --------------- -------------
westus2 SQLVault SQLResourceGroup
Registrar e proteger o SQL Server
Para registrar o SQL Server com o cofre dos Serviços de Recuperação, use o comando az backup container register. VMResourceId é a ID de recurso da VM que você criou para instalar o SQL.
az backup container register --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--backup-management-type AzureWorkload \
--resource-id VMResourceId
Observação
Se a VM não estiver presente no mesmo grupo de recursos do cofre, o SQLResourceGroup usará o grupo de recursos em que o cofre foi criado.
O registro da instância do SQL descobre automaticamente todos os seus bancos de dados atuais. No entanto, para descobrir novos bancos de dados que possam ser adicionados no futuro, confira a seção Descobrindo novos bancos de dados adicionados à instância registrada do SQL Server.
Use o comando az backup container list para verificar se a instância SQL foi registrada com êxito com seu cofre. A resposta aparece como:
Name Friendly Name Resource Group Type Registration Status
------------------------------------------------------ -------------- -------------------- --------- ----------------------
VMAppContainer;Compute;SQLResourceGroup;testSQLVM testSQLVM SQLResourceGroup AzureWorkload Registered
Observação
A coluna nome na saída acima refere-se ao nome do contêiner. Esse nome de contêiner é usado nas próximas seções para habilitar backups e dispará-los. Por exemplo, VMAppContainer;Compute;SQLResourceGroup;testSQLVM.
Habilitar o backup no banco de dados SQL
O comando az backup protectable-item list lista todos os bancos de dados descobertos na instância do SQL que você registrou na etapa anterior.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--backup-management-type AzureWorkload \
--protectable-item-type SQLDataBase
--output table
Você deve encontrar o banco de dados nesta lista do qual deseja fazer backup, que terá a seguinte aparência:
Name Protectable Item Type ParentName ServerName IsProtected
----------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;master SQLDataBase MSSQLServer testSQLVM NotProtected
sqldatabase;mssqlserver;model SQLDataBase MSSQLServer testSQLVM NotProtected
sqldatabase;mssqlserver;msdb SQLDataBase MSSQLServer testSQLVM NotProtected
Agora, configure o backup para o banco de dados sqldatabase;mssqlserver;master.
Para configurar e proteger backups em um banco de dados, um de cada vez, usamos o comando az backup protection enable-for-azurewl. Forneça o nome da política que você deseja usar. Para criar uma política usando a CLI, use o comando az backup policy create. Para este artigo, usamos a política testSQLPolicy.
az backup protection enable-for-azurewl --resource-group SQLResourceGroup \
--vault-name SQLVault \
--policy-name SQLPolicy \
--protectable-item-name "sqldatabase;mssqlserver;master" \
--protectable-item-type SQLDataBase \
--server-name testSQLVM \
--workload-type SQLDataBase \
--output table
Você poderá usar o mesmo comando se tiver um Grupo de Disponibilidade do SQL Always On e quiser identificar a fonte de dados que pode ser protegida dentro do grupo de disponibilidade. Aqui, o tipo de item que pode ser protegido é SQLAG.
Para verificar se a configuração de backup acima está concluída, use o comando az backup job list. A saída é exibida como:
Name Operation Status Item Name Start Time UTC
------------------------------------ --------------- --------- ---------- -------------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 ConfigureBackup Completed master 2019-12-03T03:09:210831+00:00
O comando az backup job list lista todos os trabalhos de backup (agendados ou sob demanda) que foram executados ou estão atualmente em execução no banco de dados protegido, além de outras operações como registrar, configurar backup e excluir dados de backup.
Observação
Backup do Azure ajuste automático para alterações de horário de verão ao fazer o banco de dados SQL em execução em uma VM do Azure.
Modifique a política manualmente, se necessário.
Habilitar a proteção automática
Para a configuração de backup contínuo, todos os bancos de dados adicionados no futuro podem ser protegidos automaticamente com determinada política. Para habilitar a proteção automática, use o comando az backup protection auto-enable-for-azurewl.
Como a instrução é fazer backup de todos os bancos de dados futuros, a operação é feita em nível de SQLInstance.
az backup protection auto-enable-for-azurewl --resource-group SQLResourceGroup \
--vault-name SQLVault \
--policy-name SQLPolicy \
--protectable-item-name "sqlinstance;mssqlserver" \
--protectable-item-type SQLInstance \
--server-name testSQLVM \
--workload-type MSSQL\
--output table
Disparar um backup sob demanda
Para disparar um backup sob demanda, use o comando az backup protection backup-now.
Observação
O período de retenção desse backup é determinado pelo tipo de backup sob demanda que você executou.
- A opção completo sob demanda retém backups por no mínimo 45 dias e no máximo 99 anos.
- A opção Completo somente para cópia sob demanda aceita qualquer valor para retenção.
- A opção diferencial sob demanda retém o backup de acordo com a retenção dos diferenciais agendados definidos na política.
- O log sob demanda retém backups de acordo com a retenção de logs agendados definidos na política.
az backup protection backup-now --resource-group SQLResourceGroup \
--item-name sqldatabase;mssqlserver;master \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--backup-type Full
--retain-until 01-01-2040
--output table
A saída é exibida como:
Name ResourceGroup
------------------------------------ -------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 sqlResourceGroup
A resposta fornece o nome do trabalho. Você pode usar esse nome de trabalho para acompanhar o status do trabalho usando o comando az backup job show.