是否可以使用DBCC SHRINKFILE缩小链接服务器上的日志文件?

时间:2010-08-17 21:04:21

标签: sql-server linked-server logfiles shrink

我正在从链接服务器上的一个数据库到另一个数据库进行大量数据存档。我正在从MS sql server 2000复制到MS sql server 2005。 这涉及复制数百万条记录然后删除它们。这一切都通过动态脚本发生。我想在这个过程中加入日志文件的缩小,但是我无法让DBCC SHRINKFILE为链接服务器工作。这甚至可能吗?

1 个答案:

答案 0 :(得分:1)

您应该可以通过链接服务器调用sp_executesql来执行此操作:

EXEC [LINKED_SERVER].MyDatabase.dbo.sp_executesql
    @statement = N'DBCC SHRINKFILE(''LogFileName'',0)'

但是,您应该重新考虑自动缩小日志文件,特别是如果此脚本经常运行以至于您需要自动化它。您最好备份日志或将恢复模型切换为Simple,以便重用该空间。 (如果它会恢复到相同的大小,你真的通过缩小它来完成任何事情吗?实际上,你可以通过无意中引入文件系统碎片来使事情变得更糟。)

我不是说你永远不需要以编程方式缩小文件,但是想要这样做通常是其他错误的标志 - 磁盘对于你的预期卷太小,你有错误的恢复模型等等