[英]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 存儲容器的問題。
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_?';
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://blog.pythian.com/how-to-fix-sql-backup-to-url-failure-operating-system-error-50/
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.