天天看點

mysql群集搭建案例解析

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