Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure CLI используется для создания ресурсов Azure и управления ими из командной строки или с помощью скриптов. В этой статье описывается, как управлять резервной копией базы данных SQL на виртуальной машине Azure с помощью Azure CLI. Эти действия также можно выполнить с помощью портала Azure.
Замечание
Если вы использовали резервное копирование базы данных SQL в Azure с помощью интерфейса командной строки для резервного копирования базы данных SQL, то вы используете следующие ресурсы:
- Группа ресурсов с именем SQLResourceGroup
- Хранилище с именем SQLVault
- Защищенный контейнер с именем VMAppContainer; Вычислять; SQLResourceGroup; testSQLVM
- Резервная копия базы данных/элемента с именем sqldatabase; mssqlserver; хозяин
- Ресурсы в регионе westus2
Azure CLI упрощает процесс управления базой данных SQL, работающей на виртуальной машине Azure, резервное копирование которой выполняется с помощью Azure Backup. В следующих разделах описывается каждая из операций управления.
Узнайте больше о поддерживаемых конфигурациях и сценариях для резервного копирования SQL.
Мониторинг заданий резервного копирования и восстановления
Используйте команду az backup job list для мониторинга завершенных или выполняемых в данный момент заданий (резервное копирование или восстановление). Интерфейс командной строки также позволяет приостановить выполняемое в данный момент задание или дождаться его завершения.
az backup job list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--output table
Выходные данные отображаются следующим образом:
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
Изменение политики
Чтобы изменить политику, лежащую в основе конфигурации резервного копирования SQL, используйте команду az backup policy set . Параметр name в этой команде относится к элементу резервного копирования, политику которого вы хотите изменить. Здесь замените политику базы данных SQL sqldatabase; mssqlserver; мастер с новой политикой newSQLPolicy. Вы можете создавать новые политики с помощью команды 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 \
Выходные данные отображаются следующим образом:
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
Создание политики дифференциального резервного копирования
Чтобы создать политику дифференциального резервного копирования, используйте команду az backup policy create со следующими параметрами:
- --backup-management-type: Рабочая нагрузка Azure.
- --workload-type: база данных SQL.
- --name: Название политики.
- --policy: JSON-файл с соответствующими деталями для расписания и хранения.
- --resource-group: Группа ресурсов хранилища.
- --vault-name: Имя хранилища/
Пример:
az backup policy create --resource-group SQLResourceGroup --vault-name SQLVault --name SQLPolicy --backup-management-type AzureWorkload --policy SQLPolicy.json --workload-type SQLDataBase
Пример JSON (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"
}
После успешного создания политики в выходных данных команды отображается JSON политики, который вы передали в качестве параметра при выполнении команды.
Вы можете изменить следующий раздел политики, указав требуемую частоту резервного копирования и срок хранения для разностных резервных копий.
Рассмотрим пример.
{
"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
}
}
Пример:
Если вы хотите иметь дифференциальные резервные копии только в субботу и хранить их в течение 60 дней, внесите следующие изменения в политику:
- Обновите счетчик retentionDuration до 60 дней.
- Укажите только субботу в качестве 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
}
}
Защита новых баз данных, добавленных в экземпляр SQL
При регистрации экземпляра SQL в хранилище служб восстановления автоматически обнаруживаются все базы данных в этом экземпляре.
Однако если вы добавили новые базы данных в экземпляр SQL позже, используйте команду az backup protectable-item initialize. Эта команда обнаруживает новые добавленные базы данных.
az backup protectable-item initialize --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--workload-type SQLDataBase
Затем используйте командлет az backup protectable-item list, чтобы получить список всех баз данных, обнаруженных в экземпляре SQL. Однако в этот список не входят те базы данных, для которых уже настроено резервное копирование. После обнаружения базы данных, для которой требуется создать резервную копию, обратитесь к разделу Включение резервного копирования базы данных SQL.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--protectable-item-type SQLDataBase \
--output table
Новая база данных, для которой требуется создать резервную копию, отображается в этом списке следующим образом:
Name Protectable Item Type ParentName ServerName IsProtected
--------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;db1 SQLDataBase mssqlserver testSQLVM NotProtected
sqldatabase;mssqlserver;db2 SQLDataBase mssqlserver testSQLVM NotProtected
Остановка защиты для базы данных SQL
Вы можете прекратить защиту базы данных SQL в следующих процессах:
- остановить все будущие задания резервного копирования и удалить все точки восстановления.
- остановить все будущие задания резервного копирования, но сохранить точки восстановления без изменений.
Если вы решите оставить точки восстановления, учитывайте следующие детали:
- Все точки восстановления остаются нетронутыми навсегда, а вся обрезка останавливается на остановке защиты с сохранением данных.
- Вы будете платить за защищенный экземпляр и используемый объем хранилища.
- если вы удалите источник данных без остановки резервного копирования, новые операции резервного копирования будут завершаться сбоем.
Процессы остановки защиты подробно описаны ниже.
Отключите защиту с сохранением данных
Чтобы остановить защиту с сохранением данных, используйте команду 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
Выходные данные отображаются следующим образом:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Чтобы проверить состояние этой операции, используйте команду az backup job show .
Остановка защиты без сохранения данных
Чтобы остановить защиту без сохранения данных, используйте команду 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
Выходные данные отображаются следующим образом:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Чтобы проверить состояние этой операции, используйте команду az backup job show .
Возобновить защиту
Если вы остановите защиту базы данных SQL с сохранением данных, вы сможете возобновить защиту позже. Если вы не сохраните резервные копии данных, вы не сможете возобновить защиту.
Чтобы возобновить защиту, используйте команду 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
Выходные данные отображаются следующим образом:
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e SQLResourceGroup
Чтобы проверить состояние этой операции, используйте команду az backup job show .
Дальнейшие шаги
- Узнайте, как создать резервную копию базы данных SQL, работающей на виртуальной машине Azure, с помощью портала Azure.
- Узнайте, как управлять резервной копией базы данных SQL, работающей на виртуальной машине Azure, с помощью портала Azure.