您的位置:首页 > 运维架构 > 网站架构

MYSQL集群+HA高可用

2013-11-27 10:26 239 查看
MySQL Cluster 是用于解决高可用和高可靠性的解决方案。
MySQL Cluster 具有故障恢复、节点修复、数据同步、非单点故障等优点。
MySQL Cluster是为提供99.999%以上的高可用性而设计的,采用分布式节点设计技术,不会因为单点故障而使整个Cluster瘫痪。
MySQL Cluster由3类节点组成:管理节点、数据节点、SQL节点。

1:数据节点
  数据节点是整个系统中最主要的节点,它负责存储所有的数据以及数据的同步复制,以防单个或者更多的节点故障而使MySQL Cluster瘫痪。

2:管理节点
  管理节点用于管理系统的配置信息,只在启动和重新配置MySQL Cluster的时候才起作用。一般情况下只需要1个管理节点,当然也可以运行几个管理节点。

3:SQL节点
  SQL节点用于数据节点存取数据,提供统一的标准SQL接口,跟平常的MySQL Serve一样,让应用程序和开发人员不用关心系统内部究竟是如何运行的。

os:centos5/rhel5 mysql version:5.1.22 rc

准备:
mysql-max-5.1.5-alpha-linux-i686-glibc23.tar

环境:
管理节点
IP:192.168.0.118 主机名:mgm
存?节点1/sql节点1: 192.168.0.146 主机名: node1
存?节点2/sql节点2: 192.168.0.221主机名: node2

三台主机的hosts 文件要一样

192.168.0.118 mgm
192.168.0.146 node1
192.168.0.221 node2
这里只有用一台管理节点

存?节点和SQL节点分别在在两台电脑上,也就是存?节点同时也当数据节点
========================================================================
安装:分别在三台电脑安装数据库

shell>tar xvf mysql-max-5.1.5-alpha-linux-i686-glibc23.tar

shell> groupadd mysql

shell> useradd -g mysql mysql

shell> cd /usr/local

shell> mv mysql-max-5.1.5-alpha-linux-i686-glibc23 mysql

shell> cd mysql

shell> chown -R mysql .

shell> chgrp -R mysql .

shell> scripts/mysql_install_db --user=mysql

shell> chown -R root .

shell> chown -R mysql data

shell> bin/mysqld_safe --user=mysql &

复制代码

CP启动脚本到/etc/init.d 目录
shell>cp support-files/mysql.server /etc/init.d/mysqld

复制代码

停止mysql 数据库
shell>/etc/init.d/mysqld stop

复制代码
加入systemV服务
shell>chkconfig --add mysqld

复制代码
cp MYSQL配置文件到/etc/目录
shell>cp support-files/my-small.cnf /etc/my.cnf

复制代码
测试三台上面的数据库启动是否正常

二:配置管理节点
MGM:
1,配置/etc/my.cnf文件
在后面添加如下内容
[ndb_mgm]

connect-string=mgm

[ndb_mgmd]

config-file=/etc/config.ini

##connect-string=mgm ##ndb_mgm 管理节点的计算机名

##config-file=/etc/config.ini ##ndb_mgmd的启动所要的配置文件

复制代码

2,ndb_mgmd的配置文件 config.ini配置如下
#

# DEFAULT SETTINGS

#

# Default settings for all data nodes

[NDBD DEFAULT]

NoOfReplicas=2

DataMemory=644245094

IndexMemory=322122547

#

# COMPUTER DEFINITIONS

#

# Datanode Computer #1

[COMPUTER]

Id=1

HostName=node1

# Datanode Computer #2

[COMPUTER]

Id=2

HostName=node2

# Management Node Computer #1

[COMPUTER]

Id=3

HostName=mgm

#

# NODE DEFINITIONS

#

# Data Nodes

# Node group #1

[NDBD]

Id=1

ExecuteOnComputer=1

[NDBD]

Id=2

ExecuteOnComputer=2

# Management node

[NDB_MGMD]

Id=3

ExecuteOnComputer=3

# Anonymous API nodes ##

[MYSQLD]

[MYSQLD]

[MYSQLD]

复制代码

分另在两点节点配置:在/etc/my.cnf下面添加如下内容
[MYSQLD]

ndbcluster

ndb-connectstring=mgm

#default_table_type=NDBCLUSTER

[MYSQL_CLUSTER]

ndb-connectstring=mgm

# my.cnf

[MYSQL_CLUSTER]

ndb-connectstring=mgm #管理节点的主机名

/////////

mysql cluster实战

////////////////////////////////////////////////////////////////////////////////

192.168.0.118是管理节点,192.168.0.146、192.168.0.221是数据节点和sql节点一体化

复制代码
启动管理节点

/usr/local/mysql/bin/ndb_mgmd -f /etc/config.ini

复制代码

注意,必须用“-f”或“--config-file”选项,告诉ndb_mgmd到哪里找到配置文件(详情请参见17.5.3节,“ndb_mgmd,“管理服务器”进程”)。

6.启动数据节点

第一次启动

/usr/local/mysql/bin/ndbd --initial

复制代码

注意,仅应在首次启动ndbd时,或在备份/恢复或配置变化后重启ndbd时使用“--initial”参数,这很重要。原因在于,该参数会使节点删除由早期ndbd实例创建的、用于恢复的任何文件,包括恢复用日志文件。

非第一次启动:
/usr/local/mysql/bin/ndbd

7.启动sql节点
service mysqld start start

8.调用ndb_mgm管理节点客户端,可对其进行测试

#/usr/local/mysql/bin/ndb_mgm

ndb_mgm> show

Connected to Management Server at: mgm:1186

Cluster Configuration

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

[ndbd(NDB)] 2 node(s)

id=1 @192.168.0.146 (Version: 5.1.5, Nodegroup: 0)

id=2 @192.168.0.221 (Version: 5.1.5, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)

id=3 @192.168.0.118 (Version: 5.1.5)

[mysqld(API)] 3 node(s)

id=4 @192.168.0.221 (Version: 5.1.5)

id=5 @192.168.0.146 (Version: 5.1.5)

id=6 (not connected, accepting connect from any host)

复制代码

查看网络连接情况

234管理节点:

[root@mgm local]# netstat -anp | grep mgm

tcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 10059/ndb_mgmd

tcp 0 0 192.168.0.118:47504 192.168.0.118:1186 ESTABLISHED 10302/ndb_mgm

tcp 0 0 192.168.0.118:47503 192.168.0.118:1186 ESTABLISHED 10302/ndb_mgm

tcp 0 0 192.168.0.118:47502 192.168.0.118:1186 ESTABLISHED 10302/ndb_mgm

tcp 0 0 127.0.0.1:34878 127.0.0.1:1186 ESTABLISHED 10059/ndb_mgmd

tcp 0 0 192.168.0.118:1186 192.168.0.221:2689 ESTABLISHED 10059/ndb_mgmd

tcp 0 0 127.0.0.1:1186 127.0.0.1:34878 ESTABLISHED 10059/ndb_mgmd

tcp 0 0 192.168.0.118:1186 192.168.0.146:57511 ESTABLISHED 10059/ndb_mgmd

tcp 0 0 192.168.0.118:1186 192.168.0.118:47502 ESTABLISHED 10059/ndb_mgmd

tcp 0 0 192.168.0.118:1186 192.168.0.118:47503 ESTABLISHED 10059/ndb_mgmd

tcp 0 0 192.168.0.118:1186 192.168.0.118:47504 ESTABLISHED 10059/ndb_mgmd

tcp 0 0 192.168.0.118:1186 192.168.0.221:2356 ESTABLISHED 10059/ndb_mgmd

tcp 0 0 192.168.0.118:1186 192.168.0.221:2355 ESTABLISHED 10059/ndb_mgmd

tcp 0 0 192.168.0.118:1186 192.168.0.146:34588 ESTABLISHED 10059/ndb_mgmd

复制代码

数据和SQL节点:

[root@node1 data]# netstat -anp | grep 192.168.0.146

tcp 0 0 192.168.0.221:1284 192.168.0.146:51311 ESTABLISHED 3053/mysqld

tcp 0 0 192.168.0.221:4182 192.168.0.146:42435 ESTABLISHED 2714/ndbd

tcp 0 0 192.168.0.221:1545 192.168.0.146:55286 ESTABLISHED 2714/ndbd

tcp 0 0 192.168.0.221:2356 192.168.0.118:1186 ESTABLISHED 2714/ndbd

tcp 0 0 192.168.0.221:2355 192.168.0.118:1186 ESTABLISHED 2714/ndbd

tcp 0 0 192.168.0.221:1284 192.168.0.146:51311 ESTABLISHED 3053/mysqld

复制代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: