Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 gerenciar um banco de dados SQL com backup na VM do Azure usando a CLI do Azure. Você também pode executar essas ações usando o portal do Azure.
Observação
Se você tiver usado Backup de um banco de dados SQL no Azure usando a CLI para fazer backup do banco de dados SQL, você usará os seguintes recursos:
- Um grupo de recursos denominado SQLResourceGroup
- Um cofre chamado SQLVault
- Contêiner protegido chamado VMAppContainer; Calcular; SQLResourceGroup; testSQLVM
- Banco de dados/item de backup chamado sqldatabase; mssqlserver; master
- Recursos na região westus2
A CLI do Azure facilita o processo de gerenciamento de um banco de dados SQL em execução em uma VM do Azure com backup usando o Backup do Azure. As seções a seguir descrevem cada uma das operações de gerenciamento.
Saiba mais sobre as configurações e cenários com suporte para o backup do SQL.
Monitorar trabalhos de backup e restauração
Use o comando az backup job list para monitorar trabalhos concluídos ou em execução no momento (backup ou restauração). A CLI também permite que você suspenda um trabalho em execução no momento ou aguarde até que um trabalho seja concluído.
az backup job list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--output table
A saída é exibida como:
Name Operation Status Item Name Start Time UTC
------------------------------------ --------------- --------- ---------- -------------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 ConfigureBackup Completed master [testSQLVM] 2019-12-03T03:09:210831+00:00
ccdb4dce-8b15-47c5-8c46-b0985352238f Backup (Full) Completed master [testSQLVM] 2019-12-01T10:30:58.867489+00:00
4980af91-1090-49a6-ab96-13bc905a5282 Backup (Differential) Completed master [testSQLVM] 2019-12-01T10:36:00.563909+00:00
F7c68818-039f-4a0f-8d73-e0747e68a813 Restore (Log) Completed master [testSQLVM] 2019-12-03T05:44:51.081607+00:00
Alterar uma política
Para alterar a política subjacente à configuração de backup do SQL, use o comando az backup policy set . O parâmetro de nome neste comando refere-se ao item de backup cuja política você deseja alterar. Aqui, substitua a política do banco de dados SQL sqldatabase;mssqlserver;master por uma nova política newSQLPolicy. Você pode criar novas políticas usando o comando az backup policy create .
az backup item set-policy --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--policy-name newSQLPolicy \
--name sqldatabase;mssqlserver;master \
A saída é exibida como:
Name Operation Status Item Name Backup Management Type Start Time UTC Duration
------------------------------------ --------------- --------- ----------- ------------------------ -------------------------------- --------------
ba350996-99ea-46b1-aae2-e2096c1e28cd ConfigureBackup Completed master AzureWorkload 2022-06-22T08:24:03.958001+00:00 0:01:12.435765
Criar uma política de backup diferencial
Para criar uma política de backup diferencial, use o comando az backup policy create com os seguintes parâmetros:
- --backup-management-type: Carga de trabalho do Azure.
- --workload-type: Banco de Dados SQL.
- --name: nome da política.
- --policy: arquivo JSON com detalhes apropriados para agendamento e retenção.
- --resource-group: grupo de recursos do cofre.
- --vault-name: nome do cofre/
Exemplo:
az backup policy create --resource-group SQLResourceGroup --vault-name SQLVault --name SQLPolicy --backup-management-type AzureWorkload --policy SQLPolicy.json --workload-type SQLDataBase
JSON de exemplo (sqlpolicy.json):
"eTag": null,
"id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLResourceGroup/providers/Microsoft.RecoveryServices/vaults/SQLVault/backupPolicies/SQLPolicy",
"___location": null,
"name": "sqlpolicy",
"properties": {
"backupManagementType": "AzureWorkload",
"workLoadType": "SQLDataBase",
"settings": {
"timeZone": "UTC",
"issqlcompression": false,
"isCompression": false
},
"subProtectionPolicy": [
{
"policyType": "Full",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Weekly",
"scheduleRunDays": [
"Sunday"
],
"scheduleRunTimes": [
"2022-06-13T19:30:00Z"
],
"scheduleWeeklyFrequency": 0
},
"retentionPolicy": {
"retentionPolicyType": "LongTermRetentionPolicy",
"weeklySchedule": {
"daysOfTheWeek": [
"Sunday"
],
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 104,
"durationType": "Weeks"
}
},
"monthlySchedule": {
"retentionScheduleFormatType": "Weekly",
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 60,
"durationType": "Months"
}
},
"yearlySchedule": {
"retentionScheduleFormatType": "Weekly",
"monthsOfYear": [
"January"
],
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 10,
"durationType": "Years"
}
}
}
},
{
"policyType": "Differential",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Weekly",
"scheduleRunDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"scheduleRunTimes": [
"2022-06-13T02:00:00Z"
],
"scheduleWeeklyFrequency": 0
},
"retentionPolicy": {
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": 30,
"durationType": "Days"
}
}
},
{
"policyType": "Log",
"schedulePolicy": {
"schedulePolicyType": "LogSchedulePolicy",
"scheduleFrequencyInMins": 120
},
"retentionPolicy": {
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": 15,
"durationType": "Days"
}
}
}
],
"protectedItemsCount": 0
},
"resourceGroup": "SQLResourceGroup",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupPolicies"
}
Depois que a política é criada com êxito, a saída do comando mostra o JSON da política que você passou como um parâmetro durante a execução do comando.
Você pode modificar a seção a seguir da política para especificar a frequência de backup e a retenção necessárias para backups diferenciais.
Por exemplo:
{
"policyType": "Differential",
"retentionPolicy": {
"retentionDuration": {
"count": 30,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2017-03-07T02:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
}
Exemplo:
Se você quiser ter backups diferenciais somente no sábado e mantê-los por 60 dias, faça as seguintes alterações na política:
- Atualizar a contagem de retentionDuration para 60 dias.
- Especifique somente sábado como ScheduleRunDays.
{
"policyType": "Differential",
"retentionPolicy": {
"retentionDuration": {
"count": 60,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Saturday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2017-03-07T02:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
}
Proteger os novos bancos de dados adicionados a uma instância do SQL
O registro de uma instância SQL com um cofre do Azure Recovery Services automaticamente descobre todos os bancos de dados presentes na instância.
No entanto, se você tiver adicionado novos bancos de dados à instância SQL posteriormente, use o comando az backup protectable-item initialize. Esse comando descobre os novos bancos de dados adicionados.
az backup protectable-item initialize --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--workload-type SQLDataBase
Em seguida, use o cmdlet az backup protectable-item list para listar todos os bancos de dados que foram descobertos em sua instância SQL. Essa lista, no entanto, exclui os bancos de dados nos quais o backup já foi configurado. Assim que o banco de dados a ser salvo for descoberto, consulte Habilitar backup no banco de dados SQL.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--protectable-item-type SQLDataBase \
--output table
O novo banco de dados que você deseja fazer backup aparece nesta lista, que aparece como:
Name Protectable Item Type ParentName ServerName IsProtected
--------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;db1 SQLDataBase mssqlserver testSQLVM NotProtected
sqldatabase;mssqlserver;db2 SQLDataBase mssqlserver testSQLVM NotProtected
Parar a proteção para um banco de dados SQL
Você pode parar de proteger um banco de dados SQL nos seguintes processos:
- Interromper todos os trabalhos de backup futuros e excluir todos os pontos de recuperação.
- Interromper todos os trabalhos de backup futuros e deixar os pontos de recuperação intactos.
Se você optar por deixar pontos de recuperação, tenha em mente estes detalhes:
- Todos os pontos de recuperação permanecerão intactos para sempre, e toda a remoção será interrompida ao parar a proteção com os dados de retenção.
- Você será cobrado pela instância protegida e pelo armazenamento consumido.
- Se você excluir uma fonte de dados sem interromper os backups, os novos backups falharão.
Os processos para interromper a proteção são detalhados abaixo.
Interrompa a proteção com retenção de dados
Para interromper a proteção com dados de retenção, use o comando az backup protection disable.
az backup protection disable --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--workload-type SQLDataBase \
--output table
A saída é exibida como:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Para verificar o status dessa operação, use o comando az backup job show .
Parar a proteção sem reter dados
Para interromper a proteção sem reter dados, use o comando az backup protection disable .
az backup protection disable --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--workload-type SQLDataBase \
--delete-backup-data true \
--output table
A saída é exibida como:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Para verificar o status dessa operação, use o comando az backup job show .
Retomar proteção
Ao interromper a proteção para o banco de dados SQL mantendo os dados, você poderá retomar a proteção mais tarde. Se você não reter os dados de backup, não poderá retomar a proteção.
Para retomar a proteção, use o comando az backup protection resume .
az backup protection resume --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--policy-name SQLPolicy \
--output table
A saída é exibida como:
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e SQLResourceGroup
Para verificar o status dessa operação, use o comando az backup job show .
Próximas etapas
- Saiba como fazer backup de um banco de dados SQL em execução na VM do Azure usando o portal do Azure.
- Saiba como gerenciar um banco de dados SQL com backup em execução na VM do Azure usando o portal do Azure.