zoukankan      html  css  js  c++  java
  • 32.Mysql Cluster

    32.Mysql Cluster
    Cluster是一组节点的组合。
    节点分为数据节点、SQL节点、管理节点。
    节点组合在一起可以为应用提供高可用、高性能、可缩放的Cluster数据管理。
    数据节点使用NDB存储引擎存储数据。
    Mysql Cluster的特点:数据分布式存储,数据冗余策略,节点可扩展的架构。
    Mysql Cluster的目的:满足更大规模的应用,提高系统的可靠性和数据的有效性。
    Mysql Cluster的现状:性能和可靠性有待完善。

    32.1 Mysql Cluster架构
    管理节点:通过config.ini配置文件维护管理其他节点。如:配置数据副本的数量、数据节点的位置、SQL节点的位置、为数据或索引分配的内存等。
    SQL节点:应用通过SQL节点来访问数据节点,即提供数据访问服务的节点。
    数据节点:存放数据的节点。
    Mysql Cluster的访问过程:
    前台应用一定的负载均衡算法将对数据库的访问分散到不同的SQL节点上;
    然后SQL节点对数据节点进行数据访问并从数据节点返回结果;
    最后SQL节点将收到的结果返回给前台应用。
    管理节点不参与访问过程,只用来对SQL节点和数据节点进行配置管理。

    32.2 Mysql Cluster的配置
    管理节点1个:172.22.5.201
    SQL节点2个:172.22.5.201/202:3331
    数据节点2个:172.22.5.201/202 datadir=/home/mysql/data
    32.2.1 Mysql Cluster的版本支持
    首先下载mysql cluster安装包mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64.tar.gz
    安装之前,如果之前安装过mysql,那么需要删除相应的各种mysql文件,删除之前请停止mysql服务。
    并且不要忘记删除my.cnf这些配置文件。确保删除干净。不然可能会和后面的安装有冲突。
    如果是实验,关闭防火墙,实际中,防火墙打开对应端口,{注意实际中需要使用的端口不只有3306端口,还有同步需要使用的1186端口!!!}。
    保证服务器之前能互相访问,能ping通。保证固定的ip地址。保证没有别的程序占用需要使用的端口。如3306等。
    这些都确认完毕后再进行安装。需要linux基础的命令熟练,需要熟练安装mysql基本版本等操作,因为后序的一些操作我会简单描述,不做过多的说明了。

    32.2.2 管理节点配置步骤
    将下载后的包上传至服务器/usr/local下
    解压
    # tar xvf mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64.tar.gz
    将需要的文件取出
    # cd mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64
    # cp bin/ndb_mgm* /usr/local/bin --拷贝ndb_mgm和ndb_mgmd到/usr/local/bin
    # cd /usr/local/bin
    # chmod +x ndb_mgm* -- 给ndb_mgm和ndb_mgmd授执行权限
    新建配置文件并且初始化管理节点
    # mkdir /var/lib/mysql-cluster
    # mkdir /usr/local/mysql
    # vi /var/lib/mysql-cluster/config.ini --管理节点的配置文件config.ini
    下面是配置文件,根据自己的需求修改,首先给出官网的默认配置文件,然后给出我的配置文件,根据我修改的修改即可,别的均可不动。
    见default_config.ini和my_config.ini文件。

    使用配置文件初始化管理节点
    # /usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
    出现MySQL Cluster Management Server mysql-5.7.16 ndb-7.5.4
    然后就能使用ndbd进去管理了(如果ndbd命令不行,就使用在/usr/local/bin目录下使用ndb_mgm命令)
    # ndbd
    ndb_mgm>show(使用show命令查看管理情况,当数据节点配置完毕之后,我们再用这个命令查看和管理)
    到此为止管理节点配置完毕,接下去配置数据和sql节点

    32.2.3 SQL节点和数据节点的配置
    新增用户组mysql和用户msyql
    # groupadd mysql
    # useradd -g mysql -s /bin/false mysql
    新建文件夹并赋予权限
    # mkdir /var/lib/mysql-cluster
    # chown root:mysql /var/lib/mysql-cluster
    将下载后的包上传至服务器/usr/local下
    解压
    # tar xvf mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_64.tar.gz
    创建链接方便访问
    # ln -s /usr/local/mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_64 /usr/local/mysql
    初始化数据库(这里要注意,如果你安装的版本和我的不同,数据库初始化的命令使不同的,很多之前的版本会使用:scripts/mysql_install_db --user=mysql来初始化,这个已经被mysql在新的版本中废弃了,所以需要使用下面的命令安装,如果你需要安装别的版本请参考mysql官网的对应版本的安装命令。)
    进入刚才创建的目录下
    # cd /usr/local/mysql
    如果下方这个命令无法使用,那么就进入bin目录下使用./mysqld --initialize进行初始化,总之正常安装mysql如何初始化就如何进行安装就可以了,这里还可以设置安装数据库的data目录等参数这里就不多解释了,网上安装mysql5.7的教程很多。
    # mysqld --initialize
    如果初始化成功之后,系统会提示一个随机生成的数据库密码,此时需要记住这个密码,之后登录数据库需要使用这个密码!!!
    修改权限
    # chown -R root .
    # chown -R mysql data
    # chgrp -R mysql .
    # cp support-files/mysql.server /etc/rc.d/init.d/
    # chmod +x /etc/rc.d/init.d/mysql.server
    # chkconfig --add mysql.server
    配置数据节点
    # vi /etc/my.cnf
    [mysqld]
    ndbcluster
    ndb-connectstring=192.168.75.129
    [mysql_cluster]
    ndb-connectstring=192.168.75.129
    其中的IP为管理节点的IP
    启动集群节点上面的服务启动mysql(成功会有success)# /etc/init.d/mysql.server start
    启动mysql成功之后请自己登录进mysql内然后进行密码修改等操作,就和正常安装完成mysql的操作一样。需要注意的是,集群数据库的密码需要相同哦!
    启动ndbd
    # /etc/init.d/ndbd --initial
    如果上述不行使用绝对路径的这个:
    # /usr/local/mysql/bin/ndbd --initial
    如果出现下述现象就成功了
    2017-03-06 14:04:07 [ndbd] INFO -- Angel connected to '192.168.75.129:1186'
    2017-03-06 14:04:07 [ndbd] INFO -- Angel allocated nodeid: 2
    最后当所有的节点配置完成,回到管理节点,使用上述说过的show查看,如下的类似显示,证明已经连接完成
    ndb_mgm> show

    32.3 开始使用Cluster
    32.3.1 Cluster的启动
    32.3.2 Cluster的测试
    32.3.3 Cluster的关闭
    32.4 维护Cluster
    32.4.1 数据备份
    32.4.2 数据恢复
    32.4.3 日志管理
    32.5 小结

  • 相关阅读:
    在ASP.NET Core中使用TagHelpers
    ASP.NET Core使用Redis
    ASP.NET Core MVC中视图
    HTTP状态码
    ASP.NET Core中静态文件
    ASP.NET Core中使用依赖注入
    在ASP.NET Core中使用多个环境
    ASP.NET Core读取配置文件
    HTML+CSS解决高度塌陷和垂直重叠
    Element-UI的表格合计行的列添加操作按钮
  • 原文地址:https://www.cnblogs.com/BradMiller/p/10439978.html
Copyright © 2011-2022 走看看