Mysql cluster技術概覽
Cluster隻支援nbd這種存儲引擎,對記憶體要求很高,在建表的時候必須要指定存儲引擎為nbd。
Mysql cluster安裝
實驗拓撲
管理機 ip 10.1 id 1 process ndb_mgmd
Sql1 10.10 10 mysqld
Sql2 10.11 11 mysqld
Data1 10.20 20 ndbd
Data2 10.21 21 ndbd
初始配置(所有節點)
Ip,iptables,selinux,hosts
Sql nodes 隻有這節點需要安裝mysql,群集軟體就行了
Data nodes 隻需要拷貝一個程序檔案過來就行了
Managemnet nodes 隻需要拷貝一個程序檔案過來就行了
Mysql cluster初始配置
Data節點和sql節點配置一模一樣,隻需要配置一個然後拷貝過去就行了
管理節點要單獨配置
Mysql cluster初始啟動
首先必須先啟用管理節點 ndb_mgmd -f /var/lib/mysql-cluster/config.ini
然後是資料節點 ndbd
最後是mysql節點 /etc/init.d/mysqld.server start
Mysql cluster測試
測試一:所有節點均正常,寫入或查詢
使用者通路分别兩台sql節點,建立資料庫,表(存儲引擎為ndbcluster)
Create table t1(id int) engine=ndbcluster;
測試二:停用master資料節點
測試三:停用一個sql節點
Mysql cluster安全關閉及重新開機
實操演練:
安裝前初始化工作:
一定保障每一個節點都沒有相應的mysql程序在運作,并且不能在開機自啟動
Ps aux|grep mysql
Kill -9 對應的程序号
Chkconfig msyqld off
Mv /etc/my.cnf /etc/my.cnf.old //保障不要讓以前的配置檔案幹擾影響新配置檔案
Sql和sql2上
将下載下傳好的軟體拷貝到sql節點電腦上,最好下載下傳二進制包,直接解壓建立一些對應的目錄就可以使用了
Tar -xzf mysql-cluster-gpl-7.3.4-linux-glibc2.5-x86-64.tar.gz -C /usr/local
Ln -s /usr/local/mysql-cluster-gpl-7.3.4-linux-glibc2.5-x86-64/ /usr/lcoal/mysql //做連接配接是為了便于管理
Cd /usr/lcoal/mysql-cluster //因為sql節點需要接受使用者的通路,是以需要做資料庫初始化工作和建立授權表
Ls
Scripts/mysql_install_db --user=mysql //初始化
Chown -R root
Chown -R mysql data
Chgrp -R mysql //改為除data目錄外所有目錄屬主為root,屬組為mysql
Cp support-files/mysql.server /etc/rc.d/init.d/mysqld
Chkconfig --add mysqld
Chkconifg mysqld on //注意現在不能啟動,因為啟動是有順序的,到此為止sql節點安裝完成
Data節點安裝:隻需要把任意sql節點的一個程序檔案拷貝過來使用即可
同樣在sql節點電腦上操作
Rsync -av /usr/local/mysql-cluster/bin/ndbd 192.168.10.20:/usr/local/bin/
Rsync -av /usr/local/mysql-cluster/bin/ndbd 192.168.10.21:/usr/local/bin/
Rsync -av /usr/local/mysql-cluster/bin/ndbmtd 192.168.10.20:/usr/local/bin/ //多線程程序
Rsync -av /usr/local/mysql-cluster/bin/ndbmtd 192.168.10.21:/usr/local/bin/
在data節點上将剛剛拷貝過來的目錄檔案加上可執行權限
Chmod a+x /usr/local/bin/ndb*
管理節點安裝:隻需要把任意sql節點的一個程序檔案拷貝過來使用即可
Rsync -av /usr/local/mysql-cluster/bin/ndb_mgm* 192.168.10.1:/usr/local/bin/
在管理節點上将剛剛拷貝過來的目錄檔案加上可執行權限
Chmod a+x /usr/local/bin/ndb_mgm*
Mkdir -p /usr/local/mysql/mysql-cluster //這個目錄用來存放日志資訊的
Sql上配置
Vim /etc/my.cnf //這是一個新檔案,其實就是告訴它以mysqld以Ndbcluster
存儲引擎方式啟動,告訴它管理節點是誰就可以了
[mysqld]
Ndbcluster
[mysql_cluster]
Ndb_connectstring=192.168.10.1
儲存退出
Cd / //将配置檔案分别拷貝到其他伺服器節點就可以了
Rsync -av /etc/my.cnf 192.168.10.11:/etc/
Rsync -av /etc/my.cnf 192.168.10.20:/etc/
Rsync -av /etc/my.cnf 192.168.10.21:/etc/
管理節點配置
Mkdir /var/lib/mysql-cluster //用來存放配置目錄的
Cd /var/lib/mysql-cluster //進入到這個目錄建立一個ini檔案
Vim config.ini 配置一個資料節點的數量,定義資料節點的記憶體大小,索引所使用的記憶體,tcp對外提供服務的端口,加上所有節點資訊
NoOfReplicas=2
DataMemory=100M
IndexMemory=100M
[tcp_default]
Portnumber=3306
[ndb_mgmd]
Id=1
Hostname=192.168.10.1
Datadir=/var/lib/mysql-cluster //存放日志
[ndbd]
Id=20
Hostname=192.168.10.20
Datadir=/usr/local/mysql/data //要和資料節點一緻
Id=21
Hostname=192.168.10.21
Id=10
Hostname=192.168.10.10
Hostname=192.168.10.11
在data節點上建立剛才管理節點上配置檔案中的檔案
在data節點上操作
Mkdir -p /usr/local/mysql/data
在管理節點上:
ndb_mgmd -f /var/lib/mysql-cluster/config.ini
資料節點:ndnd
Sql節點:service mysqld start
Grant all *.* to root@’%’ identtified by ‘123’; //建立授權賬号
用戶端測試
Mysql -h 192.168.10.10 -uroot -p123
Create database bbs;
Create table bbs.t1(id int,name varchar(30));
Alter tabel bbs.t1 engine=nbdcluster; //存儲引擎必須是nbdcluster
Insert into bbs.t1 values(1,’luliechu’);
然後連接配接到另一台主機上看一下資料是否是一緻的
Mysql -h 192.168.10.11 -uroot -p123
Select * from bbs.t1
Ndb_mgm
Show
Mysql cluster安全關閉的順序跟啟動的時候剛好相反及重新開機
管理節點 ndb_mgm -e shutdown //關閉整個叢集
資料節點
Sql節點
注意事項:所有群集節點都不要安裝和啟動mysql server包
本文轉自 探花無情 51CTO部落格,原文連結:http://blog.51cto.com/983865387/1876164