• 主页
  • 相册
  • 随笔
  • 目录
  • 存档
Total 244
Search AboutMe

  • 主页
  • 相册
  • 随笔
  • 目录
  • 存档

mysql cluster搭建实验

2020-04-02

1. 实验目的

  • 配置mysql cluster

2. 实验环境

  • ubuntu-18.04.4-server-amd64.iso

  • Ubuntu Linux 18.04 (x86, 64-bit), DEB Bundle(8.0.19,291.1M)

    1
    2
    3
    4
    5
    数据节点1:192.168.50.128   nodeID   11
    数据节点2:192.168.50.129 nodeID 12
    管理节点:192.168.50.129 nodeID 1
    sql节点1:192.168.50.128 nodeID
    sql节点2:192.168.50.129 nodeID
  • Vbox-6.14

3. 实验原理

4. mysql cluster

MySQL Cluster is a technology providing shared-nothing clustering and auto-sharding for the MySQL database management system. It is designed to provide high availability and high throughput with low latency, while allowing for near linear scalability

4.1. linux command

usermod

  • 用于修改用户的基本信息

    将 newuser2 增加到组 staff 中(-a 参数表示附加,只和 -G 参数一同使用,表示将用户增加到组中):

    usermod -aG staff newuser2

tar

  • 可以为linux的文件和目录创建档案。
    • 为某一特定文件创建档案(备份文件)
    • 在档案中改变文件
    • 向档案中加入新的文件
    • 可以把一大堆的文件和目录全部打包成一个文件

      打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件

      tar -xf archive.tar # 从archive.tar提取所有文件

dpkg

dpkg是Debian软件包管理器的基础

dpkg本身是一个底层的工具。上层的工具,像是APT,被用于从远程获取软件包以及处理复杂的软件包关系。 “dpkg”是“Debian Package”的简写。

1
2
dpkg -i package.deb     # 安装包
dpkg -r package # 删除包

ndbd

the MySQL Cluster data node daemon


ndbd is the process that is used to handle all the data in tables using the NDB Cluster storage engine. This is the process that empowers a data node to accomplish distributed transaction handling, node recovery, checkpointing to disk, online backup, and related tasks.

In a MySQL Cluster, a set of ndbd processes cooperate in handling data. These processes can execute on the same computer (host) or on different computers. The correspondences between data nodes and Cluster hosts is completely configurable.

ndbd是使用NDB集群存储引擎处理表中所有数据的过程。这个过程是授权给一个 数据节点来完成分布式事务处理、节点恢复、检查点到磁盘、在线备份等相关任务。

在一个MySQL集群中,一组ndbd进程合作处理数据。这些进程可以在同一台计算机(主机)上执行,也可以在同一台计算机(主机)上执行。不同的计算机。数据节点和Cluster主机之间的对应关系是完全可以配置的。

mkdir

-m<目标属性>或–mode<目标属性>建立目录的同时设置目录的权限;

-p或–parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;

5. 实验内容

5.1. 准备(192.168.150.129)

  • 添加用户mysql
    • sudo adduser mysql && sudo usermod -aG sudo mysql
      • 切换:su - mysql

5.2. 安装集群管理器(192.168.150.129)

  • (可选)卸载mysql与mysql-server

    • sudo apt remove mysql && sudo apt remove mysql-server
  • (可选)将mysql-cluster安装包拷贝到服务器上

    • scp -P 2222 xx.tar mysql-1@127.0.0.1:/home/mysql-1/t
  • 解压

    • mkdir install && tar -xf xx.tar -C install/ && cd install
    • 安装依赖
      • sudo apt install libaio1 libmecab2
  • sudo dpkg -i mysql-cluster-community-management-server_x.x-1ubuntu18.04_amd64.deb

在第一次运行ndb_mgmd前需要对其进行配置,正确配置是保证数据节点正确同步和负载分配的前提。

Cluster Manager 应该是MySQL Cluster 第一个启动的组件.它需要一个配置文件来加载参数. 创建配置文件: /var/lib/mysql-cluster/config.ini.

  • sudo mkdir /var/lib/mysql-cluster && sudo vim /var/lib/mysql-cluster/config.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2 # Number of replicas

[ndb_mgmd]
# Management process options:
hostname=192.168.50.129 # Hostname of the manager
NodeId=1
datadir=/var/lib/mysql-cluster # Directory for the log files

[ndbd]
hostname=192.168.50.128 # Hostname/IP of the first data node
NodeId=11 # Node ID for this data node
datadir=/usr/local/mysql/data # Remote directory for the data files

[ndbd]
hostname=192.168.50.129 # Hostname/IP of the second data node
NodeId=12 # Node ID for this data node
datadir=/usr/local/mysql/data # Remote directory for the data files

[mysqld]
# SQL node options:
hostname=192.168.50.129 # MySQL server/client i manager

[mysqld]
# SQL node options:
hostname=192.168.50.128 # MySQL server/client i manager
  • 启动管理器:sudo ndb_mgmd -f /var/lib/mysql-cluster/config.ini
  • 检查ndb_mgmd使用的端口:sudo netstat -plntu
    1
    tcp        0      0 0.0.0.0:1186            0.0.0.0:*               LISTEN      964/ndb_mgmd

5.2.1. 配置守护程序

  • sudo vim /etc/systemd/system/ndb_mgmd.service
1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=MySQL NDB Cluster Management Server
After=network.target auditd.service

[Service]
Type=forking
ExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
  • 使配置文件生效
    • sudo systemctl daemon-reload && sudo systemctl enable ndb_mgmd && sudo systemctl start ndb_mgmd
    • sudo systemctl status ndb_mgmd

5.3. 配置数据节点(192.168.50.129)

  • 安装依赖包
    • sudo apt install libclass-methodmaker-perl
  • 安装数据节点包
    • sudo dpkg -i mysql-cluster-community-data-node_x.x.xx-xubuntu18.04_amd64.deb
  • 数据节点将从固定位置/etc/my.cnf获取配置文件.创建文件并编辑
    1
    2
    3
    [mysql_cluster]
    # Options for NDB Cluster processes:
    ndb-connectstring=192.168.50.129 # location of cluster manager
    • sudo mkdir -p /usr/local/mysql/data

5.3.1. 配置数据节点服务自启动

  • 终止正在运行的ndbd进程:sudo pkill -f ndbd
  • sudo vim /etc/systemd/system/ndbd.service
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [Unit]
    Description=MySQL NDB Data Node Daemon
    After=network.target auditd.service

    [Service]
    Type=forking
    ExecStart=/usr/sbin/ndbd
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=process
    Restart=on-failure

    [Install]
    WantedBy=multi-user.target
    • sudo systemctl daemon-reload && sudo systemctl enable ndbd && sudo systemctl start ndbd

5.4. 配置并运行MySQL Server 和 Client

5.4.1. 安装

1
2
3
4
5
6
7
8
9
10
11
12
13
Shell>sudo dpkg -i mysql-common_8.0.19-1ubuntu18.04_amd64.deb

Shell>sudo dpkg -i mysql-cluster-community-client-core_8.0.19-1ubuntu18.04_amd64.deb

Shell>sudo dpkg -i mysql-cluster-community-client_8.0.19-1ubuntu18.04_amd64.deb

Shell>sudo dpkg -i mysql-client_8.0.19-1ubuntu18.04_amd64.deb

Shell>sudo dpkg -i mysql-cluster-community-server-core_8.0.19-1ubuntu18.04_amd64.deb

Shell>sudo dpkg -i mysql-cluster-community-server_8.0.19-1ubuntu18.04_amd64.deb

Shell>sudo dpkg -i mysql-server_8.0.19-1ubuntu18.04_amd64.deb

5.4.2. 配置MySQL server

  • sudo vim /etc/mysql/my.cnf,文件末尾添加:
1
2
3
4
5
6
7
[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=192.168.50.129 # location of management server

5.4.3. 查看集群信息

  • ndb_mgm
    • SHOW

5.5. 向MySQL集群插入数据

1
2
3
4
5
CREATE DATABASE clustertest;
USE clustertest;
CREATE TABLE test_table (name VARCHAR(20), value VARCHAR(20)) ENGINE=ndbcluster;
INSERT INTO test_table (name,value) VALUES('some_name','some_value');

6. 问题

  • 中文”-“
  • 如果出现连接问题,请打开防火墙:
1
2
Shell>sudo ufw allow from 192.168.50.129
Shell>sudo ufw allow from 192.168.50.128

7. 参考资料

  • MySQL Cluster - Wikipedia
  • ndbd(8) [linux man page]
  • Lab
  • Sql
  • Lab
加布里埃尔·塔尔德
无人值守ISO的制作与安装
  1. 1. 1. 实验目的
  2. 2. 2. 实验环境
  3. 3. 3. 实验原理
  4. 4. 4. mysql cluster
    1. 4.1. 4.1. linux command
  5. 5. 5. 实验内容
    1. 5.1. 5.1. 准备(192.168.150.129)
    2. 5.2. 5.2. 安装集群管理器(192.168.150.129)
      1. 5.2.1. 5.2.1. 配置守护程序
    3. 5.3. 5.3. 配置数据节点(192.168.50.129)
      1. 5.3.1. 5.3.1. 配置数据节点服务自启动
    4. 5.4. 5.4. 配置并运行MySQL Server 和 Client
      1. 5.4.1. 5.4.1. 安装
      2. 5.4.2. 5.4.2. 配置MySQL server
      3. 5.4.3. 5.4.3. 查看集群信息
    5. 5.5. 5.5. 向MySQL集群插入数据
  6. 6. 6. 问题
  7. 7. 7. 参考资料
© 2024 何决云 载入天数...