Резервное копирование баз данных SQL на виртуальных машинах Azure с помощью Azure CLI
Azure CLI используется для создания ресурсов Azure и управления ими из командной строки или с помощью скриптов. В этой статье описывается резервное копирование базы данных SQL на виртуальной машине Azure и активация резервных копий по запросу с помощью Azure CLI. Эти действия можно также выполнить с помощью портала Azure.
В этом документе предполагается, что у вас уже есть виртуальная машина Azure с установленной базой данных SQL. (Вы также можете создать виртуальную машину с помощью Azure CLI).
В этой статье вы узнаете, как выполнять следующие задачи.
- Создание хранилища Служб восстановления
- Регистрация SQL Server и обнаружение баз данных на нем
- Включение резервного копирования в базе данных SQL
- Активирование резервного копирования по запросу
Ознакомьтесь с поддерживаемыми в настоящее время сценариями SQL на виртуальной машине Azure.
Необходимые компоненты
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Создание хранилища Служб восстановления
Хранилище Служб восстановления — это логический контейнер, в котором хранятся данные резервного копирования для каждого защищенного ресурса, например виртуальных машин Azure или выполняемых на виртуальных машинах рабочих нагрузок, таких как базы данных SQL или HANA. Когда выполняется задание резервного копирования для защищенного ресурса, в хранилище служб восстановления создается точка восстановления. Позже вы сможете использовать одну из этих точек восстановления, чтобы восстановить данные до определенной точки во времени.
Создайте хранилище служб восстановления с помощью команды az backup vault create. Укажите те же группу ресурсов и расположение, что и для виртуальной машины, которую необходимо защитить. Узнайте, как создать виртуальную машину Windows и виртуальную машину Linux с помощью Azure CLI.
В этой статье мы будем использовать:
- группу ресурсов с именем SQLResourceGroup;
- виртуальную машину с именем testSQLVM;
- ресурсы в расположении westus2.
Выполните следующую команду, чтобы создать хранилище с именем SQLVault.
az backup vault create --resource-group SQLResourceGroup \
--name SQLVault \
--location westus2
По умолчанию в качестве хранилища служб восстановления задано геоизбыточное хранилище. Геоизбыточное хранилище обеспечивает репликацию данных резервного копирования во вторичный регион Azure, который находится в сотнях километров от первичного региона. Если вам необходимо изменить параметр избыточности хранилища, используйте команду az backup vault backup-properties set.
az backup vault backup-properties set \
--name SQLVault \
--resource-group SQLResourceGroup \
--backup-storage-redundancy "LocallyRedundant/GeoRedundant"
Чтобы проверить, успешно ли создано хранилище, используйте команду az backup vault list. Ответ отображается следующим образом:
Location Name ResourceGroup
--------- --------------- -------------
westus2 SQLVault SQLResourceGroup
Регистрация и защита SQL Server
Чтобы зарегистрировать SQL Server в Хранилище служб восстановления, используйте команду az backup container register. VMResourceId обозначает идентификатор ресурса для виртуальной машины, которую вы создали для установки SQL.
az backup container register --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--backup-management-type AzureWorkload \
--resource-id VMResourceId
Примечание.
Если виртуальная машина и хранилище находятся в разных группах ресурсов, то имя SQLResourceGroup использует группу ресурсов, в которой создано хранилище.
При регистрации экземпляра SQL server на нем автоматически обнаруживаются все существующие базы данных. Однако для обнаружения новых баз данных, которые могут быть добавлены в будущем, выполните действия из раздела Об обнаружении новых баз данных, добавленных в зарегистрированный экземпляр SQL server.
Чтобы убедиться, что экземпляр SQL успешно зарегистрирован в хранилище, используйте команду az backup container list. Ответ отображается следующим образом:
Name Friendly Name Resource Group Type Registration Status
------------------------------------------------------ -------------- -------------------- --------- ----------------------
VMAppContainer;Compute;SQLResourceGroup;testSQLVM testSQLVM SQLResourceGroup AzureWorkload Registered
Примечание.
Столбец name в представленном выше примере выходных данных ссылается на имя контейнера. Это имя контейнера будет использоваться в следующих разделах для настройки и активации резервного копирования. Например, VMAppContainer;Compute;SQLResourceGroup;testSQLVM.
Включение резервного копирования в базе данных SQL
Список команд az backup protectable-item list возвращает список всех баз данных, обнаруженных в экземпляре SQL, который вы зарегистрировали на предыдущем шаге.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--backup-management-type AzureWorkload \
--protectable-item-type SQLDataBase
--output table
В списке должна появиться новая база данных, для которой вы решили включить резервное копирование, и теперь он будет выглядеть следующим образом:
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
Теперь настройте резервное копирование для базы данных sqldatabase;mssqlserver;master.
Чтобы защитить и настроить резервное копирование поочередно для каждой базы данных, мы применим команду az backup protection enable-for-azurewl. Укажите имя политики, которую вы намерены использовать. Чтобы создать политику через интерфейс командной строки, используйте команду az backup policy create. В этой статье мы использовали политику 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
Вы можете использовать ту же команду, если у вас есть группа доступности SQL Always On и хотите определить защищаемый источник данных в группе доступности. Здесь тип защищаемого элемента — SQLAG.
Вы можете проверить, завершена ли настройка резервного копирования, с помощью команды az backup job list. Результат выглядит так:
Name Operation Status Item Name Start Time UTC
------------------------------------ --------------- --------- ---------- -------------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 ConfigureBackup Completed master 2019-12-03T03:09:210831+00:00
Команда az backup job list возвращает список всех заданий резервного копирования (запланированных и по требованию), которые были выполнены или выполняются в текущий момент в защищенной базе данных, а также другие операции, такие как регистрация, настройка резервного копирования и удаление данных резервных копий.
Примечание.
Azure Backup не выполняет автоматический переход на летнее время при резервном копировании базы данных SQL на виртуальной машине Azure.
Измените политику вручную, если это необходимо.
Включение автоматической защиты
Для простой настройки резервного копирования все базы данных, добавленные в будущем, можно автоматически защитить с помощью определенной политики. Чтобы включить автоматическую защиту, используйте команду az backup protection auto-enable-for-azurewl.
Так как инструкция предназначена для резервного копирования всех будущих баз данных, операция выполняется на уровне 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
Активирование резервного копирования по запросу
Активируйте резервное копирование по запросу с помощью команды az dataprotection backup-instance adhoc-backup.
Примечание.
Срок хранения этой резервной копии определяется типом выполняемой резервной копии по запросу.
- Полные резервные копии по запросу хранятся не менее 45 дней и не более 99 лет.
- Копирование по запросу полностью принимает все значения для хранения.
- Разностное копирование по запросу сохраняется в соответствии с хранением запланированных разностных наборов в политике.
- Журнал по запросу сохраняет резервные копии в соответствии с параметрами хранения запланированных журналов, заданных в политике.
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
Результат выглядит так:
Name ResourceGroup
------------------------------------ -------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 sqlResourceGroup
В ответе вы получили имя задания. Имя задания позволяет отслеживать состояние задания с помощью команды az backup job show.