標籤:style blog http io ar color os 使用 sp
目錄
- 配置環境
- 相關知識
- 配置過程
- 檢查配置
- 同步測試
- 故障測試
- 寫在之後
配置環境
VMware:(版本10.0.01)
作業系統:Windows Server 2008 R2 Enterprise
VM1:192.168.220.103 管理節點(MGM),資料節點(NDBD1),SQL節點(SQL1)
VM2:192.168.220.104 資料節點(NDBD2),SQL節點(SQL2)
MySQL Cluster版本:7.3.7 (MSI Installer) :http://dev.mysql.com/downloads/cluster/
測試載入器:Navicate for MySQL
相關知識
簡介:
MySQL Cluster 是一種技術,該技術允許在無共用的系統中部署“記憶體中”資料庫的 Cluster 。通過無共用體繫結構,系統能夠使用廉價的硬體,而且對軟硬體無特殊要求。此外,由於每個組件有自己的記憶體和磁碟,不存在單點故障。
MySQL Cluster 由一組電腦構成,每台電腦上均運行著多種進程,包括MySQL伺服器,NDB Cluster 的資料節點,管理伺服器,以及(可能)專門的資料訪問程式
特點: http://www.mysql.com/products/cluster/features.html
三種節點:
管理節點:用於管理叢集共它節點; 守護進程ndb_mgmd
資料節點:用於儲存叢集的資料; 守護進程ndbd
SQL節點:用於串連資料節點;守護進程mysqld
詳情請參考:參考手冊中MySQL Cluster章節
配置過程
- 在VM1和VM2上安裝MySQL Cluster(mysql-cluster-gpl-7.3.7-winx64)
選擇typical安裝,安裝目錄均為:C:\Program Files\MySQL\MySQL Cluster 7.3
- 在VM1和VM2上的Windows 資源管理員中開啟C:\Program Files\MySQL,在此目錄下建立檔案夾MySQL Server 5.6,然後在建立的MySQL Server 5.6檔案夾下建立mysql-cluster檔案夾
建立檔案夾的路徑分別為:C:\Program Files\MySQL\MySQL Server 5.6
C:\Program Files\MySQL\MySQL Server 5.6\mysql-cluster
- 在VM1的Windows 資源管理員開啟目錄C:\Program Files\MySQL\MySQL Cluster 7.3,並在此目錄下建立一個config.ini檔案
[ndbd default]NoOfReplicas=2[ndb_mgmd]NodeId=1HostName=192.168.220.103DataDir=C:\Program Files\MySQL\MySQL Cluster 7.3\data[ndbd]NodeId=21HostName=192.168.220.103DataDir=C:\Program Files\MySQL\MySQL Server 5.6\mysql-cluster[ndbd]NodeId=22HostName=192.168.220.104DataDir=C:\Program Files\MySQL\MySQL Server 5.6\mysql-cluster[mysqld]NodeId=11HostName=192.168.220.103[mysqld]NodeId=12HostName=192.168.220.104
- 在VM1和VM2的資源管理員中開啟目錄C:\Program Files\MySQL\MySQL Cluster 7.3,並在此目錄下建立一個my.ini檔案
[mysqld]character_set_server=utf8basedir="C:\Program Files\MySQL\MySQL Cluster 7.3"datadir="C:\Program Files\MySQL\MySQL Cluster 7.3\data"sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLESndbclusterndb-connectstring=192.168.220.103explicit_defaults_for_timestamp=true[mysql_cluster]ndb-connectstring=192.168.220.103
- 在VM1和VM2中設定環境變數(非必需,文中並未用到,都會CD轉到到相應目錄去執行命令)
電腦右鍵屬性 (或者 控制台\系統和安全\系統)--->進階系統配置--->"進階"選擇卡--->環境變數--->系統變數中找到Path--->編輯--->加上C:\Program Files\MySQL\MySQL Cluster 7.3\bin
注意:多個路徑用分號分隔
[NDBD]:定義了叢集的資料節點
[MYSQLD]:定義了叢集的MySQL伺服器節點
[MGM]或[NDB_MGMD]:定義了叢集的管理伺服器節點
[NDB_MGMD]Id:節點唯一的標識
[NDBD]NoOfReplicas:全域參數僅能在[NDBD DEFAULT]中設定,它定義了叢集中每個表儲存的副本數。該參數還指定了節點群組的大小。節點群組指的是儲存相同資訊的節點集合
[NDBD]DataDir:該參數指定了存放追蹤檔案、記錄檔、 pid檔案以及錯誤記錄檔的目錄
[MYSQLD]basedir:使用指定目錄作為根目錄
[MYSQLD]datadir:使用指定目錄讀取資料庫檔案
- 在管理節點(MGM)機器上(VM1)中開啟CMD視窗執行如下命令,啟動管理節點
cd "C:\Program Files\MySQL\MySQL Cluster 7.3\bin"db_mgmd.exe --config-file="C:\Program Files\MySQL\MySQL Cluster 7.3\config.ini" --configdir="C:\Program Files\MySQL\MySQL Cluster 7.3"
注意:warning資訊不影響,兩台機器組態管理節點和資料節點在一台機器上的原因,並不會引起叢集失敗
- 在資料節點(NDBD1)機器上(VM1)中新開啟CMD視窗執行如下命令,啟動資料節點
cd "C:\Program Files\MySQL\MySQL Cluster 7.3\bin"ndbd.exe --initial
注意:--initial只有初次執行需要,以後執行ndbd.exe就可以(參考手冊裡的意思應該是當需要清理叢集檔案時才使用,所以這個參數應該要慎用或者提前備份)
- 在SQL節點(SQL1)機器上(VM1)中新開CMD視窗執行如下命令,啟動SQL節點
cd "C:\Program Files\MySQL\MySQL Cluster 7.3\bin"mysqld.exe --default-file="C:\Program Files\MySQL\MySQL Cluster 7.3\my.ini"mysqld --installnet start mysql
注意:執行mysqld --install 你可以在電腦的伺服器看到名為“MySQL”的服務,在執行net start mysql,在服務中可以看到MySQL服務為“啟動”狀態
- 在資料節點(NDBD2)機器上(VM2)中新開啟CMD視窗執行如下命令,啟動資料節點
cd "C:\Program Files\MySQL\MySQL Cluster 7.3\bin"ndbd.exe
- 在SQL節點(SQL2)機器上(VM2)中新開CMD視窗執行如下命令,啟動SQL節點
cd "C:\Program Files\MySQL\MySQL Cluster 7.3\bin"mysqld.exe --default-file="C:\Program Files\MySQL\MySQL Cluster 7.3\my.ini"mysqld --installnet start mysql
檢查配置
- 在管理節點(MGM)機器上(VM1)中開啟CMD視窗執行如下命令
ndb_mgm.exeshow
如狀態,表示安裝成功!
同步測試
- 在VM1和VM2上安裝Navicat for MySQL(安裝步驟省略)
- 在VM1和VM2上開啟Navicat for MySQL並建立串連(樣本建立串連分別為:192.168.220.103和192.168.220.104) 安裝後預設使用者名為root,沒有密碼
- 在192.168.220.103中建立資料庫wilson_mysqlcluster_test,在192.168.220.104中查看
發現192.168.220.104中也出現wilson_mysqlcluster_test
- 在192.168.220.104中的wilson_mysqlcluster中建一個tb_test表,注意引擎選擇“ndbcluster”,在192.168.220.103中可以看到也會有tb_test表出現
- 測試在192.168.220.103或192.168.220.104中增、刪、改操作,兩個資料庫都會同步
故障測試
- 在VM2中停止SQL節點,在192.168.220.103上插入一條資料(原本有2條資料),再啟動VM2上的SQL節點,看是否能正常同步
1.在VM2中CMD視窗執行如下命令停止MySQL服務
net stop msyql
2.在192.168.220.103中插ID為3的資料後,執行如下命令,再次啟動VM2中的MySQL服務,查看192.168.220.104中資料是否完整
net start mysql
測試結果得到完整資料
其它測試就不一一列舉了
寫在之後
配置前仔細看了MySQL參考檔案MySQL Cluster章節
MySQL Cluster配置過程還是比較容易出錯,配置過程中大小錯誤遇到非常多(目錄、SQL節點not connected、MYSQL服務無法啟動、資料無法同步等等),根據CMD上錯誤和記錄檔尋找對應的解決方案
注意啟動順序會少遇到很多錯誤:管理節點--->資料節點--->SQL節點
生產環境建議用至少3台伺服器去配置,需要修改一下config.ini檔案,配置過程與兩台沒什麼差別
主要參考:
MySQL_5.5中文參考手冊
Windows 環境下配置 MySQL Cluster
Windows Server 2008R2配置MySQL Cluster