После развертывания проекта на машине клиента файл журнала sql db вырос до 450 ГБ, хотя размер db меньше 100 МБ. Режим ведения журнала установлен в простой режим, а транзакции - отправьте с помощью службы Windows, которая отправляет транзакции вставки и обновления каждые 30 секунд. мой вопрос в том, как узнать причину роста файла журнала db? Я хотел бы знать, как контролировать файл журнала, чтобы узнать, какая именно транзакция вызывает эту проблему. Должен ли я отлаживать передний конец? или нет, которые выставляют транзакции, которые вызывают рост файла журнала db. Спасибо.Мониторинг файла журнала SQL
ответ
Обратите внимание, что простая модель восстановления не позволяет создавать резервные копии журналов, поскольку она хранит наименьший объем информации и полагается на CHECKPOINT
, поэтому, если это критическая база данных, подумайте о защите клиента с помощью плана FULL RECOVERY. Да, вам нужно использовать больше места, но дисковое пространство дешево, и вы можете иметь больший контроль над временем восстановления времени и управлять файлами журнала. Стараясь быть кратким:
A) База данных в простом режиме только усечение транзакции в журнале транзакций, как когда
CHECKPOINT
создается.B) К сожалению, большие/много
uncommitted transactions
, в том числеBACKUP
, созданиеSNAPSHOT
иLOG SCANs
, среди прочего остановит вашу базу данных от создания этих контрольно-пропускных пунктов и ваша база данных будет оставить незащищенными, пока эти операции не будут завершены.Ваша текущая система полагается на правильную редакцию вашего файла
.bak
, который в зависимости от размера может означать часы потенциальных потерь.
Другими словами, это то, что смешно, потому что размер вашей базы данных не может создать CHECKPOINT для усечение этих сделок достаточно часто ....
записочку на лог-файлы
Прежде всего, файлы журнала автоматически не усекаются каждый раз, когда транзакция совершается (в противном случае у вас будет только последняя совершенная транзакция, чтобы вернуться к ней). При использовании частых резервных копий журнала будут сохранены соответствующие изменения (время по времени), а SHRINKFILE
сжимает файл журнала до наименьшего указанного размера/размера.
Используйте DBCC SQLPERF(logspace), чтобы узнать, сколько у вас используется в лог-файле и насколько оно велико. После выполнения полной резервной копии файл журнала будет усечен до оставшихся незафиксированных/активных транзакций. (Не путать с сокращением размера)
Некоторые предложения по изучению ваших сделок:
- Вы можете использовать системные таблицы, чтобы увидеть самый дорогой кэш, частые и активные планы.
- Вы можете выполнить поиск в файле журнала с помощью недокументированной расширенной хранимой процедуры,
fn_dblog
. - Pinal имеет большую информацию по этой теме, которые вы можете прочитать на этой странице и ссылка: Beginning Reading Transaction Log
изменил ответ, поскольку получается, что ПРОСТОТА ВОССТАНОВЛЕНИЯ урезает файл журнала .... но только после создания CHECKPOINT .... что в этом случае было невозможно из-за активности базы данных. –
Файл журнала - это текст, и в зависимости от уровней журнала и количества ошибок и сообщений, которые вы получаете, эти файлы могут расти очень быстро.
Вам нужно повернуть ваши журналы с чем-то вроде logrotate, хотя из вашего вопроса это звучит так, будто вы используете Windows, поэтому не знаете, какое решение для этого было бы.
Основы поворота журнала берут ежедневные/еженедельные версии журналов и сжимают их с помощью gzip или аналогичных и уничтожают несжатую версию.
Как и текст с большим количеством повторений, это сделает файлы очень маленькими в сравнении, и они должны решить ваши проблемы с хранением.
пространства для файлов журнала не будет использоваться повторно, если есть открытая transaction..You может проверить причину журнала пространства повторного использования, используя ниже DMV ..
select log_reuse_wait_desc,database_id from sys.databases
В вашем случае, база данных устанавливается в простой и база данных составляет 100 МБ .. но журнал вырос до 450 ГБ .., который очень велик.
Моя теория заключается в том, что могут быть некоторые открытые транзакции, которые предотвратили повторное использование журнала. после того, как она выросла.
Как известно, вы можете работать над DMV и видеть , что мешает повторному использованию пространства журналов в данный момент, вы не можете вернуться вовремя, чтобы узнать, что предотвращает повторное использование пространства журналов
- 1. мониторинг файла журнала с использованием regex
- 2. Мониторинг большого файла журнала в C#
- 3. Мониторинг файла журнала для запуска службы systemd
- 4. Мониторинг файла журнала при использовании демона
- 5. Мониторинг файла журнала с использованием python
- 6. Мониторинг скорости записи файла журнала, соответствующего шаблону
- 7. Мониторинг непрерывного журнала AIX
- 8. Мониторинг журнала событий
- 9. Мониторинг журнала Отправленные базы данных
- 10. Powershell - Мониторинг файла журнала в реальном времени Q2
- 11. Чтение файла журнала SQL SERVER
- 12. SAS 9.4 Мониторинг файлов журнала сохраненных процессов
- 13. webservice SOAP-сообщение Мониторинг или ведение журнала
- 14. Мониторинг басов jPos Файл журнала XML
- 15. Мониторинг одного файла
- 16. Мониторинг целостности файла Python
- 17. Мониторинг изменений файла
- 18. Мониторинг ZIP-файла Python
- 19. мониторинг файла изменений
- 20. Мониторинг создания логинов SQL
- 21. SQL Мониторинг и Междометие
- 22. Какова команда обрезания файла журнала SQL Server?
- 23. SQL Loader ошибка для журнала открытия файла
- 24. получить имя файла журнала sql из сценария
- 25. Мониторинг выполнения пакетов SSIS
- 26. Переопределение журнала файла журнала для каждого журнала
- 27. Изменение файла журнала журнала Nginx
- 28. извлечение журнала из файла журнала
- 29. Мониторинг биений приложения, возможно через SQL-сервер
- 30. Мониторинг размера файла в C#
Altered мой ответ, чтобы отразить мою поправку о том, как SIMPLE ВОССТАНОВЛЕНИЕ обрезает LOG FILE. По сути, он полагается на CHECKPOINTS, прежде чем он усечет неактивные транзакции ... в результате он вырос до этого чудовищного размера. –