每个月,我们都会制作生产数据库的月末快照。这些月末快照严格用于报告目的,没有任何插入,更新或删除操作。每个快照都有一个.MDF
和.LDF
文件。
我想删除.LDF
文件并释放服务器上的一些空间。有什么原因需要保留.LDF
文件?
澄清:
我们的生产数据库每天晚上都从另一个系统的文件提取中重新创建。我们只报告生产数据库,没有更新。
夜间过程:据
我所知...
每天晚上,数据库表都被截断
。表通过一系列批量插入语句填充。
索引被重建
每个月,我们都会制作生产数据库的月末快照。这些月末快照严格用于报告目的,没有任何插入,更新或删除操作。每个快照都有一个.MDF
和.LDF
文件。
我想删除.LDF
文件并释放服务器上的一些空间。有什么原因需要保留.LDF
文件?
澄清:
我们的生产数据库每天晚上都从另一个系统的文件提取中重新创建。我们只报告生产数据库,没有更新。
夜间过程:据
我所知...
每天晚上,数据库表都被截断
。表通过一系列批量插入语句填充。
索引被重建
Answers:
如另一个答案所述,您无法删除日志文件。您可以将数据库设置为READ_ONLY
。如果数据库位于中READ_ONLY
,则不允许进行任何修改,并且日志文件将不会增长。您可以将日志文件的大小减小到最小,并实现最小占用空间的目标。要设置数据库,请READ_ONLY
运行以下命令:
USE master;
GO
ALTER DATABASE databasename SET READ_ONLY;
GO
您可以将数据库改回READ_WRITE
,进行所需的任何更改,然后将其设置为所需的READ_ONLY
任何时间。
仍然需要日志文件来维护数据库的ACID属性。
事实是您可以仅使用mdf文件来创建数据库。这是sp_attach_single_file_db(Transact-SQL)命令。请注意,它将在将来的Microsoft SQL Server版本中删除。但是,删除LDF文件并不明智。鲨鱼是对的,“您要为此提出麻烦”。另一种观点-您的ldf文件很大吗?如果是这样,您可以对它们做一些事情。
这是我提出的缩小LDF文件的解决方案。
这将重新创建一个504K大小的LDF文件。
这已经收回了服务器上的大量磁盘空间。它对我们有用,因为所有这些数据库仅是静态报告数据库。不会对这些数据库执行插入,更新或删除操作。
更新2019-09-24:是的,我同意这是一个非常糟糕的主意。我几乎立即停止这样做。我已使用100的填充因子重建了所有索引。仅缩小.ldf文件。并将所有数据库更改为只读。