簡體   English   中英

從.bak文件恢復文件列表時出錯

[英]Error restoring a filelistonly from .bak file

我試圖從.bak文件中恢復fileliston並收到以下錯誤:

消息3201,級別16,狀態2,行1無法打開備份設備'C:\\ Users ... \\ myFile.bak'。 操作系統錯誤5(訪問被拒絕。)。

該文件最初被阻止,但我取消阻止它,所以這不應該是問題。

錯誤消息准確說明了發生的情況:您已將.BAK文件放在SQL Server服務帳戶無權訪問的文件夾中。

您可以通過授予對SQL Server服務帳戶的配置文件文件夾的訪問權限來“修復”此問題,但這是對安全最佳實踐的不必要的違反。

將文件移動到SQL Server服務帳戶已具有本機訪問權限的位置(如備份或數據目錄)要容易得多。 您可以通過查看以下查詢的結果找到數據文件夾(可能有多個有效位置):

SELECT DISTINCT SUBSTRING(physical_name, 1, LEN(physical_name) 
  - CHARINDEX('\', REVERSE(physical_name)) + 1) 
FROM [master].sys.master_files
WHERE [type] = 0;

如果您已備份任何數據庫(希望您擁有!),您可以通過以下方式找到一些有效的備份位置:

SELECT DISTINCT SUBSTRING(physical_device_name, 1, LEN(physical_device_name) 
  - CHARINDEX('\', REVERSE(physical_device_name)) + 1) 
FROM msdb.dbo.backupmediafamily;

當然,這些都沒有考慮到因素,例如只讀卷上的只讀數據文件,SQL Server可能有權訪問但沒有訪問的卷,沒有足夠空間用於.BAK文件的卷或備份位置過去曾使用但不再存在或無法訪問的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM