Azure Well-Architected Framework 檢閱 - Azure SQL 資料庫
Azure SQL Database 是完全受控的平台即服務 (PaaS) 資料庫引擎,可處理大部分的資料庫管理功能,不需要使用者介入。 管理功能包括升級、修補程式、備份和監視。
單一資料庫資源類型會在 Azure SQL Database 中建立一個資料庫,其中包含自己的一組資源,並透過邏輯伺服器進行管理。 您可以選擇 以 DTU 為基礎的購買模型 或 以虛擬核心為基礎的購買模型。 您可以使用 彈性集區,在單一資源集區中建立多個資料庫。
下列各節包含設計檢查清單,以及Azure SQL資料庫安全性特有的建議設計選項。 指導方針是以架構卓越五大要素為基礎:
- 可靠性
- 安全性
- 成本最佳化
- 卓越營運
- 效能效率
必要條件
瞭解 Well-Architected 架構要素有助於產生高品質、穩定且有效率的雲端架構。 請參閱 Azure Well-Architected Framework 概觀頁面 ,以檢閱架構卓越五大要素。
Azure SQL Database 和可靠性
Azure SQL Database 是完全受控的平台即服務 (PaaS) 資料庫引擎,可處理大部分的資料庫管理功能,不需要使用者介入。 管理功能包括:
- 升級
- 修補檔案
- 備份
- 監視
此服務可讓您為 Azure 應用程式和工作負載建立高可用性和高效能的資料儲存層。 Azure SQL Database 一律會在最新穩定版本的 SQL Server 資料庫引擎與已修補的作業系統上執行,並可達 99.99%
的可用性。
如需 Azure SQL Database 如何提升可靠性,並讓您的企業在中斷時繼續運作的詳細資訊,請參考可用性功能。
下列各節包括設計考量、設定檢查清單,以及 Azure SQL Database 和可靠性專屬的建議設定選項。
設計考量
Azure SQL Database 包括下列設計考量:
使用異地複寫設定的 Azure SQL Database 業務關鍵層,在部署的
100%
時數內提供 (RTO)30
秒的復原時間目標保證。使用「分區化」將資料和程序分散到許多相同結構的資料庫上。 分區化提供成本和彈性的傳統擴大方法替代方案。 請考慮使用分區化來水平分割資料庫。 分區化可提供容錯隔離。 如需詳細資訊,請參閱使用 Azure SQL Database 擴增。
Azure SQL Database 商務關鍵或進階層 (未針對區域備援部署、一般用途、標準或基本層,或具有兩個或多個複本的超大規模資料庫層設定) 具有可用性保證。 如需可用性保證的詳細資訊,請參閱 Azure SQL Database 的服務等級協定。
為任何 Azure 區域提供內建的地區高可用性和周全的異地複寫。 其包括支援自我驅動功能的智慧,例如:
- 效能微調
- 威脅監視
- 弱點評估
- 完整自動修補和更新程式碼基礎映像
定義應用程式效能 SLA,並以警示監視。 在應用程式效能意外降到低於可接受的程度時可快速偵測,這對於維持高復原能力相當重要。 使用先前定義的監視解決方案來設定重要查詢效能計量的警示,讓您可以在效能未達SLA 時採取動作。 如需詳細資訊,請移至 監視您的資料庫 和 警示工具 。
使用異地還原從服務中斷中復原。 您可以從最新的異地複寫備份,在任何 SQL Database 伺服器上還原資料庫,或在任何 Azure 區域中的任何受控執行個體上還原執行個體資料庫。 使用異地複寫備份作為來源進行異地還原。 即使因為中斷而無法存取資料庫或資料中心,您也可以要求異地還原。 異地還原可從異地備援備份還原資料庫。 如需詳細資訊,請參閱使用自動化資料庫備份來復原 Azure SQL 資料庫。
使用異地複寫設定的 Azure SQL Database 業務關鍵層,在部署的
100%
時數內提供5
秒的復原點目標 (RPO) 保證。內建至 Azure SQL 資料庫的 PaaS 功能可讓您將焦點放在對企業非常重要的網域特定資料庫管理和最佳化活動上。
使用時間點還原從人為錯誤中復原。 時間點復原會將您的資料庫傳回至較早的時間點,以從不慎進行的變更中復原資料。 如需詳細資訊,請閱讀時間點還原 (PITR) 文件。
商務關鍵性或進階層會設定為具有可用性保證的區域備援部署。 如需可用性保證的詳細資訊,請參閱 Azure SQL Database 的服務等級協定。
檢查清單
在設定 Azure SQL Database 時,您是否考量到可靠性?
- 使用作用中異地複寫在不同地區中建立可讀取的次要複本。
- 使用可包括一或多個資料庫的自動容錯移轉群組,通常是由相同的應用程式所使用。
- 使用區域備援資料庫。
- 以近乎即時的方式監視您的 Azure SQL Database,以偵測可靠性事件。
- 實作重試邏輯。
- 備份您的金鑰。
組態建議
探索下表中的建議,將 Azure SQL Database 的可靠性設定最佳化:
建議 | 描述 |
---|---|
使用作用中異地複寫,在不同區域中建立可讀取的次要複本。 | 如果主要資料庫失敗,請手動容錯移轉到次要資料庫。 在您容錯移轉前,次要資料庫會維持唯讀狀態。 主動式異地複寫可讓您建立可讀取複本,並在資料中心中斷或應用程式升級時,手動容錯移轉至任何複本。 在相同或不同的區域中,最多可支援四個次要資料庫,次要資料庫也可以用於唯讀存取查詢。 容錯移轉必須由應用程式或使用者手動起始。 容錯移轉之後,新的主要資料庫會有不同的連接端點。 |
使用可包括一或多個資料庫的自動容錯移轉群組,通常是由相同的應用程式所使用。 | 您可以使用可讀取次要資料庫來卸載唯讀查詢工作負載。 因為自動容錯移轉群組牽涉到多個資料庫,所以這些資料庫必須在主要伺服器上進行設定。 自動容錯移轉群組支援將群組中的所有資料庫都只複寫到不同地區的一個次要伺服器或執行個體。 深入瞭解 AutoFailover 群組和災害復原設計。 |
使用區域備援資料庫。 | 依照預設,系統會在相同的資料中心內建立進階可用性模型的節點叢集。 隨著 Azure 可用性區域的推出,SQL Database 可以將商務關鍵資料庫的不同複本放置到相同地區中的不同可用性區域。 為了避免發生單點失敗,系統也會跨多個區域將控制環複寫成三個閘道環 (GW)。 特定閘道通道的路由是由 Azure 流量管理員 (ATM) 控制。 因為進階或商務關鍵服務層中的區域備援設定不會建立額外的資料庫備援,所以您不需要額外的成本來啟用。 深入瞭解區域備援資料庫。 |
以近乎即時的方式監視您的 Azure SQL Database,以偵測可靠性事件。 | 使用其中一個可用的解決方案來監視 SQL DB,及早偵測潛在的可靠性事件,並讓您的資料庫更加可靠。 選擇近乎即時的監視解決方案,以快速回應事件。 如需詳細資訊,請參閱 Azure SQL 分析。 |
實作重試邏輯。 | 雖然 Azure SQL Database 會從可轉移的基礎架構失敗中復原,但這些失敗可能會影響您的連線能力。 在使用 SQL Database 時發生暫時性錯誤時,請確保您的程式碼可以重試呼叫。 如需詳細資訊,請參閱如何實作重試邏輯。 |
備份您的金鑰。 | 如果您並非使用 Azure Key Vault 中的加密金鑰來保護您的資料,請備份您的金鑰。 |
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 Database連線的最低 TLS 版本。 如果沒有,請將最新的 TLS 版本設定為最小值。 |
總帳 | 請考慮根據 總帳 來設計資料庫資料表,以提供所有資料變更的稽核、竄改和信任。 |
Always Encrypted | 請考慮根據Always Encrypted來設計應用程式存取權,藉由委派對加密金鑰的資料存取來保護應用程式內的敏感性資料。 |
私人端點和私人連結 | 私人端點連線會啟用Azure SQL資料庫的私人連線,以強制執行安全通訊。 您可以使用私人端點來保護連線,並預設拒絕公用網路存取。 Azure SQL Database Azure Private Link 是建議用於 Azure SQL Database 的私人端點類型。 |
自動化弱點評估 | 監視 弱點評估 掃描結果,以及如何補救資料庫弱點的建議。 |
進階威脅防護 | 偵測異常活動,指出針對Azure SQL Database 使用進階威脅防護存取或惡意探索資料庫的異常和潛在有害嘗試。 進階威脅防護會將其警示與適用於雲端的 Microsoft Defender 整合。 |
稽核 | 使用Azure SQL資料庫的稽核來追蹤資料庫事件。 |
受控識別 | 請考慮設定 使用者指派的受控識別 (UMI) 。 Azure 資源的受控識別 不需要在程式碼中管理認證。 |
僅限Microsoft Entra驗證 | 請考慮停用 SQL 型驗證,並只允許Microsoft Entra驗證。 |
原則定義
檢閱適用于 Azure SQL Database和Azure 原則 內建定義的Azure 安全性基準。
所有與Azure SQL相關的內建原則定義都會列在內建原則中。
Azure SQL Database 和成本最佳化
Azure SQL Database 是完全受控的平台即服務 (PaaS) 資料庫引擎,可處理大部分的資料庫管理功能,不需要使用者介入。 管理功能包括:
- 升級
- 修補檔案
- 備份
- 監視
此服務可讓您為 Azure 應用程式和工作負載建立高可用性和高效能的資料儲存層。 SQL Database 內建智慧,透過自動效能監視和微調,協助您大幅降低執行和管理資料庫的成本。
如需 Azure SQL Database 如何提供節省成本功能的詳細資訊,請參考規劃和管理 Azure SQL Database 的成本。
下列各節包含 Azure SQL Database 和成本最佳化特有的檢查清單和建議的設定選項。
檢查清單
設定 Azure SQL Database 時,您是否考量到成本最佳化?
- 最佳化查詢。
- 評估資源使用量。
- 微調 備份儲存體耗用量。
- 評估Azure SQL 無伺服器。
- 請考慮保留Azure SQL資料庫的容量。
- 請考慮 彈性集區來管理和調整多個資料庫。
組態建議
探索下表中的建議,將 Azure SQL Database 設定最佳化以節省成本:
建議 | Description |
---|---|
最佳化查詢。 | 使用 查詢效能深入解析 和 效能建議 來優化查詢、資料表和資料庫,以協助降低資源耗用量,並達到適當的設定。 |
評估資源使用量。 | 評估所有資料庫的資源使用量,並判斷是否已正確調整和布建它們的大小。 針對非生產資料庫,請考慮視需要相應減少資源。 例如,執行負載測試或使用者接受度測試時,可以視需要調整資料庫的 DTU 或虛擬核心。 |
微調備份儲存體耗用量 | 針對 Azure SQL Database 中的 vCore 資料庫,每種類型的備份 (完整、差異和記錄) 所使用的儲存體在資料庫監視窗格上報告為個別的計量。 最多可達資料庫資料大小上限的備份儲存體耗用量不會收費。 多餘的備份儲存體耗用量將取決於工作負載和個別資料庫的大小上限。 如需詳細資訊,請參閱 備份儲存體耗用量。 |
評估 Azure SQL Database 無伺服器。 | 請考慮在布建運算層上使用Azure SQL 無伺服器。 無伺服器是單一資料庫的計算層,可根據工作負載需求自動縮放計算,並依每秒使用的計算量來計費。 無伺服器計算層在非使用中期間也會自動暫停資料庫,此時只對儲存體計費。 活動恢復時即自動繼續執行資料庫。 並不是所有情節都適合使用 Azure SQL Database 無伺服器。 如果您的資料庫具有無法預測或高載的使用模式,並交錯低或閒置使用量的期間,則無伺服器是一種解決方案,可協助您優化價格效能。 |
考量 Azure SQL Database 的保留容量。 | 您可以使用保留折扣來降低與 Azure SQL Database 相關聯的計算成本。 對於區域中的 Azure SQL 資料庫,一旦您決定總計算容量和效能層級,就可以使用此資訊來保留容量。 可保留一年或三年。 如需詳細資訊,請參考使用保留容量來節省資源的成本。 |
彈性集區可協助您管理及調整 Azure SQL Database 中的多個資料庫 | Azure SQL Database 彈性集區是簡單、符合成本效益的解決方案,可用來管理及調整使用需求變化不定且無法預測的多個資料庫。 彈性集區中的資料庫位於單一伺服器上,並以固定價格共用固定數量的資源。 如需詳細資訊,請參閱 彈性集區來管理和調整多個資料庫。 |
如需詳細資訊,請參閱規劃和管理 Azure SQL 資料庫的成本。
Azure SQL Database 和卓越營運
Azure SQL Database 是完全受控的平台即服務 (PaaS) 資料庫引擎,可處理大部分的資料庫管理功能,不需要使用者介入。 管理功能包括:
- 升級
- 修補檔案
- 備份
- 監視
此服務可讓您為 Azure 應用程式和工作負載建立高可用性和高效能的資料儲存層。 Azure SQL Database 提供人工智慧所支援的先進監視和微調功能,以協助您進行疑難排解,並將資料庫和解決方案的效能最大化。
如需 Azure SQL Database 如何提升卓越營運的詳細資訊,並讓您的企業在中斷時繼續運作,請參閱在 Azure SQL Database 中進行監視和效能調整。
下列各節包括 Azure SQL Database 與卓越營運專用的設計考量、設定檢查清單,以及建議設定選項。
設計考量
Azure SQL Database 包括下列設計考量:
使用異地複寫設定的 Azure SQL Database 業務關鍵層,在部署的
100%
時數內提供 (RTO)30
秒的復原時間目標保證。使用「分區化」將資料和程序分散到許多相同結構的資料庫上。 分區化提供成本和彈性的傳統擴大方法替代方案。 請考慮使用分區化來水平分割資料庫。 分區化可提供容錯隔離。 如需詳細資訊,請參閱使用 Azure SQL Database 擴增。
Azure SQL Database 業務關鍵層或進階層 (未針對區域備援部署、一般用途、標準或基本層,或具有兩個或多個複本的超大規模資料庫層設定) 具有可用性保證。 如需詳細資訊,請參閱適用於 Azure SQL Database 的 SLA。
為任何 Azure 區域提供內建的區域高可用性和周全的異地複寫。 其包括支援自我驅動功能的智慧,例如:
- 效能微調
- 威脅監視
- 弱點評估
- 完整自動修補和更新程式碼基礎映像
定義應用程式效能 SLA,並以警示監視。 在應用程式效能意外降到低於可接受的程度時可快速偵測,這對於維持高復原能力相當重要。 使用先前定義的監視解決方案來設定重要查詢效能計量的警示,讓您可以在效能未達SLA 時採取動作。 更多詳細資訊,請前往監視您的資料庫。
使用異地還原從服務中斷中復原。 您可以從最新的異地複寫備份,在任何 SQL Database 伺服器上還原資料庫,或在任何 Azure 區域中的任何受控執行個體上還原執行個體資料庫。 使用異地複寫備份作為來源進行異地還原。 即使因為中斷而無法存取資料庫或資料中心,您也可以要求異地還原。 異地還原可從異地備援備份還原資料庫。 如需詳細資訊,請參閱使用自動化資料庫備份來復原 Azure SQL 資料庫。
使用異地複寫設定的 Azure SQL Database 業務關鍵層,在部署的
100%
時數內提供5
秒的復原點目標 (RPO) 保證。內建至 Azure SQL 資料庫的 PaaS 功能可讓您將焦點放在對企業非常重要的網域特定資料庫管理和最佳化活動上。
使用時間點還原從人為錯誤中復原。 時間點復原會將您的資料庫傳回至較早的時間點,以從不慎進行的變更中復原資料。 如需詳細資訊,請閱讀時間點還原 (PITR) 文件。
業務關鍵或進階層會設定為區域備援部署。 如需可用性保證的詳細資訊,請參閱適用於 Azure SQL Database 的 SLA。
檢查清單
設定 Azure SQL Database 時,您是否考量到卓越營運?
- 使用作用中異地複寫,在不同區域中建立可讀取的次要複本。
- 使用可包括一或多個資料庫的自動容錯移轉群組,通常是由相同的應用程式所使用。
- 使用區域備援資料庫。
- 以近乎即時的方式監視您的 Azure SQL Database,以偵測可靠性事件。
- 實作重試邏輯:
- 備份您的金鑰。
組態建議
探索下表中的建議,將 Azure SQL Database 設定最佳化以確保卓越營運:
建議 | 描述 |
---|---|
使用作用中異地複寫,在不同區域中建立可讀取的次要複本。 | 如果主要資料庫失敗,請手動容錯移轉到次要資料庫。 在您容錯移轉前,次要資料庫會維持唯讀狀態。 主動式異地複寫可讓您建立可讀取複本,並在資料中心中斷或應用程式升級時,手動容錯移轉至任何複本。 在相同或不同的區域中,最多可支援四個次要資料庫,次要資料庫也可以用於唯讀存取查詢。 容錯移轉必須由應用程式或使用者手動起始。 容錯移轉之後,新的主要資料庫會有不同的連接端點。 |
使用可包括一或多個資料庫的自動容錯移轉群組,通常是由相同的應用程式所使用。 | 您可以使用可讀取次要資料庫來卸載唯讀查詢工作負載。 因為自動容錯移轉群組牽涉到多個資料庫,所以這些資料庫必須在主要伺服器上進行設定。 自動容錯移轉群組支援將群組中的所有資料庫都只複寫到不同區域的一個次要伺服器或是執行個體。 深入瞭解自動容錯移轉群組和災害復原設計。 |
使用區域備援資料庫。 | 依照預設,系統會在相同的資料中心內建立進階可用性模型的節點叢集。 隨著 Azure 可用性區域的推出,SQL Database 可以將商務關鍵資料庫的不同複本放置到相同地區中的不同可用性區域。 為了避免發生單點失敗,系統也會跨多個區域將控制環複寫成三個閘道環 (GW)。 特定閘道通道的路由是由 Azure 流量管理員 (ATM) 控制。 因為進階或商務關鍵服務層中的區域備援設定不會建立額外的資料庫備援,所以您不需要額外的成本來啟用。 深入瞭解區域備援資料庫。 |
以近乎即時的方式監視您的 Azure SQL Database,以偵測可靠性事件。 | 使用其中一個可用的解決方案來監視 SQL DB,及早偵測潛在的可靠性事件,並讓您的資料庫更加可靠。 選擇近乎即時的監視解決方案,以快速回應事件。 如需詳細資訊,請參閱 Azure SQL 分析。 |
實作重試邏輯。 | 雖然 Azure SQL Database 會從可轉移的基礎架構失敗中復原,但這些失敗可能會影響您的連線能力。 在使用 SQL Database 時發生暫時性錯誤時,請確保您的程式碼可以重試呼叫。 如需詳細資訊,請參閱 如何在SqlClient 簡介中實作重試邏輯和可設定的重試邏輯。 |
備份您的金鑰。 | 如果您並非使用 Azure Key Vault 中的加密金鑰來保護您的資料,請備份您的金鑰。 |
Azure SQL資料庫和效能效率
Azure SQL Database 是完全受控的平台即服務 (PaaS) 資料庫引擎,可處理大部分的資料庫管理功能,不需要使用者介入。 管理功能包括:
- 升級
- 修補檔案
- 備份
- 監視
下列各節包含設計檢查清單,以及Azure SQL資料庫效能效率特有的建議設計選項。
設計檢查清單
您是否已設計工作負載並設定Azure SQL資料庫,並考慮效能效率?
- 檢閱資源限制。 如需單一資料庫每個定價層的特定資源限制 (也稱為服務目標),請參閱 DTU 型單一資料庫資源限制或 vCore 型單一資料庫資源限制。 如需彈性集區資源限制,請參閱 DTU 型彈性集區資源限制或 vCore 型彈性集區資源限制。
- 為您的工作負載、虛擬核心或 DTU 選擇正確的部署模型。 比較以虛擬核心和 DTU 為基礎的購買模型。
- Microsoft 建議最新的虛擬核心資料庫標準系列或進階系列硬體。 舊版 Gen4 硬體已淘汰。
- 使用彈性集區時,請熟悉 資源控管。
- 檢 閱 max degree of parallelism (MAXDOP) ,並視需要根據已移轉或預期的工作負載進行設定。
- 請考慮使用重要資料庫的 唯讀複本 來卸載唯讀查詢工作負載。
- 檢閱SQL Server Database Engine 和 Azure SQL Database 的效能中心。
- 連接到 Azure SQL 資料庫的應用程式應該使用最新的連線提供者,例如最新的OLE DB 驅動程式或ODBC 驅動程式。
建議
建議 | 優點 |
---|---|
診斷並針對高 CPU 使用率進行疑難排解。 | Azure SQL 資料庫提供內建工具來識別高 CPU 使用量的原因,以及將工作負載效能優化。 |
瞭解封鎖和死結問題。 | 因並行 和 終止會話而封鎖,因為死結 的原因和結果不同。 |
調整應用程式和資料庫以取得效能。 | 調整您的應用程式和資料庫以改善效能。 檢閱最佳做法。 |
檢閱Azure 入口網站使用率報告,並適當地調整。 | 部署之後,請使用Azure 入口網站中的內建報告,定期檢閱尖峰和平均資料庫使用率,以及相應增加或縮小大小。 您可以輕鬆地調整 單一資料庫 或 彈性集區 ,且 不會遺失資料,且停機時間最短。 |
檢閱效能建議。 | 在Azure 入口網站之資料庫頁面的 [智慧效能] 功能表中,檢閱並考慮任何效能建議的動作,並實作任何索引、架構和參數化問題。 |
檢閱查詢效能深入解析。 | 檢閱查詢效能深入解析,以Azure SQL資料庫報告,以識別耗用大量資源的查詢、長時間執行的查詢等等。 |
設定 自動調整。 | 透過以 AI 和機器學習為基礎的持續效能微調,提供尖峰效能和穩定的工作負載。 請考慮使用Azure 自動化來設定自動調整的電子郵件通知。 |
評估記憶體內部資料庫物件的潛在用法。 | 記憶體內部技術 可讓您改善應用程式的效能,並可能降低資料庫的成本。 請考慮在大量 OLTP 應用程式中設計某些資料庫物件。 |
利用查詢存放區。 | 根據預設,Azure SQL資料庫中啟用查詢存放區包含豐富的查詢效能和資源耗用量資料,以及查詢存放區提示和自動計畫更正等進階微調功能。 檢閱 Azure SQL 資料庫中的查詢存放區預設值。 |
針對暫時性錯誤實作重試邏輯。 | 應用程式應該包含暫時性錯誤的 自動交易重試邏輯 ,包括常見的連線錯誤。 利用指數重試間隔邏輯。 |
其他資源
如需支援功能的相關資訊,請參閱移轉至SQL Database期間的功能和解決 Transact-SQL 差異。
移轉至Azure SQL資料庫? 檢閱我們的 Azure 資料庫移轉指南。
觀看涵蓋Azure SQL主題等資料公開的劇集。
下一步
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應