Устранение неполадок резервного копирования базы данных SQL Server с помощью Azure Backup
В этой статье содержатся сведения об устранении неполадок в работе SQL Server на виртуальных машинах Azure.
Дополнительные сведения о процессе и ограничениях резервного копирования см. в разделе о резервном копировании SQL Server на виртуальных машинах Azure.
Разрешения SQL Server
Чтобы настроить защиту базы данных SQL Server на виртуальной машине, на этой виртуальной машине должно быть установлено расширение AzureBackupWindowsWorkload. Если вы получили сообщение об ошибке UserErrorSQLNoSysadminMembership, это означает, что ваш экземпляр SQL Server не имеет необходимых разрешений на резервное копирование. Чтобы устранить ошибку, выполните действия, описанные в разделе Настройка разрешений виртуальной машины.
Устранение неполадок обнаружения и настройки
После завершения создания и настройки хранилища служб восстановления обнаружение баз данных и настройка резервного копирования — это двухэтапный процесс.
Если при настройке резервного копирования виртуальная машина SQL и ее экземпляры не отображаются в разделах Обнаружить базы данных в виртуальных машинах и Настройка резервного копирования (см. выше), убедитесь в следующем.
Шаг 1. Обнаружение баз данных в виртуальных машинах
- Если виртуальная машина не указана в списке обнаруженных виртуальных машин и не зарегистрирована для резервного копирования SQL в другом хранилище, выполните действия из раздела Обнаружение резервной копии SQL Server.
Шаг 2. Настройка резервного копирования
- Если виртуальная машина SQL зарегистрирована в том же хранилище, которое используется для защиты баз данных, выполните действия из раздела Настройка резервного копирования.
Если виртуальная машина SQL должна быть зарегистрирована в новом хранилище, ее регистрацию в старом хранилище следует отменить. Для отмены регистрации виртуальной машины SQL в хранилище необходимо остановить защиту для всех защищенных источников данных, после чего можно будет удалить резервные копии данных. Удаление данных резервных копий — это необратимая операция. После того как вы проверите отмену регистрации виртуальной машины SQL и предпримете все меры предосторожности, зарегистрируйте эту же виртуальную машину в новом хранилище и повторите операцию резервного копирования.
Устранение проблем с резервным копированием и восстановлением
Иногда в операциях резервного копирования и восстановления могут возникать случайные сбои или же эти операции могут зависнуть. Это может быть вызвано использованием антивирусной программы на виртуальной машине. В этом случае рекомендуется выполнить следующие действия:
Исключите из проверки в антивирусном программном обеспечении следующие папки:
C:\Program Files\Azure Workload Backup
C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.RecoveryServices.WorkloadBackup.AzureBackupWindowsWorkload
Замените
C:\
на букву для SystemDrive.Исключите следующие три процесса, выполняемые на виртуальной машине, из проверки антивирусом:
- IaasWLPluginSvc.exe
- IaaSWorkloadCoordinatorService.exe
- TriggerExtensionJob.exe
Для SQL существует также ряд рекомендаций по работе с антивирусными программами. Подробные сведения см. в этой статье.
Неисправный экземпляр в виртуальной машине с несколькими экземплярами SQL Server
Восстановление в виртуальной машине SQL можно выполнить, только если все экземпляры SQL, работающие на виртуальной машине, сообщают о работоспособном состоянии. Если один или несколько экземпляров неисправны, виртуальная машина не будет отображаться как целевой объект восстановления. Это может быть причиной, по которой виртуальная машина с несколькими экземплярами может не отображаться в раскрывающемся списке "сервер" во время операции восстановления.
Вы можете проверить "готовность к резервному копированию" всех экземпляров SQL на виртуальной машине в разделе Настройка резервного копирования.
Если вы хотите активировать восстановление в работоспособных экземплярах SQL, выполните следующие действия.
Войдите на виртуальную машину SQL и перейдите по адресу
C:\Program Files\Azure Workload Backup\bin
.Создайте JSON-файл с именем
ExtensionSettingsOverrides.json
(если его еще не существует). Если этот файл уже существует на виртуальной машине, продолжайте использовать его.Добавьте следующее содержимое в JSON-файл и сохраните файл:
{ "<ExistingKey1>":"<ExistingValue1>", …………………………………………………… , "whitelistedInstancesForInquiry": "FaultyInstance_1,FaultyInstance_2" } Sample content: { "whitelistedInstancesForInquiry": "CRPPA,CRPPB " }
Активируйте операцию повторного обнаружения баз данных на соответствующем сервере с портала Azure (с того же места, в котором можно просмотреть готовность к резервному копированию). Виртуальная машина начнет отображаться как целевой объект для операций восстановления.
Удалите запись whitelistedInstancesForInquiry из файла ExtensionSettingsOverrides.json после завершения операции восстановления.
Сообщения об ошибках
Неподдерживаемый тип резервного копирования
Статус | Description | Возможные причины | Рекомендуемое действие |
---|---|---|---|
Предупреждение | В текущих параметрах базы данных отсутствует поддержка некоторых типов резервной копии, которые представлены в связанной политике. | Измените параметры базы данных, чтобы обеспечить поддержку всех типов резервного копирования в политике. Кроме того, можно изменить текущую политику, что позволит включить только требуемые типы резервного копирования. В противном случае неподдерживаемые типы резервного копирования будут пропущены во время резервного копирования или задание резервного копирования завершится сбоем при резервном копировании по запросу. |
UserErrorSQLPODoesNotSupportBackupType
Сообщение об ошибке | Возможные причины | Рекомендуемое действие |
---|---|---|
Эта база данных SQL не поддерживает запрошенный тип резервного копирования. | Возникает, когда модель восстановления базы данных не разрешает запрашиваемый тип резервного копирования. Ошибка может произойти в следующих ситуациях:
|
Если резервное копирование журнала базы данных завершилось сбоем в простой модели восстановления, попробуйте один из следующих вариантов:
|
OperationCancelledBecauseConflictingOperationRunningUserError
Сообщение об ошибке | Возможные причины | Рекомендуемое действие |
---|---|---|
Operation canceled as a conflicting operation was already running on the same database. (Операция отменена, так как конфликтная операция уже выполняется в одной базе данных.) | Эта ошибка может произойти, если активированное по запросу или запланированное задание резервного копирования конфликтует с уже запущенной операцией резервного копирования, активированной расширением Azure Backup в той же базе данных. Ниже приведены сценарии, в которых может отображаться этот код ошибки.
|
После сбоя конфликтной операции запустите ее снова. |
UserErrorFileManipulationIsNotAllowedDuringBackup
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
Операции управления файлами резервного копирования (например, ALTER DATABASE ADD FILE) и изменения шифрования в базе данных должны быть сериализованы. | Ниже приведены случаи, в которых может появляться этот код ошибки.
|
Отключите другой продукт резервного копирования, чтобы устранить проблему. |
UserErrorSQLPODoesNotExist
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
База данных SQL не существует. | База данных была либо удалена, либо переименована. | Проверьте, не была ли база данных случайно удалена или переименована. Если база данных была случайно удалена, чтобы продолжить резервное копирование, восстановите базу данных в ее исходном расположении. Если вы удалили базу данных и в будущем резервное копирование не требуется, выберите в хранилище Служб восстановления параметр Остановить резервное копирование и сохраните или удалите данные резервной копии. Дополнительные сведения см. в статье Мониторинг резервных копий баз данных SQL Server и управление ими. |
UserErrorSQLLSNValidationFailure
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
Log chain is broken. (Цепочка журналов прерывается.) | Резервное копирование базы данных или виртуальной машины выполняется с использованием другого решения для резервного копирования, которое усекает цепочку журналов. |
|
UserErrorOpeningSQLConnection
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
Azure Backup не может подключиться к экземпляру SQL. | Службе Azure Backup не удается подключиться к экземпляру SQL Server. | Воспользуйтесь дополнительными сведениями в меню ошибок на портале Azure, чтобы сузить круг возможных первопричин. Дополнительные сведения см. в статье Устранение неполадок при соединении с компонентом SQL Server Database Engine.
|
UserErrorParentFullBackupMissing
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
First full backup is missing for this data source. (Полная резервная копия отсутствует для этого источника данных.) | Полная резервная копия для базы данных отсутствует. Разностные резервные копии и резервные копии журналов являются родительскими для полной резервной копии, поэтому перед их активацией необходимо сделать полную резервную копию. | Активируйте полное резервное копирование по запросу. |
UserErrorBackupFailedAsTransactionLogIsFull
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
Не удается создать резервную копию в качестве журнала транзакций для источника данных. | Пространство журнала транзакций базы данных заполнено. | Чтобы устранить эту проблему, см. документацию по SQL Server. |
UserErrorCannotRestoreExistingDBWithoutForceOverwrite
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
Database with same name already exists at the target location (База данных с тем же именем уже существует в целевом расположении) | В целевом расположении для восстановления уже имеется база данных с тем же именем. |
|
UserErrorRestoreFailedDatabaseCannotBeOfflined
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
Restore failed as the database could not be brought offline. (Не удалось выполнить восстановление, так как база данных не может быть отключена.) | При восстановлении целевая база данных должна быть отключена. Azure Backup не может перевести эти данные в автономный режим. | Воспользуйтесь дополнительными сведениями в меню ошибок на портале Azure, чтобы сузить круг возможных первопричин. Дополнительные сведения см. в документации по SQL Server. |
WlExtGenericIOFaultUserError
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
При выполнении операции произошла ошибка ввода-вывода. Проверьте, нет ли распространенных ошибок ввода-вывода на виртуальной машине. | Разрешения на доступ или ограничение пространства на целевом объекте. | Проверьте, нет ли распространенных ошибок ввода-вывода на виртуальной машине. Убедитесь, что целевой диск или сетевая папка на компьютере: Дополнительные сведения см. в разделе Восстановление в виде файлов. |
UserErrorCannotFindServerCertificateWithThumbprint
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
Cannot find the server certificate with thumbprint on the target. (Не удается найти сертификат сервера с отпечатком на целевом сервере.) | База данных master в экземпляре среды назначения не имеет действительного отпечатка шифрования. | Импортируйте действительный отпечаток сертификата, используемый в исходном экземпляре, в целевой экземпляр. |
UserErrorRestoreNotPossibleBecauseLogBackupContainsBulkLoggedChanges
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
Резервная копия журналов, используемая для восстановления, содержит сведения об изменениях, зафиксированные в режиме неполного протоколирования. Согласно рекомендациям по SQL ее нельзя использовать для остановки в произвольный момент времени. | Если база данных находится в режиме восстановления с неполным протоколированием, данные между транзакцией с неполным протоколированием и следующей транзакцией журнала восстановить нельзя. | Выберите другой момент времени для восстановления. Подробнее. |
FabricSvcBackupPreferenceCheckFailedUserError
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
Backup preference for SQL Always On Availability Group cannot be met as some nodes of the Availability Group are not registered. (Требование резервного копирования для группы доступности SQL Always On не может быть выполнено, поскольку некоторые узлы группы доступности не зарегистрированы.) | Узлы, необходимые для выполнения резервного копирования, не зарегистрированы или недоступны. |
|
VMNotInRunningStateUserError
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
SQL server VM is either shutdown and not accessible to Azure Backup service. (Виртуальная машина SQL server либо отключена, либо недоступна службе Azure Backup.) | Виртуальная машина завершила работу. | Убедитесь, что экземпляр SQL Server запущен. |
GuestAgentStatusUnavailableUserError
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
Служба Azure Backup использует гостевой агент виртуальной машины Azure VM для выполнения резервного копирования, но агент недоступен на целевом сервере. | Гостевой агент отключен или неисправен. | Установите гостевой агент виртуальной машины вручную. |
AutoProtectionCancelledOrNotValid
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
Намерение автоматической защиты было удалено или больше не действительно. | При включении автоматической защиты для экземпляра SQL Server задания настройки резервного копирования выполняются для всех баз данных в данном экземпляре. Если отключить автоматическую защиту при выполнении заданий, текущие задания будут отменены и отобразится этот код ошибки. | Включите автоматическую защиту еще раз, чтобы защитить остальные базы данных. |
CloudDosAbsoluteLimitReached
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
Операция заблокирована, так как достигнут лимит на число операций, разрешенных в течение 24 часов. | Это сообщение об ошибке отображается, если достигнуто максимально допустимое ограничение для операции в течение 24 часов. Например, если достигнуто предельное число заданий резервного копирования, которые можно активировать в течение суток и вы пытаетесь настроить резервное копирование для нового элемента, отобразится это сообщение об ошибке. |
Как правило, для разрешения этой проблемы достаточно повторить попытку выполнить операцию через 24 часа. Однако если проблему не удается устранить, обратитесь за помощью в службу поддержки Майкрософт. |
CloudDosAbsoluteLimitReachedWithRetry
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
Операция заблокирована, так как достигнут максимально разрешенный лимит подобных операций за 24 часа. | Это сообщение об ошибке отображается, если достигнуто максимально допустимое ограничение для операции в течение 24 часов. Эта ошибка обычно происходит при наличии крупномасштабных операций, таких как изменение политики или автоматическая защита. В отличие от CloudDosAbsoluteLimitReached, для разрешения этого состояния ничего делать не нужно. По сути, служба Azure Backup будет пытаться повторно выполнить внутренние операции для всех рассматриваемых элементов. Например, если имеется большое количество источников данных, защищенных с помощью политики, а вы пытаетесь эту политику изменить, для каждого из защищенных элементов будут активированы задания настройки защиты и иногда количество таких операций в день может достигать максимально допустимого значения. |
Служба Azure Backup автоматически повторит эту операцию через 24 часа. |
WorkloadExtensionNotReachable
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
Сбой операции расширения рабочей нагрузки AzureBackup. | Виртуальная машина завершила работу или ей не удается связаться со службой Azure Backup из-за проблем с подключением к Интернету. |
UserErrorVMInternetConnectivityIssue
Сообщение об ошибке | Возможные причины | Рекомендованные действия |
---|---|---|
Виртуальная машина не может подключиться к службе Azure Backup из-за проблем с подключением к Интернету. | Причина 1. Виртуальная машина нуждается в исходящем подключении к службе архивации Azure, служба хранилища Azure или службам Microsoft Entra. Причина 2. Политика объекта групповой политики (GPO) ограничивает необходимые наборы шифров для обмена данными TLS. |
Рекомендация по причине 1: Рекомендация 2. Удалите виртуальную машину из объекта групповой политики или отключите или удалите политику групповой политики в качестве обходного решения. Кроме того, измените объект групповой политики таким образом, чтобы он позволял использовать необходимые наборы шифров. |
UserErrorOperationNotAllowedDatabaseMirroringEnabled
Сообщение об ошибке | Возможная причина | Рекомендуемое действие |
---|---|---|
AzureWorkloadBackup не поддерживает резервное копирование баз данных, участвующих в сеансе зеркального отображения базы данных. | При включении операции зеркального отображения в базе данных SQL эта ошибка появится. В настоящее время Служба архивации Azure не поддерживает базы данных с включенной функцией. | Вы можете удалить сеанс зеркального отображения базы данных для успешной операции. Кроме того, если база данных уже защищена, выполните операцию остановки резервного копирования в базе данных. |
UserErrorWindowsWLExtFailedToStartPluginService
Сообщение об ошибке | Возможная причина | Рекомендация |
---|---|---|
Сбой операции с UserErrorWindowsWLExtFailedToStartPluginService ошибкой. |
Расширение рабочей нагрузки Azure Backup не может запустить службу подключаемого модуля резервного копирования рабочей нагрузки на виртуальной машине Azure из-за неправильной настройки учетной записи службы. | Шаг 1. Проверьте, имеет ли пользователь NT Service\AzureWLBackupPluginSvc разрешения на чтение: — C:\windows\Microsoft.NET \assembly\GAC_32 — C:\windows\Microsoft.NET \assembly\GAC_64 — C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config. Если отсутствуют разрешения, назначьте разрешения на чтение для этих каталогов. Шаг 2. Убедитесь, что nt Service\AzureWLBackupPluginSvc имеет права обхода обхода, перейдя к проверке прав пользователей локальной>политики>безопасности. Все должны быть выбраны по умолчанию. Если отсутствует служба NT и NT Service\AzureWLBackupPluginSvc , добавьте nt Service\AzureWLBackupPluginSvc , а затем попробуйте перезапустить службу или запустить операцию резервного копирования или восстановления для источника данных. |
Сбои повторной регистрации
Перед запуском операции повторной регистрации проверьте наличие одного или нескольких следующих признаков.
Все операции (такие как резервное копирование, восстановление и настройка резервного копирования) на виртуальной машине завершаются ошибкой с одним из следующих кодов: WorkloadExtensionNotReachable, UserErrorWorkloadExtensionNotInstalled, WorkloadExtensionNotPresent, WorkloadExtensionDidntDequeueMsg.
Если в области Backup Status (Состояние резервного копирования) для элемента резервного копирования отображается Недоступно, исключите все остальные причины, которые могут привести к тому же состоянию:
- отсутствие разрешения на выполнение операций, связанных с резервным копированием на виртуальной машине;
- завершение работы виртуальной машины, препятствующее выполнению операций резервного копирования;
- Проблемы с сетью.
В случае с группой доступности Always On запущенные операции резервного копирования завершаются сбоем после изменения настроек резервного копирования или отработки отказа.
Эти признаки могут возникнуть по одной или нескольким из следующих причин:
- Расширение удалено из портала.
- Расширение удалено с помощью панели управления на виртуальной машине из раздела Удаление или изменение программы.
- Восстановлено предыдущее состояние виртуальной машины с помощью восстановления с диска на месте.
- Виртуальная машина была выключена в течение длительного периода, поэтому срок действия конфигурации расширения на ней истек.
- Виртуальная машина была удалена, а затем была создана другая виртуальная машина с тем же именем и в той же группе ресурсов, что и удаленная виртуальная машина.
- Один из узлов группы доступности не получил полную конфигурацию резервного копирования. Это могло произойти при регистрации группы доступности в хранилище или при добавлении нового узла.
В предыдущих сценариях рекомендуется активировать повторную регистрацию на виртуальной машине. Инструкции по выполнению этой задачи в PowerShell см. здесь.
Ограничение размера для файлов
Общий размер строк файлов зависит не только от количества файлов, но и от их имен и путей. Получите логическое имя файла и физический путь для каждого файла базы данных. Для этого вы можете использовать этот SQL-запрос:
SELECT mf.name AS LogicalName, Physical_Name AS Location FROM sys.master_files mf
INNER JOIN sys.databases db ON db.database_id = mf.database_id
WHERE db.name = N'<Database Name>'"
Теперь расположите их в следующем формате:
[{"path":"<Location>","logicalName":"<LogicalName>","isDir":false},{"path":"<Location>","logicalName":"<LogicalName>","isDir":false}]}
Приведем пример:
[{"path":"F:\\Data\\TestDB12.mdf","logicalName":"TestDB12","isDir":false},{"path":"F:\\Log\\TestDB12_log.ldf","logicalName":"TestDB12_log","isDir":false}]}
Если размер строки содержимого превышает 20 000 байт, файлы базы данных хранятся иначе. Во время восстановления вы не сможете задать путь к целевому файлу для восстановления. Файлы будут восстановлены по умолчанию по пути SQL, заданном SQL Server.
Переопределение стандартного целевого пути к файлу восстановления
Целевой путь к файлу восстановления можно переопределить во время операции восстановления, поместив JSON-файл, содержащий сопоставление файла базы данных, по целевому пути восстановления. Создайте файл database_name.json
и поместите его в расположение C:\Program Files\Azure Workload Backup\bin\plugins\SQL*
.
Содержимое файла должно иметь такой формат:
[
{
"Path": "<Restore_Path>",
"LogicalName": "<LogicalName>",
"IsDir": "false"
},
{
"Path": "<Restore_Path>",
"LogicalName": "LogicalName",
"IsDir": "false"
},
]
Приведем пример:
[
{
"Path": "F:\\Data\\testdb2_1546408741449456.mdf",
"LogicalName": "testdb7",
"IsDir": "false"
},
{
"Path": "F:\\Log\\testdb2_log_1546408741449456.ldf",
"LogicalName": "testdb7_log",
"IsDir": "false"
},
]
Приведенное выше содержимое позволяет получить логическое имя файла базы данных с помощью следующего запроса SQL:
SELECT mf.name AS LogicalName FROM sys.master_files mf
INNER JOIN sys.databases db ON db.database_id = mf.database_id
WHERE db.name = N'<Database Name>'"
Этот файл должен быть добавлен перед запуском операции восстановления.
Следующие шаги
Дополнительные сведения о Azure Backup для виртуальных машин SQL.