Автоматическое резервное копирование для виртуальных машин 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.

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

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

Параметры

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

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

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

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

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

SQL Automated Backup configuration in the Azure portal

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

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

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

SQL Automated Backup for existing VMs

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

Если автоматизированная архивация включается впервые, 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.

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"

(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.

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

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"

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

Примечание.

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

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

$storage_container = "backupcontainer"

New-AzStorageContainer -Name $storage_container -Context $storage.Context

if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
	New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
 else `
{ `
	Write-Warning "Container $storage_container already exists." `
}

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

$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname  -Name $storage_accountname)[0].value

Затем используйте команду Update-AzSqlVM , чтобы включить и настроить параметры автоматического резервного копирования для хранения резервных копий в учетной записи хранения Azure. В этом примере резервные копии хранятся в течение 10 дней.

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingStorageContainerName $storage_container 

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

Примечание.

Существуют другие параметры update-AzSqlVM*, которые применяются только к SQL Server 2016 и автоматическому резервному копированию. SQL Server 2014 не поддерживает следующие параметры: -AutoBackupSettingBackupSystemDb, -AutoBackupSettingBackupScheduleType, -AutoBackupSettingFullBackupFrequency, -AutoBackupSettingFullBackupStartTime, -AutoBackupSettingFullBackupWindowHour и -AutoBackupSettingLogBackupFrequency. При попытке настроить эти параметры на виртуальной машине SQL Server 2014 ошибки не возникают, но параметры не применяется. Если вы хотите использовать эти параметры на виртуальной машине SQL Server 2016, см. статью "Автоматическое резервное копирование для виртуальных машин Sql Server 2016 Azure".

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

$password = "r@ndom Va1ue"
$encryptionpassword = $password | ConvertTo-SecureString -AsPlainText -Force  

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingEnableEncryption `
-AutoBackupSettingPassword $encryptionpassword `
-AutoBackupSettingStorageContainerName $storage_container 

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

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

Чтобы отключить автоматическое резервное копирование, выполните тот же скрипт с параметром -AutoBackupSettingEnable , равным $false в команде Update-AzSqlVM . Задав значение $false отключена функция. Как и установка, отключение автоматической архивации занимает несколько минут.

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable:$false

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

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

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$region = "Azure region name such as EASTUS2"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"
$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 $resourcegroupname `
    -Name $storage_accountname -SkuName Standard_GRS -Location $region }

# Creates/uses a custom storage account container

$storage_container = "yourbackupcontainer"

if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
	New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
 else `
{ `
	Write-Warning "Container $storage_container already exists." `
}

# Get storage account access key
$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname  -Name $storage_accountname)[0].value

# Configure Automated Backup settings

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod $retentionperiod `
-AutoBackupSettingStorageContainerName $storage_container 

Наблюдение

Для отслеживания автоматического резервного копирования в 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 можно найти в этой статье.

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

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