2013-07-15 33 views
0

我正在一個地方在sql服務器上查找。我們有超過100個數據庫(.mdf)。我想將mdf文件中的更新數據複製到另一個位置。假設我第一次分離位置C:\ Program Files(x86)\ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA中的所有數據庫,並將它們複製到另一個位置,例如C:\並重新附加所有原始文件(由於sql server使用而分離)。現在我有C盤拷貝。我需要一個查詢或步驟來將所有數據庫中的更新數據從我的原始位置複製到位置(位於c驅動器中)並定期複製。我已經搜索了這個,並找到解決方案,首先停止您的服務。但我不能這樣做,因爲在我公司24小時輪班和定期更新數據。所以沒有機會這樣做。並且我也用批處理文件測試了它。如何將mdf的數據複製到sql服務器中的另一個mdf文件中

xcopy /y /d /r /s /e "C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\TestAxle.mdf" "c:\TestAxle.mdf"

但它示出了錯誤消息共享Voilation 還與以下命令進行測試:

copy /y "C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\TestAxle.mdf" "c:\TestAxle.mdf"

但其也示出文件是由另一過程使用。

請告訴我如何定期更新mdf文件中的更新數據。

謝謝

回答

1

這聽起來對我來說就像你試圖創建一個備份。如果是這種情況,請改用備份命令。雖然它不創建「mdf」文件,但備份將包含原始mdf文件包含的所有內容,包括未使用頁面的內容。

使用CREATE BACKUP命令(http://msdn.microsoft.com/en-us/library/ms187510(v=sql.105).aspx)可以執行備份而不關閉服務或以其他方式阻止訪問數據庫。 (在大多數情況下,甚至沒有明顯的性能影響。)

還要記住,SQL Server備份保證在事務上一致。 mdf文件的副本(至少如果沒有其ldf文件保存)不保證在事務上一致。

獲取mdf文件的實際副本是不可能的,因爲文件被服務鎖定。我能想到的唯一方法就是SAN複製。

如果這兩個選項在您的病例中不起作用,請回復您嘗試通過複製這些副本來實現的目標。

+0

不,我不想創建數據庫的備份。它類似於備份。其實我想將生產中新近更新的數據動態複製到我的備份文件中。當用戶從數據庫插入或更新詳細信息時,任何計劃都會運行特定的時間,並查看數據庫表是否具有新的更新並將該數據複製到我的備份文件。請讓我知道如何做到這一點。 –

+0

SQL Server知道三種類型的備份:完整,差異和日誌。完整備份是整個數據集的副本,差異備份包含自上次完整備份以來更改的所有內容,並且日誌備份包含足夠的信息以重新創建自上次日誌備份以來發生的更改。開始尋找有關如何設計備份策略的信息的地方是http://msdn.microsoft.com/en-us/library/ms191239(v=sql.105).aspx或只搜索「SQL Server備份策略」。 –

相關問題