Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 R2 с пакетом обновления 1 (SP1) или Microsoft SQL Server 2008 или Microsoft SQL Server 2012 в одном загружаемом файле. Так как исправления являются накопительными, каждый новый выпуск содержит все исправления и все обновления для системы безопасности, включенные в предыдущий SQL Server 2008 R2 с пакетом обновления 1 (SP1) или SQL Server 2008 или Microsoft SQL Server 2012.
Проблемы
Восстановление базы данных в Microsoft SQL Server 2008 R2, Microsoft SQL Server 2008 или Microsoft SQL Server 2012 может занять много времени.
Причина
Эта проблема возникает из-за того, что создание списка виртуальных файлов журнала (VLF) занимает много времени, если в базе данных имеется много VLF.
Решение
Сведения о накопительном пакете обновления
SQL Server 2012
Исправление этой проблемы было впервые выпущено в накопительном пакете обновления 1 для SQL Server 2012 г. Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:
2679368 Накопительный пакет обновления 1 для SQL Server 2012Примечать, поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2012 года. Корпорация Майкрософт рекомендует применить последний выпуск исправления, содержащий это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2692828 Сборки SQL Server 2012, выпущенные после выпуска SQL Server 2012. Необходимо применить исправление SQL Server 2012 к установке SQL Server 2012.
SQL Server 2008 с пакетом обновления 2 (SP2)
Исправление этой проблемы было впервые выпущено в накопительном пакете обновления 8 для SQL Server 2008 с пакетом обновления 2 (SP2). Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:
2648096 Накопительный пакет обновления 8 для SQL Server 2008 с пакетом обновления 2 (SP2)Примечаемые сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления безопасности, включенные в предыдущий выпуск исправлений SQL Server 2008 года. Корпорация Майкрософт рекомендует применить последний выпуск исправления, содержащий это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2402659 Сборки SQL Server 2008 года, выпущенные после выпуска SQL Server 2008 с пакетом обновления 2 (SP2) microsoft SQL Server 2008, создаются для конкретных пакетов обновления SQL Server. Необходимо применить исправление SQL Server 2008 с пакетом обновления 2 (SP2) к установке SQL Server 2008 с пакетом обновления 2 (SP2). По умолчанию любое исправление, предоставляемое в пакете обновления SQL Server, входит в следующий пакет обновления SQL Server.
SQL Server 2008 с пакетом обновления 3 (SP3)
Исправление этой проблемы было впервые выпущено в накопительном пакете обновления 3 для SQL Server 2008 с пакетом обновления 3 (SP3). Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:
2648098 Накопительный пакет обновления 3 для SQL Server 2008 с пакетом обновления 3Примечаемые сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 года. Корпорация Майкрософт рекомендует применить последний выпуск исправления, содержащий это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2629969 Сборки SQL Server 2008 года, выпущенные после выпуска SQL Server 2008 с пакетом обновления 3 (SP3) microsoft SQL Server 2008, создаются для конкретных пакетов обновления SQL Server. Необходимо применить исправление SQL Server 2008 с пакетом обновления 3 (SP3) к установке SQL Server 2008 с пакетом обновления 3 (SP3). По умолчанию любое исправление, предоставляемое в пакете обновления SQL Server, входит в следующий пакет обновления SQL Server.
Накопительный пакет обновления 11 для SQL Server 2008 R2
Исправление этой проблемы было впервые выпущено в накопительном пакете обновления 11. Дополнительные сведения о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:
2633145 Накопительный пакет обновления 11 для SQL Server 2008 R2Примечать. Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений SQL Server 2008 R2. Рекомендуется применить последний выпуск исправления, содержащий это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2
Накопительный пакет обновления 4 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)
Исправление этой проблемы было впервые выпущено в накопительном пакете обновления 4. Дополнительные сведения о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 с пакетом обновления 1 (SP1), щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:
2633146 Накопительный пакет обновления 4 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)Примечать. Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и все исправления безопасности, включенные в предыдущий выпуск исправления SQL Server 2008 R2 с пакетом обновления 1 (SP1). Рекомендуется применить последний выпуск исправления, содержащий это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2567616 Сборки SQL Server R2 2008, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 1 (SP1)
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Дополнительная информация
Количество сегментов VLF можно проверка, просмотрив файл журнала ошибок SQL, а затем найдя номер последовательности журнала (LSN) в каждом файле резервной копии журнала транзакций. Первые цифры перед символом двоеточия в номерах LSN соответствуют номеру LSN.Например, первое число в первом информационном сообщении для LSN — 1. Однако первое число во втором информационном сообщении для LSN 100001. В этом сценарии между первым информационным сообщением и вторым информационным сообщением используется 100 000 VLF. Таким образом, журнал фрагментированных транзакций с большим количеством виртуальных Files журналов выглядит следующим образом:
{Создано резервное копирование журнала. База данных: mydbname, дата создания(время): 2010/07/08(12:36:46), первый номер LSN: 1:5068:70, последний LSN: 1:5108:1, количество устройств дампа: 1, сведения об устройстве: (FILE=1, TYPE=DISK: {'C:\folder\logbackup1.trn'}). Это только информационное сообщение. Никаких действий от пользователя не требуется.Создана резервная копия журнала. База данных: mydbname, дата создания(время): 2010/07/08(15:36:46), первый номер LSN: 100001:5108:1, последний LSN: 100002:5108:1, количество устройств дампа: 1, сведения об устройстве: (FILE=2, TYPE=DISK: {'C:\folder\logbackup2.trn'}). Это только информационное сообщение. Никаких действий от пользователя не требуется.}
Ссылки
Дополнительные сведения о номерах последовательности журналов (LSN) см. на следующем веб-сайте MSDN:
Общие сведения о порядковых номерах журналов
Дополнительные сведения о том, как структура файлов журнала может повлиять на время восстановления базы данных, посетите следующий веб-сайт MSDN:
Как структура файла журнала может повлиять на время восстановления базы данныхДополнительные сведения о VLF-файлах журнала транзакций см. на следующем веб-сайте MSDN:
Обходное решение
-
Дождитесь завершенияоперации восстановления или восстановления. Если при восстановлении или восстановлении базы данных у вас есть невосстановленная база данных с низкой производительностью, возможно, придется дождаться завершения операции восстановления или восстановления. Например, вы можете увидеть состояние автономного или восстановления в SQL Server Management Studio (SSMS) для невосстановленной базы данных. Остановка SQL Server обычно не дает облегчения для медленного восстановления и может занять больше времени, чтобы повторить один и тот же этап анализа восстановления, этап повтора или отмены.
-
Избегайте восстановления последовательности журнала транзакций, которая содержит тысячи файлов VLFs. Если при восстановлении и восстановлении базы данных с помощью файла резервной копии производительность снижается, можно избежать восстановления последовательностей журналов транзакций, содержащих тысячи VLFs. Чтобы определить файл резервной копии с наибольшим числом записанных виртуальных файлов журнала, используйте следующую инструкцию, чтобы просмотреть столбцы FirstLSN и LastLSN в файлах резервной копии журнала: RESTORE HEADERONLY FROM DISK='C:\folder\file.trn'Вы можете избежать восстановления файлов резервной копии журнала. Кроме того, можно использовать инструкцию STOP AT в командах RESTORE, чтобы избежать фрагментированных частей журналов транзакций. Если вы не полностью восстановите последовательности журналов до последней точки во времени во время сценария восстановления сбоя, потеря данных происходит в базе данных SQL Server. Эта потеря данных происходит из-за того, что не все транзакции хранятся. Таким образом, существует решение о компромиссе. Вы можете полностью восстановить журнал транзакций с высокой степенью фрагментирований. Однако эта операция может занять много часов. Кроме того, можно использовать инструкцию STOP AT в восстановлении, чтобы остановить восстановление до фрагментированной части журнала. Однако все отсутствующие транзакции, которые вы опустили, будут потеряны.Примечание Без установки этого исправления обычно не существует безопасного обращения к ускоренному восстановлению после перезапуска SQL Server. SQL Server необходимо найти список VLF для анализа файлов журнала, повторного выполнения завершенных транзакций, а затем отмены незавершенных транзакций, чтобы завершить восстановление, чтобы безопасно перевести базу данных в режим "к сети". Невозможно безопасно пропустить транзакции во время восстановления.