Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Корпорация Майкрософт распространяет исправления 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 на компьютере.

  • Одна или несколько баз данных находятся в модели полного восстановления или модели восстановления с неполным протоколированием.

  • Начальный размер файла журнала транзакций для базы данных небольшой. Однако размер файла транзакции увеличивается.

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

  • Файл журнала транзакций увеличивается на небольшое увеличение. Через некоторое время файл журнала транзакций будет большим.

    Например, размер файла журнала транзакций увеличивается с 100 до 10 гигабайт. Размер файла журнала транзакций увеличивается на один мегабайт при каждом росте.

В этом сценарии могут возникнуть следующие проблемы:

  • Восстановление базы данных выполняется медленно при запуске базы данных при наличии большого объема работ по восстановлению.

    Например, транзакция ожидает открытия в течение длительного времени. Кроме того, большое количество транзакций небольшого размера не фиксируется при SQL Server или перезапуске. В этом случае на этапе анализа, на этапе отмены или на этапе повтора может возникнуть ошибка в течение длительного предполагаемого времени восстановления. Ошибка выглядит следующим образом и регистрируется в файле журнала SQL Server 2005:

    Анализ базы данных mydatabase (7) завершен на 0 % (осталось около 1234 секунд). Это только информационное сообщение. Никаких действий пользователя не требуется.

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

    Обратите внимание, что для подключения базы данных к сети во время операции восстановления используйте синтаксис WITH RECOVERY или параметр WITH STANDBY = <параметры >синтаксиса.

  • Восстановление зеркального отображения базы данных выполняется медленно на сервере-партнере в паре зеркального отображения.

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

    • Анализируется журнал транзакций базы данных издателя.

    • Команда добавляется в базу данных распространителя.

    • Транзакции реплицируются.

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

  • Низкая производительность возникает при использовании синтаксиса DBCC CHECKDB для создания скрытого моментального снимка базы данных, который должен полностью восстановить моментальный снимок базы данных для выполнения проверок согласованности.

Причина

Эти проблемы возникают из-за того, что виртуальные файлы журналов (VLF) в файле журнала транзакций могут привести к снижению производительности при SQL Server проверки этих виртуальных файлов во время следующих операций:

  • Восстановление базы данных

  • Зеркальное отображение базы данных

  • Моментальный снимок базы данных

  • Действия чтения журнала репликации транзакций базы данных

Когда файл журнала транзакций для базы данных увеличивается небольшими приращениями в условиях крайнего роста, в одном наборе файлов журнала транзакций (LDF) присутствуют тысячи до сотен тысяч виртуальных файлов. Однако при большом росте журнала с большим приращением создается только несколько виртуальных файлов. Например, некоторые из них могут быть меньше 100 виртуальных машин.

Обратите внимание, что 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

SQL Server 2008 с пакетом обновления 1 (SP1)

Исправление этой проблемы впервые было выпущено в накопительном пакете обновления 12 для SQL Server 2008 с пакетом обновления 1 (SP1).

Обратите внимание, что сборки являются накопительными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, включенные в предыдущий выпуск исправлений SQL Server 2008 года. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправлений, содержащего это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

970365 Сборки SQL Server 2008, выпущенные после выпуска SQL Server 2008 с пакетом обновления 1 (SP1) Microsoft SQL Server 2008, создаются для определенных пакетов обновления SQL Server. Необходимо применить исправление SQL Server 2008 с пакетом обновления 1 (SP1) к установке SQL Server 2008 с пакетом обновления 1 (SP1). По умолчанию любое исправление, указанное в пакете обновления SQL Server, включается в следующий пакет обновления SQL Server обновления.

SQL Server 2008 с пакетом обновления 2 (SP2)


Исправление этой проблемы впервые было выпущено в накопительном пакете обновления 2 для SQL Server 2008 с пакетом обновления 2 (SP2).

Обратите внимание, что сборки являются накопительными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, включенные в предыдущий выпуск исправлений SQL Server 2008 года. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправлений, содержащего это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2402659 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 2 SQL Server 2008 для Microsoft SQL Server 2008, создаются для определенных пакетов обновления SQL Server. Необходимо применить исправление SQL Server 2008 с пакетом обновления 2 (SP2) к установке SQL Server 2008 с пакетом обновления 2 (SP2). По умолчанию любое исправление, указанное в пакете обновления SQL Server, включается в следующий пакет обновления SQL Server обновления.

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

Исправление этой проблемы впервые было выпущено в накопительном пакете обновления 13 для SQL Server 2005 с пакетом обновления 3 .

Обратите внимание, что сборки являются накопительными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, включенные в предыдущий выпуск исправлений SQL Server версии 2005. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправлений, содержащего это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

960598 Сборки SQL Server 2005, выпущенные после выпуска пакета обновления 3 SQL Server 2005 для Microsoft SQL Server 2005, создаются для определенных пакетов обновления SQL Server. Необходимо применить исправление SQL Server 2005 с пакетом обновления 3 (SP3) к установке пакета обновления 3 SQL Server 2005. По умолчанию любое исправление, указанное в пакете обновления SQL Server, включается в следующий пакет обновления SQL Server обновления.
 

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

Исправление этой проблемы впервые было выпущено в накопительном пакете обновления 1 для SQL Server 2005 с пакетом обновления 4 (SP4).

Обратите внимание, что сборки являются накопительными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, включенные в предыдущий выпуск исправлений SQL Server версии 2005. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправлений, содержащего это исправление.

Необходимо применить исправление SQL Server 2005 с пакетом обновления 4 (SP4) к установке SQL Server 2005 с пакетом обновления 4 (SP4). По умолчанию любое исправление, указанное в пакете обновления SQL Server, включается в следующий пакет обновления SQL Server обновления.

Статус

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

Обходное решение

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

  • Восстановление базы данных

  • Зеркальное отображение базы данных

  • Моментальный снимок базы данных

  • Действия чтения журнала репликации транзакций базы данных


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

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

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

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

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

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

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

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

Предотвращение вхождения в будущем

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

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

  • Исключите большое количество виртуальных машин и используйте рост вручную

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

  • Сжатие и увеличение журнала транзакций вручную

    Чтобы исправить журнал, в котором слишком много файлов VLF, выполните следующие действия, чтобы сжать журнал и увеличить его вручную:

    1. Если база данных находится в модели полного восстановления или с неполным протоколированием, необходимо создать резервную копию журнала транзакций, чтобы разрешить усечение активных виртуальных файлов и повторное использование. BACKUP LOG databasename TO DISK='C:\folder\log_backupfile.trn'
      Дополнительные сведения о резервном копировании файла журнала транзакций с помощью SSMS см. на следующем веб-сайте Microsoft Developer Network (MSDN):

      Резервное копирование файла журнала транзакций с помощью SSMSДополнительные сведения о резервном копировании файла журнала транзакций с помощью инструкций Transact-SQL см. на следующем веб-сайте MSDN:

      Резервное копирование файла журнала транзакций с помощью инструкций Transact-SQL

    2. Чтобы определить логическое имя файла журнала транзакций, выполните одну из следующих инструкций.
      Инструкция 1
      Exec sp_helpfile Statement 2
      Выберите * из файла sys.sysfiles, чтобы уменьшить размер файла журнала транзакций до нужного размера, используйте следующий код: DBCC SHRINKFILE(transactionloglogicalfilename, TRUNCATEONLY)

    3. Можно увеличить размер файла журнала транзакций до соответствующего размера. Рекомендуется разрешить размер файла журнала транзакций увеличиваться до пикового обычного размера. Таким образом, приращения автоувеличение не выполняется. Чтобы задать размер журнала транзакций, используйте страницу свойств базы данных в SSMS или используйте следующий синтаксис ALTER DATABASE:MODIFY FILE (NAME = transactionloglogicalfilenae, SIZE=newtotalsize MB)
      Дополнительные сведения об увеличении размера базы данных в SSMS см. на следующем веб-сайте MSDN:

      Увеличение размера базы данных в SSMSДополнительные сведения о синтаксисе ALTER DATABASE MODIFY FILE см. на следующем веб-сайте MSDN:

      Общие сведения о синтаксисе ALTER DATABASE MODIFY FILE

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

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

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

{Резервное копирование журнала выполнено. База данных: mydbname, дата создания (время): 2010/07/08(12:36:46), первое LSN: 1:5068:70, последнее LSN: 1:5108:1, количество устройств дампа: 1, сведения об устройстве: (FILE=1, TYPE=DISK: {'C:\folder\logbackup1.trn'}). Это только информационное сообщение. Никаких действий пользователя не требуется.

Резервное копирование журнала выполнено. Database: mydbname, creation date(time): 2010/07/08(15:36:46), first LSN: 100001:5108:1, last LSN: 100002:5108:1, number of dump devices: 1, device information: (FILE=2, TYPE=DISK: {'C:\folder\logbackup2.trn'}). Это только информационное сообщение. Никаких действий пользователя не требуется.}

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

Программное обеспечение правила

Заголовок правила

Описание правила

Версии продуктов, для которых вычисляется правило

System Center Advisor

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

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

SQL Server 2008

SQL Server 2008 R2

SQL Server 2012 г.



 

Ссылки

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

Общие сведения о физической архитектуре журнала транзакций

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

Общие сведения о номерах последовательностей журналов

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

Общие сведения об ошибке 1413 при запуске зеркального отображения базы данных

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

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

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

Общие сведения о файле журнала транзакций

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

Создание моментального снимка базы данныхДля получения дополнительных сведений о модели добавочного обслуживания для SQL Server щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:

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

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

824684 Стандартная терминология, используемая при описании обновлений программных продуктов Майкрософт

Нужна дополнительная помощь?

Нужны дополнительные параметры?

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

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

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×