共用方式為


Azure 架構良好的架構檢閱 - Azure SQL 資料庫

Azure SQL 資料庫 是完全受控的平臺即服務(PaaS)資料庫引擎,可處理大部分的資料庫管理功能,而不需要使用者介入。 管理功能包括升級、修補程序、備份和監視。

單一資料庫資源類型會使用自己的資源集在 Azure SQL 資料庫 中建立資料庫,並透過邏輯伺服器進行管理。 您可以選擇 以 DTU 為基礎的購買模型以虛擬核心為基礎的購買模型。 您可以使用彈性集區,在單一資源集區中建立多個資料庫。

下列各節包含設計檢查清單,以及 Azure SQL 資料庫 安全性專屬的建議設計選項。 本指南以架構卓越五大要素為基礎:

  • 可靠性
  • 安全性
  • 成本最佳化
  • 卓越營運
  • 效能效益

必要條件

Azure SQL 資料庫 和可靠性

Azure SQL 資料庫 是完全受控的平臺即服務(PaaS)資料庫引擎,可處理大部分的資料庫管理功能,而不需要使用者介入。 管理功能包括:

  • 升級
  • 修補程式
  • 備份
  • 監視

此服務可讓您為 Azure 應用程式和工作負載建立高可用性和高效能的數據儲存層。 Azure SQL 資料庫 一律會在最新穩定版本的 SQL Server 資料庫引擎和已修補的操作系統上執行,並提供99.99%可用性。

如需 Azure SQL 資料庫 如何提升可靠性,並讓您的企業在中斷期間繼續運作的詳細資訊,請參閱可用性功能

下列各節包括設計考慮、設定檢查清單,以及 Azure SQL 資料庫 和可靠性專屬的建議組態選項。

設計考量

Azure SQL 資料庫 包含下列設計考慮:

  • 使用異地復寫設定的 Azure SQL 資料庫 業務關鍵 層,其已部署時間的保證復原時間目標 (RTO) 為30100%數。

  • 使用 分區化 ,將數據和程式分散到許多相同結構化的資料庫。 分區化提供傳統相應增加方法的替代方案,以取得成本和彈性。 請考慮使用分區化水準分割資料庫。 分區化可以提供錯誤隔離。 如需詳細資訊,請參閱使用 Azure SQL 資料庫 向外延展。

  • Azure SQL 資料庫 業務關鍵 或進階層未針對區域備援部署、一般用途、標準或基本層,或具有兩個或多個復本的超大規模資料庫層設定可用性保證。 如需可用性保證的詳細資訊,請參閱 Azure SQL 資料庫 的 SLA。

  • 為任何 Azure 區域提供內建區域高可用性和周全異地複寫。 它包含支援自駕功能的智慧,例如:

    • 效能微調
    • 威脅監視
    • 弱點評估
    • 程式代碼基底的完全自動化修補和更新
  • 定義應用程式效能 SLA,並使用警示加以監視。 快速偵測應用程式效能不小心降低到可接受的層級以下,這對維持高復原能力很重要。 使用先前定義的監視解決方案來設定關鍵查詢效能計量的警示,以便在效能中斷 SLA 時採取動作。 如需詳細資訊,請移至 [ 監視您的資料庫 ] 和 [警示工具 ]。

  • 使用異地還原從服務中斷復原。 您可以從最新的異地復寫備份,還原任何 SQL 資料庫 伺服器或任何 Azure 區域中任何受控實例上的實例資料庫。 使用異地複寫備份作為來源進行異地還原。 即使資料庫或數據中心因為中斷而無法存取,您也可以要求異地還原。 異地還原會從異地備援備份還原資料庫。 如需詳細資訊,請參閱 使用自動資料庫備份復原 Azure SQL 資料庫。

  • 使用設定為異地復寫的 業務關鍵 層,其已部署時間的保證恢復點目標 (RPO) 為5100%數。

  • 內建至 Azure SQL 資料庫的 PaaS 功能可讓您將焦點放在對企業非常重要的網域特定資料庫管理和最佳化活動上。

  • 使用時間點還原從人為錯誤復原。 時間點還原會將資料庫傳回先前的時間點,以便不小心從所做的變更復原數據。 如需詳細資訊,請參閱 時間點還原 (PITR) 檔。

  • 業務關鍵 或進階層會設定為具有可用性保證的區域備援部署。 如需可用性保證的詳細資訊,請參閱 Azure SQL 資料庫 的 SLA。

檢查清單

您是否已將 Azure SQL 資料庫 設定為可靠性?


  • 使用主動式異地復寫在不同的區域中建立可讀取的次要複本。
  • 使用可包含一或多個資料庫的自動故障轉移群組,通常由相同的應用程式使用。
  • 使用區域備援資料庫。
  • 近乎即時地監視您的 Azure SQL 資料庫,以偵測可靠性事件。
  • 實作重試邏輯。
  • 備份金鑰。

組態建議

探索下列建議表格,以將 Azure SQL 資料庫 設定優化,以達到可靠性:

建議 描述
使用主動式異地復寫在不同的區域中建立可讀取的次要複本。 如果您的主資料庫失敗,請執行手動故障轉移至輔助資料庫。 在您故障轉移之前,輔助資料庫會保持只讀狀態。 主動式異地復 寫可讓您建立可讀取的複本,並在數據中心中斷或應用程式升級時手動故障轉移至任何複本。 相同或不同區域支援最多四個次要,次要也可用於唯讀存取查詢。 故障轉移必須由應用程式或使用者手動起始。 故障轉移之後,新的主要複本有不同的連接端點。
使用可包含一或多個資料庫的自動故障轉移群組,通常由相同的應用程式使用。 您可以使用可讀取的輔助資料庫卸除只讀查詢工作負載。 因為自動故障轉移群組牽涉到多個資料庫,因此這些資料庫必須在主伺服器上設定。 自動復原群組支援將群組中的所有資料庫複寫至不同區域中的一部輔助伺服器或實例。 深入瞭解 AutoFailover 群組DR設計
使用區域備援資料庫。 依照預設,系統會在相同的資料中心內建立進階可用性模型的節點叢集。 隨著 Azure 可用性區域的推出,SQL Database 可以將商務關鍵資料庫的不同複本放置到相同地區中的不同可用性區域。 為了避免發生單點失敗,系統也會跨多個區域將控制環複寫成三個閘道環 (GW)。 Azure 流量管理員 (ATM) 會控制特定閘道的路由。 由於進階或 業務關鍵 服務層級中的區域備援設定不會建立額外的資料庫備援,因此您可以不需額外費用加以啟用。 深入了解 區域備援資料庫
近乎即時地監視您的 Azure SQL 資料庫,以偵測可靠性事件。 使用其中一個可用的解決方案來監視 SQL DB,以儘早偵測潛在的可靠性事件,並讓您的資料庫更可靠。 選擇近乎即時的監視解決方案,以快速回應事件。 如需詳細資訊,請參閱 Azure SQL 分析。
實作重試邏輯。 雖然 Azure SQL 資料庫 在考慮可轉移的基礎結構失敗時具有復原性,但這些失敗可能會影響您的連線能力。 使用 SQL 資料庫 時發生暫時性錯誤時,請確定您的程式代碼可以重試呼叫。 如需詳細資訊,請參閱 如何實作重試邏輯
備份金鑰。 如果您未在 Azure 中使用加密金鑰 金鑰保存庫 來保護您的資料,請備份您的金鑰。

Azure SQL 資料庫 和安全性

SQL Database 提供了各式各樣的內建安全性與合規性功能,協助您的應用程式符合各種安全性與合規性需求。

設計檢查清單

您是否已設計工作負載並設定 Azure SQL 資料庫,並考慮到安全性?


  • 瞭解 邏輯伺服器 ,以及如何適當時管理多個資料庫的登入。
  • 使用 Azure SQL 啟用Microsoft Entra 驗證。 Microsoft Entra 驗證可簡化許可權管理和集中式身分識別管理。
  • Azure SQL 邏輯伺服器應該已 建Microsoft Entra 系統管理員。
  • 確認 Azure 訂用帳戶中服務管理員和共同管理員的連絡資訊電子郵件地址已連絡企業內部的正確合作物件。 您不想錯過或忽略來自 Azure 的重要安全性通知!
  • 檢閱 Azure SQL 資料庫 連線架構Redirect視需要選擇 或 Proxy 連線原則
  • 檢閱 Azure SQL 資料庫 防火牆規則
  • 使用 虛擬網路規則 來控制虛擬網路中特定子網的通訊。
  • 如果使用 Azure 防火牆,請使用 SQL FQDN 設定 Azure 防火牆 應用程式規則。

建議

建議 優點
檢閱 最低 TLS 版本 判斷您是否有需要較舊 TLS 或未加密連線的舊版應用程式。 強制執行某個 TLS 版本之後,就無法還原為預設值。 檢閱並設定透過 Azure 入口網站 連線 SQL 資料庫的最低 TLS 版本。 如果沒有,請將最新的 TLS 版本設定為最小值。
總帳 請考慮根據 總賬 設計資料庫數據表,以提供所有數據變更的稽核、竄改和信任。
Always Encrypted 請考慮設計以 Always Encrypted 為基礎的應用程式存取,藉由委派加密密鑰的數據存取來保護應用程式內的敏感數據。
私人端點和私人連結 私人端點連線會藉由啟用 Azure SQL 資料庫 的私人連線,強制執行安全通訊。 您可以使用私人端點來保護連線,並預設拒絕公用網路存取。 適用於 Azure 的 Azure Private Link SQL 資料庫 是建議用於 Azure SQL 資料庫 的私人端點類型。
自動化弱點評估 監視弱點評估掃描結果和建議,以瞭解如何補救資料庫弱點。
進階威脅防護 偵測異常活動,指出使用適用於 Azure SQL 資料庫 的進階威脅防護來存取或惡意探索資料庫的異常和潛在有害嘗試。 進階威脅防護會將其警示與適用於雲端的 Microsoft Defender 整合。
稽核 使用 Azure SQL 資料庫 稽核來追蹤資料庫事件。
受控識別 請考慮設定使用者指派的受控識別 (UMI)。 Azure 資源的 受控識別不需要在程式碼中管理認證。
僅限 Microsoft Entra 驗證 請考慮停用 SQL 型驗證,並 只允許Microsoft Entra 驗證

原則定義

檢閱 Azure SQL 資料庫Azure 原則 內建定義的 Azure 安全性基準。

所有與 Azure SQL 相關的內建原則定義都會列在內建原則

檢閱教學課程:保護 Azure SQL 資料庫 中的資料庫。

Azure SQL 資料庫 和成本優化

Azure SQL 資料庫 是完全受控的平臺即服務(PaaS)資料庫引擎,可處理大部分的資料庫管理功能,而不需要使用者介入。 管理功能包括:

  • 升級
  • 修補程式
  • 備份
  • 監視

此服務可讓您為 Azure 應用程式和工作負載建立高可用性和高效能的數據儲存層。 SQL 資料庫 包含內建智慧,可協助您透過自動效能監視和調整,大幅降低執行和管理資料庫的成本。

如需 Azure SQL 資料庫 如何提供節省成本功能的詳細資訊,請參閱規劃和管理 Azure SQL 資料庫 的成本。

下列各節包含設定檢查清單,以及 Azure SQL 資料庫 和成本優化專屬的建議組態選項。

檢查清單

您是否在考慮成本優化時設定 Azure SQL 資料庫?


組態建議

探索下列建議表格,以將 Azure SQL 資料庫 設定優化,以節省成本:

建議 描述
優化查詢。 使用查詢效能深入解析和效能建議來優化查詢、數據表和資料庫,以協助減少資源耗用量,並到達適當的設定。
評估資源使用量。 評估所有資料庫的資源使用量,並判斷是否已正確調整和布建它們的大小。 針對非生產資料庫,請考慮視需要相應減少資源。 例如,執行負載測試或使用者驗收測試時,可以視需要調整資料庫的 DTU 或虛擬核心。
微調備份儲存體耗用量 針對 Azure SQL Database 中的 vCore 資料庫,每種類型的備份 (完整、差異和記錄) 所使用的儲存體在資料庫監視窗格上報告為個別的計量。 最多可達資料庫資料大小上限的備份儲存體耗用量不會收費。 多餘的備份儲存體耗用量將取決於工作負載和個別資料庫的大小上限。 如需詳細資訊,請參閱 備份記憶體耗用量
評估 Azure SQL 資料庫 無伺服器。 請考慮在布建運算層上使用 Azure SQL 資料庫 無伺服器。 無伺服器是單一資料庫的計算層,可根據工作負載需求自動調整計算,並針對每秒使用的計算量計費。 無伺服器計算層也會在只有記憶體計費時,在非作用中期間自動暫停資料庫。 活動恢復時即自動繼續執行資料庫。 Azure SQL 資料庫 無伺服器不適用於所有案例。 如果您有一個具有無法預測或高載使用模式的資料庫,且期間內有低或閑置使用量,則無伺服器是一種解決方案,可協助您優化價格效能。
請考慮保留 Azure SQL 資料庫 容量。 您可以使用保留折扣來降低與 Azure SQL 資料庫 相關聯的計算成本。 決定區域中 Azure SQL 資料庫的總計算容量和效能層級之後,您就可以使用這項資訊來保留容量。 保留可以跨越一或三年。 如需詳細資訊,請參閱 使用保留容量節省資源的成本。
彈性集區可協助您管理及調整 Azure SQL Database 中的多個資料庫 Azure SQL Database 彈性集區是簡單、符合成本效益的解決方案,可用來管理及調整使用需求變化不定且無法預測的多個資料庫。 彈性集區中的資料庫位於單一伺服器上,並以固定價格共用固定數量的資源。 如需詳細資訊,請參閱 彈性集區來管理和調整多個資料庫

如需詳細資訊,請參閱規劃和管理 Azure SQL 資料庫 的成本。

Azure SQL 資料庫 和營運卓越

Azure SQL 資料庫 是完全受控的平臺即服務(PaaS)資料庫引擎,可處理大部分的資料庫管理功能,而不需要使用者介入。 管理功能包括:

  • 升級
  • 修補程式
  • 備份
  • 監視

此服務可讓您為 Azure 應用程式和工作負載建立高可用性和高效能的數據儲存層。 Azure SQL 資料庫 提供人工智慧支援的進階監視和微調功能,可協助您針對資料庫和解決方案的效能進行疑難解答並最大化。

如需 Azure SQL 資料庫 如何提升營運卓越,並讓您的企業在中斷期間繼續運作的詳細資訊,請參閱 Azure SQL 資料庫 中的監視和效能微調。

下列各節包括設計考慮、組態檢查清單,以及 Azure SQL 資料庫 和營運卓越專屬的建議組態選項。

設計考量

Azure SQL 資料庫 包含下列設計考慮:

  • 使用異地復寫設定的 Azure SQL 資料庫 業務關鍵 層,其已部署時間的保證復原時間目標 (RTO) 為30100%數。

  • 使用 分區化 ,將數據和程式分散到許多相同結構化的資料庫。 分區化提供傳統相應增加方法的替代方案,以取得成本和彈性。 請考慮使用分區化水準分割資料庫。 分區化可以提供錯誤隔離。 如需詳細資訊,請參閱使用 Azure SQL 資料庫 相應放大。

  • Azure SQL 資料庫 業務關鍵 或進階層未針對區域備援部署、一般用途、標準或基本層,或具有兩個或多個復本的超大規模資料庫層設定可用性保證。 如需詳細資訊,請參閱 Azure SQL 資料庫 的 SLA。

  • 為任何 Azure 區域提供內建區域高可用性和周全異地複寫。 它包含支援自駕功能的智慧,例如:

    • 效能微調
    • 威脅監視
    • 弱點評估
    • 程式代碼基底的完全自動化修補和更新
  • 定義應用程式效能 SLA,並使用警示加以監視。 快速偵測應用程式效能不小心降低到可接受的層級以下,這對維持高復原能力很重要。 使用先前定義的監視解決方案來設定關鍵查詢效能計量的警示,以便在效能中斷 SLA 時採取動作。 如需詳細資訊,請移至 [ 監視資料庫 ]。

  • 使用異地還原從服務中斷復原。 您可以從最新的異地復寫備份,還原任何 SQL 資料庫 伺服器上的資料庫,或任何 Azure 區域中任何受控實例上的實例資料庫。 使用異地複寫備份作為來源進行異地還原。 即使資料庫或數據中心因為中斷而無法存取,您也可以要求異地還原。 異地還原會從異地備援備份還原資料庫。 如需詳細資訊,請參閱 使用自動資料庫備份復原 Azure SQL 資料庫。

  • 使用設定為異地復寫的 業務關鍵 層,其已部署時間的保證恢復點目標 (RPO) 為5100%數。

  • 內建至 Azure SQL 資料庫的 PaaS 功能可讓您將焦點放在對企業非常重要的網域特定資料庫管理和最佳化活動上。

  • 使用時間點還原從人為錯誤復原。 時間點還原會將資料庫傳回先前的時間點,以便不小心從所做的變更復原數據。 如需詳細資訊,請參閱 時間點還原 (PITR) 檔。

  • 業務關鍵 或進階層設定為區域備援部署。 如需可用性保證的詳細資訊,請參閱 Azure SQL 資料庫 的 SLA。

檢查清單

您是否已將 Azure SQL 資料庫 設定為卓越營運?


  • 使用主動式異地復寫在不同的區域中建立可讀取的次要複本。
  • 使用可包含一或多個資料庫的自動故障轉移群組,通常由相同的應用程式使用。
  • 使用區域備援資料庫。
  • 近乎即時地監視您的 Azure SQL 資料庫,以偵測可靠性事件。
  • 實作重試邏輯:
  • 備份金鑰。

組態建議

探索下列建議表格,將 Azure SQL 資料庫 設定優化,以達到卓越營運:

建議 描述
使用主動式異地復寫在不同的區域中建立可讀取的次要複本。 如果您的主資料庫失敗,請執行手動故障轉移至輔助資料庫。 在您故障轉移之前,輔助資料庫會保持只讀狀態。 主動式異地復 寫可讓您建立可讀取的複本,並在數據中心中斷或應用程式升級時手動故障轉移至任何複本。 相同或不同區域支援最多四個次要,次要也可用於唯讀存取查詢。 故障轉移必須由應用程式或使用者手動起始。 故障轉移之後,新的主要複本有不同的連接端點。
使用可包含一或多個資料庫的自動故障轉移群組,通常由相同的應用程式使用。 您可以使用可讀取的輔助資料庫卸除只讀查詢工作負載。 因為自動故障轉移群組牽涉到多個資料庫,因此這些資料庫必須在主伺服器上設定。 自動復原群組支援將群組中的所有資料庫複寫至不同區域中的一部輔助伺服器或實例。 深入瞭解 自動故障轉移群組DR設計
使用區域備援資料庫。 依照預設,系統會在相同的資料中心內建立進階可用性模型的節點叢集。 隨著 Azure 可用性區域的推出,SQL Database 可以將商務關鍵資料庫的不同複本放置到相同地區中的不同可用性區域。 為了避免發生單點失敗,系統也會跨多個區域將控制環複寫成三個閘道環 (GW)。 Azure 流量管理員 (ATM) 會控制特定閘道的路由。 由於進階或 業務關鍵 服務層級中的區域備援設定不會建立額外的資料庫備援,因此您可以不需額外費用加以啟用。 深入了解 區域備援資料庫
近乎即時地監視您的 Azure SQL 資料庫,以偵測可靠性事件。 使用其中一個可用的解決方案來監視 SQL DB,以儘早偵測潛在的可靠性事件,並讓您的資料庫更可靠。 選擇近乎即時的監視解決方案,以快速回應事件。 如需詳細資訊,請參閱 Azure SQL 分析。
實作重試邏輯。 雖然 Azure SQL 資料庫 在考慮可轉移的基礎結構失敗時具有復原性,但這些失敗可能會影響您的連線能力。 使用 SQL 資料庫 時發生暫時性錯誤時,請確定您的程式代碼可以重試呼叫。 如需詳細資訊,請參閱如何在 SqlClient 簡介中實作重試邏輯和可設定的重試邏輯。
備份金鑰。 如果您未在 Azure 金鑰保存庫 中使用加密金鑰來保護您的資料,請備份您的密鑰。

Azure SQL 資料庫 和效能效率

Azure SQL 資料庫 是完全受控的平臺即服務 (PaaS) 資料庫引擎,可處理大部分的資料庫管理功能,而不需要使用者介入。 管理功能包括:

  • 升級
  • 修補程式
  • 備份
  • 監視

下列各節包含設計檢查清單,以及 Azure SQL 資料庫 效能效率的特定建議設計選項。

設計檢查清單

您是否已設計工作負載並設定 Azure SQL 資料庫,並考慮到效能效率?


建議

建議 優點
診斷並針對高 CPU 使用率進行疑難解答。 Azure SQL 資料庫 提供內建工具,以識別高 CPU 使用量的原因,並優化工作負載效能
了解封鎖和死結問題。 並行和 因死結 而終止會話而封鎖的原因和結果不同。
調整應用程式和資料庫以取得效能。 調整您的應用程式和資料庫以改善效能。 檢閱最佳做法
請視需要檢閱 Azure 入口網站 使用率報告和調整規模。 部署之後,請使用 Azure 入口網站 中的內建報告,定期檢閱尖峰和平均資料庫使用率,以及向上或縮小大小。 您可以輕鬆地調整 單一資料庫彈性集區 ,且 不會遺失數據,且停機時間最少。
請檢閱效能建議。 在 Azure 入口網站 之資料庫頁面的 [智慧效能] 功能表中,檢閱並考慮任何效能建議的動作,並實作任何索引、架構和參數化問題
檢閱查詢效能深入解析。 檢閱適用於 Azure 的查詢效能深入解析 SQL 資料庫 報表,以識別最耗用資源的查詢、長時間執行的查詢等等。
設定 自動調整 透過根據 AI 和機器學習的持續效能微調,提供尖峰效能和穩定的工作負載。 請考慮使用 Azure 自動化 來設定自動調整的電子郵件通知。
評估記憶體內部資料庫對象的潛在用法。 記憶體內部技術 可讓您改善應用程式的效能,並可能降低資料庫的成本。 請考慮在大量 OLTP 應用程式中設計一些資料庫物件。
利用 查詢存放區 根據預設,在 Azure SQL 資料庫 中啟用,查詢存放區 包含豐富的查詢效能和資源耗用量數據,以及 查詢存放區 提示自動計劃修正等進階微調功能。 檢閱 Azure SQL 資料庫 中的 查詢存放區 預設值。
針對暫時性錯誤實作重試邏輯。 應用程式應該包含 暫時性錯誤的自動交易重試邏輯 ,包括常見的連線錯誤。 利用指數重試間隔邏輯。

其他資源

如需支援功能的相關信息,請參閱移轉至 SQL 資料庫 期間的功能和解決 Transact-SQL 差異。

移轉至 Azure SQL 資料庫? 檢閱我們的 Azure 資料庫移轉指南

觀看涵蓋 Azure SQL 主題等數據公開的情節

下一步