集群:使用一组服务器提供相同的服务LB :负载均衡集群HA :高可靠集群mysql集群中服务器的角色?1、数据节点 ndbd 用来储藏数据(表的记录)2、sql节点 用户访问数据的接口 执行用户输入的sql语句 3、管理节点 mgmd 管理集群中的所有主机 在启动管理进程时加载,自己的主配置文件,定义集群中各个主机的角色4、客户端:访问数据 只要有连接数据库服务的工具就可以了 //(mysql-cluster-client)mysql-clusert 提供3种进程管理进程 管理进程运行的管理主机上ndbd进程 运行在数据节点上。sql进程(集群软件包里提供的数据库服务,运行sql节点上)
一、安装提供集群服务的软件包
tar -xvf MySQL-Cluster-gpl-7.3.3-1.el6.x86_64.rpbundle.tar rpm -ivh MySQL-Cluster-*.rpm
二、配置管理节点 192.168.1.1
管理集群中的所有主机,启动管理进程时加载自己的主配置文件/etc/config.ini (设置集群中个主机的角色,各个主机角色在运行时参数的设置)
[ndbd default] // 数据节点公共配置[ndb_mgmd] //设置管理主机[ndbd] // 指定数据节点主机[mysqld] // 指定sql节点 mkdir /var/log/mysql-cluster //自己创建这个目录
vim /etc/config.ini //自己编辑这个文件[ndbd default] NoOfReplicas=2 //数据节点主机个数DataMemory=80M IndexMemory=18M [ndb_mgmd] //管理节点nodeid=1 hostname=192.168.1.1 datadir=/var/log/mysql-cluster [ndbd] //数据节点nodeid=2 hostname=192.168.1.10 datadir=/var/log/mysql-cluster/data [ndbd] //数据节点nodeid=20 hostname=192.168.1.20 datadir=/var/log/mysql-cluster/data [mysqld] //mysql节点nodeid=10 hostname=192.168.1.30 [mysqld] nodeid=30 hostname=192.168.1.40:wq
三、配置数据节点 192.168.1.10 192.168.1.20
数据节点用来存储数据,运行数据进程
ping 192.168.1.1mkdir -p /var/log/mysql-cluster/data //自己创建这个目录vim /etc/my.cnf //自己编辑这个文件[mysqld]datadir=/var/log/mysql-cluster/data ndb-connectstring=192.168.1.1ndbcluster [mysql_cluster]ndb-connectstring=192.168.1.1另一个数据节点配置和这个一样只需 scp /etc/my.cnf
四、配置sql节点 192.168.1.30 192.168.1.40
供用户访问和执行sql语句,运行mysql数据服务。
vim /etc/my.cnf[mysqld]ndbcluster default-storage-engine=ndbcluster [mysql_cluster]ndb-connectstring=192.168.1.1 :wq 另一个mysql节点配置和这个一样只需 scp /etc/my.cnf root@192.168.1.40:/etc/my.cnf
五、启动集群服务
1 启动管理节点
ndb_mgmd -f /etc/config.ininetstat -untlap | grep :1186ps aux | grep ndb_mgmdpkill -9 ndb_mgmd //结束进程需要这条口令[root@localhost ~]# ndb_mgm-- NDB Cluster -- Management Client --ndb_mgm> showndb_mgm>exit
2 启动数据节点
[root@localhost ~]#ndbdpgrep ndbd pkill -9 ndbd //结束进程需要这条口令* ndb 节点进程启动不了,在管理节点和数据节点执行 iptables -F service iptables save然后再在数据节点上执行ndbd3 启动sql节点service mysql restart
六、验证集群
解决单点故障 当有一台数据节点down机不会影响服务 当有一台MYSQLdown机也不会影响服务启动mysql时经常出现缺少xxx.pid这个问题,只需要把/var/lib/mysql/下有关日志文件删除就行, 然 后重新启动服务