zoukankan      html  css  js  c++  java
  • 搭建mysql NDB集群

    NDB群集安装

    介绍

    https://dev.mysql.com/doc/refman/8.0/en/mysql-cluster-basics.html

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

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

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

    共有三种类型的群集节点,并且在最小的NDB群集配置中,将至少有三个节点,这些类型之一:

    • 管理节点:这种类型的节点的作用是管理NDB群集中的其他节点,执行诸如提供配置数据,启动和停止节点以及运行备份之类的功能。由于此节点类型管理其他节点的配置,因此应首先启动此类型的节点,然后再启动任何其他节点。使用命令ndb_mgmd启动一个MGM节点 

    • 数据节点:这种类型的节点存储集群数据。

      NDB群集表通常完全存储在内存中,而不是磁盘上(这就是为什么我们将NDB群集称为 内存数据库)。但是,某些NDB群集数据可以存储在磁盘上。

    • SQL节点:这是访问集群数据的节点。对于NDB群集,SQL节点是使用NDBCLUSTER存储引擎的传统MySQL服务器 

      SQL节点实际上只是API节点的一种特殊类型 ,它指定访问NDB群集数据的任何应用程序。API节点的另一个示例是用于还原集群备份的 ndb_restore实用程序。可以使用NDB API编写此类应用程序。

    1、资源规划

    节点

    IP地址

    硬件资源

    系统

    管理节点(mgmd

    192.168.137.128

    1cpu1G内存

    Centos7

    管理节点(mgmd

    192.168.137.129

    1cpu1G内存

    Centos7

    数据节点“ A”ndbd

    SQL节点(mysqld

    192.168.137.130

    1cpu3G内存

    (数据节点吃内存)

    Centos7

    数据节点“ B”ndbd

    SQL节点(mysqld

    192.168.137.131

    1cpu3G内存

    Centos7

    2、下载安装文件(192.168.137.130192.168.137.131)

    官网地址:https://dev.mysql.com/downloads/cluster/

    wget https://cdn.mysql.com//Downloads/MySQL-Cluster-8.0/mysql-cluster-8.0.19-linux-glibc2.12-x86_64.tar.gz

    3.2SQL节点

    将位置更改为包含下载文件的目录,解压缩归档文件,并创建一个名为mysqlmysql 目录的符号链接 

    useradd mysql

    tar -xf mysql-cluster-gpl-8.0.20-linux-glibc2.12-x86_64.tar.gz

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

    3.3将位置更改为mysql目录,并使用mysqld 设置系统数据库 --initialize,如下所示:

    #rm -rf /data/apps/mysql-8.0/
    
    mkdir  -p  /data/apps/mysql-8.0/logs  && chown -R mysql.mysql  /data/apps/mysql-8.0
    
    chown -R mysql.mysql /usr/local/mysql
    
    cat > /usr/local/mysql/my.cnf <<EOE
    
    [mysqld]
    
    basedir=/usr/local/mysql
    
    datadir=/data/apps/mysql-8.0/data
    
    socket=/tmp/mysql.sock
    
    user=mysql
    
    symbolic-links=0
    
    lower_case_table_names=1
    
    max_connections=2000
    
    wait_timeout=120
    
    interactive_timeout=120
    
    key_buffer_size=128M
    
    tmp_table_size=16M
    
    read_buffer_size=4M
    
    read_rnd_buffer_size=16M
    
    sort_buffer_size=32M
    
    innodb_buffer_pool_size=1024M
    
    ndbcluster
    
     
    
    [mysqld_safe]
    
    log-error=/data/apps/mysql-8.0/logs/mysqld.log
    
    pid-file=/data/apps/mysql-8.0/mysqld.pid
    
    user=mysql
    
     
    
    [mysql_cluster]
    
    ndb-connectstring=192.168.137.128,192.168.137.129 
    
    EOE

    mv /etc/my.cnf /etc/my.cnf_`date +%F-%s`

    ln -s  /usr/local/mysql/my.cnf  /etc/my.cnf

     3.4初始化数据库

    /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/data/apps/mysql-8.0/data  --initialize --user=mysql 

     

    记住密码一会儿用

    3.4 MySQL启动脚本复制到适当的目录,使其可执行,并将其设置为在操作系统启动时启动:

    cp support-files/mysql.server  /etc/rc.d/init.d/
    
    chmod +x /etc/rc.d/init.d/mysql.server
    
    chkconfig --add mysql.server

    4.1数据节点,拷贝数据节点启动文件,如数据节点和sql节点在同一台,此步忽略

    scp 192.168.137.130:/usr/local/mysql/bin/{ndbd,ndbmtd}  /usr/local/bin/.
    
    cd /usr/local/bin
    
    chmod +x ndb*
    
    mkdir -p /data/apps/mysql-8.0

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

    5.1管理节点。  137.128137.129

    scp 192.168.137.130:/usr/local/mysql/bin/ndb_mgm*  /usr/local/bin/.
    cd /usr/local/bin
    chmod +x ndb_mgm*
    mkdir -p /usr/local/mysql/mysql-cluster

    5.2配置管理节点。

    #配置文件详解

    #https://dev.mysql.com/doc/refman/8.0/en/mysql-cluster-config-file.html

    cat >  /usr/local/mysql/config.ini <<EOE
    [ndbd default]
    # Options affecting ndbd processes on all data nodes:
    NoOfReplicas=2    # Number of replicas
    DataMemory=98M    # How much memory to allocate for data storage
    
    [ndb_mgmd]
    NodeId=1
    # Management process options:
    HostName=192.168.137.128          # Hostname or IP address of MGM node
    DataDir=/usr/local/mysql/mysql-cluster  # Directory for MGM node log files
    
    [ndb_mgmd]
    NodeId=2
    # Management process options:
    HostName=192.168.137.129          # Hostname or IP address of MGM node
    DataDir=/usr/local/mysql/mysql-cluster  # Directory for MGM node log files
    
    [ndbd]
    # Options for data node "A":
                                   # (one [ndbd] section per data node)
    HostName=192.168.137.130         # Hostname or IP address
    NodeId=3                        # Node ID for this data node
    DataDir=/data/apps/mysql-8.0   # Directory for this data node's data files
    
    [ndbd]
    # Options for data node "B":
    HostName=192.168.137.131          # Hostname or IP address
    NodeId=4                        # Node ID for this data node
    DataDir=/data/apps/mysql-8.0   # Directory for this data node's data files
    
    [mysqld]
    NodeId=5
    # SQL node options:
    HostName=192.168.137.130      # Hostname or IP address
                                    # (additional mysqld connections can be
                                    # specified for this node for various
    [mysqld] # SQL node options: NodeId
    =6 HostName=192.168.137.131 # purposes such as running ndb_restore) EOE

    6NDB群集的初始启动

    6.1管理主机

    /usr/local/mysql/bin/ndb_mgmd  -f /usr/local/mysql/config.ini  --initial (初始化才加)

    6.2在每个数据节点主机上,运行以下命令以启动 ndbd进程:

    ndbd --initial  (初始化才加)

    如报错,执行下列命令

     

    ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
    
    ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

    再次启动成功:

     

    6.3 Sql节点启动数据库:

    /usr/local/mysql/bin/mysqld &

    如果一切顺利,并且集群已正确设置,则集群现在应该可以运行了。您可以通过调用ndb_mgm管理节点客户端来对此进行测试。输出看起来应该像这里显示的一样,尽管您可能会看到输出有些细微的差异,具体取决于所使用的MySQL版本:

    管理节点

     

    SQL节点在这里被称为 [mysqld(API)],这反映了mysqld进程充当NDB群集API节点的事实 。

    7、安全关闭和重新启动NDB群集

    7.1要关闭群集,请在托管管理节点的计算机上的外壳程序中输入以下命令:

    ndb_mgm -e shutdown   -e此处 的选项用于将命令从外壳传递给ndb_mgm客户端。

    7.2 再次启动,管理节点执行

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

    7.3 在每个数据节点执行

    ndbd

    7.4 使用ndb_mgm客户端来验证两个数据节点均已成功启动。

    7.5 在SQL主机上:

    /usr/local/mysql/bin/mysqld &

    如果其中一个数据节点挂掉,必须让其中一个节点完全恢复,集群才可以继续使用

     8、 其他注意

    创建表时必须设定主键和加上ENGINE=NDBCLUSTER

    create table s_position
    
    (
    
    id int not null auto_increment,
    
    name varchar(20) not null default '经理', #设定默认值
    
    description varchar(100),
    
    primary key PK_positon (id) #设定主键
    
    ) ENGINE=NDBCLUSTER;

     

  • 相关阅读:
    Error 1031
    电信短信转移取消
    手机模拟手柄操作电脑游戏
    MySQL 5.7 InnoDB Cluster 部署
    Bitwarden_rs搭建
    脚本:Tomcat日志切割
    报错:The server cannot be started because one or more of the ports are invalid. Open the server editor and correct the invalid ports.
    Linux启动过程详解
    UNIX环境高级编程__针对apue.h找不到的情况以及log错误信息输出的问题
    C++primer_拷贝控制之13.26联系控制成员实现类值行为
  • 原文地址:https://www.cnblogs.com/elson-zeng/p/12463804.html
Copyright © 2011-2022 走看看