一項資料庫服務可以伺服高可用性的資料給一個 MySQL 資料庫應用程式,該應用程式可以提供網路存取給 資料庫的用戶端系統,例如網頁伺服器。 假如該服務發生容錯移轉的現象,應用程式將會透過新的叢集系統 存取共用的資料庫資料。 通常都會指派一個 IP 位址給可被網路存取的資料庫服務,該位址將會隨著服務 一起容錯移轉以維持用戶端透通式的存取。
設定一個 MySQL 資料庫服務的範例如下:
必須在每一部將執行服務的叢集系統上安裝 MySQL 伺服器套件,MySQL 資料庫目錄位於共用儲存裝置中 一個磁碟分割區上的檔案系統。 這使得所有叢集系統都可以存取資料庫的資料,在此例中,檔案系統使用 /dev/sda1 共用磁碟分割區,並掛載為 /var/lib/mysql。
一個 IP 位址將會與 MySQL 服務產生關聯以使得資料庫服務的用戶可以進行網路存取,當服務容錯移轉時, 這個 IP 位址也將會自動在叢集成員中轉移。 在此例中,IP 位址為 10.1.16.12。
使用來啟動與停止 MySQL 資料庫的程式碼為標準的 init 程式碼 mysqld。 假如需要一般的連線紀錄與查詢,請編輯 mysqld 程式碼並且新增 --log=/var/log/mysqld.log 選項當作 safe_mysqld 指令的最後選項。 該行應該會類似以下這一行(請注意,斜線(\)代表單行指令的延續):
/usr/bin/safe_mysqld --defaults-file=/etc/my.cnf --log=/var/log/mysqld.log \ >/dev/null 2>&1 & |
假如 --log 選項被新增到 mysqld 程式碼中,應該要複製 mysqld 程式碼到可以執行 MySQL 服務的其他叢集成員上,以使得它們可以紀錄連線狀況,並且查詢是否 MySQL 服務 已經容錯移轉到那些成員了。
預設情況下,在閒置八小時後,連線到 MySQL 伺服器的用戶端連線將會逾時,您可以在 /etc/my.cnf 檔案設定 wait_timeout 變數來修改連線逾時限制。 如果要設定四小時的逾時時限, 請下列這一行到 /etc/my.cnf 檔案中的 [mysqld] 部份:
set-variable = wait_timeout=14400 |
重新啟動 MySQL 服務,請注意在做了這個變更之後,必須複製新的 /etc/my.cnf 檔案到所有可以執行 MySQL 服務的其他叢集成員上。
如要檢查 MySQL 伺服器是否已經逾時,請執行 mysqladmin 指令並檢查運行的時間。 假如已經逾時了,請再次執行查詢來自動重新連線到伺服器。
取決於 Linux 的發行版本,以下的其中一個訊息表示一個 MySQL 伺服器的逾時:
CR_SERVER_GONE_ERROR CR_SERVER_LOST |
如要使用 叢集設定工具 來新增一個 MySQL 服務,請執行下列動作:
如要啟動 叢集設定工具,請選擇 『主選單』 => 『系統設定』 => 『伺服器設定』 => Cluster, 或者在 shell 提示符號下輸入 redhat-config-cluster 指令,預設將會出現 叢集狀態工具。
請從 叢集狀態工具 程式選單中選取 『叢集』 => 『設定』 來啟動 叢集設定工具。
點選 『服務』 標簽頁。
新增 MySQL 服務。
點選 新增 的按鈕,將會出現 『服務』 的對話窗。
輸入 MySQL 服務的一個 『服務名稱』。
請選擇一個 『容錯移轉網域』,或者使其保留為 None。
請在 『檢查間歇時間』 的欄位輸入要透過 mysqld init 程式碼的 status 功能來檢查 MySQL 服務使用狀況的秒數。
請輸入一個 『使用者程式碼』,例如 /etc/init.d/mysqld。
點選 確定。
為 MySQL 服務新增一個 IP 位址。
選取 MySQL 服務,然後點選 新增子程式。
選取 新增服務的 IP 位址,再點選 確定,將會出現 『服務 IP 位址』 的對話窗。
請輸入一個 『IP 位址』。
請輸入一個 『網路遮罩』,或者是將它保留為 None。
請輸入一個 『廣播位址』,或者是將它保留為 None。
點選 確定。
為 MySQL 服務新增一個裝置。
選取 MySQL 服務,然後點選 新增子程式。
選取 『新增裝置』,再點選 確定,將會出現 『裝置』 對話窗。
輸入 『裝置特殊檔案』(例如 /dev/sdc3)。
請在 『掛載點』 的欄位輸入 /var/lib/mysql。
請在 『檔案系統類型』 中選取檔案系統類型,或者是將它保留空白。
請輸入任何掛載點 『選項』,包括 rw(讀取/寫入)。
選取或取消選取 『強制卸載』。
點選 確定。
選擇 『檔案』 => 『儲存』 來儲存 MySQL 服務。