mysql 集群  (解决单点故障,并备份)

集群软件  

mysql-cluster-gpl-6.3.20-linux-i686-glibc23.


集群中有三种角色

管理进程

mysqld进程

ndbd 进程



管理软件内有有三个进程


ndb节点  (数据节点)

实现备份功能至少有俩个 ndb1  和 ndb2

sql 节点    (1访问服务的接口  2执行sql 语句的终端)

sql2 节点备份sql的

管理主机  (集群中启动程序的时候 读配置文件 配置文件内指定集群中主机的角色)

-------------------------------------------

等主机们都开启了以后  (管理主机关掉也可以  只要管理主机的进程启动起来了,区分了主机的身份 ,关掉管理主机也可以)

----------------------------------------

找5台主机  1  sql1   2 sql2    3 ndb1  4 ndb2    5  管理主机



公共配置

1  service mysqld stop

2   ping

3  setenforce 0

4   service iptables  stop

5   安装集群软件包

5  没有mysql用户和组手动创建


tar -zxvf mysql-cluster-gpl-6.3.20-linux-i686-glibc23.tar.gz  -C /usr/local/

mv  mysql-cluster-gpl-6.3.20-linux-i686-glibc23    cluster

cd /usr/local/cluster

chown -R mysql:mysql /usr/local/cluster



配置管理节点

cd /usr/local/cluster

touch  config.ini

vim config.ini     里面不能有空行!删掉空行


1 [ndbd  default]

 2 NoOfReplicas=2            保存数据份数

 3 DataMemory=80M         查询硬件缓存

 4 IndexMemory=18M        索引硬件缓存信息

5 [ndb_mgmd]                    管理节点进程

 6 id=1                                    表识

 7 hostname=192.168.1.2     管理主机地址

 8 datadir=/user/local/cluster/dbdata   收集到的数据存放到那里

 9 [ndbd]                                      

10 id=2                                              编号

11 Hostname=192.168.1.149              

12 Datadir=/usr/local/cluster/dbdata

13 [ndbd]

14 id=3

15 Hostname=192.168.1.71

16 Datadir=/usr/local/cluster/dbdata

17 [mysqld]                                                        

18 Id=4

19 Hostname=192.168.1.111

21 [mysqld]

22 Id=5

23 Hostname=192.168.1.169



配置数据节点


mv  /etc/my.cnf   /etc/my.cnf.bak  该名

vim /etc/my.cnf  创建一个


 [mysqld]

datadir=/usr/local/clster/dbdata    文件在那,和管理主机目录一致

 ndbcluster                       存储引擎

ndb-connectstring=192.168.1.2    谁管理

[mysql_cluster]        集群管理

ndb-connectstring=192.168.1.2     这个主机管理集群




配置 sql节点

mv  /etc/my.cnf   /etc/my.cnf.bak  该名

vim /etc/my.cnf  创建一个

 [mysqld]

ndbcluster                                     存储引擎

ndb-connectstring=192.168.1.2    谁管理

[mysql_cluster]                               集群管理

ndb-connectstring=192.168.1.2     这个主机管理集群



sql 节点

初始化 授权库

[root@xu cluster]# cd /usr/local/cluster/

[root@xu cluster]# ./scripts/mysql_install_db --user=mysql  初始化数据库

[root@xu cluster]# ls data/mysql/              如果有文件就初始化成功



不同的角色启动不同的程序


启动管理进程   按照顺序启动

1  管理主机

[root@xu cluster]# cd /usr/local/cluster/

[root@xu cluster]# ./bin/ndb_mgmd -f ../config.ini  启动

[root@xu cluster]# pgrep  mgmd   查看有没有P id号

[root@xu cluster]# ./bin/ndb_mgm  登录管理界面

ndb_mgm> show 查看信息



启动数据节点

[root@xu cluster]# cd /usr/local/cluster/bin

[root@xu bin]# ./ndbd    启动

pkill -9 ndbd  杀死进程


pgre  ndbd  查看



启动sql节点

asdsd

[root@xu bin]# cd /usr/local/cluster/

[root@xu bin]# . /bin/mysqld_safe -user=mysql &  启动sql节点


[root@xu bin]# netstat -utanlp | grep :3306   查看端口是否被占用

[root@xu cluster]# ./bin/mysql       登录mysql


mysql> create table a(id int(3))engine=ndbcluster;  创建表的时候一定要指定






启动sql2节点

[root@xu bin]# cd /usr/local/cluster/

[root@xu bin]# . /bin/mysqld_safe -user=mysql &  启动sql节点

[root@xu bin]# netstat -utanlp | grep :3306   查看端口是否被占用

[root@xu cluster]# ./bin/mysql       登录mysql





ndb俩个节点 还有备份功能 ,