
Я размещаю веб-сайт и иногда получаю сообщение об ошибке: The log file for database '%.*ls' is full.
и мне приходится обращаться к своему хостинг-провайдеру для очистки файла журнала базы данных.
Как отключить ведение журнала или настроить его так, чтобы файл журнала не переполнялся?
(Я использую движок Community Server, поэтому оптимизацию SQL выполнять не нужно.)
решение1
Файл журнала зависит от модели восстановления базы данных. По умолчанию установлено значение Full, что означает, что вы будете делать резервные копии базы данных и журнала транзакций. При резервном копировании журнала транзакций он будет усечен. Если вы никогда не будете делать резервную копию журнала транзакций, он будет расти вечно. Если вы хотите сделать резервную копию только полной базы данных, измените модель восстановления на simple.
После того, как это будет изменено, вам нужно будет сжать файлы журнала (щелкните правой кнопкой мыши базу данных в sql management studio, Tasks > Shrink > Files). Вы можете настроить их на автоматическое сжатие, но как только вы исправите базовую проблему модели восстановления, вам это может не понадобиться.
решение2
Это относится к журналу транзакций, а не к журналу ошибок, и это нельзя отключить на SQL Server. Каждая транзакция записывает данные в журнал транзакций перед записью изменений в саму базу данных для защиты целостности базы данных. Если база данных использует модель полного восстановления (а у вас, похоже, именно так), записи журнала транзакций будут перезаписаны только после резервного копирования журнала транзакций (не полного); если вы измените модель восстановления на простую, записи журнала будут храниться в течение более короткого периода времени, и резервное копирование журнала транзакций не потребуется. Однако в зависимости от вашего хостинг-провайдера это может быть вне вашего контроля; вам придется проверить, насколько они контролируют настройки базы данных, и запросить изменение, если у вас нет прямого контроля.