sql-server - SQL Server 大型日志文件

标签 sql-server sql-server-2008 sql-server-2012

我的数据库表日志文件很大。表本身是 60 mb,但日志文件是 2gb。有没有办法阻止这个日志文件像暂停它一样增加。我知道我在表格上写了很多,所以日志很大。此外,当我查看数据库的大小时,大小就像 2.9gb,因为它包括日志文件。

有没有办法我可以说停止写入日志文件以管理系统中的空间?我是否应该考虑停止日志写入?这是一个好主意吗?

最佳答案

您不能完全停止日志写入,即使可以,也不应该这样做。您可以做的是确定您是否希望能够恢复到某个时间点。如果这对您很重要,那么您应该保持完全恢复模式并开始运行定期事务日志备份。

如果时间点恢复对您不重要,那么您可以切换到简单恢复模式:

ALTER DATABASE dbname SET RECOVERY SIMPLE;

一旦您(a)执行了完整备份和至少一个日志备份或(b)切换到简单恢复模式,您应该能够将日志文件缩小到合理的程度(关于什么没有真正好的答案在没有更多信息的情况下是“合理的”):
USE dbname;
GO
DBCC SHRINKFILE(dbname_log, 100); -- 100 MB

This question on Database Administators也会很有用。

关于sql-server - SQL Server 大型日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12064555/

相关文章:

SQL Server 2008 在具有空间索引的可空地理列上的性能

sql - 使用 FileTable 通过 SQL INSERT 创建子目录

sql-server - 脚本表为 - ALTER TO 呈灰色 - SQL SERVER

sql - SQL Server LEFT JOIN和WHERE子句

sql - 如何在 MERGE 语句中更新源表?

sql-server-2008 - 为什么Sql Server建议在索引已经存在的情况下创建索引?

Node.js + Node-TDS + Sql Server

c# - 无法连接到 SQL Server,但 Excel 和 ODBC 配置可以

sql - 无法将 NULL 值插入列 'USERNAME',表 'tempdb.dbo.#temptable 错误

SQL Server 将字符串列值连接到 5 个字符长