CREATE CREDENTIAL [https://mystorage.blob.core.windows.net/backups]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sv=2020-08-04&ss=b&srt=co&sp=rwdlacx&se=2025-01-01T00:00:00Z&st=2024-01-01T00:00:00Z&spr=https&sig=xxxx';
-- 或使用帳戶金鑰 (不建議生產環境)
-- CREATE CREDENTIAL ... WITH IDENTITY = 'mystorage', SECRET = 'account_key';
BACKUP DATABASE AdventureWorks2019
TO URL = 'https://mystorage.blob.core.windows.net/backups/AdventureWorks2019_Full_20240115.bak'
WITH
CREDENTIAL = 'https://mystorage.blob.core.windows.net/backups',
COMPRESSION, -- 壓縮減少傳輸/儲存
CHECKSUM, -- 頁面校驗和
STATS = 5; -- 進度報告
-- 差異
BACKUP DATABASE AdventureWorks2019
TO URL = '.../AdventureWorks2019_Diff_20240115_1200.bak'
WITH DIFFERENTIAL, CREDENTIAL = '...', COMPRESSION;
-- 交易記錄 (需 FULL/BULK_LOGGED 復原模式)
BACKUP LOG AdventureWorks2019
TO URL = '.../AdventureWorks2019_Log_20240115_1215.trn'
WITH CREDENTIAL = '...', COMPRESSION;
RESTORE DATABASE AdventureWorks2019
FROM URL = 'https://mystorage.blob.core.windows.net/backups/AdventureWorks2019_Full_20240115.bak'
WITH
CREDENTIAL = 'https://mystorage.blob.core.windows.net/backups',
MOVE 'AdventureWorks2019' TO 'D:\Data\AdventureWorks2019.mdf',
MOVE 'AdventureWorks2019_Log' TO 'L:\Log\AdventureWorks2019_Log.ldf',
REPLACE, STATS = 5;
-- SQL Server Agent 作業步驟
-- 完整備份:每日 02:00
-- 差異備份:每 6 小時
-- 記錄備份:每 15 分鐘
-- 保留策略:配合 Blob 生命週期管理規則自動轉冷/刪除
使用 Azure Pricing Calculator 精確估算。
SQL Server 原生備份至 Azure Blob 以標準 T-SQL、VDI 架構、企業級安全性,為混合雲與雲原生部署提供零代碼變更的資料保護方案。