本主題描述將 SQL Server 受控備份設定為資料庫Microsoft Azure 的基本步驟,以及設定實例的預設設定。 本主題也會說明針對 SQL Server 實例暫停和繼續受控備份至 Microsoft Azure 服務所需的步驟。
如需將 SQL Server 受控備份設定為 Microsoft Azure 的完整指南,請參閱 設定 SQL Server 受控備份至 Azure 和 設定 SQL Server 受控備份至 Azure 以供可用性群組。
開始之前
限制與制約
- 請勿在目前使用維護計劃或記錄傳送的資料庫上,啟用 SQL Server 受控備份到 Microsoft Azure。 如需與其他 SQL Server 功能互作性和共存的詳細資訊,請參閱 SQL Server 受控備份至 Azure:互作性和共存性
先決條件
SQL Server Agent 應該正在執行。
警告
如果 SQL Server Agent 停止一段時間,然後重新啟動,您可能會看到增加的備份活動,視 SQL Agent 停止和啟動之間的時間長度而定,而且可能會有待辦的記錄備份等候執行。 請考慮設定 SQL Server Agent 在啟動時自動啟動。
在將 SQL Server 受控備份設定為 Microsoft Azure 之前,應該先建立將驗證資訊儲存至記憶體帳戶的 Azure 記憶體帳戶和 SQL 認證。 如需詳細資訊,請參閱 SQL Server 備份至 URL 主題和第 2 課:建立 SQL Server 認證的重要元件和概念一節。
這很重要
SQL Server Managed Backup to Microsoft Azure 會建立必要的容器來儲存備份。 容器名稱是使用 『machine name-instance name』 格式建立的。 針對AlwaysOn可用性群組,容器會使用可用性群組的 GUID 來命名。
安全
權限
若要執行可讓 SQL Server 受控備份至 Microsoft Azure 的預存程式,您必須是 System Administrator
或是 db_backupoperator 資料庫角色的成員,並且擁有 ALTER ANY CREDENTIAL 許可權,以及 sp_delete_backuphistory 和 smart_admin.sp_backup_master_switch
預存程式的許可權。 用來檢閱現有設定的預存程式和函式,通常需要 Execute
預存程式和 Select
函式的許可權。
針對資料庫和實例啟用 SQL Server Managed Backup 至 Microsoft Azure 的注意事項
您可以針對個別資料庫或整個實例啟用 SQL Server 受控備份至Microsoft Azure。 這些選擇取決於實例上資料庫的復原能力需求、管理多個資料庫和實例的需求,以及策略性地使用 Azure 記憶體。
在資料庫層級啟用 SQL Server 受控備份至 Microsoft Azure
如果資料庫具有與實例上其他資料庫不同的備份和保留期間(可復原性 SLA)的特定需求,請將 SQL Server 受控備份設定為在此資料庫的資料庫層級Microsoft Azure。 資料庫層級設定會覆寫實例層級組態設定。 不過,這兩個選項都可以在相同的實例上使用。 以下是在資料庫層級啟用 SQL Server 受控備份以Microsoft Azure 時的優點和考慮清單。
更細微:每個資料庫的個別組態設定。 可以支援個別資料庫的不同保留期間。
覆寫資料庫的實例層級設定。
選取要備份的個別資料庫,可用來降低記憶體成本。
需要管理每個資料庫
啟用 SQL Server 受控備份至 Microsoft Azure,並在實例層級使用預設設定。
如果實例中的大部分資料庫都有備份和保留原則的相同需求,或您想要在建立時自動備份新的資料庫實例,請使用此設定。 原則例外的幾個資料庫仍可個別設定。 以下是在實例層級啟用 SQL Server 受控備份以Microsoft Azure 時的優點和考慮清單。
實例層級的自動化:一般設定會針對之後新增的新資料庫自動套用。
新資料庫會在實例上建立之後不久自動備份
可以套用至具有相同保留期間需求的資料庫。
您仍然可以設定需要不同保留期限的個別資料庫,即使 SQL Server 受控備份在實例層級啟用了 Microsoft Azure 備份的預設設定。 如果您不打算將 Azure 記憶體用於備份,您也可以停用 SQL Server 受控備份以Microsoft Azure 資料庫。
針對資料庫啟用和設定 SQL Server 受控備份以Microsoft Azure
系統使用系統預存程式 smart_admin.sp_set_db_backup
來啟用 Microsoft Azure 的 SQL Server 受控備份,以針對特定資料庫。 當資料庫上第一次啟用 SQL Server 受控備份至 Microsoft Azure 時,除了啟用 SQL Server 受控備份至 Azure Microsoft之外,還必須指定下列資訊:
資料庫的名稱。
保留期間。
用來向 Azure 記憶體帳戶進行驗證的 SQL 認證。
請指定不使用 @encryption_algorithm = NO_ENCRYPTION 加密,或指定支援的加密演算法。 如需加密的詳細資訊,請參閱 備份加密。
只有 Transact-SQL 才支援 SQL Server 受控備份至 Microsoft Azure 以進行資料庫層級設定。
一旦針對資料庫啟用 SQL Server 受控備份至Microsoft Azure,這項資訊就會保存。 如果您要變更組態,只需要資料庫名稱和您想要變更的設定,SQL Server 受控備份Microsoft Azure 會在未指定時保留其他參數的現有值。
這很重要
將 SQL Server 受控備份設定為在資料庫上Microsoft Azure 之前,如果有的話,可能會對現有的設定很有用。 本節稍後會說明檢閱資料庫的組態設定步驟。
使用 Transact-SQL:
如果您第一次啟用 SQL Server 受控備份來Microsoft Azure,則必要的參數為:@database_name、@credential_name、@encryption_algorithm,@enable_backup@storage_url 參數是選擇性參數。 如果您未提供 參數的值 @storage_url ,則會使用 SQL 認證中的記憶體帳戶資訊來衍生值。 如果您提供記憶體 URL,則應該只提供記憶體帳戶根目錄的 URL,而且必須符合您指定的 SQL 認證中的資訊。
連線至資料庫引擎。
在標準列中,按一下 [新增查詢] 。
將下列範例複製並貼到查詢視窗中,然後按下 。
Execute
此範例啟用 SQL Server 受控備份到 Microsoft Azure 的 'TestDB' 資料庫。 保留期限設定為30天。 這個範例會藉由指定加密演算法和加密程式資訊,來使用加密選項。
Use msdb; GO EXEC smart_admin.sp_set_db_backup @database_name='TestDB' ,@enable_backup=1 ,@retention_days =30 ,@credential_name ='MyCredential' ,@encryption_algorithm ='AES_256' ,@encryptor_type= 'Certificate' ,@encryptor_name='MyBackupCert' GO
如需此預存程式的詳細資訊,請參閱 smart_admin.set_db_backup (Transact-SQL)
若要檢閱資料庫的組態設定,請使用下列查詢:
Use msdb GO SELECT * FROM smart_admin.fn_backup_db_config('TestDB')
啟用並設定 SQL Server 受控備份至 Microsoft Azure 的預設設定,適用於實例
您可以使用系統預存程式 smart_admin.set_instance_backup
或 SQL Server Management Studio,在實例層級啟用及設定 SQL Server 受控備份到 Microsoft Azure 的預設設定。 以下說明這兩種方法:
smart_admin.set_instance_backup:。 藉由指定 @enable_backup 參數的值 1,您可以啟用備份並設定預設組態。 在實例層級套用之後,這些預設設定會套用至新增至這個實例的任何新資料庫。 第一次啟用 SQL Server 受控備份至 Microsoft Azure 時,除了在 實例上啟用 SQL Server 受控備份以Microsoft Azure 之外,還必須提供下列資訊:
保留期間。
用來向 Azure 記憶體帳戶進行驗證的 SQL 認證。
加密選項。 請指定不使用 @encryption_algorithm = NO_ENCRYPTION 加密,或指定支援的加密演算法。 如需加密的詳細資訊,請參閱 備份加密。
啟用之後,這些設定就會保存。 如果您要變更組態,只需要資料庫名稱和您想要變更的設定。 SQL Server Managed Backup to Microsoft Azure 未指定時會保留現有的值。
這很重要
在將 SQL Server 管理備份設為在實例上使用 Microsoft Azure 之前,檢查是否存在現有組態可能會有所幫助。 本節稍後會說明檢閱資料庫的組態設定步驟。
SQL Server Management Studio: 若要在 SQL Server Management Studio 中執行這項工作,請移至物件總管,展開 [管理 ] 節點,然後在 [受控備份] 上按兩下滑鼠右鍵。 選取[],然後設定[]。 這會開啟 [受控備份] 對話方塊。 使用此對話框來指定保留期間、SQL 認證、記憶體 URL 和加密設定。 如需此對話框的特定說明,請參閱 設定受控備份 (SQL Server Management Studio) 。
使用 Transact-SQL
連線至資料庫引擎。
在標準列中,按一下 [新增查詢] 。
將下列範例複製並貼到查詢視窗中,然後按下 。
Execute
Use msdb;
Go
EXEC smart_admin.sp_set_instance_backup
@retention_days=30
,@credential_name='sqlbackuptoURL'
,@encryption_algorithm ='AES_128'
,@encryptor_type= 'Certificate'
,@encryptor_name='MyBackupCert'
,@enable_backup=1;
GO
若要檢視實例的預設組態設定,請使用下列查詢:
Use msdb;
GO
SELECT * FROM smart_admin.fn_backup_instance_config ();
使用 PowerShell
啟動 PowerShell 實例
修改後執行下列腳本以符合您的設定
cd SQLSERVER:\SQL\Computer\MyInstance $encryptionOption = New-SqlBackupEncryptionOption -EncryptionAlgorithm Aes128 -EncryptorType ServerCertificate -EncryptorName "MyBackupCert" Get-SqlSmartAdmin | Set-SqlSmartAdmin -BackupEnabled $True -BackupRetentionPeriodInDays 10 -EncryptionOption $encryptionOption
這很重要
當您在設定預設設定之後建立新的資料庫時,最多可能需要 15 分鐘的時間,才能使用預設設定來設定資料庫。 這也適用於從 簡單 變更為 完整 或 大容量日誌 恢復模式的資料庫。
針對資料庫停用 SQL Server 受控備份以Microsoft Azure
您可以使用系統預存程式,停用 SQL Server 受控備份以Microsoft Azure 設定 sp_set_db_backup
。
@enableparameter 用來啟用及停用特定資料庫的 SQL Server 受控備份至 Microsoft Azure 的組態,其中 1 會啟用,0 則會停用組態設定。
若要停用特定資料庫的 SQL Server 受控備份至 Microsoft Azure:
連線至資料庫引擎。
在標準列中,按一下 [新增查詢] 。
將下列範例複製並貼到查詢視窗中,然後按下 。
Execute
Use msdb;
Go
EXEC smart_admin.sp_set_db_backup
@database_name='TestDB'
,@enable_backup=0;
GO
針對實例上的所有資料庫停用 SQL Server 受控備份以Microsoft Azure
當您想要從目前所有資料庫停用 SQL Server 受控備份至 Microsoft Azure 的組態設定(這些資料庫在實例上已啟用 SQL Server 受控備份至 Microsoft Azure)時,請參考以下程序。 儲存體 URL、保留和 SQL 認證等組態設定會保留在元數據中,而且可在稍後為資料庫啟用 sql Server 受控備份至 Microsoft Azure 時使用。 如果您想要暫時暫停 SQL Server 受控備份以Microsoft Azure 服務,您可以使用本主題稍後的下列各節中所述的主要參數。
若要針對所有資料庫停用 SQL Server 受控備份以Microsoft Azure:
連線至資料庫引擎。
在標準列中,按一下 [新增查詢] 。
將下列範例複製並貼到查詢視窗中,然後按下 。
Execute
下列範例會識別是否已在實例層級設定 SQL Server 受控備份至 Microsoft Azure,並將所有 SQL Server 受控備份設定為在實例上Microsoft已啟用 Azure 的資料庫,並執行系統預存程式sp_set_db_backup
來停用 SQL Server 受控備份至 Microsoft Azure。
-- Create a working table to store the database names
Declare @DBNames TABLE
(
RowID int IDENTITY PRIMARY KEY
,DBName varchar(500)
)
-- Define the variables
DECLARE @rowid int
DECLARE @dbname varchar(500)
DECLARE @SQL varchar(2000)
-- Get the database names from the system function
INSERT INTO @DBNames (DBName)
SELECT db_name
FROM
smart_admin.fn_backup_db_config (NULL)
WHERE is_smart_backup_enabled = 1
--Select DBName from @DBNames
select @rowid = min(RowID) FROM @DBNames
WHILE @rowID IS NOT NULL
Begin
Set @dbname = (Select DBName From @DBNames Where RowID = @rowid)
Begin
Set @SQL = 'EXEC smart_admin.sp_set_db_backup
@database_name= '''+'' + @dbname+ ''+''',
@enable_backup=0'
EXECUTE (@SQL)
END
Select @rowid = min(RowID)
From @DBNames Where RowID > @rowid
END
若要檢閱執行個體上所有資料庫的組態設定,請使用下列查詢:
Use msdb;
GO
SELECT * FROM smart_admin.fn_backup_db_config (NULL);
GO
停用預設 SQL Server 受控備份以Microsoft實例的 Azure 設定
執行個體層級的預設設定會套用到建立在該執行個體上的所有新資料庫。 如果您不再需要或需要預設設定,您可以使用 smart_admin.sp_set_instance_backup 系統預存程式來停用此組態。 停用不會移除其他組態設定,像是儲存體 URL、保留設定或 SQL 認證名稱。 如果 SQL Server 受控備份至 Microsoft Azure 的實例稍後啟用,將會使用這些設定。
若要停用 SQL Server 受控備份以Microsoft Azure 預設組態設定:
連線至資料庫引擎。
在標準列中,按一下 [新增查詢] 。
將下列範例複製並貼到查詢視窗中,然後按下 。
Execute
Use msdb; Go EXEC smart_admin.sp_set_instance_backup @enable_backup=0; GO
使用 PowerShell
啟動 PowerShell 實例
執行下列指令碼:
cd SQLSERVER:\SQL\Computer\MyInstance Set-SqlSmartAdmin -BackupEnabled $False
將 SQL Server 受控備份暫停至實例層級Microsoft Azure
有時候,您可能需要暫時暫停 SQL Server 受控備份到 Microsoft Azure 的服務。 系統預存程序允許您在實例層級停用 SQL Server 受控備份到 Microsoft Azure 服務。 相同的預存程式可用來恢復在 SQL Server 中管理的備份至 Microsoft Azure。 參數 @state 可用來定義應關閉或開啟Microsoft Azure 的 SQL Server 受控備份。
若要使用 Transact-SQL 將 SQL Server 受控備份暫停至 Microsoft Azure 服務:
連線至資料庫引擎。
在標準列中,按一下 [新增查詢] 。
將下列範例複製並貼到查詢視窗中,然後按下
Execute
Use msdb;
GO
EXEC smart_admin.sp_backup_master_switch @new_state=0;
Go
若要使用「PowerShell」暫停 SQL Server 受控備份到 Microsoft Azure
啟動 PowerShell 實例
在您修改文稿以符合您的設定之後,請執行下列腳本
cd SQLSERVER:\SQL\Computer\MyInstance Get-SqlSmartAdmin | Set-SqlSmartAdmin -MasterSwitch $False
若要使用 Transact-SQL 將 SQL Server 受控備份恢復到 Microsoft Azure
連線至資料庫引擎。
在標準列中,按一下 [新增查詢] 。
將下列範例複製並貼到查詢視窗中,然後按下 。
Execute
Use msdb;
Go
EXEC smart_admin. sp_backup_master_switch @new_state=1;
GO
若要使用 PowerShell 恢復 SQL Server 至 Microsoft Azure 受控備份
啟動 PowerShell 實例
在您修改文稿以符合您的設定之後,請執行下列腳本
cd SQLSERVER:\SQL\Computer\MyInstance Get-SqlSmartAdmin | Set-SqlSmartAdmin -MasterSwitch $True