MySQL NDB Cluster Installation Guide
阿新 • • 發佈:2018-08-07
tor acf fault timestamp 客戶 my.cnf 定義 初始化 啟動mysql Mysql NDB Cluster其主要功能是在無共享存儲的系統中部署基於內存的數據庫Cluster,其主要是通過NDB Cluster(簡稱NDB)存儲引擎來實現的。本文使用的NDB Cluster版本為7.6,主機描述見下表:
1、各個節點軟件包安裝
我這裏創建了一個YUM倉庫,所以直接通過yum命令安裝。
- NDB管理節點安裝軟件包
[root@mydb02 ~]# yum -y install mysql-cluster-commercial-management-server
- NDB SQL節點安裝軟件包
[root@mydb03 ~]# yum -y install mysql-cluster-commercial-server mysql-cluster-commercial-common mysql-cluster-commercial-client
- NDB 數據節點安裝軟件包
[root@mydb04 ~]# yum -y install mysql-cluster-commercial-data-node mysql-cluster-commercial-client [root@mydb05 ~]# yum -y install mysql-cluster-commercial-data-node mysql-cluster-commercial-client
2、NDB Cluster服務配置
- NDB管理節點配置
//創建配置文件 [root@mydb02 ~]# mkdir /var/lib/mysql-cluster [root@mydb02 ~]# vi /var/lib/mysql-cluster/config.ini [tcp default] SendBufferMemory=2M ReceiveBufferMemory=2M [NDBD DEFAULT] #設置冗余的分數 NoOfReplicas=2 #指定存放數據的內存段大小 DataMemory=1024M #存放跟蹤文件、日誌文件、pid文件以及錯誤日誌的目錄 DataDir=/var/lib/mysql-cluster ServerPort=2202 #數據庫中存儲NDB表的最大數量 MaxNoOfTables=8192 #設置哈希索引在系統中同意時間被使用的總數,該參數的默認值為128。 MaxNoOfOrderedIndexes=2048 #定義了可在簇中定義的屬性數目 MaxNoOfAttributes=5000000 #開啟這個設置會使內地版NDB嘗試采用O_DIRECT寫LCP、備份、重做日誌,通常使用更少的內存和cpu。 ODirect=1 #每個redo日誌文件的大小 FragmentLogFileSize=100M #系統中可以定義的最大數量的觸發器 MaxNoOfTriggers=1000 [NDB_MGMD] NodeId=1 HostName=192.168.120.93 DataDir=/var/lib/mysql-cluster TotalSendBufferMemory=2048M [NDBD] TotalSendBufferMemory=2048M NodeId=2 HostName=192.168.120.130 DataDir=/var/lib/mysql [NDBD] TotalSendBufferMemory=2048M NodeId=3 HostName=192.168.120.131 DataDir=/var/lib/mysql [MYSQLD] NodeId=4 TotalSendBufferMemory=2048M HostName=192.168.120.129
初始化NDB管理節點,執行一次,後續啟動不需要加--initial參數。
[root@mydb02 ~]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini –initial
通過ndb客戶端查看,除了管理節點已連接外,其他尚未和管理節點建立連接,如下圖:
- NDB數據節點配置
//數據節點1創建my.cnf文件 [root@mydb04 ~]# vi /etc/my.cnf [mysqld] ndbcluster ndb-connectstring = 192.168.120.93 [mysql_cluster] ndb-connectstring = 192.168.120.93 //數據節點1初始化 [root@mydb04 ~]# ndbd --initial //數據節點2創建my.cnf文件 [root@mydb05 ~]# vi /etc/my.cnf [mysqld] ndbcluster ndb-connectstring = 192.168.120.93 [mysql_cluster] ndb-connectstring = 192.168.120.93 //數據節點2初始化 [root@mydb05 ~]# ndbd –initial
在管理節點通過ndb客戶端可以驗證數據節點已建立連接,如下圖:
- NDB SQL節點配置
//創建配置文件 [root@mydb03 ~]# vi /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid ndbcluster default-storage-engine=ndbcluster tmp_table_size = 512M max_heap_table_size = 102400M max_allowed_packet = 3072M log_timestamps=system collation-server=utf8_general_ci character-set-server = utf8 [mysql_cluster] ndb-connectstring=192.168.120.93 //啟動MySQL服務 [root@mydb03 ~]# systemctl start mysqld
驗證SQL節點是否和管理節點建立連接,如下圖:
到此,整個ndb cluster服務搭建完成,最後通過SQL節點創建表以及導入數據即可。另外,只有使用了NDBCluster引擎的表才會執行同步操作,如果創建表時未指定engine類型為ndbcluster,則系統不會同步。使用如下命令在SQL節點更改表類型為ndbcluster:mysql> alter table xj.chapter engine=ndbcluster;
3、NDB Cluster服務管理
創建Cluster的時候,已做過初始化操作,後續的啟動過程不需要加--initial參數。啟動的順序是先啟動ndb管理服務,再啟動ndb數據節點服務,最後是SQL節點服務。 - 啟動NDB Cluster服務
[root@mydb02 ~]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini [root@mydb04 ~]# ndbd [root@mydb05 ~]# ndbd [root@mydb03 ~]# systemctl start mysqld
- 關閉NDB Cluster服務
//通過NDB客戶端執行shutdown可關閉cluster裏的所有服務除SQL節點服務 [root@mydb02 ~]# ndb_mgm ndb_mgm>shutdown [root@mydb03 ~]# systemctl stop mysqld
4、監控NDB Cluster服務
這裏使用MySQL Enterprise Monitor工具,這個工具的安裝請參考我博客裏相關內容。待MySQL Enterprise Monitor agent服務啟動後,它會收集操作系統以及MySQL信息發送到服務端,最終從web界面獲取相關信息,如下圖:
MySQL NDB Cluster Installation Guide