Ваш файл журнала слишком большой
Как обычно, я выполнил команды в строке sudo apt-get clean , которая немного улучшила сценарий. Затем я удалили файлы с повернутым журналом, которые снова обеспечили очень небольшое улучшение.
После проверки я обнаружил, что некоторые файлы журналов в /var/log выросли до очень больших. Чтобы быть конкретным, ls -lSh /var/log дает,
Как мы видим, первые два являются оскорбительными. Я слегка удивлен, почему такие большие файлы не были повернуты.
Итак, что мне делать? Просто удалите эти файлы и перезагрузите компьютер? Или пойти на некоторые более разумные шаги?
Я использую Ubuntu 14.04.
ОБНОВЛЕНИЕ 1
Начнем с того, что системе осталось всего несколько месяцев. Я должен был установить систему с нуля пару месяцев назад после сбоя жесткого диска.
Теперь, как указано в этом ответе , Я сначала проверил нарушающие файлы журнала, используя tail , не удивительно. Затем, для более глубокого контроля, я выполнил этот скрипт из того же ответа .
Процесс занял несколько часов. Выход был в строке,
( /dev/sda3 - мой домашний каталог. Как мы можем найти,
Почему процесс захочет писать за пределом, фактически выходит за рамки моего понимания. Возможно, мне захочется задать другой вопрос на этом форуме, если это продолжается даже после обновления системы.)
Затем из этого ответа (вы можете проверить this для более глубокого понимания), я выполнен,
Теперь эти файлы имеют нулевые размеры. Система работает нормально до и после перезагрузки.
Я буду смотреть эти файлы (вместе с другими) в течение следующих нескольких дней и отчитываться назад, чтобы они ведут себя вне очереди.
Как последнее замечание, оба файла-нарушителя ( kern.log и syslog ), настроены на поворот, так как проверка файлов ( grep помогла) внутри /etc/logrotate.d/ .
ОБНОВЛЕНИЕ 2
Файлы журнала фактически повернуты. Похоже, что большие размеры были достигнуты за один день.
3. Изменение лимита размера журнала или включение автоувеличения
Ошибка 9002 может произойти, если для размера журнала транзакций задано максимальное значение, а автоматическое увеличение запрещено. В этом случае проблему, возможно, поможет решить включение автоматического увеличения или увеличение размера журнала вручную. Используйте эту команду T-SQL для поиска таких файлов журнала и следуйте приведенным ниже рекомендациям.
Оптимизация размера журнала транзакций tempdb
При перезапуске экземпляра сервера размер журнала транзакций базы данных tempdb изменяется и становится равным исходному размеру, который был до применения параметра автоматического увеличения файла. Это может понизить производительность журнала транзакций базы данных tempdb .
Этого можно избежать с помощью увеличения размера журнала транзакций базы данных tempdb после запуска или перезапуска экземпляра сервера. Дополнительные сведения см. в статье tempdb Database.
CHECKPOINT log_reuse_wait
С момента последнего усечения журнала новых контрольных точек не было, либо заголовок журнала пока не вышел за пределы виртуального файла журнала (VLF). (Все модели восстановления)
Это широко распространенная причина задержки усечения журнала. При возникновении задержки можно применить команду CHECKPOINT в базе данных или проверить файлы VLF журнала.
Распространенные причины переполнения журнала транзакций
Предпринимаемые действия при переполнении журнала транзакций зависят от условий, которые вызвали эту ситуацию. Наиболее вероятные причины:
- журнал не усекается;
- том диска заполнен;
- для размера журнала задано фиксированное максимальное значение или отключено автоматическое увеличение;
- не удается завершить синхронизацию группы доступности или репликацию.
LOG_BACKUP log_reuse_wait
Наиболее распространенными действиями, которые здесь нужно оценить, являются проверка модели восстановления базы данных и резервное копирование журнала транзакций базы данных.
Рассмотрим модель восстановления базы данных
Возможно, вам не удастся усечь журнал транзакций, если для LOG_BACKUP используется категория log_reuse_wait, так как вы никогда не создавали резервную копию. Также возможно, что база данных использует модель восстановления FULL или BULK_LOGGED, но резервное копирование журналов транзакций не выполнялось. Следует тщательно изучить каждую модель восстановления базы данных: чтобы избежать возникновения ошибки 9002, выполните резервное копирование журналов транзакций для всех баз данных с моделями восстановления FULL или BULK LOGGED. Дополнительные сведения см. в статье о моделях восстановления.
Резервное копирование журнала
В рамках моделей восстановления FULL и BULK_LOGGED резервное копирование может предотвратить усечение журнала транзакций, если резервная копия журнала не была создана недавно. Необходимо создать резервную копию журнала транзакций, чтобы разрешить освобождение записей журнала и усечение журнала. Если резервная копия журнала создается в первый раз, следует сделать вторую резервную копию журнала , чтобы разрешить компоненту Компонент Database Engine усечение журнала до точки последнего резервного копирования. Усечение журнала освобождает логическое пространство для новых записей журнала. Чтобы избежать повторного переполнения журнала, резервное копирование следует выполнять часто и регулярно. Дополнительные сведения см. в статье о моделях восстановления.
Полный журнал резервных копий и операций восстановления в экземпляре сервера SQL Server хранится в системной базе данных msdb . Чтобы ознакомиться с полным журналом резервного копирования базы данных, используйте следующий пример скрипта:
Полный журнал резервных копий и операций восстановления в экземпляре сервера SQL Server хранится в системной базе данных msdb . Дополнительные сведения о журнале резервного копирования см. в статье Журнал и сведения о заголовке резервной копии (SQL Server).
Создание резервной копии журналов транзакций
Пример создания резервной копии журнала:
Причина
Эта проблема возникает при указании малые значения для параметра FILEGROWTH для файла журнала.
Дополнительные сведения о как число VLF возросшим числом может привести к проблем производительности в репликации или в конфигурации зеркального отображения базы данных см. в разделе «Дополнительные сведения».
Что препятствует усечению журнала?
Чтобы определить, что препятствует усечению журнала в определенном случае, используйте столбцы log_reuse_wait и log_reuse_wait_desc представления каталога sys.databases . Дополнительные сведения см. в разделе sys.databases (Transact-SQL). Описание причин, которые могут задержать усечение журнала, см. в разделе Журнал транзакций (SQL Server).
Приведенный ниже набор команд T-SQL поможет определить, усекается ли журнал транзакций базы данных и, если нет, по каким причинам это происходит. Следующий скрипт также содержит действия по устранению проблемы:
Если при возникновении ошибки 9002 база данных находилась в состоянии восстановления, то после устранения проблемы восстановите базу данных с помощью инструкции ALTER DATABASE имя_базы_данных SET ONLINE.
Свободное пространство на диске
Возможно, следует освободить место на диске, где находится файл журнала транзакций для базы данных. Для этого можно удалить или переместить другие файлы. Освобожденное место на диске позволит системе восстановления автоматически увеличить размер файла журнала.
Решение
Чтобы устранить эту проблему, выполните следующие действия:
Сократите журнал транзакций с помощью Инструкции DBCC SHRINKDB или с помощью среды SQL Server Management Studio.
Увеличьте размер файла журнала транзакций во избежание частых автоматически увеличений большее значение. Для получения дополнительных сведений обратитесь к разделу электронной документации по SQL Server веб-узла:
Увеличение параметра FILEGROWTH большее значение, чем то, что в настоящий момент настроен. Это должен быть основан на активность базы данных и как часто рост файла журнала.
Кроме того рекомендуется рассмотреть следующие исправления, в зависимости от версии SQL Server, выполняющихся в данный момент Установка:
Мониторинг используемого пространства журнала
Для мониторинга используемого пространства журнала используйте sys.dm_db_log_space_usage. Это динамическое административное представление возвращает сведения об используемом сейчас журналом объеме пространства и сообщает, когда журнал транзакций требует усечения.
Для получения сведений о текущем размере файла журнала, его максимальном размере и параметре автоматического увеличения файла вы можете также использовать столбцы size, max_size и growth для данного файла журнала в представлении sys.database_files.
Избегайте переполнения содержащего журналы диска. Хранилище журналов должно отвечать требованиям к числу операций ввода-вывода в секунду и низкой задержке для транзакционной нагрузки.
Перемещение файла журнала на другой диск
Если на текущем диске невозможно освободить достаточное количество места, следует переместить файл на другой диск, где места достаточно.
Файлы журнала ни в коем случае не следует размещать в файловых системах со сжатием.
Сведения о том, как изменить расположение файла журнала, см. в статье Перемещение файлов базы данных.
1. Усечение журнала
Очень распространенное решение этой проблемы — выполнить резервное копирование журнала транзакций для базы данных, чтобы гарантировать усечение журнала. Если для базы данных с полным журналом транзакций не указано ни одного журнала транзакций, решить эту проблему будет просто. Достаточно возобновить создание регулярных резервных копий журналов транзакций базы данных.
4 ответа
Просто удалите эти файлы и перезагрузите компьютер?
Нет. Удалите их, но не используйте rm , потому что это может закончиться сбойным, когда вы печатаете touch , чтобы воссоздать его.
Самый короткий метод:
Если не root, для этого потребуется sudo . Взято из другого ответа на AU.
ПЕРЕД ТЫ ДЕЛАЙТЕ ЭТО. Сделайте tail и проверьте, есть ли у них причина быть настолько большой. Если этой системе не исполнилось несколько лет, не должно быть никаких оснований для этого, и устранение проблемы лучше, чем позволить этому продолжить.
Оба kern.log и syslog обычно не должны быть такими большими. Но, как я сказал: если эта система работает и работает годами и годами, это может быть нормально, и файлы просто нужно очистить.
И чтобы это не стало таким большим в будущем: setup logrotate . Это довольно просто и сжимает файл журнала, когда он становится больше, чем размер, который вы ему установили.
1 другое: если вы не хотите удалять содержимое, вы можете сжать файлы, выполнив tarring или gzipping. Это приведет к тому, что вы в конечном итоге получите файлы, вероятно, 10% от того, что они сейчас представляют. То есть, если на диске все еще есть место.
Вероятно, стоит попытаться установить, что заполняет журнал (ы), - просто изучив их визуально, используя less или ---- +: = 1 =: + ----
, или если оскорбительные строки слишком глубоко погребены, чтобы легко увидеть, что происходит, что-то вроде
Мой метод для файлов системных журналов - это. Шаги 1 и 2 являются необязательными, но иногда вам нужно проверить старые журналы, и иногда полезно резервное копирование. ; -)
Дополнительно: Копировать файл журнала
Дополнительно: используйте Gzip для копирования журнала
Использовать /dev /null для чистого файла
И мы используем для этих журналов (только на нескольких серверах) logrotate и еженедельно выполняем cron-скрипт, который все файлы с * .1 (или следующим вращением) сжимают gzip.
Я установил Ubuntu 16.04 сегодня, и я заметил ту же проблему. Однако я исправил это с помощью busybox-syslogd. Ага! Я только что установил этот пакет и проблема была решена. :)
Прежде чем пытаться открыть эту записную книжку, убедитесь, что на локальном компьютере установлен экземпляр Azure Data Studio. Инструкции по установке см. в статье Узнайте, как установить Azure Data Studio.
Скрипт служебной программы для выполнения рекомендуемых действий
Часть этих действий можно выполнить автоматически, запустив скрипт T-SQL, который определит файлы журналов, использующие большой объем дискового пространства, и предложит соответствующие действия.
Добавление или увеличение размера файла журнала
Вы можете выделить дополнительное место на диске, увеличив существующий файл журнала (если для этого достаточно места на диске) либо добавив файл журнала в базу данных, как правило, на другом диске. До тех пор, пока в журнале и на содержащем его дисковом томе достаточно свободного места, будет достаточного одного файла журнала транзакций.
- Чтобы добавить файл журнала в базу данных, используйте предложение ADD LOG FILE инструкции ALTER DATABASE . Это позволяет увеличить размер файла.
- Чтобы увеличить размер файла журнала, используйте предложение MODIFY FILE инструкции ALTER DATABASE с указанием синтаксиса SIZE и MAXSIZE . Дополнительные сведения см. в разделе Параметры инструкции ALTER DATABASE (Transact-SQL) для файлов и файловых групп.
Дополнительные сведения см. в разделе Рекомендации этой статьи.
Дополнительные сведения о факторах log_reuse_wait
Как проверить количество сегментов VLF в базе данных
Число VLF сегментов можно найти в базе данных путем нахождения разности между первой и последней номеров транзакций в журнале (LSN) резервных копий журнала транзакций для базы данных.
Чтобы сделать это, выполните следующие действия.
Найти номер LSN первой резервной копии журнала транзакций для базы данных в вашей Errorlog SQL (например, номер LSN: 1:5108:1).
Найти номер LSN последней резервной копии журнала транзакций в журнал ошибок SQL (например, LSN:10, 235: 5108: 1).
Число сегментов VLF отличается от последнего номера LSN и раннему номеру LSN (в данном случае это 10,235 1 = 10,234).
Дополнительные сведения
Решение проблемы переполнения журнала транзакций
Описанные ниже действия помогут найти причину переполнения журнала транзакций и устранить эту проблему.
Вариант 2. Выполнение шага вручную
В этом разделе описаны возможные действия при переполнении журнала транзакций, а также советы о том, как его избежать.
Когда журнал транзакций переполняется, в компоненте Компонент SQL Server Database Engine происходит ошибка 9002. Журнал может заполниться, когда база данных работает в режиме "в сети" или находится в процессе восстановления. Если журнал переполняется при подключенной базе данных, она не отключается, но переходит в режим только для чтения. Если журнал заполняется, когда база данных находится в процессе восстановления, компонент Компонент Database Engine помечает базу данных как RESOURCE PENDING. В любом случае необходимо вмешательство пользователя, чтобы сделать журнал транзакций доступным.
Эта статья посвящена SQL Server. Дополнительные сведения об этой ошибке в Базе данных SQL Azure и Управляемом экземпляре SQL Azure см. в статье Устранение ошибок журнала транзакций в Базе данных SQL Azure и Управляемом экземпляре SQL Azure. База данных SQL Azure и Управляемый экземпляр SQL Azure основаны на последней стабильной версии ядра СУБД Microsoft SQL Server, поэтому большая часть изложенной здесь информации об устранении неполадок совпадает, а инструменты могут отличаться.
Уменьшение размера файла журнала
Для уменьшения реального размера физического файла журнала необходимо выполнить его сжатие. Это полезно, если файл журнала транзакций содержит неиспользованное пространство. Вы можете сжать файл журнала, только если база данных активна и хотя бы один виртуальный файл журнала (VLF) свободен. В ряде случаев сжатие невозможно до тех пор, пока не выполнена следующая операция усечения журнала.
Такие факторы, как долго выполняемые транзакции, из-за которых виртуальные файлы журналов длительное время остаются в активном состоянии, могут ограничить или вовсе не допустить возможность сжатия журнала. Дополнительные сведения см. в разделе Факторы, которые могут вызвать задержку усечения журнала.
Сжатие файла журнала удаляет виртуальные файлы журнала, которые не содержат частей логического журнала (то есть, неактивные виртуальные файлы журнала). При сжатии файла журнала транзакций неактивные виртуальные файлы журнала в конце удаляются, чтобы журнал уменьшился приблизительно до целевого размера.
Перед сжатием следует учесть факторы, которые могут вызвать задержку усечения журнала. Если после сжатия журнала снова потребуется дисковое пространство, размер журнала транзакций снова будет увеличиваться, что повлияет на производительность во время операций увеличения. Дополнительные сведения см. в разделе Рекомендации этой статьи.
Сжатие файла журнала (без сжатия файлов базы данных)
Мониторинг событий сжатия файла журнала
Мониторинг пространства журнала
sys.database_files (Transact-SQL) (См. столбцы size, max_size и growth файла или файлов журнала.)
Описание процесса усечения журнала
Усечение журнала транзакций и сжатие журнала транзакций — это разные процессы. Усечение журнала обычно происходит во время резервного копирования журнала транзакций. Это логическая операция, при которой удаляются зафиксированные записи в журнале. При сжатии журнала освобождается физическое пространство файловой системы путем уменьшения размера файла. Усечение журнала происходит на границе виртуального файла журнала (VLF), а файл журнала может содержать много VLF. Файл журнала может быть сжат, только если в нем есть место для освобождения. Сжатие файла журнала само по себе не может решить проблему с переполнением файла журнала. Вместо этого необходимо выяснить, почему файл журнала переполнен и его нельзя усечь.
Данные, перемещаемые в процессе сжатия файла, могут быть разбросаны по любым доступным местам в файле. Это вызывает фрагментацию индекса и может замедлить выполнение запросов, при котором осуществляется поиск в диапазоне индекса. Чтобы устранить фрагментацию, предусмотрите возможность перестроения индексов файла после сжатия. Дополнительные сведения см. в статье Сжатие базы данных.
Рекомендации
Далее приведены некоторые общие рекомендации по работе с файлами журналов транзакций.
Шаг приращения автоматического увеличения журнала транзакций, задаваемый параметром FILEGROWTH , должен быть достаточно большим, чтобы с запасом соответствовать потребностям транзакций рабочих нагрузок. Во избежание слишком частых увеличений размера файла журнала следует задать достаточно большое значение шагу роста файла журнала. Чтобы подбирать оптимальный размер журнала транзакций, рекомендуем отслеживать объем журнала, занимаемый в следующих случаях.
- Во время, необходимое для выполнения полного резервного копирования, так как резервные копии журнала создаются только после его завершения.
- Во время, необходимое для самых продолжительных операций обслуживания индекса.
- Во время, необходимое для выполнения наибольшего пакета в базе данных.
При активации autogrow для файлов журналов и данных с помощью параметра FILEGROWTH может быть лучше задать рост журнала через размер (size), а не процент (percentage). Это позволит более эффективно контролировать увеличение, так как процент будет характеризовать постоянно растущую величину.
- Учитывайте, что журналы транзакций не могут использовать мгновенную инициализацию файлов, поэтому особо продолжительное время их роста имеет критическую важность.
- Рекомендуется не устанавливать для журналов транзакций значение параметра FILEGROWTH выше 1024 МБ. Значения для параметра FILEGROWTH по умолчанию.
При небольшом шаге приращения может формироваться слишком много виртуальных файлов журнала малого размера и снижаться производительность. Чтобы определить оптимальное распределение виртуальных файлов журнала для текущего размера журнала транзакций всех баз данных в определенном экземпляре, а также требуемые приращения для достижения нужного размера, см. следующий скрипт.
При большом шаге приращения может формироваться слишком мало крупных виртуальных файлов журнала, что также повлияет на производительность. Чтобы определить оптимальное распределение виртуальных файлов журнала для текущего размера журнала транзакций всех баз данных в определенном экземпляре, а также требуемые приращения для достижения нужного размера, см. следующий скрипт.
Наличие множества файлов журнала в базе данных не способствует повышению производительности, так как файлы журнала транзакций не используют пропорциональное заполнение, как файлы данных в одной файловой группе.
Вы можете настроить автоматическое сжатие файлов журналов. Но делать это не рекомендуется, и параметру базы данных auto_shrink по умолчанию задано значение FALSE. Если параметру auto_shrink задано значение TRUE, автоматическое сжатие уменьшает размер файла, только если в нем не использовано более 25 % объема.
мой файл журнала в SQL Server использовал все пространство на моем диске. Я запускаю полные резервные копии каждую ночь, но файл журнала продолжает расти. Что я могу сделать?
в большинстве занятых систем вам нужно смотреть на планирование резервного копирования журналов в течение дня, а затем ваше ночное полное резервное копирование. Это довольно распространенная практика.
в некоторых случаях вы можете обнаружить, что файл журнала не будет правильно усекать, даже если выполняется резервное копирование журнала. Вы можете сделать резервную копию с TRUNCATE_ONLY, чтобы проверить ее. При запуске этого он должен усечь журнал транзакций:
причиной этой проблемы является открытая проводка в предыдущей части журнала. SQL не будет усекать журнал после этой транзакции, потенциально вызывая большой, постоянно увеличивающийся журнал. Вам нужно выяснить, какие транзакции остаются открытыми и почему?. Вы можете отслеживать пространство журнала с помощью:
информацию о длительных транзакциях можно найти с помощью:
Если у вас есть задание, запланированное для проведения полных резервных копий, это хорошо и должно быть вашей отправной точкой, однако вам также необходимо выполнять регулярные резервные копии журналов транзакций.
резервное копирование журнала транзакций пространства relcaimed. После того, как вы определили свой обычный график резервного копирования журнала транзакций, вы, вероятно, будете в зелье, чтобы рассмотреть возможность сокращения журнала транзакций до более подходящего размера. Как он больше не будет расти срок.
стратегии резервного копирования для полного восстановления состоит из:
Я предлагаю вам обратиться к следующей ссылке Microsoft.
вы можете использовать какое-то вращение журнала и хранить только журнал фиксированного количества времени, скажем, за последние 7 дней. Этого должно быть более чем достаточно. Или вы можете сбрасывать журнал каждую ночь, потому что он должен быть в вашей резервной копии.
вы должны создать резервную копию журналов, а также основной базы данных
лучше добавить резервные копии журналов транзакций в расписание.
BACKUP LOG database TO DISK = 'D:/database_log.bak'
имейте в виду, что в моделях полного или массового восстановления журнал транзакций усекается при создании резервной копии журнала транзакций, необходимо регулярно делать резервную копию журнала, чтобы управлять размером журнала транзакций. В противном случае файл журнала транзакций будет расти, пока не останется места.
если нет необходимости в восстановлении точки во времени и базе данных изменения происходят нечасто лучше использовать простую модель восстановления (без журналов транзакций). В этом случае журнал транзакций автоматически усекается для удаления неактивных файлов виртуального журнала. В простой модели восстановления усечение журнала транзакций происходит после каждой контрольной точки.
Это должно уменьшить его:
а затем сжать файл журнала, установив параметр autoshrink в настройках sql server или by.
Я думаю, вы можете использовать dbcc, чтобы сжать его тоже, но я не помню синтаксис.
удалить файл журнала?
Edit: по-видимому, удаление файла журнала плохо, это просто просто журнал в SQL server. Я оставляю это, чтобы повторить, чего не делать.
Эффект от большого количества число VLF в зеркальном отображении базы данных
Слишком много файлов журнала также может влиять на зеркальное отображение базы данных. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
Увеличьте размер файла журнала или включите автоувеличение.
Если на диске, на котором находится журнал, доступно свободное место, можно увеличить размер файла журнала. Максимальный объем файлов журнала составляет 2 терабайта (ТБ) на файл журнала.
Если автоматическое увеличение отключено, база данных используется в подключенном режиме и на диске достаточно свободного пространства, выполните одно из следующих действий:
- Вручную увеличьте размер файла для получения одного шага роста размера файла. Здесь приводятся общие рекомендации по увеличению размера журнала.
- Включить свойство автоматического увеличения при помощи инструкции ALTER DATABASE, чтобы установить отличное от нуля значение шага роста для параметра FILEGROWTH. См. статью с рекомендациями по настройке автоувеличения и автосжатия в SQL Server.
В любом случае, если достигнут текущий предел размера файла, увеличьте значение MAXSIZE.
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard Microsoft SQL Server 2005 Developer Edition Microsoft SQL Server 2005 Enterprise Edition Microsoft SQL Server 2005 Standard Edition Еще. Меньше
ACTIVE_TRANSACTION log_reuse_wait
Действия по устранению причины проблемы ACTIVE_TRANSACTION включают обнаружение длительно выполняющейся транзакции и устранение проблем с ней (в некоторых случаях придется выполнить команду KILL).
Обнаружение длительных транзакций
Очень длительная транзакция может привести к переполнению журнала транзакций. Длительные транзакции можно обнаружить следующими способами:
Данное динамическое административное представление возвращает сведения о транзакциях на уровне базы данных. Столбцы этого представления содержат сведения о времени первой записи журнала (database_transaction_begin_time), текущем состоянии транзакции (database_transaction_state)и регистрационном номере (LSN) первой записи в журнале транзакций (database_transaction_begin_lsn).
- DBCC OPENTRAN. Эта инструкция позволяет установить идентификатор владельца транзакции, таким образом, можно отследить источник транзакции для более упорядоченной остановки (фиксацией, а не откатом).
Завершение транзакции
В некоторых случаях нужно просто завершить транзакцию. Для этого может потребоваться инструкция KILL. Ее следует использовать с осторожностью, особенно если запущены критические процессы, которые нельзя завершать. Дополнительные сведения см. в разделе KILL (Transact-SQL).
Ссылки
Для получения дополнительных сведений обратитесь к разделам на веб-узле Microsoft Developer Network (MSDN):
В этой статье рассказывается о мониторинге размера журнала транзакций SQL Server, сжатии журнала транзакций, добавлении или увеличении файла журнала транзакций, оптимизации скорости роста журнала транзакций tempdb, а также об управлении размером файла журнала транзакций.
AVAILABILITY_REPLICA log_reuse_wait
Если изменения транзакций на первичной реплике доступности еще не зафиксированы на вторичной реплике, журнал транзакций на первичной реплике не может быть усечен. Это может привести к увеличению размера журнала и не зависит от того, выбран синхронный или асинхронный режима фиксации для вторичной реплики. Сведения о том, как устранить неполадки такого типа, см. в статье Ошибка 9002. Журнал транзакций для базы данных переполнен из-за ошибки AVAILABILITY_REPLICA.
2. Устранение проблемы с переполнением тома диска
В некоторых случаях том диска, в котором размещается файл журнала транзакций, может заполниться. Вы можете выполнить одно из следующих действий, чтобы решить проблему с переполнением журнала, которая приводит к заполнению диска:
Эффект от большого количества число VLF в репликации
Слишком много файлов журнала может повлиять на репликации, потому что процесс чтения журнала необходимо сканировать каждый виртуальный файл журнала для транзакций, помеченных для репликации. Это поведение можно увидеть, Трассировка производительности sp_replcmds хранимой процедуры. Средство чтения журнала процессом sp_replcmds хранимой процедуры для проверки виртуальных файлов журнала и чтения транзакций, которые помечены для репликации. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
949523 задержка репликации транзакций высоко в SQL Server 2005 при маленьком значение свойства «Исходный размер» и значение свойства авторасширения
Симптомы
База данных dbName имеет больше n виртуальные файлы журнала которых слишком велико. Слишком много виртуальных файлов журнала может привести к запуска и время резервного копирования. Рассмотрим сжатие журнала и уменьшить число виртуальных файлов журнала с помощью различных приращение.
Слишком много виртуальных файлов журнала может неблагоприятно повлиять на время восстановления базы данных.
Кроме того при использовании технологии репликации или зеркального отображения базы данных в среде, можно заметить проблемы с производительностью с помощью этих технологий.
Добавление файла журнала на другой диск
Добавьте новый файл журнала в базу данных на другом диске, где достаточно места, с помощью ALTER DATABASE ADD LOG FILE . Использование нескольких файлов журналов для одной базы данных может быть временным решением проблемы с пространством. В большинстве баз данных должен быть только один файл журнала транзакций. Ищите причину, по которой журнал транзакций переполнен и его не удается усечь. Рассмотрите возможность добавления временных файлов журнала транзакций как дополнительного шага по устранению неполадок.
Управление увеличением размера файла журнала транзакций
Для управления увеличением файла журнала транзакций используйте инструкцию ALTER DATABASE (Transact-SQL) с параметрами для файлов и файловых групп. Следует отметить следующее.
- Чтобы изменить текущий размер файла в КБ, МБ, ГБ и ТБ, используйте параметр SIZE .
- Чтобы изменить шаг приращения размера, используйте параметр FILEGROWTH . Значение 0 указывает, что автоматическое приращение выключено и дополнительное пространство для файла не разрешено.
- Чтобы установить максимальный размер файла журнала в КБ, МБ, ГБ и ТБ или задать неограниченный размер (UNLIMITED), используйте параметр MAXSIZE .
Дополнительные сведения см. в разделе Рекомендации этой статьи.
Читайте также: