Устранение неполадок SQL Server операций резервного копирования и восстановления

В этой статье приводятся решения распространенных проблем, которые могут возникнуть во время операций резервного копирования и восстановления microsoft SQL Server, а также приведены ссылки на дополнительные сведения об этих операциях.

Оригинальная версия продукта: SQL Server
Исходный номер базы знаний: 224071

Операции резервного копирования и восстановления занимают много времени

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

  • Журнал ошибок SQL Server содержит сведения о предыдущих операциях резервного копирования и восстановления. Эти сведения можно использовать для оценки времени, необходимого для резервного копирования и восстановления базы данных в ее текущем состоянии. Ниже приведен пример выходных данных из журнала ошибок:

    RESTORE DATABASE successfully processed 315 pages in 0.372 seconds (6.604 MB/sec)
    
  • В SQL Server 2016 и более поздних версиях можно использовать backup_restore_progress_trace XEvent для отслеживания хода операций резервного копирования и восстановления.

  • Столбец sys.dm_exec_requests можно использовать percent_complete для отслеживания хода выполнения операций резервного копирования и восстановления.

  • Сведения о пропускной способности резервного копирования и восстановления можно измерять с помощью Device throughput Bytes/sec счетчиков монитора производительности.Backup/Restore throughput/sec Дополнительные сведения см. в разделе SQL Server, Объект устройства резервного копирования.

  • Используйте скрипт estimate_backup_restore , чтобы получить оценку времени резервного копирования.

  • См. раздел Как это работает: Что такое восстановление и резервное копирование? В этой записи блога содержатся сведения о текущем этапе операций резервного копирования или восстановления.

Что нужно проверка

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

    Ссылка на базу знаний или электронную документацию Объяснение и рекомендуемые действия
    Оптимизация производительности резервного копирования и восстановления в SQL Server В разделе электронной документации рассматриваются различные рекомендации, которые можно использовать для повышения производительности операций резервного копирования и восстановления. Например, можно назначить специальные привилегии SE_MANAGE_VOLUME_NAME учетной записи Windows, которая работает SQL Server, чтобы включить мгновенную инициализацию файлов данных. Это может привести к значительному повышению производительности.
    2920151 рекомендуемые исправления и обновления для отказоустойчивых кластеров Windows Server 2012 R2

    накопительный пакет обновлений 2822241 Windows 8 и Windows Server 2012: апрель 2013 г.
    Текущие накопительные пакеты систем могут включать исправления известных проблем на уровне системы, которые могут снизить производительность таких программ, как SQL Server. Установка этих обновлений может помочь предотвратить такие проблемы.
    2878182 ИСПРАВЛЕНИЕ. Процессы пользовательского режима в приложении не отвечают на серверы, на которых выполняются Windows Server 2012

    Операции резервного копирования интенсивно используют операции ввода-вывода и могут быть затронуты этой ошибкой. Примените это исправление, чтобы предотвратить эти проблемы.
    Настройка антивирусной программы для работы с SQL Server Антивирусная программа может блокировать файлы .bak. Это может повлиять на производительность операций резервного копирования и восстановления. Следуйте указаниям в этой статье, чтобы исключить файлы резервных копий из проверок на вирусы.
    2820470 сообщение об ошибке "Задержка" при попытке доступа к общей папке, которая больше не существует в Windows Описывает проблему, возникающую при попытке доступа к общей папке, которая больше не существует в Windows 2012 и более поздних версиях.
    967351. Сильно фрагментированные файлы в томе NTFS не могут превышать определенный размер. Описывает проблему, которая возникает, когда файловая система NTFS сильно фрагментирована.
    304101 программа резервного копирования не работает при резервном копировании большого тома системы
    исправление 2455009. Снижение производительности при восстановлении базы данных при наличии в журнале транзакций большого количества VLF в SQL Server 2005, в SQL Server 2008 или в SQL Server 2008 R2 Наличие большого количества виртуальных файлов журнала может повлиять на время, необходимое для восстановления базы данных. Это особенно актуально на этапе восстановления операции восстановления. Сведения о других возможных проблемах, которые могут быть вызваны наличием большого количества виртуальных файлов, см. в статье Операции с базой данных занимают много времени или они вызывают ошибки, если в журнале транзакций много виртуальных файлов журнала.
    Операция резервного копирования или восстановления в сетевом расположении выполняется медленно Изолируйте проблему в сети, попытаясь скопировать файл аналогичного размера в сетевое расположение с сервера, на котором выполняется SQL Server. Проверьте производительность.
  2. Проверьте наличие сообщений об ошибках в журнале ошибок SQL Server и журнале событий Windows на наличие дополнительных указателей о причине проблемы.

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

  4. Обратитесь к администратору Windows, чтобы проверка обновления встроенного ПО для оборудования.

Проблемы, влияющие на восстановление базы данных в разных версиях SQL Server

Резервная копия SQL Server не может быть восстановлена до более ранней версии SQL Server, чем версия, в которой была создана резервная копия. Например, нельзя восстановить резервную копию, сделанную на экземпляре SQL Server 2019, в экземпляр SQL Server 2017. В противном случае появится следующее сообщение об ошибке:

Ошибка 3169. Резервная копия базы данных создана на сервере с версией %ls. Эта версия несовместима с этим сервером, на котором работает версия %ls. Восстановите базу данных на сервере, поддерживающем резервное копирование, или используйте резервную копию, совместимую с этим сервером.

Используйте следующий метод, чтобы скопировать базу данных, размещенную в более поздней версии SQL Server, в более раннюю версию SQL Server.

Примечание.

В следующей процедуре предполагается, что у вас есть два экземпляра SQL Server с именами SQL_A (более поздняя версия) и SQL_B (более раннюю версию).

  1. Скачайте и установите последнюю версию SQL Server Management Studio (SSMS) как на SQL_A, так и на SQL_B.
  2. На SQL_A выполните следующие действия.
    1. Щелкните правой кнопкой мыши <Задачи>базы данных>Создание скриптов и выберите параметр для создания скриптов для всей базы данных и всех объектов базы данных.
    2. На экране Настройка параметров сценариев выберите Дополнительно, а затем выберите версию SQL_B в разделе Общий>скрипт для SQL Server версии. Кроме того, выберите вариант, который лучше всего подходит для сохранения созданных скриптов. Затем перейдите к мастеру.
    3. Используйте программу массового копирования (bcp) для копирования данных из разных таблиц.
  3. На SQL_B выполните следующие действия.
    1. Используйте скрипты, созданные на SQL_A сервере, для создания схемы базы данных.
    2. В каждой из таблиц отключите все ограничения и триггеры внешнего ключа. Если в таблице есть какие-либо столбцы идентификаторов, включите вставку удостоверения.
    3. Используйте bcp для импорта данных, экспортированных на предыдущем шаге, в соответствующие таблицы.
    4. После завершения импорта данных включите ограничения и триггеры внешнего ключа и отключите вставку удостоверений для каждой из таблиц, затронутых на шаге c.

Эта процедура обычно хорошо подходит для баз данных малого и среднего размера. Для больших баз данных проблемы нехватки памяти могут возникать в SSMS и других средствах. Для создания копии базы данных из более поздней версии в более раннюю версию SQL Server следует использовать SQL Server службы Integration Services (SSIS), репликацию или другие варианты.

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

Проблемы с заданием резервного копирования в средах Always On

При возникновении проблем, влияющих на задания резервного копирования или планы обслуживания в Always On средах, обратите внимание на следующее:

  • По умолчанию для параметра автоматического резервного копирования задано значение Предпочитать вторичное. Это указывает, что резервные копии должны выполняться на дополнительном реплика, за исключением случаев, когда основной реплика является единственным реплика в сети. С помощью этого параметра нельзя создавать разностные резервные копии базы данных. Чтобы изменить этот параметр, используйте SSMS в текущей основной реплика и перейдите на страницу Параметры резервного копирования в разделе Свойства группы доступности.
  • Если вы используете план обслуживания или запланированные задания для создания резервных копий баз данных, обязательно создайте задания для каждой базы данных доступности на каждом экземпляре сервера, на котором размещается реплика доступности для группы доступности.

Дополнительные сведения о резервном копировании в среде Always On см. в следующих разделах:

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

  • 3241: семейство носителей на устройстве "%ls" сформировано неправильно. SQL Server не может обработать это семейство носителей.

  • 3242: файл на устройстве "%ls" не является допустимым набором резервных копий в формате ленты Майкрософт.

  • 3243: семейство носителей на устройстве "%ls" было создано с использованием microsoft Tape Format версии %d.%d. SQL Server поддерживает версию %d.%d.

Примечание.

Для проверка резервных копий можно использовать инструкцию Restore Header.

Эти проблемы могут возникать из-за проблем, влияющих на базовое оборудование (жесткие диски, сетевое хранилище и т. д.) или связанные с вирусом или вредоносными программами. Просмотрите журналы событий системы Windows и журналы оборудования на наличие обнаруженных ошибок и выполните соответствующие действия (например, обновление встроенного ПО или устранение проблем с сетью).

Чтобы избежать этих ошибок, включите параметр Backup CHECKSUM при запуске резервной копии, чтобы избежать резервного копирования поврежденной базы данных. Дополнительные сведения см. в статье Возможные ошибки мультимедиа во время резервного копирования и восстановления (SQL Server).

Вы также можете включить флаг трассировки 3023, чтобы включить контрольную сумму при выполнении резервных копий с помощью средств резервного копирования. Дополнительные сведения см. в разделе Включение параметра CHECKSUM, если служебные программы резервного копирования не предоставляют этот параметр.

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

Примечание.

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

Сбой резервного копирования из-за проблем с разрешениями

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

  • Сценарий 1. При запуске резервной копии из SQL Server Management Studio резервное копирование завершается сбоем и возвращает следующее сообщение об ошибке:

    Не удалось выполнить резервное копирование для имени> сервера<. (Microsoft.SqlServer.SmoExtended)
    System.Data.SqlClient.SqlError: не удается открыть имя устройства<> резервного копирования. Ошибка операционной системы 5(Доступ запрещен.). (Microsoft.SqlServer.Smo)

  • Сценарий 2. Запланированные резервные копии завершаются сбоем и создают сообщение об ошибке, которое регистрируется в журнале заданий, завершившемся сбоем, и выглядит следующим образом:

    Executed as user: <Owner of the job>. ....2 for 64-bit  Copyright (C) 2019 Microsoft. All rights reserved.    
    Started:  5:49:14 PM  Progress: 2021-08-16 17:49:15.47    
    Source: {GUID}      Executing query "DECLARE @Guid UNIQUEIDENTIFIER      EXECUTE msdb..sp...".: 100% complete  End Progress  
    Error: 2021-08-16 17:49:15.74     
    Code: 0xC002F210     
    Source: Back Up Database (Full) Execute SQL Task     
    Description: Executing the query "EXECUTE master.dbo.xp_create_subdir N'C:\backups\D..." failed with the following error: "xp_create_subdir() returned error 5, 'Access is denied.'". 
    Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
    

Любой из этих сценариев может произойти, если учетная запись службы SQL Server не имеет разрешений на чтение и запись в папку, в которую записываются резервные копии. Инструкции резервного копирования можно выполнять как часть шага задания, так и вручную из SQL Server Management Studio. В любом случае они всегда выполняются в контексте учетной записи запуска службы SQL Server. Таким образом, если учетная запись службы не имеет необходимых привилегий, вы получите сообщения об ошибках, которые были отмечены ранее.

Дополнительные сведения см. в разделе Устройства резервного копирования.

Примечание.

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

Операции резервного копирования или восстановления, использующие сторонние приложения резервного копирования, завершаются сбоем

SQL Server предоставляет средство виртуального интерфейса устройства резервного копирования (VDI). Этот API позволяет независимым поставщикам программного обеспечения интегрировать SQL Server в свои продукты, чтобы обеспечить поддержку операций резервного копирования и восстановления. Эти API предназначены для обеспечения максимальной надежности и производительности, а также для поддержки всего спектра функций резервного копирования и восстановления SQL Server. Сюда входит полный спектр возможностей snapshot и горячего резервного копирования.

Общие действия по устранению неполадок

Дополнительные ресурсы

Как это работает. Сколько баз данных можно одновременно создавать резервные копии?

Прочие проблемы

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

"Ошибка: 3999, серьезность: 17, состояние: 1.

<Отметка> времени spid <spid> не удалось очистить таблицу фиксации на диск в dbid 8 из-за ошибки 2601. Дополнительные сведения см. в журнале ошибок".


См. следующие статьи базы знаний Майкрософт:
Проблемы с восстановлением резервных копий зашифрованных баз данных Перемещение базы данных, защищенной TDE, в другую SQL Server
Попытка восстановить резервную копию CRM из выпуска Enterprise не удается в выпуске Standard 2567984 ошибка "База данных не может быть запущена в этом выпуске SQL Server" при восстановлении базы данных Microsoft Dynamics CRM

Часто задаваемые вопросы об операциях резервного копирования и восстановления SQL Server

Как проверка состояние операции резервного копирования?

Используйте скрипт estimate_backup_restore , чтобы получить оценку времени резервного копирования.

Что делать, если SQL Server отработка отказа в середине резервного копирования?

Перезапуск операции восстановления или резервного копирования для каждого перезапуска прерванной операции восстановления (Transact-SQL).

Можно ли восстановить резервные копии базы данных из более старых версий программ в более новых версиях и наоборот?

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

Разделы справки проверить резервные копии базы данных SQL Server?

См. процедуры, описанные в разделе Инструкции RESTORE — VERIFYONLY (Transact-SQL).

Как получить журнал резервных копий баз данных в SQL Server?

См. статью Как получить журнал резервных копий баз данных в SQL Server.

Можно ли восстановить 32-разрядные резервные копии на 64-разрядных серверах и наоборот?

Да. Формат хранилища SQL Server на диске одинаков в 64-разрядных и 32-разрядных средах. Таким образом, операции резервного копирования и восстановления работают в 64-разрядных и 32-разрядных средах.

Общие советы по устранению неполадок

  • Обязательно подготовьте разрешения на чтение и запись для учетной записи службы SQL Server в папке, в которую записываются резервные копии. Дополнительные сведения см. в разделе Разрешения для резервного копирования.
  • Убедитесь, что папка, в которую записываются резервные копии, имеет достаточно места для размещения резервных копий базы данных. С помощью хранимой sp_spaceused процедуры можно получить приблизительную оценку размера резервной копии для конкретной базы данных.
  • Всегда используйте последнюю версию SSMS, чтобы убедиться, что у вас нет известных проблем, связанных с настройкой заданий и планами обслуживания.
  • Выполните тестовый запуск заданий, чтобы убедиться, что резервные копии успешно созданы. Всегда добавляйте логику для проверки резервных копий.
  • Если вы планируете перемещать системные базы данных с одного сервера на другой, см. раздел Перемещение системных баз данных.
  • Если вы заметили периодические сбои резервного копирования, проверка, возникла ли проблема, которая уже исправлена в последнем обновлении для вашей версии SQL Server. Дополнительные сведения см. в разделе SQL Server версии и обновления.
  • Сведения о планировании и автоматизации резервного копирования для выпусков SQL Express см. в статье Планирование и автоматизация резервного копирования баз данных SQL Server в SQL Server Express.

Справочные разделы по операциям резервного копирования и восстановления SQL Server

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

    "Резервное копирование и восстановление баз данных SQL Server". В этой статье рассматриваются основные понятия операций резервного копирования и восстановления для SQL Server баз данных, приводятся ссылки на дополнительные разделы и подробные процедуры для выполнения различных задач резервного копирования или восстановления (например, проверка резервных копий и резервное копирование с помощью T-SQL или SSMS). Это родительский раздел по этой теме в документации по SQL Server.

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

    Справочные материалы Описание
    BACKUP (Transact-SQL) Ответы на основные вопросы, связанные с резервными копиями. Приведены примеры различных типов операций резервного копирования и восстановления.
    Устройства резервного копирования (SQL Server) Предоставляет отличный справочник по различным устройствам резервного копирования, резервному копированию в сетевую папку, хранилищу BLOB-объектов Azure и связанным задачам.
    Модели восстановления (SQL Server) Подробно рассматриваются различные модели восстановления: простая, полная и массовая запись. Содержит сведения о том, как модель восстановления влияет на резервные копии.
    Восстановление & резервного копирования: системные базы данных (SQL Server) Описание стратегий и описание того, что необходимо учитывать при работе с операциями резервного копирования и восстановления системных баз данных.
    Общие сведения о восстановлении и восстановлении (SQL Server) Описывает, как модели восстановления влияют на операции восстановления. Ознакомьтесь с этим, если у вас есть вопросы о том, как модель восстановления базы данных может повлиять на процесс восстановления.
    Управление метаданными при создании базы данных на другом сервере Различные рекомендации, которые следует учитывать при перемещении базы данных или при возникновении проблем, влияющих на имена входа, шифрование, репликацию, разрешения и т. д.
    Работа с резервными копиями журналов транзакций Представлены основные понятия о резервном копировании и восстановлении (применении) журналов транзакций в моделях восстановления с полным и массовым ведением журнала. Объясняется, как создавать обычные резервные копии журналов транзакций (резервные копии журналов) для восстановления данных.
    SQL Server управляемое резервное копирование в Microsoft Azure Сведения об управляемом резервном копировании и связанных процедурах.