我有一个SQL Server 2008数据库,其中.mdf
文件为1 GB,.ldf
文件(日志)为70 GB。我真的不知道是什么让我的日志文件在一周内变得如此之大并且停止增加,但我的主要问题是解决这个问题。
我曾经用来减少日志文件缩小它,但我只能收缩IF我先备份它。如果我试图在没有备份的情况下缩小(使用SSMS),即使SSMS显示可用空间很大,也没有任何反应。我可以尝试多次缩小但只有在我先备份时它才会起作用。
问题在于我这次无法备份,因为我没有可用空间(我的HD总大小为120 GB)。
注1:我的数据库设置为使用完整恢复模型,因为我需要能够进行时间点恢复。
注2:我知道缩小会增加索引碎片。收缩后,我可以在索引中使用REBUILD
来避免这种情况。
答案 0 :(得分:5)
您可以暂时将恢复模式设置为简单并截断日志
在上次成功完成日志备份到日志清理后可以执行的下一个差异备份结束之间的时间段内,您将失去时间点恢复能力。但是,在备份时间之后可以进行时间点恢复
您还需要查找处于活动状态的长时间运行事务并找到根本原因
您可以在此处查看http://blog.sqlxdetails.com/transaction-log-survival-guide-shrink-100gb-log/
答案 1 :(得分:1)
在以下命令的帮助下,您可以清除事务日志文件。命令评论很好。
CREATE TEMP TABLE precision_test (test NUMERIC(38,37)) DISTSTYLE ALL
;
INSERT INTO precision_test
SELECT CAST( 0.0000000000000000000000000000000000001 AS NUMERIC(38,37)) test
;
SELECT * FROM precision_test
;
--Returns 0.0000000000000000000000000000000000001