我需要每天將我們的生產數據庫刷新到另一臺客戶機服務器。如何在Sql Server中將備份文件從一臺服務器移動到另一臺服務器
要求:我需要將.bak文件從服務器a及時移動到服務器b。
我們在這些服務器之間沒有任何網絡驅動器。
有沒有辦法使用SQL Server移動這些文件..
不要有BIDS。
我需要每天將我們的生產數據庫刷新到另一臺客戶機服務器。如何在Sql Server中將備份文件從一臺服務器移動到另一臺服務器
要求:我需要將.bak文件從服務器a及時移動到服務器b。
我們在這些服務器之間沒有任何網絡驅動器。
有沒有辦法使用SQL Server移動這些文件..
不要有BIDS。
有多種選擇。只要啓用它,T-SQL就提供xp_cmdshell
來執行dos命令。有了這個,只要有一個有效的Windows路徑到這兩個位置(當然,權限設置恰當)或者調用可編寫腳本的FTP客戶端,就可以複製文件。當然,我必須指出xp_cmdshell
由於很好的原因被默認禁用,並且啓用可能會大大降低安全性。我已經多次使用它來完成您所描述的幾乎所有內容,但是您必須充分考慮安全後果。
如果你通過網絡移動它,你可能也想使用壓縮。你當然可以用WinZip或7-Zip之類的東西來做,但許多第三方SQL備份程序如Red Gate's SQL Backup都內置了壓縮。
最後,您可能會考慮從SQL以外的地方進行此操作,例如通過更優雅地處理文件操作的Powershell,並且可以通過SMO與SQL Server一起使用。
其實我是新到SQL Server,有移動使用SQL腳本而不是使用DOS程序,所有這些文件的任何直接的方式。 – user922161
不在TSQL中。 TSQL首先是一種查詢語言,儘管它有像xp_cmdshell這樣的東西來提供靈活性。 SSIS有選擇,但即使SSIS也會在幕後調用OS命令。當我開始時(在Powershell出現之前),我經常使用xp_cmdshell來完成您所描述的內容。現在,我建議使用Powershell和Task Scheduler,如果你需要它的話,除非在SQL裏面有一些非常有說服力的理由。 – TimothyAWiseman