2010-08-17 44 views
0

我正在做一個數據從一個數據庫到鏈接服務器上的另一個數據庫的大型檔案。我正在從MS sql server 2000複製到MS sql server 2005. 這涉及到複製數百萬條記錄然後刪除它們。這一切都是通過動態腳本實現的。我想合併此過程的日誌文件的縮小,但我無法使DBCC SHRINKFILE在鏈接服務器上工作。這甚至有可能嗎?使用DBCC SHRINKFILE可以收縮鏈接服務器上的日誌文件嗎?

回答

1

您應該能夠通過調用sp_executesql通過鏈接服務器來做到這一點:

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

你或許應該自動重新考慮收縮日誌文件,雖然,特別是如果這個腳本會如此頻繁,你需要運行使其自動化。最好備份日誌或將恢復模式切換爲簡單,以便可以重新使用該空間。 (如果它將恢復到相同的大小,你是否真的通過縮小來完成任何事情?事實上,如果無意中引入文件系統碎片,可能會使事情變得更糟)。

我不是說你永遠不需要縮小一個文件編程,但想這樣做通常是一個標誌別的是錯誤的 - 磁盤對於您的預期音量太小,你有錯誤的恢復模式,等等。

相關問題