Файл лога не уменьшается в размере
Жила-была небольшая база, размером 15Гиг на MSSQL 2012 метода восстановления Простой в какой-то момент файл с журналом вырос до максимального размера указанного в настройках и резервные копии каждый день начали прибавлять по 2 гига процедура сжатия файлов не запускается. как почистить файл с логом и сделать размер резервной копии вменяемого размера, сейчас она уже 70 Гигов
Отслеживать
задан 15 мар 2019 в 6:55
169 1 1 серебряный знак 17 17 бронзовых знаков
Для начала посмотрите почему не освобождается файл select log_reuse_wait_desc, * from sys.databases
15 мар 2019 в 7:09
@DenisRubashkin, пишет что REPLICATION, это может мешать ?
15 мар 2019 в 7:23
Конечно может, пока все подписчики не получат результат транзакции, транзакция не может быть помечена как неактивная. Проверьте работу репликации, все ли там нормально.
15 мар 2019 в 7:35
0
Сортировка: Сброс на вариант по умолчанию
Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Artemio’s Blog
Hi, I’m Artem Ostashchenko, a software developer. I write this blog in Russian
Как уменьшить размер файла логов в Microsoft SQL Server
При создании Базы Данных (БД) в MS SQL Server для оптимизации логирования БД требуется установить Recovery Mode в значение Simple.
Для уже созданной БД с режимом Recovery Mode = Full требуется перейти в свойства БД и в разделе Options перевести соответствующую настройку из значения Full:
в значение Simple:

Затем необходимо очистить лишние записи действий в файле логов, т.к. модель восстановления данных Recovery Mode изменилась.
Для этого выберите требующуюся БД, затем кликните по ней Правой Кнопкой Мыши (ПКМ) и выберите Tasks → Shrink → Files:

После этого в появившемся окне формы Shrink File требуется установить File type: Log и выбрать Release unused space

Текущий размер занимаемого дискового пространства логами и свободное место для них можно оценить с помощью параметров Currently allocated space и Available free space этой же формы Shrink File (при повторном её открытии можно увидеть размеры после применения операции сжатия файла логов)
Как уменьшить размер файла журнала SQL Server
Я не могу понять, как уменьшить размер файла базы данных в формате PDF.
DBA говорит, что я должен использовать backup log dbname with truncate_only
И хотя все выглядит так, как будто он выполняется правильно в SQL Query Analyzer, размер файла ldf по-прежнему превышает 2 ГБ.
** Разъяснение, основанное на некоторых комментариях и некоторых ответах ниже. *** Конкретная рассматриваемая база данных — это база данных на моем ноутбуке, и я использую ее только для процессов разработки. Файл журнала увеличивался до такой степени, что считалось, что он должен был заполнить диск. Там нет никакого производственного риска. Я понимаю, что метод в вопросе, который я задал, и ответ, который я принял, рискованны в производственной среде. *
наверняка это дублирующий вопрос?
Я посмотрел и смог найти только один, который задавал вопрос о том, когда происходит сбой SHRINKFILE. В то время это не имело смысла, поэтому я разместил этот вопрос. Я решил удалить вопрос, но потом решил, что в одной лодке будут и другие. Если вы можете найти повторяющийся вопрос (который на самом деле задает тот же вопрос, а не похожий), я буду рад удалить этот вопрос.
На первой странице поиска есть около 8 ответов, которые включают его, но я думаю, вы должны знать, что вы ищете. Я вижу это так часто, как часть ответа, я был удивлен, что его не задали так прямолинейно.
Ответ очень зависит от варианта восстановления базы данных: простой или полный?
Спасибо за разъяснения, Рон. Поскольку это база данных dev, вам нужно изменить модель восстановления на SIMPLE в дополнение к уменьшению размера файла журнала, в противном случае ваша проблема повторится.
Если вы попали в эту ситуацию, очень вероятен один из следующих случаев:
- Ваша база данных находится в режиме полного восстановления, и она действительно должна быть в простом режиме
- Ваша база данных находится в режиме полного восстановления, и вы должны регулярно делать резервные копии журналов.
- Ваша база данных находится в режиме полного восстановления, а резервные копии журналов по какой-то причине терпят неудачу
- Вы выполняете огромные транзакции, которые увеличивают размер файла журнала
Ответ на каждый из них следующий:
Если (1), то переключите базу данных в простой режим.
Если (2), то запланируйте регулярное резервное копирование журнала.
Если (3), то исправьте запланированное резервное копирование журнала.
Если (4), то просто не делайте этого 🙂 Вместо этого выполните работать небольшими партиями.
Обратите внимание, что ни один из них не требует использования (не рекомендуется) «резервное имя журнала базы данных с truncate_only»
Вместо этого, как только вы очистите файл журнала, используя один из вышеперечисленных методов, затем уменьшите (теперь пустой) журнал с помощью:
DBCC SHRINKFILE ('log logical name', 2000)
Всегда указывайте разумный конечный размер, иначе он уменьшится почти до 0, и в следующий раз, когда он понадобится, потребуется время, чтобы вырасти.
Жаль, что принятый ответ был таким быстрым. Это один из вопросов, которые я использую, чтобы отсеять администраторов SQL во время интервью. Если они вернутся с резервной копией с truncate_only, это засчитывается как 2, поражающие биту.
Я согласен, что это последнее, что нужно сделать, уменьшить файл. Правильное обслуживание устраняет необходимость в этом. Но как только он станет большим и вы захотите его поменьше, вам придется его уменьшить. Однако при сжатии лучше уменьшить файл как можно меньше, а затем увеличить его до правильного размера с шагом 8 ГБ. Это оптимизирует количество VLF в файле. Смотрите — sqlskills.com/BLOGS/KIMBERLY/post/… .
Интересная ссылка, кажется, она применяется только в том случае, если ваш транс-лог превышает 8Gb. Я думаю, что мнение BradC (или, по крайней мере, мое) заключается в том, что да, есть чрезвычайные ситуации, которые заставят вас сжать ваш лог-файл, но вы должны понимать, что если вы запускаете пресловутый бэкап / w trunc, а затем shrinkfile, вы только что перевернули цепочку резервного копирования (надеюсь, это не было чем-то важным), и, кроме проблем с дисковым пространством, вполне вероятно, что у вас есть серьезные проблемы с сервером sql, вероятно, с точки зрения дизайна базы данных или с точки зрения архитектуры. Не исправляя основную ошибку, вы в лучшем случае купили себе время.
после выполнения «резервного копирования с truncate_only» вы должны выполнить следующую команду, чтобы уменьшить
dbcc SHRINKFILE (logfilename,shrink_tosize)
dbcc SHRINKFILE (mydatabase_Log,512)
Как уменьшить размер лог-файла
× Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. Gennadiy83 08.09.15 02:31 Сейчас в теме
Добрый день! Клиент-серверный вариант БД. Сервер MS SQL Server 2012, конфигурация УТ11. Лог-файл в несколько раз больше файла БД. Подскажите как уменьшить размер файла? В файловом варианте все просто, а как быть в данном случае не пойму, вычитал различные варианты на форумах (как понял, необходимо выполнить truncate запрос), но экспериментировать страшно. Из конфигуратора попытался сократить лог-файл, операция выполняется быстро, но сиквел не уменьшает сам файл и не возвращает память системе. Всем спасибо за помощь.
