• 双机冗余备份和负载均衡策略(Mysql Cluster入门安装配置指南)


    MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。

    首先我们下载Mysql Cluster,下载链接地址为MySQL Cluster 7.1.17,我们采用的服务器为CentOS Server和Ubuntu Server,所以我们下载针对Linux Generic版本。

    现在我有三台服务器,两个是CentOS Server,一个是Ubuntu Server,前两个Server分别作为Data Node和SQL Node(Data Node和SQL Node在同一个机器上面),

    后者作为Management Node,如果没有真实机器的,可以用虚拟机模拟,下面是我的IP部署:

    1 192.168.56.10     Data Node + Sql Node
    2 192.168.56.20 Data Node +Sql Node
    3 192.168.56.30 Management Node

    下面是我机器的大致拓扑图结构:

    接下来我们就需要对这几个节点进行详细的配置工作:

    1、配置Data Node和SQL Node

    目前我们采用的三台机器策略,所以把这两个节点放在同一个机器上面,所以我们在一次配置就可以了。

    首先我们在192.168.56.10这台机器上面进行操作配置,192.168.56.20操作配置和这样

    我们需要在ROOT账户下面执行下属操作,如果在CentOS中遇到命令找不到的问题,就参考我的BlogCentOS系统bash: groupadd: command not found问题

    接下来我们要创建一个新的用户组和用户,命令如下:

    1 groupadd mysql
    2 useradd –g mysql mysql

    将mysql cluster放在/usr/local/下面,执行命令:

    1 tar -C /usr/local -xzvf mysql-cluster-gpl-7.1.17-linux-i686-glibc23.tar.gz
    2 ln -s /usr/local/mysql-cluster-gpl-7.1.17-linux-i686-glibc23 /usr/local/mysql

    进入到mysql目录下面,执行数据库初始化命令:

    1 scripts/mysql_install_db --user=mysql

    进行权限更改操作,命令为:

    1 chown -R root .
    2 chown -R mysql data
    3 chgrp -R mysql .

    2、配置Management Node

    将ndb_mgmd和ndb_mgm脚本文件放入到/usr/local/bin目录下面,命令为:

    1 tar -zxvf mysql-5.1.56-ndb-7.1.17-linux-i686-glibc23.tar.gz
    2 cd mysql-5.1.56-ndb-7.1.17-linux-i686-glibc23
    3 cp bin/ndb_mgm* /usr/local/bin

    更改其对应的权限,命令为:

    1 cd /usr/local/bin
    2 chmod +x ndb_mgm*

    新建目录/var/lib/mysql-cluster/,命令为:

    mkdir -p /var/lib/mysql-cluster/

    3、配置三台机器的配置文件

    两台数据节点的在/etc目录下面创建配置文件my.cnf,其内容为:

    复制代码
    [mysqld]
    ndbcluster
    datadir=/usr/local/mysql/data
    basedir=/usr/local/mysql
    port=3306
    [mysql_cluster]
    ndb-connectstring=192.168.56.10
    复制代码

    如果在运行过程中出现Mysql数据库“Communications link failure due to underlying exception”问题,请参考这边博文进行配置。

    针对192.168.56.20机器只要把ndb-connectstring替换一下就行了。

    在管理节点机器/etc目录下面创建config.ini文件,其内容为:

    复制代码
     1 [ndbd default]
    2 NoOfReplicas=2
    3 DataMemory=80M
    4 IndexMemory=18M
    5
    6 [ndb_mgmd]
    7 NodeId=1
    8 hostname=192.168.56.30
    9 datadir=/var/lib/mysql-cluster
    10
    11 [ndbd]
    12 NodeId=2
    13 hostname=192.168.56.10
    14 datadir=/usr/local/mysql/data
    15
    16 [ndbd]
    17 NodeId=3
    18 hostname=192.168.56.20
    19 datadir=/usr/local/mysql/data
    20
    21 [mysqld]
    22 [mysqld]
    复制代码

    4、启动集群环境

    首先我们需要先启动管理节点192.168.56.30机器,执行命令:

    1 ndb_mgmd -f /etc/config.ini --initial

    如果出现The default config directory '/usr/local/mysql/mysql-cluster' does not exist这个错误信息,就手动创建这个文件夹。

    接下来我们需要在192.168.56.10和192.168.56.20启动数据节点,命令为:

    1 bin/ndbd --initial

    第一次启用需要加—initial参数,第二次启动不能加这个参数。两台机器都分别执行这个命令。

    接下来启动这两台机器的sql节点,命令为:

    1 bin/mysqld_safe --user=mysql &

    两台机器都需要执行这个命令。
    最后进入到管理台查看我们的集群是否配置完成,输入命令:

    1 ndb_mgm –e show

    如果出现下面信息,说明配置成功:

    如果看不到上述信息,可能是防火墙问题,你可以选择把CentOS的防火墙关掉,命令为:

    1 /etc/init.d/iptables stop

    当然你可以选择配置防火墙,开放一些必要的端口,可以参考我的另一篇文章CentOS 打开3306端口

    关闭集群,执行命令:

    1 ndb_mgm –e shutdown
  • 相关阅读:
    Servlet(JSP)中动态生成JPG PNG透明 水印图像
    THML IFRAME框架 各个子页面间操作
    JAVA时间处理和格式化
    ACM母函数详解 整数划分详解 java
    java中的Java5.0 的注释 (Annotation)、多线程包2(J2SE入门26)
    java中的String为什么可以使用==比较字符串内容?
    深入biztalk中sql adapter
    biztalk中消息的Property fields和Distinguished fields
    深入biztalk中Delivery Notification和ACK、NACK机制
    深入biztalk中各种端口绑定方式(一) 背景知识订阅机制
  • 原文地址:https://www.cnblogs.com/hujihon/p/5551643.html
Copyright © 2020-2023  润新知