建立高可用性 MySQL 資料庫

重要

從 Azure Stack Hub 組建 2108 開始,提供 SQL 和 MySQL 資源提供者授與存取權的訂用帳戶。 若要開始使用這項功能,或需要從舊版升級,請開啟支援案例,我們的支援工程師會引導您完成部署或升級程序。

如果您是 Azure Stack Hub 操作員,便可設定伺服器虛擬機器 (VM) 來裝載 MySQL 伺服器資料庫。 在 MySQL 叢集已成功建立並受 Azure Stack Hub 管理之後,已訂閱 MySQL 服務的使用者便可輕鬆建立高可用性 MySQL 資料庫。

本文說明如何使用 Azure Stack Marketplace 項目建立具備複寫叢集的 MySQL。 這個解決方案使用多個 VM,將資料庫從控制平面節點複寫至可設定數量的複本。 建立叢集之後,即可接著將其新增為「Azure Stack Hub MySQL 主控伺服器」,然後使用者便可建立高可用性 MySQL 資料庫。

重要

具備複寫功能的 MySQL Azure Stack Marketplace 項目可能不是所有 Azure 雲端訂用帳戶環境都可使用。 請先確認您的訂用帳戶中有市集項目可供使用,再嘗試依照此教學課程中的其餘部分進行操作。

您將學到什麼:

  • 從市集項目建立 MySQL 伺服器叢集。
  • 將 MySQL 伺服器叢集設定為 Azure Stack Hub 的 MySQL 主控伺服器。
  • 建立高可用性 MySQL 資料庫。

我們將使用可用的 Azure Stack Marketplace 項目來建立並設定一個有三部 VM 的 MySQL Server 叢集。

開始作業之前,請確定已成功安裝 MySQL Server 資源提供者,且 Azure Stack Marketplace 中已有下列項目:

重要

必須備妥下列各項,才能建立 MySQL 叢集。

  • 具有覆寫功能的 MySQL:此 Bitnami 解決方案範本將會用於 MySQL 叢集部署。
  • Debian 8 "Jessie": Debian 8 "Jessie" (具反向移植核心),適用於 credativ 所提供的 Microsoft Azure。 Debian GNU/Linux 是最受歡迎其中一個 Linux 散發套件。
  • linux 2.0 的自訂指令碼:自訂指令碼延伸模組是在 VM 佈建後,執行 VM 自訂工作的工具。 此延伸模組新增至 VM 後,便可從 Azure 儲存體下載指令碼,並在 VM 上執行這些指令碼。 您也可以使用 Azure PowerShell Cmdlet 和「Azure 跨平台命令列介面」(xPlat CLI) 將「自訂指令碼延伸模組」工作自動化。
  • Linux 延伸模組 1.4.7 的 VM 存取:此 VM 存取延伸模組可讓您重設密碼、SSH 金鑰或 SSH 設定,以便重新取得 VM 存取權。 您也可以使用此延伸模組來新增具有密碼或 SSH 金鑰的新使用者,或刪除使用者。 此延伸模組的目標為 Linux VM。

若要深入了解如何將項目新增至 Azure Stack Marketplace,請參閱 Azure Stack Marketplace 概觀

您還需要一個 SSH 用戶端 (例如 PuTTY),以在部署 Linux VM 之後登入這些 VM。

建立 MySQL 伺服器叢集

請使用本節中的步驟,運用具備複寫功能的 MySQL Marketplace 項目來部署 MySQL伺服器叢集。 此範本會部署三個設定在高可用性 MySQL 叢集內的 MySQL 伺服器執行個體。 預設會建立下列資源:

  • 一個虛擬網路
  • 網路安全性群組
  • 一個儲存體帳戶
  • 可用性設定組
  • 三個網路介面 (每個預設 VM 各一個)
  • 公用 IP 位址 (用於主要的 MySQL 叢集 VM)
  • 三個用以裝載 MySQL 叢集的 Linux VM
  1. 登入使用者入口網站:

    • 針對整合式系統部署,入口網站位址會依據您解決方案的區域和外部網域名稱而有所不同。 其格式為 https://portal.<region>.<FQDN>
    • 若是 Azure Stack 開發套件 (ASDK),則入口網站位址為 https://portal.local.azurestack.external
  2. 如果尚未指派任何訂用帳戶,請從儀表板選取 [取得訂用帳戶]。 在刀鋒視窗中,輸入訂用帳戶的名稱,然後選取供應項目。 建議您將 MySQL 叢集部署保留在其自己的訂用帳戶中,以防止意外移除。

  3. 選取 +[ 建立資源]> [計算],然後選取 [具備複寫功能的 MySQL]

    在 Azure Stack Hub 中自訂範本部署

  4. 在 [基本] 頁面上提供基本部署資訊。 檢閱預設值並視需要變更,然後選取 [確定]

    請至少提供下列資訊:

    • 部署名稱 (預設為 mymysql)。

    • 應用程式根密碼。 提供一個不含任何特殊字元的 12 字元英數字元密碼。

    • 應用程式資料庫名稱 (預設為 bitnami)。

    • 要建立的 MySQL 資料庫複本 VM 數目 (預設為 2)。

    • 選取要使用的訂用帳戶。

    • 選取要使用的資源群組,或建立一個新資源群組。

    • 選取位置 (版本 2107 前 ASDK 的預設為本機)。

      部署基本概念 -- 使用複寫建立 MySQL

  5. 在 [環境設定] 頁面上提供下列資訊,然後選取 [確定]

    • 要用於安全殼層 (SSH) 驗證的密碼或 SSH 公開金鑰。 如果使用密碼,則密碼必須包含字母、數字,並且包含特殊字元。

    • VM 大小 (預設為標準 D1 v2 VM)。

    • 資料磁碟大小 (以 GB 為單位)

      環境設定 -- 使用複寫建立 MySQL

  6. 檢閱部署 [摘要]。 您也可以視需要下載自訂範本和參數,然後選取 [確定]

    摘要 -- 使用複寫建立 MySQL

  7. 選取 [購買] 頁面上的 [建立] 以開始部署。

    購買頁面 -- 使用複寫建立 MySQL

    注意

    部署將花費大約一小時的時間。 請先確定部署已完成且 MySQL 叢集已完全設定妥當,再繼續進行。

  8. 順利完成所有部署之後,請檢閱資源群組項目,然後選取 mysqlip 公用 IP 位址項目。 請記錄叢集之公用 IP 位址和公用 IP 的完整 FQDN。

    您將需要將向「Azure Stack Hub 操作員」提供此 IP 位址,以便他們運用這個 MySQL 叢集來建立 MySQL 主控伺服器。

建立網路安全性群組規則

預設並不會為 MySQL 設定進入主機 VM 的公用存取權。 若要讓 Azure Stack Hub MySQL 資源提供者連線及管理 MySQL 叢集,就必須建立一個輸入網路安全性群組 (NSG) 規則。

  1. 在管理員入口網站中,移至部署 MySQL 叢集時所建立的資源群組,然後選取網路安全性群組 (default-subnet-sg):

    在 Azure Stack Hub 管理員入口網站中選取網路安全性群組

  2. 選取 [輸入安全性規則] ,然後選取 [新增] 。

    在 [目的地連接埠範圍] 中 輸入3306,然後視需要在 [名稱] 和 [描述] 欄位中輸入描述。

    開啟

  3. 選取 [新增] 即可關閉輸入安全性規則對話方塊。

設定外部對 MySQL 叢集的存取權

必須先啟用外部存取權,才能將 MySQL 叢集新增為 Azure Stack Hub MySQL 伺服器主機。

  1. 在使用 SSH 用戶端的情況下 (此範例會使用 PuTTY),請從能夠存取公用 IP 的電腦登入 MySQL 機器。 主要 MySQL VM 名稱通常結尾是 0,且已有指派的公用 IP。

    請使用該公用 IP,並以使用者名稱 bitnami 及稍早所建立不含特殊字元的應用程式密碼登入 VM。

    LinuxLogin

  2. 在 SSH 用戶端視窗中,使用下列命令來確保 bitnami 服務已處於作用中及執行中狀態。 出現提示時,請再次提供 bitnami 密碼:

    sudo service bitnami status

    檢查 bitnami 服務

  3. 建立「Azure Stack Hub MySQL 主控伺服器」要用來連線至 MySQL 的遠端存取使用者帳戶,然後結束 SSH 用戶端。

    執行下列命令,使用根使用者身分和稍早建立的根密碼登入 MySQL。 建立新的管理使用者,並根據您的環境需求取代 <username> 和 <password>。 在此範例中,已建立的使用者名稱為 sqlsa,並且使用強式密碼:

    mysql -u root -p
    create user <username>@'%' identified by '<password>';
    grant all privileges on *.* to <username>@'%' with grant option;
    flush privileges;
    

    建立系統管理員使用者

  4. 記錄新的 MySQL 使用者資訊。

    您將需要向「Azure Stack Hub 操作員」提供這個使用者名稱和密碼,以及叢集的公用 IP 位址或公用 IP 的完整 FQDN,以便讓他們使用這個 MySQL 叢集來建立 MySQL 主控伺服器。

設定 Azure Stack Hub 的 MySQL 主控伺服器

建立並正確設定 MySQL 伺服器叢集之後,Azure Stack Hub 操作員必須將其新增為 Azure Stack Hub 的 MySQL 主控伺服器。

請務必使用先前在建立 MySQL 叢集的資源群組時所記錄的 MySQL 叢集主要 VM 的公用 IP (mysqlip) 或公用 IP 的完整 FQDN。 此外,操作員還需要知道您所建立用來從遠端存取 MySQL 叢集資料庫的 MySQL 伺服器驗證認證。

注意

此步驟必須由「Azure Stack Hub 操作員」從 Azure Stack Hub 管理員入口網站執行。

使用 MySQL 叢集的公用 IP 和 MySQL 驗證登入資訊,Azure Stack Hub 操作員現在可以使用新的 MySQL 叢集來建立 MySQL 主控伺服器

此外,也請確定您已建立一些方案和供應項目,以供使用者建立 MySQL 資料庫。 操作員將需要把 Microsoft.MySqlAdapter 服務新增至方案中,並建立一個專門用於高可用性資料庫的新配額。 如需關於建立方案的詳細資訊,請參閱服務、方案、供應項目、訂用帳戶概觀

提示

將必須等到已部署 MySQL 伺服器資源提供者之後,才能將 Microsoft.MySqlAdapter 服務新增至方案。

建立高可用性 MySQL 資料庫

在建立及設定 MySQL 叢集並由「Azure Stack Hub 操作員」新增為「Azure Stack Hub MySQL 主控伺服器」之後,具有訂用帳戶 (包含 MySQL 伺服器資料庫功能) 的租用戶使用者便可依照本節中的步驟建立高可用性 MySQL 資料庫。

注意

請從 Azure Stack Hub 使用者入口網站,以具有可提供 MySQL 伺服器功能 (Microsoft.MySQLAdapter 服務) 訂用帳戶的租用戶使用者身分執行這些步驟。

  1. 登入使用者入口網站:

    • 針對整合式系統部署,入口網站位址會依據您解決方案的區域和外部網域名稱而有所不同。 其格式為 https://portal.<region>.<FQDN>
    • 若是 Azure Stack 開發套件 (ASDK),則入口網站位址為 https://portal.local.azurestack.external
  2. 選取 [建立資源]+> [資料 + 儲存體],並選取 [MySQL 資料庫]。

    請提供必要的資料庫屬性資訊,包括名稱、定序、要使用的訂用帳戶,以及要用於部署的位置。

    在 Azure Stack Hub 使用者入口網站中建立 MySQL 資料庫

  3. 選取 [SKU],然後選擇要使用的適當「MySQL 主控伺服器 SKU」。 在此範例中,「Azure Stack Hub 操作員」已建立 MySQL-HA SKU 來支援 MySQL 叢集資料庫的高可用性。

    在 Azure Stack Hub 使用者入口網站中選取 SKU

  4. 選取 [登入]>[建立新的登入],然後提供要用於新資料庫的 MySQL 驗證認證。 完成時,請依序選取 [確定] 和 [建立],以開始資料庫部署程序。

    在 Azure Stack Hub 使用者入口網站中新增登入

  5. 當 MySQL 資料庫部署順利完成時,請檢閱資料庫屬性,以找出要用來連線至新高可用性資料庫的連接字串。

    在 Azure Stack Hub 使用者入口網站中檢視連接字串

後續步驟

更新 MySQL 資源提供者