2012-04-24 205 views
5

以下是此場景:SQL Server MDF文件 - 如何備份

我們有一個包含三個數據庫的企業網站。它運行SQL Server 2005.三個數據庫鏈接到MDF文件。有人試圖直接複製/粘貼其中一個MDF文件,這些文件在導致只讀錯誤的文件上執行了某種鎖定。我們通過分離/重新附加來解決這個問題。

爲了避免這種情況,我們希望獲取這些數據庫的副本以降級到我們的QA數據庫。

什麼是最好的方式,我們可以製作副本,而不需要把企業網站關閉?我試圖搜索谷歌,並沒有拿出一個體面的方式。數據庫相當小,我能想到的最壞的情況就是關閉SQL Server服務,然後複製MDF,然後重新啓動服務。我假設這是最宕機時間10秒。

[請注意任何人讀這篇文章,不要直接複製MDF文件,請確保你至少採取DB脫機或DB可以鎖定]

+0

對不起,我應該補充說,數據庫是不一樣的網絡上,因爲它的遠程託管的,所以我們不能只移動數據。我們無法連接到QA數據庫。 – dave2118 2012-04-24 14:01:19

+0

你不能只安排備份嗎?然後移動備份文件。 – Ste 2012-04-24 14:01:45

+0

我們可以只是簡單地強制一個備份(數據庫>任務>備份)不會對試圖訪問數據庫的任何用戶有任何影響,是正確的? – dave2118 2012-04-24 14:05:34

回答

2

而不是試圖複製和鎖定MDF文件,只需將數據庫備份到文件系統,然後將其複製。

你問用戶是否會在備份過程中受到影響......

我們不能說,不會有「任何」對用戶的影響,因爲我們當然與數據庫做的事情。但是,備份實時數據庫是常態。一般來說,您可以在夜間或低使用期間安排備份,以便儘可能減少中斷。

看看這個問題,它提供了一些良好的信息: https://serverfault.com/questions/100490/what-happens-during-a-live-sql-server-backup

2

@戴夫,我懷疑你是對的,數據庫>任務>備份將在不中斷用戶訪問數據庫的情況下工作。我在批處理文件中運行以下命令來備份數據庫,並且在運行時不會阻止訪問。我應該注意到,我不是SQL Server的專家;這只是對我有用的東西。

SQLCMD -S 「MYHOSTNAME \ SQLEXPRESS」 -Q「BACKUP DATABASE MyDatabaseName TO DISK = N'C:\路徑\爲\ backup.bak」 WITH NOFORMAT,NOINIT,NAME = N'MyDatabaseName-完全數據庫備份',SKIP,NOREWIND,NOUNLOAD,STATS = 10「

+0

感謝大衛的評論。我就像你一樣,我曾經作爲開發人員與SQL Server合作多年,但在管理方面卻並不多。有了這個基於Oracle的新工作,他們有一個運行SQL Server的企業網站,這個網站在4年內一直沒有被觸及。我被晉升爲SQL Server專家,必須弄清楚這一點。我認爲在這裏問問比猜想要好。 – dave2118 2012-04-24 14:19:35

+0

祝你好運,戴夫! – 2012-04-24 14:21:16