規劃、部署及驗證 Azure SQL

已完成

選取要移轉至 Azure SQL 或在其中建立的工作負載之後,您必須規劃部署、據以部署,並驗證部署是否成功。 在此單元中,您會了解流程中每個步驟適用的各種方法。

預先部署規劃

開始在 Azure 中部署任何項目之前,請務必先了解您的需求,以及這些項目如何對應至 Azure SQL 中的供應項目。 您可以使用在 Azure SQL 簡介課程模組中學到的知識,擬定計劃。 您必須回答下列問題:

  • 部署方法:Azure 入口網站或命令列介面?
  • 部署選項:虛擬機器、資料庫、彈性集區、受控執行個體或執行個體集區?
  • 購買模型 (僅限 Azure SQL Database):DTU 或虛擬核心?
  • 服務層級:一般用途、業務關鍵或超大規模資料庫?
  • 硬體:Gen5 或更新一代?
  • 調整大小:虛擬核心的數目和資料大小上限

在回答上述問題之前,您可能還必須挑選要移轉至 Azure SQL 或要在雲端中產生的工作負載。 如果要進行移轉,有許多工具和資源將可協助規劃、評估、移轉和最佳化資料庫和應用程式。 我們會在本課程模組結束時提供資源。

資源限制

Azure SQL 簡介課程模組描述了限制、費率和功能,例如 IOPS 或記憶體內部 OLTP。 但根據所選的 Azure SQL 受控執行個體、Azure SQL Database,或這些選擇內的選項,會有其他資源限制受到影響:

  • 記憶體
  • 記錄大小上限
  • 交易記錄速率
  • 資料 IOPS
  • tempdb 的大小
  • 並行背景工作數上限
  • 備份保留

Azure SQL 受控執行個體和 Azure SQL Database 的限制取決於所選的購買模型、服務層級,以及虛擬核心的數目,或在 Azure SQL Database 中僅取決於 DTU。

Azure SQL 受控執行個體和 SQL Database 是平台即服務 (PaaS) 供應項目。 限制這些選項不應禁止您可完整使用 SQL Server 受控服務。

在一般用途 Azure SQL Database 執行個體中,選擇已佈建還是無伺服器計算,也會影響這些限制。 在您部署之前,請先檢閱您計劃要部署的內容,以確保會針對所需的項目展開部署工作。

Azure SQL 資源具有「每一訂用帳戶」和「每一區域」的整體資源限制。 如果需要提高限制,可在 Azure 入口網站中要求增加配額。

部署

完成預先部署規劃之後,即可將計劃付諸實行。 在此階段中,您會藉由使用 Azure 入口網站或命令列部署 Azure SQL、決定網路設定,並建立初始連線。

針對 Azure SQL Database 和 Azure SQL 受控執行個體,在部署期間,Azure 入口網站中基本上有六個窗格需要填入。

Azure SQL 部署窗格的圖表。

伺服器

當建立 Azure SQL 受控執行個體時,提供伺服器名稱的方式與 SQL Server 中的相同。 針對資料庫和彈性集區,需要 Azure SQL Database 伺服器。 Azure SQL Database 伺服器是「邏輯」伺服器,可作為單一或集區資料庫中央管理點。 其中包含登入、防火牆規則、稽核規則、威脅偵測原則和容錯移轉群組。 您會在稍後了解這些元素。

此邏輯伺服器不會像對 Azure SQL 受控執行個體一樣,公開任何執行個體層級的存取或功能。 對於 Azure SQL Database 伺服器,伺服器名稱在整個 Azure 中必須是唯一的。

計算和儲存

在此學習路徑先前的課程模組中,您已了解在計算和儲存方面的選項和建議,包括服務層級、購買模型和硬體世代。 您必須在部署期間選取所需的設定。 您也必須決定虛擬核心的數目與資料大小上限

一般而言,如果要移轉,請使用與在內部部署中所使用類似的大小。 您也可以利用 Data Migration Assistant SKU 推薦程式等工具,以根據目前的工作負載,估計虛擬核心數目與資料大小上限

資料大小上限不一定是您目前資料的大小。 而是可為資料庫配置的最大資料空間量。 這也有助於了解記錄空間的配置,而此配置會隨著資料大小上限而縮放。

網路設定

Azure SQL Database 和 Azure SQL 受控執行個體的網路選項並不相同。 部署 Azure SQL Database 時,目前的預設值是 [無存取權]

您可以選取公用端點或私人端點。 在此單元之後的練習中,使用公用端點,並將 [允許 Azure 服務和資源存取該伺服器] 選項設定為 [是]。 然後其他 Azure 服務 (例如 Azure Data Factory 或 Azure 虛擬機器),即可以存取資料庫。 如果想要從用來部署 Azure SQL Database 的用戶端電腦 IP 位址進行連線,您也可以選取 [新增目前的用戶端 IP 位址]。

對於 Azure SQL 受控執行個體,您可將其部署在 Azure 虛擬網路內,以及專門用於受控執行個體的子網路中,可讓您有安全的私人 IP 位址。 Azure SQL 受控執行個體可將內部部署網路連線至受控執行個體、將受控執行個體連線至連結的伺服器或其他內部部署資料存放區,以及將受控執行個體連線至其他資源。

您也可以啟用公用端點,以便在沒有虛擬私人網路 (VPN) 的情況下,從網際網路連線至受控執行個體。 預設會停用此存取。

資料來源

在 Azure SQL Database 中,您可以在 Azure 入口網站中部署時,選取 AdventureWorksLT 資料庫當作範例。 在 Azure SQL 受控執行個體中,您會先部署執行個體,然後在其中部署資料庫。 您無法在部署時使用範例資料庫,類似於 SQL Server。 您可在 GitHub 上深入了解 AdventureWorks 範例資料庫。

您也可以部署空的資料庫,或根據異地複寫備份的還原來建立資料庫。

資料庫定序

SQL Server 和 Azure SQL 中的定序,可告訴資料庫引擎如何處理特定字元和語言。 定序會提供資料的排序規則、大小寫和區分腔調字屬性。

建立新的 SQL 資料庫或 SQL 受控執行個體時,請考慮資料的地區設定需求。 定序集會影響資料庫中許多作業的特性。 在 SQL Server 盒裝產品中,作業系統地區設定通常會決定預設定序。

在 Azure SQL 受控執行個體中,在建立執行個體時設定伺服器定序。 您稍後無法加以變更。 伺服器定序會設定該 SQL 受控執行個體中所有資料庫的預設值,但您可以在資料庫和資料行層級修改定序。

在 Azure SQL Database 中,您無法設定伺服器定序。 其會在 SQL_Latin1_General_CP1_CI_AS 的預設且是最常見的定序設定,但您仍可設定資料庫定序。 若要將該值分成區塊:

  • SQL 表示這是 SQL Server 定序,相對於 Windows 或二進位定序。
  • Latin1_General 會指定排序時要使用的字母或語言。
  • CP1 會參考定序所使用的字碼頁。
  • CI 表示不區分大小寫。 CS 表示區分大小寫。
  • AS 表示區分重音字。 AI 表示不區分重音字。

以及其他可用的選項, 例如字元寬度與 UTF-8 編碼。 您可在文件中找到更多您可以及無法使用 Azure SQL 執行之操作的詳細資料。

選擇加入適用於雲端的 Microsoft Defender

在 Azure 入口網站中部署 Azure SQL Database 時,系統會提示是否要免費試用適用於雲端的 Microsoft Defender。 選擇開始免費試用。 免費試用過後,便會根據適用於雲端的 Microsoft Defender 標準層價格對適用於雲端的 Defender 計費。

加以啟用後,您會取得識別和減緩潛在資料庫弱點與威脅偵測的相關功能。 您可以在此學習路徑的下一個安全性課程模組中深入了解這些功能。

在 Azure SQL 受控執行個體中,您可以在部署後,於執行個體上啟用適用於雲端的 Microsoft Defender。

檢閱選項

在 [檢閱及建立] 窗格中,檢閱部署選項和 Azure Marketplace 條款。

提示

您也有 [下載自動化的範本] 選項,其會提供 Azure Resource Manager 範本 (ARM 範本) 以用於可設定且可重複部署。 本單元未涵蓋 ARM 範本。 如果您有興趣,請深入了解範本規格

主要部署實作詳細資料

雖然 Azure 會為您執行部署,但還是有一些須留意的部署實作詳細資料。 所有的服務都建置於名為 Azure Service Fabric 的 Azure 骨幹上。 了解其中某些服務在 Azure Service Fabric 上進行部署和縮放的後端作業,可協助了解您可能會看到的各種行為。

Azure SQL 受控執行個體

在幕後,Azure 會為您的服務部署 Azure SQL 受控執行個體的專用通道 (有時稱為虛擬叢集)。 此結構有助於提供安全性和原生虛擬網路支援。

但因使用此結構,部署和縮放作業可能會較為耗時。 例如,當您進行擴大或縮小時,Azure 將會為您部署新的虛擬叢集,並在其中植入您的資料。 您可以將每個執行個體視為在單一虛擬機器上執行。

Azure SQL 執行個體集區用於協助較長的部署時間。 您可預先部署專用資源的集區。 相較於傳統部署,部署到集區並在集區中縮放會更加快速。 您也會得到更高的封裝密度,因為可在單一虛擬機器中部署多個執行個體。

Azure SQL Database

邏輯資料庫伺服器會控制 Azure SQL Database。 在多數情況下,專用 SQL Server 執行個體會裝載 SQL 資料庫,不過您無須操心管理執行個體。

邏輯資料庫伺服器可提供連線的目標。 它也可讓您將特定權限和設定群組並管理。 每個邏輯資料庫伺服器中都有一個邏輯主要資料庫,其可提供執行個體層級的診斷。

Azure SQL Database - 超大規模資料庫

Azure SQL Database 內的超大規模資料庫層 (Azure SQL 受控執行個體無此層級) 有適用於 Azure SQL 的唯一結構。 Azure SQL 小組針對雲端重新建構了超大規模資料庫。 此結構包含多層式快取系統,在速度和規模方面都有所助益。 縮放和其他作業不再與資料大小相關,且可在常數時間 (幾分鐘) 內完成。 遠端儲存體的使用也有助於快照集備份。

在 Azure SQL 基本概念學習路徑的後續課程模組中,您會深入了解結構,以及其對效能與可用性的影響。 部署階段期間的一個考量事項為,將資料庫移至超大規模資料庫層後,您即無法回到一般用途或業務關鍵層。

資源管理

增加或減少服務層級中的資源時,CPU、儲存體和記憶體等維度的限制可能會根據特定閾值變更。 雖然 Azure SQL 中有多面向的治理方法,但主要是運用下列三種技術來管理在 Azure SQL 中的資源使用量:

  • Windows 工作物件可將一組程序,視為一個單位來管理和治理。 工作物件可用來治理檔案的虛擬記憶體認可、工作集上限、CPU 親和性和速率上限。 您可使用 sys.dm_os_job_object 動態管理檢視來查看已有的限制。
  • Resource Governor 是一項 SQL Server 功能,可協助使用者 (在此案例中為 Azure) 治理資源,例如 CPU、實體 I/O 和記憶體。 Azure SQL 受控執行個體也允許使用者定義的 Resource Governor 工作負載群組與集區。
  • 檔案伺服器資源管理員可在 Windows Server 中使用。 其會控管用來管理資料大小上限的檔案目錄配額。

其他實作可透過交易記錄速率治理,治理內建於資料庫引擎的交易記錄速率。 此流程會針對工作負載 (例如 BULK INSERTSELECT INTO,以及索引組建) 限制高的擷取速率。 系統會追蹤這些工作負載,並強制為不到一秒等級。 這些工作負載目前會以線性方式在服務層級內進行調整。

驗證

完成部署之後,即應驗證該部署。 在此階段中,您通常會在 Azure 入口網站或 Azure CLI 中查看結果,執行一些查詢以驗證部署設定,並視需要進行調校。

針對 Azure SQL 受控執行個體和 Azure SQL Database,您的首要工作應該是使用 Azure 入口網站或 Azure CLI,查看資料庫或執行個體的狀態。 接著,您可以查看部署詳細資料和活動記錄,以確保沒有任何失敗或作用中的問題。

針對 Azure SQL 受控執行個體,您可查看錯誤記錄檔,這是 SQL Server 內部部署或 Azure 虛擬機器中的常見做法。 此功能不適用於 Azure SQL Database。

最後,您可確認網路已正確設定,並取得伺服器名稱,然後在 SQL Server Management Studio 或 Azure Data Studio 之類的工具中連線。 您可執行下列查詢,以進一步了解已部署的內容,並確認已正確部署:

SELECT @@VERSION
SELECT * FROM sys.databases
SELECT * FROM sys.objects
SELECT * FROM sys.dm_os_schedulers
SELECT * FROM sys.dm_os_sys_info
SELECT * FROM sys.dm_os_process_memory --Not supported in Azure SQL Database
SELECT * FROM sys.dm_exec_requests
SELECT SERVERPROPERTY('EngineEdition')
SELECT * FROM sys.dm_user_db_resource_governance -- Available only in Azure SQL Database and SQL Managed Instance
SELECT * FROM sys.dm_instance_resource_governance -- Available only in Azure SQL Managed Instance
SELECT * FROM sys.dm_os_job_object -- Available only in Azure SQL Database and SQL Managed Instance

在 Azure SQL Database 中,不支援一項與 OS 處理序記憶體相關的查詢,儘管其似乎可運作。 不支援此查詢的原因為在 Azure SQL Database 中,會摘要與作業系統相關的某些項目,以便您專注於資料庫。

最後三個查詢僅適用於 Azure SQL Database 和 Azure SQL 受控執行個體。 第一個 sys.dm_user_db_resource_governance 會傳回目前資料庫或彈性集區中資源治理機制使用的設定與容量設定。 您可以透過第二個 sys.dm_instance_resource_governance,針對 Azure SQL 受控執行個體取得類似資訊。 第三個 sys.dm_os_job_object,會傳回單一資料列,描述管理 SQL Server 處理序的工作物件設定,以及資源使用量統計資料。

後續兩個練習會逐步解說部署 Azure SQL Database 或 Azure SQL 受控執行個體的所有詳細資料。 使用 Azure 訂用帳戶來部署 Azure SQL Database。 部署之後,您會使用 Azure Data Studio 中的各種驗證查詢與預先執行的 SQL 記事本,比較 SQL Database、SQL 受控執行個體與 SQL Server 2019。

知識檢查

1.

下列哪一個選項會根據部署選項和服務層級而受到限制?

2.

在驗證部署方面,某些新查詢會限定於 Azure SQL Database 和 Azure SQL 受控執行個體。 下列哪一個查詢僅適用於 Azure SQL 平台即服務 (PaaS)?