Share via


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

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