0

有没有一种方法可以定期删除生成的 LDF 文件,因为它占用了我多达 100 GB 的空间,我想释放该空间。有没有办法可以编写一个定期删除这个 LDF 文件的程序?

4

2 回答 2

0

您需要了解如何进行 SQL Server 备份以及恢复模型如何工作:https ://msdn.microsoft.com/en-us/library/ms187048.aspx

但简而言之:

  • 如果您将数据库设置为完全恢复模式,那么您需要进行事务日志备份:事务日志中的已用空间将可用于新事务。

  • 如果您处于简单恢复模式,那么事务日志的大小需要根据您的峰值瞬态使用(或者它自然会达到这个级别)进行调整。

删除事务日志是个坏主意,尤其是在您不知道它是如何使用的情况下。

于 2017-03-14T09:21:56.977 回答
0

你绝对不能删除 LDF 文件只缩小到初始大小。缩小的步骤是

  1. 停止复制(如果有)

  2. 将数据库设置为简单恢复模式(如果设置为其他)

  3. 执行备份

  4. 执行收缩

    第 1 步的 Sql 你可以在这里找到(从未使用过)https://cavemansblog.wordpress.com/2012/03/12/startstop-sql-server-replication-agent/

第 2 步的 Sql https://msdn.microsoft.com/en-us/library/ms189272.aspx

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

第 3 步的 Sql https://msdn.microsoft.com/en-us/library/ms186865.aspx

BACKUP DATABASE your_database TO DISK = 'place_your_path_here';

第 4 步的 Sql https://msdn.microsoft.com/en-us/library/ms189493.aspx,顺便说一句,B 是满足您需求的完整脚本 :-)

DBCC SHRINKFILE (yourdabase_Log, 1);  
于 2017-03-14T09:37:03.203 回答