Сведения о резервном копировании SQL Server на виртуальных машинах Azure
Azure Backup — это специализированное решение на основе потоковой передачи данных для резервного копирования SQL Server, запущенного на виртуальных машинах Azure. Это решение соответствует преимуществам долгосрочного хранения, централизованного управления и резервного копирования без инфраструктуры, предоставляемым Azure Backup. Кроме того, оно предоставляет следующие преимущества специально для SQL Server:
- Резервные копии с учетом рабочей нагрузки, поддерживающие все типы резервного копирования — полное, разностное и резервное копирование журналов.
- 15-минутная целевая точка восстановления (RPO) с частым созданием резервных копий журналов.
- Восстановление до точки во времени с точностью до секунды.
- резервное копирование и восстановление на уровне отдельных баз данных.
Примечание
Резервное копирование на основе моментального снимка для баз данных SQL в виртуальной машине Azure теперь находится на этапе предварительной версии. В этом уникальном предложении сочетаются все преимущества моментальных снимков, что приводит к более эффективному и незначительному влиянию на сервер, а также предоставляет преимущества частого резервного копирования журналов для низкого RPO. При наличии вопросов или необходимости в доступе напишите нам по адресу AskAzureBackupTeam@microsoft.com.
Сценарии резервного копирования и восстановления, которые поддерживаются в настоящее время, приведены в таблице поддержки.
Процесс резервного копирования
Это решение использует собственные API-интерфейсы SQL для создания резервных копий баз данных SQL.
После того как вы укажете виртуальную машину SQL Server, которую нужно защитить, и выполните запрос баз данных на ней, служба Azure Backup установит на виртуальную машину расширение резервного копирования рабочих нагрузок с именем
AzureBackupWindowsWorkload
.Это расширение состоит из координатора и подключаемого модуля SQL. В то время как координатор отвечает за запуск рабочих процессов для различных операций, таких как настройка резервного копирования, резервное копирование и восстановление, подключаемый модуль отвечает за фактический поток данных.
Чтобы иметь возможность обнаруживать базы данных на этой виртуальной машине, Azure Backup создает учетную запись
NT SERVICE\AzureWLBackupPluginSvc
. Эта учетная запись используется для резервного копирования и восстановления и требует разрешений системного администратора SQL. Учетная записьNT SERVICE\AzureWLBackupPluginSvc
— это учетная запись виртуальной службы, поэтому для нее не требуется управление паролями. Azure Backup будет использовать учетную записьNT AUTHORITY\SYSTEM
для обнаружения и запроса баз данных, поэтому эта учетная запись должна соответствовать общедоступному имени входа в SQL. Если вы не создавали виртуальную машину SQL Server из Azure Marketplace, может появиться ошибка UserErrorSQLNoSysadminMembership. В этом случае выполните эти инструкции.Когда вы запустите настройку защиты для выбранных баз данных, служба резервного копирования установит координатор с расписаниями резервного копирования и другими сведениями о политике, которые расширение кэширует локально на виртуальной машине.
В назначенное время координатор связывается с подключаемым модулем и начинает потоковую передачу данных резервного копирования с сервера SQL с помощью VDI.
Подключаемый модуль отправляет данные непосредственно в хранилище Служб восстановления, что устраняет необходимость в промежуточном хранении. Данные зашифрованы и хранятся службой Azure Backup в учетных записях хранения.
Когда передача данных завершается, координатор подтверждает фиксацию с помощью службы резервного копирования.
Перед началом работы
Прежде чем начать:
- Убедитесь, что у вас есть экземпляр SQL Server, работающий в Azure. Вы можете быстро создать экземпляр SQL Server в marketplace.
- Просмотрите рекомендации о функциях и сведения о поддержке сценариев.
- Ознакомьтесь с часто задаваемыми вопросами об этом сценарии.
Настройка разрешений виртуальной машины
При запуске обнаружения в SQL Server Azure Backup выполнит следующие действия.
- Добавляет расширение AzureBackupWindowsWorkload.
- Чтобы обнаруживать базы данных на виртуальной машине, Azure Backup создает учетную запись NT SERVICE\AzureWLBackupPluginSvc. Эта учетная запись используется для резервного копирования и восстановления и требует разрешений системного администратора SQL.
- Для предоставления баз данных, запущенных на виртуальной машине, Azure Backup использует учетную запись NT AUTHORITY\SYSTEM. Эта учетная запись должна быть общедоступной для входа в SQL.
Если вы не создавали виртуальную машину SQL Server в Azure Marketplace или если вы используете SQL 2008 или SQL 2008 R2, может появиться ошибка UserErrorSQLNoSysadminMembership.
Сведения о предоставлении разрешений для SQL 2008 и SQL 2008 R2, используемых в Windows 2008 R2, см. в этой статье.
Для всех остальных версий следует исправить разрешения с помощью следующих шагов.
Войдите в SQL Server Management Studio (SSMS) с помощью учетной записи, имеющей разрешение sysadmin SQL Server. Если вам не требуются специальные разрешения, можно использовать проверку подлинности Windows.
На сервере SQL Server последовательно откройте папки Security (Безопасность) и Logins (Имена входа).
Щелкните правой кнопкой мыши папку Имена для входа и выберите Создать имя для входа. В меню Создание имени входа выберите Поиск.
Учетная запись виртуальной службы Windows NT SERVICE\AzureWLBackupPluginSvc была создана во время регистрации виртуальной машины и обнаружения баз данных SQL. Введите имя учетной записи, как показано в поле Введите имя объекта. Выберите Проверить имена, чтобы разрешить имя. Щелкните ОК.
Убедитесь, что в качестве роли сервера выбрана роль sysadmin. Щелкните ОК. Теперь должны существовать необходимые разрешения.
Теперь свяжите базу данных с хранилищем Служб восстановления. В списке Защищенные серверы на портале Azure щелкните правой кнопкой мыши сервер, на котором произошла ошибка, и выберите >Повторно обнаружить базы данных.
Проверьте ход выполнения в области Уведомления. Когда выбранные базы данных будут найдены, появится сообщение об успешном завершении.
Примечание
Если в среде SQL Server установлено несколько экземпляров SQL Server, то необходимо добавить разрешение sysadmin для учетной записи NT Service\AzureWLBackupPluginSvc для всех этих экземпляров.
Присвоение разрешений администратора SQL в SQL 2008 и SQL 2008 R2
Добавьте в экземпляр SQL Server имена входа NT AUTHORITY\SYSTEM и NT Service\AzureWLBackupPluginSvc.
Перейдите к экземпляру SQL Server в обозревателе объектов.
Перейдите в раздел "Безопасность -> Имена входа"
Щелкните правой кнопкой мыши на именах входа и выберите Создать имя входа...
Перейдите на вкладку "Общие" и в качестве имени входа введите NT AUTHORITY\SYSTEM.
Перейдите к Роли сервера и выберите такие роли, как общедоступная и администратор.
Перейдите в раздел Состояние. Предоставить разрешение на подключение к ядру СУБД и вход как Включено.
Нажмите кнопку "ОК".
Чтобы добавить имя для входа NT Service\AzureWLBackupPluginSvc в экземпляр SQL Server, повторите ту же последовательность шагов (1 - 7 приведенных выше). Если имя для входа уже существует, убедитесь, что ему присвоена роль администратора сервера и в разделе состояния этому имени предоставлено разрешение на подключение к ядру СУБД и вход в качестве включено.
После предоставления разрешений на портале следует повторно обнаружить базы данных: выберите "Хранилище" -> "Инфраструктура резервного копирования" -> имя рабочей нагрузки в виртуальной машине Azure.
Кроме этого, можно автоматизировать раздачу разрешений путем выполнения следующих команд PowerShell в режиме администратора. По умолчанию в качестве имени экземпляра устанавливается значение MSSQLSERVER. При необходимости измените аргумент имени экземпляра в скрипте.
param(
[Parameter(Mandatory=$false)]
[string] $InstanceName = "MSSQLSERVER"
)
if ($InstanceName -eq "MSSQLSERVER")
{
$fullInstance = $env:COMPUTERNAME # In case it is the default SQL Server Instance
}
else
{
$fullInstance = $env:COMPUTERNAME + "\" + $InstanceName # In case of named instance
}
try
{
sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT Service\AzureWLBackupPluginSvc', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
Write-Host "An error occurred:"
Write-Host $_.Exception|format-list -force
}
try
{
sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT AUTHORITY\SYSTEM', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
Write-Host "An error occurred:"
Write-Host $_.Exception|format-list -force
}
Настройка одновременного резервного копирования
Теперь вы можете настроить резервные копии для одновременного сохранения точек восстановления и журналов SQL Server в локальном хранилище и хранилище служб восстановления.
Чтобы настроить одновременное резервное копирование, выполните следующие действия.
Перейдите в
C:\Program Files\Azure Workload Backup\bin\plugins
расположение и создайте файл PluginConfigSettings.json, если он отсутствует.Добавьте разделенные запятыми сущности значения ключа с ключами
EnableLocalDiskBackupForBackupTypes
иLocalDiskBackupFolderPath
в JSON-файл.В разделе
EnableLocalDiskBackupForBackupTypes
укажите типы резервных копий, которые требуется хранить локально.Например, если вы хотите сохранить полные резервные копии и резервные копии журналов, упоминание
["Full", "Log"]
. Чтобы хранить только резервные копии журналов, упоминание["Log"]
.В
LocalDiskBackupFolderPath
упоминание путь к локальной папке. Убедитесь, что при указании пути в JSON-файле используется двойная косая черта .Например, если предпочтительный путь для локального резервного копирования —
E:\LocalBackup
, упоминание путь в JSON какE:\\LocalBackup
.Окончательный код JSON должен выглядеть следующим образом:
{ "EnableLocalDiskBackupForBackupTypes": ["Log"], "LocalDiskBackupFolderPath": "E:\\LocalBackup", }
Если в JSON-файле есть и другие предварительно заполненные записи, добавьте две указанные выше записи в конец JSON-файла непосредственно перед закрывающей фигурной скобкой.
Чтобы изменения вступили в силу немедленно, а не через час, перейдите враздел СлужбыTaskManager>, щелкните правой кнопкой мыши AzureWLbackupPluginSvc и выберите Остановить.
Внимание!
Это действие отменит все текущие задания резервного копирования.
Соглашение об именовании сохраненного файла резервной копии и структуры папок для него будет иметь значение
{LocalDiskBackupFolderPath}\{SQLInstanceName}\{DatabaseName}
.Например, если у вас есть база данных
Contoso
в экземпляреMSSQLSERVER
SQL , файлы будут находиться вE:\LocalBackup\MSSQLSERVER\Contoso
.Имя файла —
VDI device set guid
, который используется для операции резервного копирования.Убедитесь, что целевое расположение в разделе
LocalDiskBackupFolderPath
имеет разрешения на чтение и запись дляNT Service\AzureWLBackupPluginSvc
.Примечание
Для папки на локальных дисках виртуальных машин щелкните правой кнопкой мыши папку и настройте необходимые разрешения для
NT Service\AzureWLBackupPluginSvc
на вкладке Безопасность .Если вы используете сетевую или общую папку SMB, настройте разрешения, выполнив приведенные ниже командлеты PowerShell из консоли пользователя, которая уже имеет разрешение на доступ к общей папке:
$cred = Get-Credential New-SmbGlobalMapping -RemotePath <FileSharePath> -Credential $cred -LocalPath <LocalDrive>: -FullAccess @("<Comma Separated list of accounts>") -Persistent $true
Пример:
$cred = Get-Credential New-SmbGlobalMapping -RemotePath \\i00601p1imsa01.file.core.windows.net\rsvshare -Credential $cred -LocalPath Y: -FullAccess @("NT AUTHORITY\SYSTEM","NT Service\AzureWLBackupPluginSvc") -Persistent $true
Дальнейшие действия
- Дополнительные сведения о резервном копировании баз данных SQL Server см. в этой статье.
- Дополнительные сведения о восстановлении резервных копий баз данных SQL Server см. в этой статье.
- Дополнительные сведения об управлении резервными копиями баз данных SQL Server см. в этой статье.