MySQL集羣
1、 Mysql集羣中服務器的角色:
客戶端:訪問集羣,訪問工具mysql
數據節點:存儲表中的記錄,至少2臺
Sql節點:客戶端訪問集羣的接口,至少2臺
管理節點:管理集羣中的所有主機,1臺
2、 實驗環境
準備5臺服務器,操作系統rhel6,能夠正常通信
Service mysql stop
Chkconfig mysql off
[root@localhost ~]#rpm -qa | grep -i mysql
[root@localhost ~]# rpm -e --nodeps MySQL-server
[root@localhost ~]# rpm -e --nodeps MySQL-client
[root@localhost ~]# rpm -e --nodeps MySQL-shared-compat
[root@localhost ~]# rpm -e --nodeps MySQL-embedded
[root@localhost ~]# rpm -e --nodeps MySQL-test
[root@localhost ~]# rpm -e --nodeps MySQL-devel
mv /etc/my.cnf 刪掉或移走
3、 在所有主機安裝軟件包
[root@localhost ~]# tar vxf
MySQL-Cluster-gpl-7.3.3-1.el6.x86_64.rpm-bundle.tar
[root@localhost ~]#rpm –vUh MySQL-cluster-*rpm(7個)
Mysql集羣軟件提供3種進程:
mysql進程(數據庫服務):在sql節點上運行
ndbd進程:把數據寫入數據節點,在數據節點上運行
mgmd管理進程:在mgm節點上運行
進程啓動時加載自己的配置config.Ini,部署集羣中主機的角色
4、 配置管理節點
(1) 編寫管理節點運行時加載的配置文件config.ini
Mkdir /var/log/mysql-cluster
Vim /etc/config.ini
[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
[ndb_mgmd]
nodeid=1
hostname=192.168.10.253
datadir=/var/log/mysql-cluster
[ndbd]
nodeid=2
hostname=192.168.10.10
datadir=/mysql-cluster/data
[ndbd]
nodeid=3
hostname=192.168.10.20
datadir=/mysql-cluster/data
[mysqld]
nodeid=4
hostname=192.168.10.100
[mysqld]
nodeid=5
hostname=192.168.1.200
(2) 編輯數據節點(192.168.10.10、192.168.10.20)
mkdir -p /mysql-cluster/data
vim /etc/my.cnf
[mysqld]
datadir=/mysql-cluster/data
ndb-connectstring=192.168.10.253
ndbcluster
[mysql_cluster]
ndb-connectstring=192.168.10.253
5、 配置SQL節點(192.168.10.100、192.168.10.200)
vim /etc/my.cnf
[mysqld]
ndbcluster
default-storage-engine=ndbcluster
[mysql_cluster]
ndb-connectstring=192.168.10.253
6、 啓動服務
(1) 啓動管理進程
ndb_mgmd -f /etc/config.ini
ndb_mgm
>show
(2) 啓動數據節點:
ndbd (--initial) //啓動
停止數據進程:pkill -9 ndbd
(3) 啓動sql節點:service mysql start 數據庫目錄/var/lib/mysql
驗證 :集羣是否能夠解決單點故障?
是否能實現數據自動備份?