iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >搭建mysql NDB集群
  • 354
分享到

搭建mysql NDB集群

搭建mysqlNDB集群 2020-08-26 05:08:56 354人浏览 猪猪侠
摘要

NDB群集安装 介绍 https://dev.Mysql.com/doc/refman/8.0/en/mysql-cluster-basics.html NDBCLUSTER (也称为NDB)是一种内存存储引擎,提供高可用性和数据

搭建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

 

 

 

下载安装文件(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

 

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将位置更改为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 

 

 

 

记住密码一会儿用

 

 

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

 

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

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

 

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

 

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群集的初始启动

1管理主机

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

 

 

 

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

再次启动成功:

 

3 Sql节点启动数据库:

/usr/local/mysql/bin/mysqld &

 

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

管理节点

 

 

 

 

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

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

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

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

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;

 

 

您可能感兴趣的文档:

--结束END--

本文标题: 搭建mysql NDB集群

本文链接: https://www.lsjlt.com/news/4892.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle怎么查询当前用户所有的表
    要查询当前用户拥有的所有表,可以使用以下 sql 命令:select * from user_tables; 如何查询当前用户拥有的所有表 要查询当前用户拥有的所有表,可以使...
    99+
    2024-05-14
    oracle
  • oracle怎么备份表中数据
    oracle 表数据备份的方法包括:导出数据 (exp):将表数据导出到外部文件。导入数据 (imp):将导出文件中的数据导入表中。用户管理的备份 (umr):允许用户控制备份和恢复过程...
    99+
    2024-05-14
    oracle
  • oracle怎么做到数据实时备份
    oracle 实时备份通过持续保持数据库和事务日志的副本来实现数据保护,提供快速恢复。实现机制主要包括归档重做日志和 asm 卷管理系统。它最小化数据丢失、加快恢复时间、消除手动备份任务...
    99+
    2024-05-14
    oracle 数据丢失
  • oracle怎么查询所有的表空间
    要查询 oracle 中的所有表空间,可以使用 sql 语句 "select tablespace_name from dba_tablespaces",其中 dba_tabl...
    99+
    2024-05-14
    oracle
  • oracle怎么创建新用户并赋予权限设置
    答案:要创建 oracle 新用户,请执行以下步骤:以具有 create user 权限的用户身份登录;在 sql*plus 窗口中输入 create user identified ...
    99+
    2024-05-14
    oracle
  • oracle怎么建立新用户
    在 oracle 数据库中创建用户的方法:使用 sql*plus 连接数据库;使用 create user 语法创建新用户;根据用户需要授予权限;注销并重新登录以使更改生效。 如何在 ...
    99+
    2024-05-14
    oracle
  • oracle怎么创建新用户并赋予权限密码
    本教程详细介绍了如何使用 oracle 创建一个新用户并授予其权限:创建新用户并设置密码。授予对特定表的读写权限。授予创建序列的权限。根据需要授予其他权限。 如何使用 Oracle 创...
    99+
    2024-05-14
    oracle
  • oracle怎么查询时间段内的数据记录表
    在 oracle 数据库中查询指定时间段内的数据记录表,可以使用 between 操作符,用于比较日期或时间的范围。语法:select * from table_name wh...
    99+
    2024-05-14
    oracle
  • oracle怎么查看表的分区
    问题:如何查看 oracle 表的分区?步骤:查询数据字典视图 all_tab_partitions,指定表名。结果显示分区名称、上边界值和下边界值。 如何查看 Oracle 表的分区...
    99+
    2024-05-14
    oracle
  • oracle怎么导入dump文件
    要导入 dump 文件,请先停止 oracle 服务,然后使用 impdp 命令。步骤包括:停止 oracle 数据库服务。导航到 oracle 数据泵工具目录。使用 impdp 命令导...
    99+
    2024-05-14
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作