Azure SQL 受控執行個體連結功能的最佳做法

適用於:Azure SQL 受控執行個體

本文章會概略介紹使用 Azure SQL 受控執行個體連結功能時的最佳做法。 Azure SQL 受控執行個體的連結功能會將裝載在任何位置的 SQL 伺服器連線到 SQL 受控執行個體,提供至雲端的近即時資料複寫速度。

注意

連結的部分功能已正式推出,但某些功能目前仍為預覽版。 請參閱必要條件以深入了解。

定期進行記錄備份

連結功能會使用基於 Always On 可用性群組的分散式可用性群組技術來複寫資料。 採用分散式可用性群組的資料複寫是以複寫交易記錄檔記錄為基礎。 在複寫到次要複本上的資料庫之前,無法從主要 SQL Server 執行個體上的資料庫截斷交易記錄檔記錄。 如果交易記錄檔記錄複寫因網路連線問題而變慢或遭到封鎖,記錄檔會持續在主要執行個體上增長。 增長速度取決於工作負載強度和網路速度。 如果主要執行個體上出現長時間網路連線中斷情形和繁重的工作負載,記錄檔會佔用所有可用的儲存空間。

若要盡量減少記錄檔增長而導致主要 SQL Server 執行個體空間不足的風險,請務必在 SQL Server 作為主要執行個體時定期進行資料庫記錄備份。 當 SQL 受控執行個體是主要執行個體時,不需要採取額外的動作,因為記錄備份已經自動進行。 若定期在 SQL Server 主要執行個體上進行記錄備份,您的資料庫會更易於因應非計劃性的記錄增長事件。 第一個資料庫記錄備份只應在初始植入至 SQL 受控執行個體完成之後才會進行 (亦即,SQL 受控執行個體上的資料庫複本不再處於「還原」狀態)。 可考慮使用 SQL Server Agent 作業來排程每日記錄備份工作。

您可以使用 Transact-SQL (T-SQL) 指令碼來備份記錄檔,例如本節中提供的範例。 請將範例指令碼中的預留位置取代為您資料庫的名稱、備份檔案的名稱和路徑,以及描述。

若要備份交易記錄,請在 SQL Server 上使用下列 Transact-SQL (T-SQL) 指令碼範例:

-- Execute on SQL Server
-- Take log backup
BACKUP LOG [<DatabaseName>]
TO DISK = N'<DiskPathandFileName>'
WITH NOFORMAT, NOINIT,
NAME = N'<Description>', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 1

請使用下列 Transact-SQL (T-SQL) 命令來檢查資料庫在 SQL Server 上所使用的記錄空間:

-- Execute on SQL Server
DBCC SQLPERF(LOGSPACE); 

範例資料庫 tpcc 的查詢輸出如下所示:

Screenshot with results of the command showing log file size and space used

在此範例中,資料庫已使用 76% 的可用記錄,且絕對記錄檔大小約為 27 GB (27,971 MB)。 動作的閾值會根據您的工作負載而有所不同。 在上一個範例中,交易記錄大小和記錄使用的百分比通常表示,您應該建立交易記錄備份來截斷記錄檔並釋放一些空間,或者您應該更頻繁地進行記錄備份。 另外,其也可能表示未清交易會封鎖交易記錄截斷。 如需在 SQL Server 中對交易記錄進行疑難排解的詳細資訊,請參閱完整交易記錄 (SQL Server 錯誤 9002) 的疑難排解。 如需針對 Azure SQL 受控執行個體中的交易記錄進行疑難排解的詳細資訊,請參閱針對 Azure SQL 受控執行個體的交易記錄錯誤進行疑難排解

新增啟動追蹤旗標

在 SQL Server 中,有兩個追蹤旗標 (-T1800-T9567),若將之新增為啟動參數,即可透過連結將資料複寫效能最佳化。 若要深入了解,請參閱啟用啟動追蹤旗標 (英文)。