美文网首页
NDBCluster 安装

NDBCluster 安装

作者: 一把君子剑 | 来源:发表于2018-12-10 15:21 被阅读5次

    参考博文:centos65安装简测mysql cluster 7.3.7

    1 设备信息

    1.1 设备台数

    服务器数量 2 台:172.16.112.28 和 172.16.112.29

    1.2 服务器信息

    CentOS release 6.8 (Final)      
    

    2 NDB Cluster安装

    2.1 安装规划

    整个 NDB Cluster 一共5个节点:
    172.16.112.28 分别做一个数据节点,SQL节点,管理节点
    172.16.112.29 分别做一个数据节点,SQL节点,管理节点

    2.2 下载

    Mysql Cluster下载地址
    选择MySQL Cluster 7.4版本,因为该版本的 Mysql 版本为 5.6.42,可根据自身需要选择版本。

    image.png

    2.3 卸载老版本的Mysql

    如果系统内已经有Mysql服务了,需要先卸载后再进行安装,否则会报错。

    rpm -qa | grep mysql
    mysql-libs-5.1.73-7.el6.x86_64
    yum -y remove mysql-libs-5.1.73-7.el6.x86_64  #卸载命令
    

    2.4 创建用户和组

    groupadd mysql
    useradd -r -g mysql mysql
    id mysql
    

    2.5 安装数据节点和Mysql节点

    tar -zxvf mysql-cluster-gpl-7.4.22-linux-glibc2.12-x86_64.tar.gz
    

    因为是绿色版的,所以解压就已经安装完成了。直接放至 /usr/local/mysql/ 目录下即可。

    mv mysql-cluster-gpl-7.4.22-linux-glibc2.12-x86_64 /usr/local/mysql
    

    给 mysql 系统权限

     chown -R root:mysql /usr/local/mysql/
     chown -R mysql /usr/local/mysql/data/ 
    

    进入 mysql 目录下

    cd /usr/local/mysql/
    

    创建MySQL Server系统表

    scripts/mysql_install_db --user=mysql
    

    配置数据库服务

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    

    设置数据库为开机启动

    chkconfig --add mysqld
    

    配置Mysql文件

    cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
    

    需要新增这些配置信息在 /etc/my.cnf 上

    [mysql_cluster]
    ndb-connectstring = 172.16.112.28  //172.16.112.28 为管理节点
    [mysqld]
    ndbcluster
    

    双管理节点的为

    [mysql_cluster]
    ndb-connectstring=172.16.112.28,172.16.112.29
    [mysqld]
    ndbcluster
    

    到这里数据节点和管理节点就完成了,两台服务器都需要配置

    2.6 部署管理节点

    管理节点只需要在一台服务器上部署就可以了,我们选择 .28 这台来部署。
    讲 ndb_mgm ndb_mgmd 这两个文件移动到 /usr/local/bin 下

    cp mysql/bin/ndb_mgm* /usr/local/bin
    

    配置管理节点配置文件

    mkdir /var/lib/mysql-cluster
    vi /var/lib/mysql-cluster/config.ini
    

    新增如下配置信息

    [ndbd default]
    # Options affecting ndbd processes on all data nodes:
    NoOfReplicas=2    # Number of replicas
    DataMemory=80M    # How much memory to allocate for data storage
    IndexMemory=18M   # How much memory to allocate for index storage
    
    [tcp default]
    # TCP/IP options:
    
    [ndb_mgmd]
    # Management process options:
    hostname=172.16.112.28          # Hostname or IP address of MGM node
    datadir=/var/lib/mysql-cluster  # Directory for MGM node log files
    NodeId=1
    
    [ndbd]
    # Options for data node-1:
                                    # (one [ndbd] section per data node)
    hostname=172.16.112.29            # Hostname or IP address
    datadir=/usr/local/mysql/data   # Directory for this data node's data files
    NodeId=2
    
    [ndbd]
    # Options for data node-2:
    hostname=172.16.112.28            # Hostname or IP address
    datadir=/usr/local/mysql/data   # Directory for this data node's data files
    NodeId=3
    
    [mysqld]
    # SQL node options:
    hostname=172.16.112.28            # Hostname
    
    [mysqld]
    # SQL node options:
    hostname=172.16.112.29            # Hostname
    

    双管理节点 config.ini 配置文件如下

    [ndbd default]
    NoOfReplicas=2
    DataMemory=80M
    IndexMemory=18M
    ServerPort=2202
    
    [ndb_mgmd default]
    DataDir= /var/lib/mysql-cluster
    LogDestination=SYSLOG:facility=local0;FILE:filename=/var/lib/mysql-cluster/log.log
    
    [tcp default]
    
    [ndb_mgmd]
    NodeId=1
    HostName=172.16.112.28
    DataDir=/var/lib/mysql-cluster
    
    [ndb_mgmd]
    NodeId=2
    HostName=172.16.112.29
    DataDir=/var/lib/mysql-cluster
    
    [ndbd]
    NodeId=3
    HostName=172.16.112.29
    DataDir=/usr/local/mysql/data
    
    [ndbd]
    NodeId=4
    HostName=172.16.112.28
    DataDir=/usr/local/mysql/data
    
    [mysqld]
    NodeId=5
    HostName=172.16.112.28
    
    [mysqld]
    NodeId=6
    HostName=172.16.112.29
    

    到这管理节点就配置完成了。

    2.7 启动集群

    启动循序应该为:管理节点->数据节点->SQL节点

    单管理节点集群启动管理方法

    更改 confg.ini 后或者第一次启动应该使用以下

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

    普通启动不需要加 --initial 参数

    ndb_mgmd -f /var/lib/mysql-cluster/config.ini 
    
    双管理节点集群启动管理方法

    在 .28 那台服务器启动方法

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

    在 .29 那台服务器启动方法

    ndb_mgmd -c 172.16.112.28 --ndb-nodeid=2 -f /var/lib/mysql-cluster/config.ini
    

    这里的--ndb-nodeid 应该为本台服务器的地址在配置文件中的节点 id 标识号,而且两台服务器的配置文件应该一样。

    启动数据节点

    第一次需要加 --initial 参数,后续不需要

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

    两台服务器的数据节点都要启动
    这里需要防火墙开放 1186 端口

    vim /etc/sysconfig/iptables
    

    添加下面的记录到 iptables 表中

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 1186 -j ACCEPT
    

    重启防火墙

    service iptables restart
    

    启动SQL 节点

    /etc/init.d/mysqld start
    

    可用下面的命令检查是否启动成功,有进程则说明启动成功

    ps -ef | grep mysql
    

    2.7 关闭集群

    关闭顺序应该为:SQL节点->数据节点->管理节点

    关闭SQL节点

    /etc/init.d/mysqld stop
    

    关闭管理节点和数据节点

    ndb_mgm -e shutdown
    

    使用以上命令可以关闭管理节点和数据节点

    3 NDB Cluster 使用

    ndb_mgm 命令登录数据库

    ndb_mgm
    
    -- NDB Cluster -- Management Client --
    ndb_mgm> show
    Connected to Management Server at: 172.16.112.28:1186
    Cluster Configuration
    ---------------------
    [ndbd(NDB)] 2 node(s)
    id=3    @172.16.112.29  (mysql-5.6.42 ndb-7.4.22, Nodegroup: 0, *)
    id=4    @172.16.112.28  (mysql-5.6.42 ndb-7.4.22, Nodegroup: 0)
    
    [ndb_mgmd(MGM)] 1 node(s)
    id=1    @172.16.112.28  (mysql-5.6.42 ndb-7.4.22)
    
    [mysqld(API)]   2 node(s)
    id=5    @172.16.112.28  (mysql-5.6.42 ndb-7.4.22)
    id=6    @172.16.112.29  (mysql-5.6.42 ndb-7.4.22)
    
    ndb_mgm>
    

    可以看到用 show 命令可以查看各个节点的信息

    4 NDB Cluster 数据备份与恢复

    4.1 数据备份

    编辑配置文件

    [ndbd default]
    BackupDataDir=/data/mysql-cluster
    

    在 [ndbd default] 项中加入备份目录,如果配置该项,备份目录默认为 /usr/local/mysql/data/BACKUP/
    登录 ndb_mgm , 执行备份命令即可

    start backup nowait
    
     Node 3: Backup 1 started from node 1
    Node 3: Backup 1 started from node 1 completed
     StartGCP: 383 StopGCP: 386
     #Records: 2060 #LogRecords: 0
     Data: 52040 bytes Log: 0 bytes
    

    这里需要记录备份 id ,如该次备份的 id = 1。

    4.2 数据恢复

    需要数据恢复时,启动数据节点应该带 --initial 参数,否则恢复会失败。
    执行数据数据恢复命令

    ndb_restore -b1 -n4 -m -r /data/mysql-cluster/BACKUP/BACKUP-1/
    

    -b 备份id
    -n NDB节点id
    -m 恢复表定义
    -r 备份路径
    -c cluster管理节点连接

    5 NDB Cluster常见问题

    5.1 关于双管理节点集群有个管理节点连接不上的问题

    1. 可能是该管理节点没启动。
    2. 可能是服务器防火墙没开,请检查 /etc/sysconfig/iptables 文件是否开放了 1186端口
    3. 可能是两台服务器的 config.ini 配置文件不一样,请检查后做以下操作:
      主服务器上
    ndb_mgmd --skip-config-cache -f /var/lib/mysql-cluster/config.ini
    

    另一台服务器上

    ndb_mgmd -c 172.16.112.28 --skip-config-cache --ndb-nodeid=2 -f /var/lib/mysql-cluster/config.ini
    

    5.2 NDB Cluster 数据同步的问题

    1. 若需要数据同步的话,需要将表的引擎设置 engine=ndbcluster。
    2. 数据库不会自动同步,需要再同步的服务器新建相同名字的数据库,库里面的表单数据就会自己同步了,前提表的引擎为 ndbcluster。

    5.3 关于数据恢复的问题

    Backup Id = 4
    Nodeid = 4
    backup path = /data/mysql-cluster/BACKUP/BACKUP-4/
    Opening file '/data/mysql-cluster/BACKUP/BACKUP-4/BACKUP-4.4.ctl'
    File size 22368 bytes
    Backup version in files: ndb-6.3.11 ndb version: mysql-5.6.42 ndb-7.4.22
    Stop GCP of Backup: 3157
    
    Failed to initialize consumers
    
    NDBT_ProgramExit: 1 - Failed
    

    恢复数据时发现报以上的错误,解决方法为:
    编辑 config.ini 配置文件
    新增一行

    [mysqld]
    

    其他不用理,重启 NDBCluster,再进行备份即可

    相关文章

      网友评论

          本文标题:NDBCluster 安装

          本文链接:https://www.haomeiwen.com/subject/yohwcqtx.html