Сведения о резервном копировании SQL Server на виртуальных машинах Azure
Azure Backup — это специализированное решение на основе потоковой передачи данных для резервного копирования SQL Server, запущенного на виртуальных машинах Azure. Это решение соответствует преимуществам долгосрочного хранения, централизованного управления и резервного копирования без инфраструктуры, предоставляемым Azure Backup. Кроме того, оно предоставляет следующие преимущества специально для SQL Server:
- Резервные копии с учетом рабочей нагрузки, поддерживающие все типы резервного копирования — полное, разностное и резервное копирование журналов.
- 15-минутная целевая точка восстановления (RPO) с частым созданием резервных копий журналов.
- Восстановление до точки во времени с точностью до секунды.
- резервное копирование и восстановление на уровне отдельных баз данных.
Сценарии резервного копирования и восстановления, которые поддерживаются в настоящее время, приведены в таблице поддержки.
Процесс резервного копирования
Это решение использует собственные 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 приведенных выше). Если имя для входа уже существует, убедитесь, что ему присвоена роль администратора сервера и в разделе состояния этому имени предоставлено разрешение на подключение к ядру СУБД и вход в качестве включено.
После предоставления разрешения повторное обнаружение DOB-объектов на портале: Vault —> управление> инфраструктурой резервного копирования —> рабочая нагрузка на виртуальной машине 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
это путь в формате JSONE:\\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 см. в этой статье.