Sql-Server-2012

備份/恢復具有文件流的數據庫

  • September 8, 2015

我有一個最近添加了 Filestream 數據的 SQL 數據庫。現在我們每天對 QA 伺服器進行備份/恢復,並且由於我添加了 Filestream 數據,這已經開始失敗。所以我修改了“restore”語句以包含“with move”:

RESTORE DATABASE MyDb 
FROM DISK = 'c:\somepath\mydb.bak'
WITH RECOVERY, REPLACE,
MOVE 'MyDb' TO 'f:\sql\MyDb.mdf',
MOVE 'MyDb_Log' TO 'f:\sql\MyBb_log.ldf',
MOVE 'MyDb_Filestream' TO 'f:\sql\MyDb_FS', NOUNLOAD, STATS = 10;

但這失敗並出現以下錯誤:

文件“MyDb_Filestream”無法恢復到“f:\sql\MyDb_FS”。使用 WITH MOVE 標識文件的有效位置。

我已經在 Google 上到處尋找解決方案。 這個答案說您需要 3 個單獨的 RESTORE DATABASE 語句,但沒有說明它們是什麼。這裡接受的答案表明您需要手動複製整個 F​​ilestream 文件夾,我覺得這很難相信。無論如何,它並不清楚這個過程是什麼。

任何人都可以用白痴的分步說明向我說明,應該如何備份包含文件流的數據庫,將其複製到另一台伺服器並在那裡恢復?

謝謝!

我相信這個謎團已經解開了。文件只說 SQL Server 帳戶需要對 filestream 文件夾的完全訪問權限,但是當我檢查誰有權訪問主 DATA 文件夾時,我看到 SYSTEM 帳戶也有訪問權限。我將 FS 文件夾的完全權限授予 SYSTEM 使用者,現在我不再收到此錯誤。

引用自:https://dba.stackexchange.com/questions/73594