Azure SQL 資料庫的維護時段相關問題

適用於:Azure SQL 資料庫

維護時段功能可讓您設定 Azure SQL DatabaseAzure SQL 受控執行個體 資源的維護排程,讓具影響力的維護事件可預測,並且對您的工作負載減少干擾。

注意

維護時段功能只會防止來自升級或排程維護的規劃影響。 無法防止所有容錯移轉原因;在維護時段之外可能造成短暫連線中斷的例外狀況,包括硬體故障、叢集負載平衡,以及由於資料庫服務等級目標變更之類的事件而導致資料庫重新設定。

事先通知可用於設定為使用非預設維護期間的資料庫。 事先通知可讓客戶將通知設定為在任何計劃性事件前最多 24 小時傳送。

概觀

Azure 會定期執行 SQL Database 資源的計劃性維護。 在維護事件期間,資料庫完全可用,但是會受限於 SQL Database 可用性服務等級協定(SLA) 內短暫的重新設定。

維護時段適用於不具資料庫重新設定復原能力的生產工作負載,而且無法吸收由計劃性維護事件所造成的短暫連線中斷。 藉由選擇您偏好的維護時段,您可以將計劃性維護的影響降到最低,因為這會在您的尖峰上班時間以外發生。 復原性工作負載和非生產工作負載可能會依賴 Azure SQL 的預設維護原則。

維護時段是免費的,而且可以在建立時或針對現有的資源進行設定。 您可以使用 Azure 入口網站、PowerShell、CLI 或 Azure API 來設定。

重要

設定維護時段是一項長時間執行的非同步作業,類似於變更 Azure SQL 資源的服務層級。 資源可在作業期間使用,但在作業結束時所發生的短暫重新設定除外,即使在中斷長時間執行的交易時,通常也會持續最多 8 秒的時間。 若要將重新設定的影響降到最低,您應該在尖峰時間以外的時間執行作業。

使用維護時段獲得更多可預測性

根據預設,Azure SQL 維護原則會在當地每天上午 8 點到下午 5 點期間封鎖大部分具影響力的更新,以避免在一般尖峰上班時間期間發生任何中斷。 本地時間取決於託管資源的 Azure 區域位置,而且可能會依照當地時區定義來觀察日光節約時間。

在維護期間,資料庫仍可供使用,但某些更新可能需要容錯移轉。 系統預設維護時段 (下午 5 點到上午 8 點) 將大部分的活動限制在這個時間,但緊急更新可能會在這個時間之外發生。 若要確保所有更新只會在維護期間發生,請選取非預設選項。

可以從兩個非預設維護時段中選擇,將維護更新時段調整為適合您的 Azure SQL 資源的時間:

  • 工作日時段:當地時間下午 10:00 到上午 6:00,週一 - 週四
  • 週末時段:當地時間下午 10:00 到上午 6:00,週五 - 週日

列出的維護時段天數表示每八小時維護時段的開始日期。 例如,「當地時間下午 10:00 到上午 6:00,週一 - 週四」表示維護時段從當地時間每天 (週一到週四) 下午 10:00 開始,並且在當地時間隔日 (週二到週五) 上午 6:00 完成。

一旦進行維護時段選取並完成服務設定,就只會在您選擇的時段期間進行計劃性維護。 雖然維護事件通常會在單一時段中完成,但其中有些可能會跨越兩個以上的相鄰時段。

注意

Azure SQL 資料庫遵循一項安全部署實務,確保在 Azure 配對的區域不會同時進行部署。 不過,由於無法預測哪個區域會先升級,因此不保證部署順序。 有時您的主要資料庫會先升級,有時則可能是次要資料庫。

  • 當為異地複寫容錯移轉群組啟用您的資料庫,並且異地複寫和 Azure 區域配對不相符時,您應該為主要和次要資料庫設定不同的維護視窗排程。 例如,您可以為您的異地次要資料庫選取 [工作日] 維護視窗,為您的異地主要資料庫選取 [週末] 維護視窗。

重要

在非常罕見的情況下,任何延後的動作可能會造成嚴重的影響,例如套用重大安全性修補程式,可能會暫時覆寫已設定的維護時段。

進階通知

您可以設定維護通知,以警示您 Azure SQL 資料庫即將推出的計劃性維護事件。 警示會提前 24 小時抵達,在維護期間開始前,以及在維護結束時。 如需詳細資訊,請參閱預先通知

功能可用性

支援的訂用帳戶類型

設定和使用維護時段適用於下列供應項目類型:隨用隨付、雲端解決方案提供者 (CSP)、Microsoft Enterprise 合約或 Microsoft 客戶合約。

僅限開發/測試使用的供應項目不符合 (例如隨用隨付開發/測試或 Enterprise 開發/測試)。

注意

Azure 供應項目是您擁有之 Azure 訂用帳戶的「類型」。 例如,採用隨用隨付費率的訂用帳戶Azure in OpenVisual Studio Enterprise 皆為 Azure 供應項目。 每個供應項目或方案各有不同的條款和權益。 您的供應項目或方案會顯示在訂用帳戶的概觀上。 如需將您的訂用帳戶切換至不同供應項目的詳細資訊,請參閱將 Azure 訂用帳戶變更為其他供應項目

支援的服務等級目標

可在所有 SLO 上選擇預設值以外的維護時段,以下項目除外

  • 不支援 SLO:
    • Azure SQL Database DTU Basic、S0 和 S1 層
    • DC 硬體
    • Fsv2 硬體

超大規模彈性集區的維護時段處於預覽狀態,並可在特定區域和組態中使用。 如需詳細資訊,請參閱部落格:Azure SQL 資料庫超大規模彈性集區的維護時段支援

Azure SQL 資料庫維護時段的區域支援

選擇 Azure SQL 資料庫預設以外的維護時段目前可在下列區域中使用,並透過購買模型來組織。

下列資料表適用於非 區域備援的資料庫。 針對 Azure 可用性區域中的資料庫,請參閱區域備援資料庫的資料表

Azure 區域 超大規模進階系列和進階系列記憶體已最佳化 超大規模標準系列 所有其他 Azure SQL 資料庫購買模型和分層
澳大利亞東部 .是
澳大利亞東南部
巴西南部
巴西東南部 Yes Yes
加拿大中部 .是
加拿大東部 Yes
印度中部 Yes
美國中部 .是
中國東部 2
中國北部 2 Yes
美國東部 1 Yes .是
美國東部 2 .是
東亞
法國中部
法國南部
德國中西部 Yes
日本東部 .是
日本西部 Yes
美國中北部
北歐 .是 Yes
南非北部 Yes Yes
美國中南部 .是
印度南部
東南亞
瑞士北部 Yes
阿拉伯聯合大公國北部
英國南部 .是
英國西部 Yes
US Gov 德克薩斯州 Yes Yes
US Gov 維吉尼亞州
美國中西部
西歐 .是 Yes
美國西部 .是
美國西部 2 .是
美國西部 3 Yes .是 Yes

下列資料表適用於區域備援的資料庫。

Azure 區域 超大規模進階系列和進階系列記憶體已最佳化 超大規模標準系列 所有其他在 Azure 可用性區域中的 Azure SQL 資料庫購買模型和分層
澳大利亞東部 .是 Yes
加拿大中部 .是 Yes
美國中部 .是 Yes
美國東部 1 Yes .是
美國東部 2 Yes
日本東部 Yes
北歐 .是 Yes
美國中南部 Yes
東南亞 Yes
英國南部 Yes
西歐 .是
美國西部 2 Yes
美國西部 3 Yes .是 Yes

閘道維護

若要從維護時段中獲得最大效益,請確定您的用戶端應用程式是使用重新導向連線原則。 重新導向是建議的連線原則,用戶端直接與裝載資料庫的節點建立連線,導致延遲降低和輸送量提高。

在 Azure SQL Database 中,使用 Proxy 連線原則的任何連線,都可能會受到所選維護時段和閘道節點維護時段的影響。 不過,使用建議重新導向連線原則的用戶端連線不會受到閘道節點維護重新設定的影響。

如需 Azure SQL Database 中用戶端連線原則的詳細資訊,請參閱 Azure SQL Database 連線原則

擷取維護事件清單

Azure Resource Graph 是一項 Azure 服務,其旨在延伸 Azure 資源管理。 Azure Resource Graph Explorer 會透過大規模查詢一組指定訂用帳戶的能力,提供有效率且高效能的資源探索,讓您可以有效地治理環境。

您可以使用 Azure Resource Graph Explorer 來查詢維護事件。 如需如何執行這些查詢的簡介,請參閱快速入門:使用 Azure Resource Graph Explorer 執行您的第一個 Resource Graph 查詢

若要檢查訂閱中所有 SQL 資料庫的維護事件,請在 Azure Resource Graph Explorer 中使用下列範例查詢:

servicehealthresources
| where type =~ 'Microsoft.ResourceHealth/events'
| extend impact = properties.Impact
| extend impactedService = parse_json(impact[0]).ImpactedService
| where  impactedService =~ 'SQL Database'
| extend eventType = properties.EventType, status = properties.Status, description = properties.Title, trackingId = properties.TrackingId, summary = properties.Summary, priority = properties.Priority, impactStartTime = todatetime(tolong(properties.ImpactStartTime)), impactMitigationTime = todatetime(tolong(properties.ImpactMitigationTime))
| where eventType == 'PlannedMaintenance'
| order by impactStartTime desc

如需範例查詢的完整參考,以及如何跨 PowerShell 或 Azure CLI 等工具加以使用,請瀏覽 Azure Resource Graph 的 Azure 服務健康情況範例查詢