УДАЛЕНИЕ ФАЙЛА LDF

Есть ли способ, с помощью которого я могу периодически удалять сгенерированный файл LDF, так как он занимает до 100 ГБ моего пространства, и я хочу освободить это пространство. Есть ли способ написать процедуру, которая периодически удаляет этот файл LDF?

2 ответа

Решение

Вы определенно не можете удалить файл LDF, только уменьшить его до первоначального размера. Шаг, чтобы уменьшить это

  1. остановить репликацию (если есть)
  2. установить базу данных в режим простого восстановления (если установлен другой)
  3. выполнить резервное копирование
  4. выполнить сжатие

    Sql для шага 1 вы можете найти здесь (никогда не использовал его) https://cavemansblog.wordpress.com/2012/03/12/startstop-sql-server-replication-agent/

SQL для этапа 2 https://msdn.microsoft.com/en-us/library/ms189272.aspx

USE master ;  
ALTER DATABASE youdatabase SET RECOVERY SIMPLE ;
...  
ALTER DATABASE youdatabase SET RECOVERY FULL ;  

Sql для шага 3 https://msdn.microsoft.com/en-us/library/ms186865.aspx

BACKUP DATABASE your_database TO DISK = 'place_your_path_here';

Sql для шага 4 https://msdn.microsoft.com/en-us/library/ms189493.aspx, кстати, B - полный скрипт для ваших нужд:-)

DBCC SHRINKFILE (yourdabase_Log, 1);  

Вам нужно прочитать о том, как делать резервные копии SQL Server и как работают модели восстановления: https://msdn.microsoft.com/en-us/library/ms187048.aspx

Но вкратце:

  • Если для вашей базы данных установлен режим полного восстановления, то вам необходимо выполнить резервное копирование журнала транзакций: используемое пространство в журнале транзакций станет доступным для новых транзакций.

  • Если вы находитесь в простом режиме восстановления, то журнал транзакций должен быть рассчитан для вашего пикового переходного режима (или он, естественно, достигнет этого уровня).

Удаление журнала транзакций - плохая идея, особенно если вы не знаете, как он используется.

Другие вопросы по тегам