iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 3
0

昨天提到基本安裝,今天來介紹筆者實際應用的方式吧。

筆者原來的資料庫都有使用 Microsoft Windows Cluster Services (MSCS),由兩台機器搭配 Shared Storage 以 Raw-Device Mapping (RDM) 的方式達到高可用度的目標,在 MariaDB 雖沒有特別的 Agent 或是程式能夠配合 MSCS 做更有效的處理,但仍可透過其他方法完成。

架構說明

現在有以下的機器與空間

  • VM A
  • VM B
  • Shared Storage X (都掛在 A 或 B 的同一個磁碟目錄)

安裝說明

原來筆者是使用其中一種方法(1)的,不過筆者專案的系統管理者認為這樣不是真的高可用度,所以用了另一種方法(2),這邊都提出來給大家參考。

方法 1:全部都安裝到 Shared Storage X

假設 X 在 A 上面

  • 在 A 執行安裝程式,MariaDB Home 指向 X 上
  • 在 A 上面看 MariaDB 服務的 ImagePath
  • 在 A 上面的 Failover Cluster Manager(容錯移轉叢集管理員)\A\Services and applications(服務與應用程式)上按右鍵,選 Configure a Service or Application...(設定服務或應用程式)
  • 選擇 Generic Service (泛用型服務),然後選擇 MySQL
  • 在 B 上面依樣畫葫蘆新增跟 A 一樣的 MariaDB 服務,cmd 下
    sc create MySQL start=demend binpath=[剛剛看到的 ImagePath] displayname=MySQL
  • 檢查一下 B 上面的服務是不是跟 A 一樣
  • 在 B 上的 Failover Cluster Manager(容錯移轉叢集管理員) 跟 A 一樣的設定
  • 移轉一下節點試試看是不是可以 Work

這個方法好處就是基本上只動服務內容跟 MSCS 設定,與 MariaDB 的所有東西無關,但是只有一份資料(包含 Binary Files),所以不是真的高可用度。

方法 2:MariaDB Binary Files 安裝到各機器上,Data 在 Shared Storage 上

假設 X 在 A 上面

  • 在 A 執行安裝程式,MariaDB Home 指向系統 C 槽(預設的)
  • 在 B 執行安裝程式,MariaDB Home 指向系統 C 槽(預設的)
  • 停止 A 上的 MariaDB 服務
  • 停止 B 上的 MariaDB 服務
  • 移除 B 上 [MariaDB Home]\data (因為不需要了)
  • 在 A 修改HKLM\SYSTEM\CurrentControlSet\Services\MySQL\ImagePathmy.ini 的位置 (在 X 上)
  • 在 B 修改HKLM\SYSTEM\CurrentControlSet\Services\MySQL\ImagePathmy.ini 的位置 (在 X 上)
  • 修改 [MariaDB Home]\data\my.ini 裡頭的 datadir 設定,要設成在 X 上(記得是反斜線)
  • 複製 A 的[MariaDB Home]\data 到 X
  • 在 A 上啟動服務試試看
  • 在 A 上面的 Failover Cluster Manager(容錯移轉叢集管理員)如同方法 1 中的設定
  • 在 B 上面的 Failover Cluster Manager(容錯移轉叢集管理員)如同方法 1 中的設定
  • 移轉一下節點試試看是不是可以 Work

這個方法的好處就是有兩份 Binary Files,一個節點掛了或是 Shared Storage 上面的 Binary File 壞了也沒關係,但是以後要修改 [MariaDB Home] 的東西就兩邊都要做(譬如說升級,加 Plugin...)。


上一篇
MariaDB 的安裝與升級 [1]
下一篇
MariaDB 的備份與還原
系列文
MariaDB 的使用與管理30

尚未有邦友留言

立即登入留言