Исправление: Низкая производительность при восстановлении базы данных, если есть много число VLF внутри журнала транзакций в SQL Server 2005, SQL Server 2008 или SQL Server 2008 R2

Переводы статьи Переводы статьи
Код статьи: 2455009 - Vizualiza?i produsele pentru care se aplic? acest articol.
Корпорация Майкрософт распространяет Microsoft SQL Server 2005, 2008 и 2008 R2 устраняет как один загружаемый файл. Так как исправления являются накопительными, каждый выпуск содержит все исправления и все исправления, входившие в состав предыдущих SQL Server 2005, 2008 и 2008 R2 исправления выпуска.
Развернуть все | Свернуть все

В этой статье

Проблема

Рассмотрим следующий сценарий:
  • Установки Microsoft SQL Server 2005, Microsoft SQL Server 2008 или Microsoft SQL Server 2008 R2 на компьютере.
  • Одна или несколько баз данных, в модели восстановления с неполным протоколированием или полной.
  • Исходный размер файла журнала транзакций для базы данных мал. Тем не менее файл транзакций растет большой.
  • В автоматическое увеличение шаг роста файла журнала транзакций настроен на небольшой размер. Например автоматическое увеличение приращение настроен один мегабайт или 1%. Или сделать можно увеличить с помощью небольшого ручного рост файла журнала транзакций.
  • Журнал транзакций растет, небольшое увеличение прироста. Через некоторое время велик файл журнала транзакций.

    Например файл журнала транзакций растет от 100 МБ до 10 ГБ. Файл журнала транзакций увеличивается на шаг один мегабайт каждый роста.
В этом случае могут возникнуть следующие проблемы:
  • Восстановление базы данных выполняется медленно при запуске при большом объеме работ для восстановления базы данных.

    Например транзакция ожидает открытия в течение длительного времени. Или не фиксируются при завершении работы SQL Server или перезапуска большое количество операций, которые имеют небольшой размер. В этом случае может возникнуть ошибка время предполагаемое время восстановления на стадии анализа, стадия отката или стадия повтора. Сообщение об ошибке следующего вида и регистрируется в журнале ошибок SQL Server 2005:
    Анализ базы данных "mydatabase (7) — 0% завершения (приблизительно 1234 секунд остаются). Это информационное сообщение. Никаких действий пользователя не требуется.
  • Восстановление базы данных выполняется медленно, если файл резервной копии всей базы данных и последовательность журнала дополнительные транзакции восстанавливаются, если база данных переводится в оперативный режим.

    Примечание Чтобы перевести базу данных в оперативном режиме во время операции восстановления, используйте ВОССТАНОВЛЕНИЕ синтаксис или С ПОМОЩЬЮ ПАРАМЕТРА STANDBY = <options></options> синтаксис.
  • Восстановления зеркального отображения базы данных выполняется медленно на сервере партнера в паре зеркального отображения.
  • Процесс агента чтения журнала для репликации транзакций является медленным для следующих операций:
    • Анализируется в журнал транзакций базы данных издателя.
    • Команда будет добавлена в базу данных распространителя.
    • Репликации транзакций.

    Примечание Для получения дополнительных сведений посетите следующий веб-узел Microsoft Developer Network (MSDN):
    949523 Задержка репликации транзакций велико в SQL Server 2005 при маленьком значение свойства «Исходный размер» и значение свойства авторасширения
  • Снижение производительности происходит при создании моментального снимка базы данных, если вошли многие операции или журналов транзакций остаются активными в течение длительного времени. Эта проблема возникает потому, что должно быть выполнено восстановление моментального снимка и журналы транзакций необходимо выполнить откат.
  • Снижение производительности происходит при использовании DBCC CHECKDB Проверяет синтаксис для создания моментального снимка скрытую базу данных для полного восстановления моментальный снимок базы данных для выполнения согласованность с.

Причина

Эти проблемы возникают из-за виртуальные файлы журнала (VLF) в файл журнала транзакций может привести к снижению производительности при SQL Server просматривает эти число VLF при выполнении следующих операций:
  • Восстановление базы данных
  • Зеркальное отображение базы данных
  • Моментальный снимок базы данных
  • Операций чтения журнала репликации транзакций базы данных
При увеличении файла журнала транзакций для базы данных мелкими шагами во время роста в экстремальных условиях, сотен и тысяч число VLF находятся внутри одного набора файлов журнала (.ldf) транзакций. Однако рост большого журнала с большим шагом создает только несколько число VLF для сравнения. Например некоторые могут быть менее 100 число VLF.

Примечание Число VLF-подразделений или сегменты, которые используются внутри SQL Server в файл журнала транзакций.

Решение

Накопительное обновление информации

SQL Server 2008 R2

Исправление этой уязвимости первого выпуска в накопительное обновление 6. Дополнительные сведения о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 щелкните следующий номер статьи базы знаний Майкрософт:
2489376 Накопительный пакет обновления 6 для SQL Server 2008 R2
Примечание Поскольку построения являются накопительными, каждый новый выпуск исправлений содержит все исправления, входившие в состав предыдущих исправлений для SQL Server 2008 R2. Рекомендуется, чтобы учесть применение последний выпуск исправления, содержащего это исправление. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
981356 SQL Server 2008 R2 построений, которые были выпущены после выпуска SQL Server 2008 R2

Пакет обновления 1 для SQL Server 2008

Исправление для этой проблемы сначала было выпущено в 12 накопительного обновления для SQL Server 2008 Пакет обновления 1. Дополнительные сведения о этот накопительный пакет обновления щелкните следующий номер статьи базы знаний Майкрософт:
2467236 Накопительный пакет обновления 12 для SQL Server 2008 Пакет обновления 1
Примечание Поскольку построения являются накопительными, каждый новый выпуск исправление содержит все исправления и все исправления, входившие в состав предыдущих SQL Server 2008 выпуска исправлений. Корпорация Майкрософт рекомендует учесть применение последний выпуск исправления, содержащего это исправление. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
970365 SQL Server 2008 выполняет построение, выпущенных после выпуска SQL Server 2008 Пакет обновления 1
Исправления Microsoft SQL Server 2008 создаются для определенных пакетов обновления SQL Server. Для установки Пакет обновления 1 для SQL Server 2008, необходимо установить исправление SQL Server 2008 Пакет обновления 1. По умолчанию какие-либо исправления, включенный в пакет обновления SQL Server включено в следующий пакет обновления SQL Server.

Пакет обновления 2 для SQL Server 2008

Исправление этой уязвимости первого выпуска накопительного обновления 2 для SQL Server 2008 Пакет обновления 2. Дополнительные сведения о этот накопительный пакет обновления щелкните следующий номер статьи базы знаний Майкрософт:
2467239 Накопительный пакет обновления 2 для SQL Server 2008 Пакет обновления 2
Примечание Поскольку построения являются накопительными, каждый новый выпуск исправление содержит все исправления и все исправления, входившие в состав предыдущих SQL Server 2008 выпуска исправлений. Корпорация Майкрософт рекомендует учесть применение последний выпуск исправления, содержащего это исправление. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
2402659 SQL Server 2008 выполняет построение, выпущенных после выпуска SQL Server 2008 Пакет обновления 2
Исправления Microsoft SQL Server 2008 создаются для определенных пакетов обновления SQL Server. Необходимо установить Пакет обновления 2 для SQL Server 2008 исправление установки обновления Пакет обновления 2 для SQL Server 2008. По умолчанию какие-либо исправления, включенный в пакет обновления SQL Server включено в следующий пакет обновления SQL Server.

SQL Server 2005 с пакетом обновления 3 (SP3)

Исправление для этой проблемы сначала было выпущено в 13 накопительного обновления Пакет обновления 3 для SQL Server 2005. Дополнительные сведения о этот накопительный пакет обновления щелкните следующий номер статьи базы знаний Майкрософт:
2438344 Накопительный пакет обновления 13 для Пакет обновления 3 для SQL Server 2005
Примечание Поскольку построения являются накопительными, каждый новый выпуск исправление содержит все исправления и все исправления, входившие в состав предыдущих SQL Server 2005 исправление выпуска. Корпорация Майкрософт рекомендует учесть применение последний выпуск исправления, содержащего это исправление. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
960598 SQL Server 2005 выполняет построение, выпущенных после Пакет обновления 3 для SQL Server 2005
Исправления Microsoft SQL Server 2005 создаются для определенных пакетов обновления SQL Server. Необходимо установить Пакет обновления 3 для SQL Server 2005 исправление установки Пакет обновления 3 для SQL Server 2005. По умолчанию какие-либо исправления, включенный в пакет обновления SQL Server включено в следующий пакет обновления SQL Server.

Пакет обновления 4 для SQL Server 2005

Исправление этой уязвимости первого выпуска накопительного обновления 1 Пакет обновления 4 для SQL Server 2005. Дополнительные сведения о этот накопительный пакет обновления щелкните следующий номер статьи базы знаний Майкрософт:
2464079 Накопительный пакет обновления 1 для SQL Server 2005 Пакет обновления 4
Примечание Поскольку построения являются накопительными, каждый новый выпуск исправление содержит все исправления и все исправления, входившие в состав предыдущих SQL Server 2005 исправление выпуска. Корпорация Майкрософт рекомендует учесть применение последний выпуск исправления, содержащего это исправление. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
2485757 SQL Server 2005 выполняет построение, выпущенных после Пакет обновления 4 для SQL Server 2005
Исправления Microsoft SQL Server 2005 создаются для определенных пакетов обновления SQL Server. Необходимо установить Пакет обновления 4 для SQL Server 2005 исправление установки Пакет обновления 4 для SQL Server 2005. По умолчанию какие-либо исправления, включенный в пакет обновления SQL Server включено в следующий пакет обновления SQL Server.

Статус

Данное поведение является подтвержденной ошибкой продуктов Майкрософт, перечисленных в разделе «Информация в данной статье применима к:».

Временное решение

Установки исправления и перезагрузки SQL Server может улучшить производительность восстановления. Например производительность можно повысить за следующие действия после установки исправления и перезагрузки SQL Server:
  • Восстановление базы данных
  • Зеркальное отображение базы данных
  • Моментальный снимок базы данных
  • Операций чтения журнала репликации транзакций базы данных

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

Уменьшить существующие проблемы

  • Дождитесь завершения операции восстановления или восстановления

    Если не восстановлены базы данных, где низкая производительность при восстановлении или восстановления базы данных, может иметь для ожидания завершения операции восстановления или восстановления. Например можно увидеть состояние или состояние в служб SQL Server Management Studio (среда SSMS) восстановление базы данных без восстановления. Обычно остановка SQL Server предлагает без рельефа для медленного восстановления и может занять больше времени, повторите одной фазе анализа восстановления, стадия повтора или стадией отката.
  • Избежать восстановления последовательность журналов транзакций, которая содержит тысячи число VLF

    Если происходит снижение производительности во время восстановления и восстановления базы данных с помощью файла резервной копии, можно избежать, восстановление последовательности журнала транзакций, которые содержат тысячи число VLF. Для идентификации файла резервной копии, которая имеет большинство виртуальных файлов журнала записи, выполните следующую инструкцию, чтобы увидеть столбцы FirstLSN и LastLSN в файлах резервных копий журнала:
    Инструкции RESTORE HEADERONLY из DISK='C:\folder\file.trn "

    Можно избежать восстановление файлов резервной копии журналов. Кроме того, можно использовать ОСТАНОВИТЬ AT инструкции в ВОССТАНОВЛЕНИЕ команды, чтобы избежать сильно фрагментированные части журнала транзакций. Если не выполнить восстановление полной последовательности журнала до точки последнего времени во время сбоя восстановления происходит потеря данных в базе данных SQL Server. Эта потеря возникает, поскольку не все транзакции сохраняются. Таким образом нет компромисс бизнес-решения. Можно полностью восстановить журнал транзакций сильно фрагментированные. Тем не менее эта операция может занять несколько часов. Кроме того, можно использовать ОСТАНОВИТЬ AT инструкция восстановления для остановки восстановления перед сильно фрагментированные части журнала. Тем не менее теряются все пропавшие транзакции, можно опустить.

    Примечание Без установки этого исправления, обычно есть не безопасный доступный ресурс для срочной восстановления после перезапуска SQL Server. SQL Server должен найти число VLF для анализа файлов журнала, чтобы вернуть завершения транзакции, а затем отменить незавершенные транзакции для завершения восстановления, чтобы безопасно перевести базу данных в оперативный режим. Нельзя безопасно пропускать транзакций во время восстановления.

Предотвратить будущее возникновение

  • Установить приращение автоматическое увеличение базы данных соответствующего размера

    Если установлен слишком малый размер приращения авторасширение, будут иметь множество виртуальных файлов журнала (VLF), и может наблюдаться снижение производительности в SQL Server. Если имеет слишком большой размер приращения авторасширение, запросы, которые делают автоматически увеличиваться журналов транзакций возможно ждать в течение длительного времени для завершения роста. Таким образом в SQL Server возникает ошибка превышения времени ожидания. Чтобы обойти эти проблемы, можно задать размер приращения авторасширение для соответствующего размера базы данных.
  • Устранение большого числа число VLF и использовать ручной роста

    Если многие число VLF в журнале транзакций, уменьшить размер журнала транзакций и сделать его увеличить до бизнеса (пик) в соответствии с потребностями с помощью ручного роста. Например журнал транзакций увеличивается обратно до разумного Средний размер большого инкремента или один ручной роста. Таким образом размер журнала транзакций достигает пиковой мощности и файлов резервной копии журналов планируются на основе часто и периодические. Кроме того журнал транзакций может быть усечен, а число VLF для журнала транзакций, которые могут быть использованы в цикле.
  • Уменьшение и увеличение журнала транзакций вручную

    Чтобы исправить журнал, который имеет большое число VLF, выполните следующие действия, сжатия журнала и увеличить его снова вручную.
    1. Если в модели восстановления с неполным протоколированием или полную базу данных, необходимо создать резервную копию журнала транзакций для обеспечения активной число VLF усекать, так и для повторного использования.
      BACKUP LOG databasename TO DISK='C:\folder\log_backupfile.trn'

      Дополнительные сведения о том, как создать резервную копию журнала транзакций с помощью модулей SSM посетите следующий веб-узел Microsoft Developer Network (MSDN):Дополнительные сведения о том, как создать резервную копию журнала транзакций с помощью инструкций Transact-SQL посетите следующий веб-узел MSDN:
    2. Чтобы определить логическое имя для файла журнала транзакций, выполните одну из следующих инструкций.
      Оператор 1
      exec sp_helpfile 
      Оператор 2
      select * from sys.sysfiles 
      Чтобы уменьшить размер файла журнала транзакций до нужного размера, используйте следующий код:
      DBCC SHRINKFILE(transactionloglogicalfilename, TRUNCATEONLY) 
    3. Можно увеличить размер соответствующего размера файла журнала транзакций. Рекомендуется позволить расти до обычного размера (пик) размер файла журнала транзакций. Таким образом создается запись автоматическое увеличение можно избежать увеличения. Чтобы задать размер журнала транзакций, используйте страницу Свойства базы данных в среда SSMS или использовать следующее ИЗМЕНЕНИЕ БАЗЫ ДАННЫХ синтаксис:
      MODIFY FILE ( NAME = transactionloglogicalfilenae, SIZE=newtotalsize MB) 

      Дополнительные сведения о том, как увеличить размер базы данных в среда SSMS, посетите следующий веб-узел MSDN:
      Как увеличить размер базы данных в среда SSMS
      Дополнительные сведения о ИНСТРУКЦИИ ALTER DATABASE ИЗМЕНЕНИЯ ФАЙЛА синтаксис, посетите следующий веб-узел MSDN:

Дополнительная информация

Число VLF сегментов можно проверить, просмотрев файл журнала ошибок SQL, а затем по поиску порядковый номер транзакции в журнале (LSN) в каждый файл резервной копии журнала транзакций. Первые цифры перед символом двоеточия в номера LSN соответствует номер LSN.

Например первый номер первой информационное сообщение для номера LSN: 1. Тем не менее первый номер второе информационное сообщение для номера LSN — 100001. В этом случае имеется 100 000 число VLF, используемые с момента первого информационное сообщение и второе информационное сообщение. Таким образом журнала транзакций зарегистрированного фрагментации, которая имеет множество виртуальных файлов журнала (VLF) примерно так:

{Резервного копирования журнала. База данных: mydbname, date(time) создание: 2010/07/08(12:36:46), первый номер LSN: 1:5068:70, последний номер LSN: 1:5108:1, количество устройств дампа: 1, сведения об устройстве: (ФАЙЛ = 1, тип = ДИСК: {C:\folder\logbackup1.trn}). Это информационное сообщение. Никаких действий пользователя не требуется.

Журнал резервного копирования. База данных: mydbname, date(time) создание: 2010/07/08(15:36:46), первый номер LSN: 100001:5108:1, последний номер LSN: 100002:5108:1, количество устройств дампа: 1, сведения об устройстве: (ФАЙЛ = 2, тип = ДИСК: {C:\folder\logbackup2.trn}). Это информационное сообщение. Вмешательство пользователя не требуется.}

Следующая таблица предоставляет дополнительные сведения о продуктах и инструменты, которые автоматически проверяют условие, описанное в разделе «Проблема» в вашем экземпляре SQL Server и в версиях SQL Server, для которой проверяется правило.

Свернуть эту таблицуРазвернуть эту таблицу
Правила программыНазвание правилаОписание правилаВерсии продуктов, для которых вычисляется правило
Советник по System CenterSQL Server с помощью репликации транзакций, производительность агента чтения журнала может быть замедлен из-за размера журнала транзакций или число VLFВ этом экземпляре SQL Server ядра СУБД обнаружила репликации транзакций присутствия с номером Отслеживания или число VLF значительно большего размера. Производительность агента чтения журнала негативно повлияло на размер журнала транзакций или число VLF. Уменьшите размер журнала транзакций и число VLF для повышения производительности агента чтения журнала.SQL Server 2008

SQL Server 2008 R2

SQL Server 2012



Ссылки

Дополнительные сведения о физическая архитектура журнала транзакций посетите следующий веб-узел MSDN: Дополнительные сведения о номера LSN в журнале (LSN) посетите следующий веб-узел MSDN:
Общие сведения о номера LSN

Дополнительные сведения об ошибке 1413 при запуске зеркального отображения базы данных, посетите следующий веб-узел MSDN:
Общие сведения об ошибке 1413 при запуске зеркального отображения базы данных

Дополнительные сведения о влиянии структуры файла журнала время восстановления базы данных посетите следующий веб-узел MSDN:
Как структура файла журнала может повлиять на время восстановления базы данных

Дополнительные сведения о журнале транзакций число VLF посетите следующий веб-узел MSDN:
Общие сведения о файле журнала транзакций

Дополнительные сведения о способах создания моментального снимка базы данных посетите следующий веб-узел MSDN:
Создание моментального снимка базы данных
Дополнительные сведения о добавочных модель обслуживания для SQL Server щелкните следующий номер статьи базы знаний Майкрософт:
935897 Команда SQL Server предоставляет инкрементную модель обслуживания для обеспечения исправлений для повторяющихся проблем.
Дополнительные сведения о схеме именования для обновления SQL Server щелкните следующий номер статьи базы знаний Майкрософт:
822499Новая схема присвоения имен пакетам обновлений программного обеспечения Microsoft SQL Server
Дополнительные сведения о терминах, используемых при описании обновлений программного обеспечения, см. в следующей статье базы знаний Майкрософт:
824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт

Свойства

Код статьи: 2455009 - Последний отзыв: 7 января 2014 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Evaluation Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Standard Edition for Small Business
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
Ключевые слова: 
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2455009 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.
Эта статья на английском языке: 2455009

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com