mysql 集群搭建,部署


Mysql集群搭建

一、NDB集群核心概念

1)介绍

NDBCLUSTER (也称为NDB)是一种内存存储引擎,提供高可用性和数据持久性功能。

NDBCLUSTER存储引擎可以与一系列故障切换和负载平衡选项进行配置,但最简单的是开始在集群级别的存储引擎。NDB Cluster的NDB存储引擎包含一整套数据,仅依赖于集群内部的其他数据。

NDB Cluster 的“Cluster”部分是独立于MySQL服务器配置的。在NDB群集中,群集的每个部分都被视为一个节点。

2)节点

有三种类型的集群节点,在最小的NDB集群配置中,将至少有三个节点,每种节点中的一种:

管理节点:此类节点的作用是管理NDB集群中的其他节点,执行诸如提供配置数据,启动和停止节点以及运行备份等功能。

数据节点:此类节点存储群集数据。

NDB Cluster表通常完全存储在内存中而不是磁盘上(这就是我们将NDB Cluster称为 内存数据库的原因)。但是,一些NDB Cluster数据可以存储在磁盘上; 

SQL节点:这是一个访问集群数据的节点。对于NDB Cluster,SQL节点是使用NDBCLUSTER存储引擎的传统MySQL服务器 。SQL节点是使用和 选项启动的mysqld进程

重要

期望在生产环境中使用三节点设置是不现实的。这种配置不提供冗余; 要从NDB Cluster的高可用性功能中受益,您必须使用多个数据和SQL节点。强烈建议使用多个管理节点。

 

二、集群安装--准备工作

以下操作与官网有些出入,如有疑问,可自行翻阅资料

https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-install-linux-binary.html  官网地址

1)环境

系统

CentOS Linux release 7.2.1511 (Core)

mysql集群版本

mysql-cluster-gpl-7.6.9-linux-glibc2.12

 

这里这是简单搭建,三台机器,三个节点

要保证机器之间能够ping通

192.168.10.151   

管理节点

192.168.10.67    

sql节点

192.168.10.162   

数据节点

 

 

 

2)添加mysql用户

在三台机器,均执行以下操作

 1、增加用户和群组

shell> groupadd mysql

shell> useradd -g mysql -s /bin/false mysql

  shell> id mysql  查看mysql是否创建成功

  uid=1001(mysql) gid=1001(mysql) groups=1001(mysql)

2、下载安装包,并上传到3台机器上面

 

 

三、集群安装--安装二进制文件

1)SQL节点。

SQL节点在指定用于承载SQL节点的每台计算机上

以下操作为初始化数据库

1

shell> tar  -xzvf mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64.tar.gz 

shell> mv mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64 /usr/local/ #移动

shell> cd /usr/local/

shell> mv mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64  mysql   #改名字

shell> cd mysql 

shell> mkdir  data     

[root@fdmsdb /]# chown mysql:mysql data     

[root@fdmsdb /]# chmod -R 755 data     

 

2、修改/etc/my.cnf 文件

①先自行创建my.cnf 所需文本,并更改权限

例如

cd /var/log/

touch mysqld.log

chown mysql:mysql mysqld.log

chmod 775 mysqld.log

/my.cnf 具体配置如下

[mysqld]

# Options for mysqld process:

symbolic-links=0

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

socket=/tmp/mysql.sock

 

[mysqld_safe]

#错误日志

log-error=/var/log/mysqld.log

pid-file=/var/run/mariadb/mariadb.pid

# include all files from the config directory

#

#!includedir /etc/my.cnf.d

3、初始化数据库

 

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share

4、设置MySQL服务器和数据目录的必要权限

shell> cd /usr/local/mysql 

shell> chown -R root . 

shell> chown -R mysql data

shell> chgrp -R mysql .

5、设置链接

shell> cp support-files/mysql.server /etc/rc.d/init.d/

shell> chmod +x /etc/rc.d/init.d/mysql.server

shell> chkconfig --add mysql.server

(启动脚本目录可能因操作系统和版本而异 - 例如,在某些Linux发行版中,它是 /etc/init.d。)

请记住,必须在要驻留SQL节点的每台计算机上重复上述步骤。

 

2)数据节点。

 安装数据节点一般来说不需要 mysqld二进制文件。只需要NDB Cluster数据节点可执行ndbd(单线程)或 ndbmtd(多线程)。

 

①为了保险起见,重复SQL节点初始化数据库的操作

shell> cd  /usr/local/mysql

shell> cp bin/ndbd /usr/local/bin/ndbd

shell> cp bin/ndbmtd /usr/local/bin/ndbmtd

shell> cd /usr/local/bin

shell> chmod +x ndb*

应在每个数据节点主机上重复上述步骤。

 

3)管理节点  

安装管理节点不需要 mysqld二进制文件。只需要NDB群集管理服务器ndb_mgmd您最有可能也想安装管理客户端ndb_mgm

shell> tar -zxvf mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64.tar.gz

shell> cd mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64 

shell> cp bin/ndb_mgm* /usr/local/bin

# 创建快捷方式

 shell> cd /usr/local/bin

 shell> chmod +x ndb_mgm*

 

三、NDB集群的初始配置

1)配置数据节点和SQL节点

my.cnf添加下列信息

shell> vi /etc/my.cnf
[mysqld] # Options for mysqld process:

 ndbcluster # run NDB storage engine 

[mysql_cluster]

 # Options for NDB Cluster processes:

 ndb-connectstring=192.168.10.151  # location of management server

 

2)配置管理节点

1

shell> mkdir /var/lib/mysql-cluster

shell> cd /var/lib/mysql-cluster

shell> vi config.ini
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=1    # Number of replicas 目前只有数据一个数据节点,设置为1
DataMemory=80M    # How much memory to allocate for data storage
IndexMemory=18M   # How much memory to allocate for index storage
                  # For DataMemory and IndexMemory, we have used the
                  # default values. Since the "world" database takes up
                  # only about 500KB, this should be more than enough for
                  # this example NDB Cluster setup.
ServerPort=2202   # This the default value; however, you can use any
                  # port that is free for all the hosts in the cluster
                  # Note1: It is recommended that you do not specify the port
                  # number at all and simply allow the default value to be used
                  # instead
                  # Note2: The port was formerly specified using the PortNumber
                  # TCP parameter; this parameter is no longer available in NDB
                  # Cluster 7.6.
[ndb_mgmd]
# Management process options:
HostName=192.168.10.151          # Hostname or IP address of MGM node
DataDir=/var/lib/mysql-cluster  # Directory for MGM node log files
[ndbd] # Options
for data node "A": # (one [ndbd] section per data node HostName=192.168.10.162 # Hostname or IP address NodeId=2 # Node ID for this data node DataDir=/usr/local/mysql/data # Directory for this data node's data files [mysqld] # SQL node options: HostName=192.168.10.67 # Hostname or IP address # (additional mysqld connections can be # specified for this node for various # purposes such as running ndb_restore)

 

2、开放端口

Cluster管理节点的默认端口是1186; 数据节点的默认端口是2202.但是,群集可以自动为那些已经空闲的数据节点分配端口。

/sbin/iptables -I INPUT -p tcp --dport 1186 -j ACCEPT     -- 开放端口

四、启动集群

(1)在管理主机上

启动管理节点进程

 ndb_mgmd -f /var/lib/mysql-cluster/config.ini

(2)在每个数据节点主机上

shell> ndbd

 

3SQL主机

shell> /usr/local/mysql/bin/mysqld_safe &

 

(4)测试

如果一切顺利,并且群集已正确设置,则群集现在应该可以运行。您可以在管理节点上调用ndb_mgm客户端来测试它。

shell> ndb_mgm

 -- NDB Cluster -- Management Client

-- ndb_mgm> SHOW 

Connected to Management Server at: localhost:1186 Cluster Configuration

至此大功告成

 

shell> ndb_mgm -e shutdown      # 关闭群集

 

如果出现报错,请检查文件配置和文件的权限是否正确


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM