Criar cópias de segurança de bases de dados SQL na VM do Azure com a CLI do Azure
A CLI do Azure é utilizada para criar e gerir recursos do Azure a partir da Linha de Comandos ou através de scripts. Este artigo descreve como criar uma cópia de segurança de uma base de dados SQL na VM do Azure e acionar cópias de segurança a pedido com a CLI do Azure. Também pode efetuar estas ações com o portal do Azure.
Este artigo pressupõe que já tem uma base de dados SQL instalada numa VM do Azure. (Também pode criar uma VM com a CLI do Azure).
Neste artigo, vai aprender a:
- Criar um cofre dos Serviços de Recuperação
- Registar o SQL Server e detetar bases de dados no mesmo
- Ativar a cópia de segurança numa base de dados SQL
- Acionar uma cópia de segurança a pedido
Veja os cenários atualmente suportados para o SQL na VM do Azure.
Pré-requisitos
Utilize o ambiente bash no Azure Cloud Shell. Para obter mais informações, veja Início Rápido do 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, veja Como executar a CLI do Azure num contentor 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 início de sessão, veja Iniciar sessão com a CLI do Azure.
Quando lhe for pedido, 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.
Criar um cofre dos Serviços de Recuperação
Um cofre dos Serviços de Recuperação é um contentor lógico que armazena os dados de cópia de segurança para cada recurso protegido, como VMs do Azure ou cargas de trabalho em execução em VMs do Azure, por exemplo, bases de dados SQL ou HANA. Quando a tarefa de cópia de segurança de um recurso protegido é executada, cria um ponto de recuperação dentro do cofre dos Serviços de Recuperação. Em seguida, pode utilizar um destes 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 . Utilize o grupo de recursos e a localização como o da VM que pretende proteger. Saiba como criar uma VM com a CLI do Azure com este início rápido da VM.
Para este artigo, vamos utilizar:
- Um grupo de recursos com o nome SQLResourceGroup
- Uma VM com o nome testSQLVM
- Recursos na localização westus2 .
Execute o seguinte comando para criar um cofre com o nome SQLVault.
az backup vault create --resource-group SQLResourceGroup \
--name SQLVault \
--location westus2
Por predefinição, o cofre dos Serviços de Recuperação está definido para Armazenamento georredundante. Geo-Redundant armazenamento garante que os dados de cópia de segurança são replicados para uma região secundária do Azure, mesmo que estejam a centenas de quilómetros de distância da região primária. Se a definição de redundância de armazenamento precisar de ser modificada, utilize 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, utilize o comando az backup vault list . A resposta é apresentada como:
Location Name ResourceGroup
--------- --------------- -------------
westus2 SQLVault SQLResourceGroup
Registar e proteger o SQL Server
Para registar o SQL Server no cofre dos Serviços de Recuperação, utilize o comando az backup container register. VMResourceId é o ID de recurso da VM que 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
Nota
Se a VM não estiver presente no mesmo grupo de recursos que o cofre, o SQLResourceGroup utiliza o grupo de recursos onde o cofre foi criado.
Registar o SQL Server deteta automaticamente todas as bases de dados atuais. No entanto, para detetar novas bases de dados que possam ser adicionadas no futuro, veja a secção Detetar novas bases de dados adicionadas ao SQL Server registado .
Utilize o comando az backup container list para verificar se a instância do SQL foi registada com êxito no cofre. A resposta é apresentada como:
Name Friendly Name Resource Group Type Registration Status
------------------------------------------------------ -------------- -------------------- --------- ----------------------
VMAppContainer;Compute;SQLResourceGroup;testSQLVM testSQLVM SQLResourceGroup AzureWorkload Registered
Nota
O nome da coluna na saída acima refere-se ao nome do contentor. Este nome de contentor é utilizado nas secções seguintes para ativar as cópias de segurança e acioná-las. Por exemplo, VMAppContainer; Computação; SQLResourceGroup;testSQLVM.
Ativar a cópia de segurança na base de dados SQL
O comando az backup protectable-item list lista todas as bases de dados detetadas na instância do SQL que registou no passo 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
Deverá encontrar a base de dados nesta lista que pretende fazer uma cópia de segurança, que é apresentada como:
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 a cópia de segurança para o sqldatabase;mssqlserver; base de dados mestra.
Para configurar e proteger cópias de segurança numa base de dados, uma de cada vez, utilize o comando az backup protection enable-for-azurewl . Indique o nome da política que pretende utilizar. Para criar uma política com a CLI, utilize o comando az backup policy create . Para este artigo, utilizámos 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
Pode utilizar o mesmo comando, se tiver um Grupo de Disponibilidade AlwaysOn do SQL e quiser identificar a origem de dados protegido no grupo de disponibilidade. Aqui, o tipo de item protegido é SQLAG.
Para verificar se a configuração da cópia de segurança acima está concluída, utilize o comando az backup job list . O resultado é apresentado 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 todas as tarefas de cópia de segurança (agendadas ou a pedido) que foram executadas ou estão atualmente em execução na base de dados protegida, além de outras operações, como registar, configurar a cópia de segurança e eliminar dados de cópia de segurança.
Nota
Azure Backup não se ajusta automaticamente às alterações da hora de verão ao fazer uma cópia de segurança de uma base de dados SQL em execução numa VM do Azure.
Modifique a política manualmente conforme necessário.
Ativar a proteção automática
Para uma configuração de cópia de segurança totalmente integrada, todas as bases de dados adicionadas no futuro podem ser automaticamente protegidas com uma determinada política. Para ativar a proteção automática, utilize o comando az backup protection auto-enable-for-azurewl .
Como a instrução é criar uma cópia de segurança de todas as bases de dados futuras, a operação é efetuada ao nível do 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
Acionar uma cópia de segurança a pedido
Para acionar uma cópia de segurança a pedido, utilize o comando az backup protection backup-now .
Nota
O período de retenção desta cópia de segurança é determinado pelo tipo de cópia de segurança a pedido que executou.
- A pedido, a totalidade retém cópias de segurança durante um mínimo de 45 dias e um máximo de 99 anos.
- A cópia a pedido só aceita um valor completo para retenção.
- O diferencial a pedido mantém a cópia de segurança de acordo com a retenção dos diferenciais agendados definidos na política.
- O registo a pedido mantém as cópias de segurança de acordo com a retenção dos registos 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
O resultado é apresentado como:
Name ResourceGroup
------------------------------------ -------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 sqlResourceGroup
A resposta fornece-lhe o nome da tarefa. Pode utilizar este nome de tarefa para controlar o estado da tarefa com o comando az backup job show .
Passos seguintes
- Saiba como restaurar uma base de dados SQL na VM do Azure com a CLI.
- Saiba como criar uma cópia de segurança de uma base de dados SQL em execução na VM do Azure com portal do Azure.