Я начинал как ИТ-менеджер, и в мои обязанности входит сервер MSSQL. Унаследованная мной база данных использует около 100 ГБ жесткого диска в течение недели в файле LDF. Это, в свою очередь, использует все доступное дисковое пространство на диске C :, и сервер падает.
Могу ли я использовать параметр «Ограниченный рост файла» для файла LDF, чтобы остановить его использование всего диска? Если да, что произойдет, когда этот файл заполнится?
Кроме того, что могло бы вызвать такой вид деятельности? Может быть, это из-за плохо написанного SQL-запроса?
Проверьте, находятся ли БД в режиме полного восстановления. Если да, то выполняются ли у вас задания для фактического резервного копирования журналов транзакций, выполняемых по достаточно частому расписанию, чтобы поддерживать их в управляемом размере?
Редактировать:
Когда файл будет заполнен из-за ограниченного роста, ваша БД перестанет обрабатывать транзакции, так как ей некуда их регистрировать. Вам нужно выяснить причину такого увеличения файла, а не ограничивать его.
Если это очень загруженная (и чрезвычайно огромная) база данных, 100 ГБ журналов в неделю не будут возмутительными. Без дополнительной информации о размере базы данных, объеме транзакций, размерах записей и т. Д. Нам трудно судить об этом.
Более важный вопрос: если резервная копия этой базы данных создается каждую ночь, почему журналы не удаляются? Обычно не нужно беспокоиться об объеме журнала транзакций. в неделю.
Исходная информация:
Итак, вот более важный вопрос: как выполняется резервное копирование этого SQL-сервера и удаляются ли журналы транзакций во время каждого резервного копирования? Был ли процесс резервного копирования ночью, который внезапно перестал работать?
Если предыдущий администратор был слишком ленив, чтобы использовать правильные учетные записи служб - а это не редкость - многие вещи, включая резервные копии, могли перестать работать, когда его / ее учетная запись была отключена, а пароль встроенной учетной записи администратора домена был изменен .
Вдобавок - данные и логи не имеют отношения к диску c. Распределение операций ввода-вывода в загруженной базе данных - ключ к производительности.
Как сказал Крис, когда ваша БД установлена в режим полного восстановления (что почти наверняка так и есть), вы должны запустить какое-то резервное копирование, чтобы усечь журнал транзакций. В противном случае вы увидите, что он постоянно растет. Если вас не заботит окно восстановления этой БД, вы можете просто установить режим восстановления обратно на Базовый.
Кроме того, переместите их из диска C. Отсутствие на этом диске приведет к сбою БД и может вызвать повреждение
Я бы изменил модель восстановления в базе данных моделей с ПОЛНОЙ на ПРОСТОЙ.
В нашей организации модель ПОЛНОГО восстановления - это осознанное решение, которое мы планируем. Установка SIMPLE в базе данных модели исключает возможность заполнения диска файлом журнала из-за отсутствия регулярных резервных копий.
Какая версия MSSQL? В SQL Server 2008 удалена возможность усечения файлов журнала (и у них есть очень веские веские причины для этого), поэтому, если ваш файл журнала выходит из-под контроля, вам нужно запустить его снова и получить соответствующие планы обслуживания, чтобы гарантировать, что это не повторится.
Тем не менее, если вы не используете:
Тогда у вас нет реальной причины находиться в режиме полного восстановления. Если вы переключите его на простой, это не позволит файлу журнала расти дальше.