Автоматическое резервное копирование для виртуальных машин SQL Server 2014 (Resource Manager)

Применимо к: SQL Server на виртуальной машине Azure

Служба автоматической архивации автоматически настраивает управляемое резервное копирование на портал Microsoft Azure для всех существующих и новых баз данных на виртуальной машине Azure c SQL Server 2014 Standard или Enterprise. Это позволяет настроить регулярное резервное копирование базы данных с использованием надежного хранилища больших двоичных объектов Azure. Автоматическое резервное копирование зависит от расширения агента IaaS для SQL Server.

Примечание

В Azure предлагаются две модели развертывания для создания ресурсов и работы с ними: развертывание с помощью Azure Resource Manager и классическая модель развертывания. В этой статье описывается модель развертывания с помощью Resource Manager. Мы рекомендуем использовать для новых развертываний модель развертывания с помощью Resource Manager вместо классической модели развертывания.

Предварительные требования

Для использования автоматической архивации необходимо выполнить следующие предварительные требования.

Операционная система.

  • Начиная с версии Windows Server 2012

Версия/выпуск SQL Server

  • SQL Server 2014 Standard
  • SQL Server 2014 Enterprise

Примечание

В случае SQL 2016 и более поздних версий см. статью Автоматизированное резервное копирование для SQL Server 2016.

Конфигурация базы данных

  • В целевых пользовательских базах данных должна использоваться модель полного восстановления. Для системных баз данных нет необходимости использовать модель полного восстановления. Тем не менее, если требуется создавать резервные копии журналов для шаблона базы данных или MSDB, то необходимо использовать модель полного восстановления. Дополнительные сведения о влиянии модели полного восстановления на резервные копии см. в статье Резервное копирование в модели полного восстановления.
  • Виртуальная машина SQL Server зарегистрирована с помощью расширения агента IaaS для SQL в режиме полного управления.
  • Автоматизированное резервное копирование зависит от всего расширения агента IaaS для SQL Server. Таким образом, автоматизированное резервное копирование поддерживается целевыми базами данных только из экземпляра по умолчанию или единичного именованного экземпляра. Если экземпляра по умолчанию нет, а имеются несколько именованных экземпляров, возникает сбой расширения IaaS для SQL, и автоматизированное резервное копирование не работает.

Настройки

В приведенной ниже таблице описаны параметры настройки автоматической архивации. Фактическая процедура настройки может варьироваться в зависимости от того, используете вы портал Azure или команды Azure Windows PowerShell. Обратите внимание, что автоматическое резервное копирование по умолчанию использует сжатие резервных копий , и его нельзя отключить.

Параметр Диапазон (по умолчанию) Описание
Автоматическое резервное копирование Включено/отключено (отключено) Включает или отключает автоматическую архивацию для виртуальной машины Azure под управлением SQL Server 2014 Standard или Enterprise.
Срок хранения 1–90 дней (90 дней) Число дней хранения резервной копии.
Учетная запись хранения Учетная запись хранения Azure. Учетная запись хранения Azure для хранения файлов автоматической архивации в хранилище больших двоичных объектов. Там же создается контейнер для хранения всех файлов резервных копий. Имя файла резервной копии содержит дату, время и имя компьютера.
Шифрование Включено/отключено (отключено) Включает или отключает шифрование. Если шифрование включено, то сертификаты, используемые для восстановления резервной копии, сохраняются в указанной учетной записи хранения в том же контейнере automaticbackup с использованием того же соглашения об именовании файлов. При изменении пароля создается новый сертификат; при этом старый сертификат сохраняется для восстановления предыдущих резервных копий.
Пароль Текст пароля Пароль для ключей шифрования. Требуется, только если шифрование включено. Для восстановления зашифрованной резервной копии требуется правильный пароль и соответствующий сертификат, который использовался при создании резервной копии.

Настройка новых виртуальных машин

При создании новой виртуальной машины SQL Server 2014 с моделью развертывания с помощью Resource Manager настройте автоматическое резервное копирование, используя портал Azure.

Прокрутите вкладку Настройки SQL Server вниз до раздела Автоматическая архивация и нажмите Включить. На представленном ниже снимке экрана портала Azure показаны параметры автоматического резервного копирования SQL.

Настройка автоматического резервного копирования SQL на портале Azure

Настройка имеющихся виртуальных машин

Для существующих виртуальных машин SQL Server можно включить и отключить автоматическое резервное копирование, изменить период хранения, указать учетную запись хранения и включить шифрование на портале Azure.

Перейдите к ресурсу Виртуальные машины SQL, к которому относится виртуальная машина SQL Server 2014, и выберите Резервные копии.

Автоматизированная архивация SQL для существующих виртуальных машин

По завершении в нижней части страницы Резервные копии нажмите кнопку Применить, чтобы сохранить изменения.

Если автоматизированная архивация включается впервые, Azure настроит агент IaaS SQL Server в фоновом режиме. При этом портал Azure может не сообщать о том, что выполняется настройка автоматической архивации. Установка и настройка агента занимают несколько минут. После этого новые параметры отобразятся на портале Azure.

Примечание

Можно также настроить автоматизированную архивацию с помощью шаблона. Чтобы получить дополнительные сведения, ознакомьтесь с шаблоном быстрого запуска Azure для автоматизированной архивации.

Настройка с помощью PowerShell

Для настройки автоматической архивации можно также использовать PowerShell. Предварительно необходимо выполнить следующее.

Примечание

В этой статье предусмотрено использование модуля Azure Az PowerShell, который является рекомендуемым модулем PowerShell для взаимодействия с Azure. Чтобы начать работу с модулем Az PowerShell, ознакомьтесь со статьей Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Проверка текущих параметров

Если вы включили автоматическую архивацию во время подготовки, то можете использовать PowerShell для проверки текущей конфигурации. Выполните команду Get-AzVMSqlServerExtension и изучите свойство AutoBackupSettings.

(Get-AzVMSqlServerExtension -VMName $vmname -ResourceGroupName $resourcegroupname).AutoBackupSettings

Должен отобразиться результат, аналогичный приведенному ниже.

Enable                      : False
EnableEncryption            : False
RetentionPeriod             : -1
StorageUrl                  : NOTSET
StorageAccessKey            : 
Password                    : 
BackupSystemDbs             : False
BackupScheduleType          : 
FullBackupFrequency         : 
FullBackupStartTime         : 
FullBackupWindowHours       : 
LogBackupFrequency          : 

Если выходные данные показывают, что значение Enable равно False, то необходимо включить автоматическую архивацию. Хорошая новость состоит в том, что включить и настроить автоматическую архивацию можно точно так же. Этот процесс описан в следующем разделе.

Примечание

Если вы проверяете параметры сразу же после внесения изменений, возможно, вы увидите старые значения конфигурации. Подождите несколько минут и проверьте параметры, чтобы убедиться, что изменения были применены.

Настройка автоматической архивации

Чтобы включить автоматическую архивацию, а также в любое время изменить ее конфигурацию и поведение, можно использовать PowerShell.

Сначала выберите или создайте учетную запись хранения для файлов резервных копий. Приведенный ниже сценарий выбирает учетную запись хранения или создает ее, если она не существует.

$storage_accountname = "yourstorageaccount"
$storage_resourcegroupname = $resourcegroupname

$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
    { $storage = New-AzStorageAccount -ResourceGroupName $storage_resourcegroupname `
    -Name $storage_accountname -SkuName Standard_GRS -Location $region }

Примечание

Служба автоматической архивации не поддерживает хранение резервных копий в хранилище уровня "Премиум", но может создавать резервные копии дисков виртуальных машин, которые используют хранилище уровня "Премиум".

Затем с помощью New-AzVMSqlServerAutoBackupConfig включите и настройте параметры автоматической архивации для хранения архивных копий в учетной записи хранения Azure. В этом примере резервные копии хранятся в течение 10 дней. Вторая команда, Set-AzVMSqlServerExtension, обновляет указанную виртуальную машину Azure в соответствии с заданными параметрами.

$autobackupconfig = New-AzVMSqlServerAutoBackupConfig -Enable `
    -RetentionPeriodInDays 10 -StorageContext $storage.Context `
    -ResourceGroupName $storage_resourcegroupname

Set-AzVMSqlServerExtension -AutoBackupSettings $autobackupconfig `
    -VMName $vmname -ResourceGroupName $resourcegroupname

Установка и настройка агента SQL Server IaaS занимают несколько минут.

Примечание

Существуют и другие параметры для New-AzVMSqlServerAutoBackupConfig, которые применяются только для SQL Server 2016 и автоматической архивации версии 2. SQL Server 2014 не поддерживает следующие параметры: BackupSystemDbs, BackupScheduleType, FullBackupFrequency, FullBackupStartHour, FullBackupWindowInHours и LogBackupFrequencyInMinutes. При попытке настроить эти параметры на виртуальной машине SQL Server 2014 ошибки не возникают, но параметры не применяется. Если вы хотите использовать эти параметры на виртуальной машине SQL Server 2016, см. статью Автоматическое резервное копирование (версия 2) для виртуальных машин SQL Server 2016 в Azure.

Чтобы включить шифрование, измените предыдущий сценарий таким образом, чтобы он передавал параметр EnableEncryption вместе с паролем (защищенной строкой) для параметра CertificatePassword. Следующий скрипт активирует параметры автоматической архивации их предыдущего примера и добавляет шифрование.

$password = "P@ssw0rd"
$encryptionpassword = $password | ConvertTo-SecureString -AsPlainText -Force

$autobackupconfig = New-AzVMSqlServerAutoBackupConfig -Enable `
    -EnableEncryption -CertificatePassword $encryptionpassword `
    -RetentionPeriodInDays 10 -StorageContext $storage.Context `
    -ResourceGroupName $storage_resourcegroupname

Set-AzVMSqlServerExtension -AutoBackupSettings $autobackupconfig `
    -VMName $vmname -ResourceGroupName $resourcegroupname

Чтобы убедиться, что параметры были применены, проверьте конфигурацию автоматической архивации.

Отключение автоматической архивации

Чтобы отключить автоматическую архивацию, выполните тот же сценарий без параметра -Enable в команде New-AzVMSqlServerAutoBackupConfig. Отсутствие параметра -Enable означает, что функцию нужно отключить. Как и установка, отключение автоматической архивации занимает несколько минут.

$autobackupconfig = New-AzVMSqlServerAutoBackupConfig -ResourceGroupName $storage_resourcegroupname

Set-AzVMSqlServerExtension -AutoBackupSettings $autobackupconfig `
    -VMName $vmname -ResourceGroupName $resourcegroupname

Пример сценария

Ниже приведен сценарий, предоставляющий набор переменных, которые можно задать для включения и настройки автоматической архивации для виртуальной машины. Может потребоваться настроить этот сценарий в зависимости от ваших требований. Например, его нужно будет изменить, если вы захотите включить шифрование или отключить архивацию системных баз данных.

$vmname = "yourvmname"
$resourcegroupname = "vmresourcegroupname"
$region = "Azure region name such as EASTUS2"
$storage_accountname = "storageaccountname"
$storage_resourcegroupname = $resourcegroupname
$retentionperiod = 10

# ResourceGroupName is the resource group which is hosting the VM where you are deploying the SQL Server IaaS Extension

Set-AzVMSqlServerExtension -VMName $vmname `
    -ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
    -Version "2.0" -Location $region

# Creates/use a storage account to store the backups

$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
    { $storage = New-AzStorageAccount -ResourceGroupName $storage_resourcegroupname `
    -Name $storage_accountname -SkuName Standard_GRS -Location $region }

# Configure Automated Backup settings

$autobackupconfig = New-AzVMSqlServerAutoBackupConfig -Enable `
    -RetentionPeriodInDays $retentionperiod -StorageContext $storage.Context `
    -ResourceGroupName $storage_resourcegroupname

# Apply the Automated Backup settings to the VM

Set-AzVMSqlServerExtension -AutoBackupSettings $autobackupconfig `
    -VMName $vmname -ResourceGroupName $resourcegroupname

Наблюдение

Для отслеживания автоматического резервного копирования в SQL Server 2014 имеются две основные возможности. Так как автоматическое резервное копирование использует функцию управляемого резервного копирования SQL Server, к обоим этим методам применяются одинаковые способы мониторинга.

Во-первых, можно опрашивать состояние, вызывая msdb.smart_admin.sp_get_backup_diagnostics. Можно также запрашивать функцию с табличным значением msdb.smart_admin.fn_get_health_status.

Примечание

Схема для управляемого резервного копирования в SQL Server 2014 — msdb.smart_admin. В SQL Server 2016 она изменена на msdb.managed_backup, и в справочных разделах используется именно новая схема. Но для SQL Server 2014 необходимо использовать схему smart_admin для всех объектов управляемого резервного копирования.

Другой вариант — воспользоваться преимуществами встроенного компонента Database Mail для отправки уведомлений.

  1. Вызовите хранимую процедуру msdb.smart_admin.sp_set_parameter, чтобы назначить адрес электронной почты параметру SSMBackup2WANotificationEmailIds.
  2. Включите SendGrid для отправки электронных сообщений из виртуальной машины Azure.
  3. SMTP-сервер и имя пользователя позволяют настроить компонент Database Mail. Настроить компонент Database Mail можно в SQL Server Management Studio или с помощью команд Transact-SQL. Дополнительные сведения см. в разделе о компоненте Database Mail.
  4. Настройте почту агента SQL Server для использования компонента Database Mail.
  5. Убедитесь, что SMTP-порт открыт в локальном брандмауэре виртуальных машин и группе безопасности сети виртуальной машины.

Дальнейшие действия

Автоматическая архивация настраивает управляемое резервное копирование на виртуальных машинах Azure. Поэтому очень важно изучить документацию по управляемому резервному копированию в SQL Server 2014.

Дополнительные указания по резервному копированию и восстановлению для SQL Server на виртуальных машинах Azure можно найти в статье Резервное копирование и восстановление SQL Server на виртуальных машинах Azure.

Сведения о других доступных задачах автоматизации см. в разделе Расширение агента IaaS для SQL Server.

Дополнительные сведения о запуске SQL Server на виртуальных машинах Azure см. в обзоре использования SQL Server на виртуальных машинах Azure.