簡體   English   中英

無法打開備份設備 - SQL Server 本地備份數據庫到 Azure 存儲

[英]Cannot open backup device - SQL Server on-premise backup database to Azure storage

我有一個在本地 SQL Server 實例上運行的數據庫。 我設置了一個 SQL 代理來每晚備份數據庫並存儲在 Azure 的容器中。 但是,我在作業運行后看到以下錯誤:

Message
Executed as user: NT SERVICE\SQLSERVERAGENT. Cannot open backup device 'https://mystorageaccount.blob.core.windows.net/mystoragecontainer/20200102/MYDATABASE_0.bak'. Operating system error 50(The request is not supported.). [SQLSTATE 42000] (Error 3201)  BACKUP DATABASE is terminating abnormally. [SQLSTATE 42000] (Error 3013)

Azure 存儲帳戶是 Storage(通用 v1)。

SQL Server 13.0.5233.0 Microsoft SQL Server Management Studio 14.0.17213.0 Microsoft Analysis Services 客戶端工具 14.0.1016.232 Microsoft 數據訪問組件 (MDAC) 10.0.14393.0 Microsoft MSXML 3.0 6.0 Microsoft Internet Explorer 9.11.149.NET Framework 9.11.14304.03.03.03.04 操作系統框架6.3.14393

有沒有辦法配置 NT SERVICE\\SQLSERVERAGENT 以連接到 Azure 存儲容器?

所有評論在一定程度上都是有效的。 我終於使用 SAS(共享訪問簽名)憑據修復了(松散使用的術語)將我的 SQL Server 數據庫備份到 Azure 存儲容器的問題。

  1. 刪除了 SQL Server 中的現有憑據(在安全 > 憑據下)
  2. 在 Azure 中,在存儲帳戶 > 容器下創建了訪問策略。 定義開始和到期日期/時間、時區以及讀取、寫入級別非常重要。
  3. 在 Azure 中,為容器生成 SAS 令牌。 確保您設置了適當的開始和到期日期/時間以及時區。 不要只依賴UTC。
  4. 將文件上傳到容器以確保一切正常。
  5. 在 SQL Server 中,創建憑據。 秘密應該是沒有前面的 ? 的 SAS 令牌,所以只是 "sv=...." 。
IF NOT EXISTS  
(SELECT * FROM sys.credentials   
WHERE name = 'https://mystorageaccount.blob.core.windows.net/mycontainer')  
CREATE CREDENTIAL [https://mystorageaccount.blob.core.windows.net/mycontainer] 
   WITH IDENTITY = 'SHARED ACCESS SIGNATURE',  
   SECRET = 'sv=_my_sas_key_without_?'; 
  1. 備份數據庫。 URL 和容器必須與憑據匹配 - 在本例中為https://mystorageaccount.blob.core.windows.net/mycontainer
BACKUP DATABASE [mydatabase]   
TO URL = 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydatabase_03012020120400.bak' 
WITH FORMAT,  
COMPRESSION,
STATS=5,
BLOCKSIZE=65536,
MAXTRANSFERSIZE=4194304;
GO 

這似乎是與訪問相關的問題。為了能夠備份到 Azure Blob 存儲,您的備份命令必須具有可以訪問 Blob 存儲的有效憑據。 這可以通過兩種方式完成:

檢查您的憑據,確保您的訪問密鑰正確,如果您使用的是 SAS,請確保訪問策略已定義並且您指向它有權訪問的正確容器。 有關 URL 備份以及腳本示例的更多信息,請參閱:

https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/sql-server-backup-to-url?view=sql-server-2017

  • 共享訪問簽名

  • 身份和訪問密鑰

補充參考:

https://blog.pythian.com/how-to-fix-sql-backup-to-url-failure-operating-system-error-50/

希望能幫助到你。

暫無
暫無

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

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