mysql engine ndb_搭建mysql NDB集群

NDB群集安装

介绍

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

1cpu、1G内存

Centos7

管理节点(mgmd)

192.168.137.129

1cpu、1G内存

Centos7

数据节点“ A”(ndbd)

SQL节点(mysqld)

192.168.137.130

1cpu、3G内存

(数据节点吃内存)

Centos7

数据节点“ B”(ndbd)

SQL节点(mysqld)

192.168.137.131

1cpu、3G内存

Centos7

2、下载安装文件(192.168.137.130、192.168.137.131)

3.2、SQL节点

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

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/mysqlcat > /usr/local/mysql/my.cnf <

[mysqld]

basedir=/usr/local/mysql

datadir=/data/apps/mysql-8.0/data

socket=/tmp/mysql.sock

user=mysql

symbolic-links=0lower_case_table_names=1max_connections=2000wait_timeout=120interactive_timeout=120key_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.129EOE

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

fc6dfe72f7cc6d27f4e05b7a8780e98c.png

记住密码一会儿用

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/binchmod +x ndb*

mkdir -p /data/apps/mysql-8.0

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

5.1管理节点。  137.128、137.129

scp 192.168.137.130:/usr/local/mysql/bin/ndb_mgm* /usr/local/bin/.

cd/usr/local/binchmod +x ndb_mgm*

mkdir -p /usr/local/mysql/mysql-cluster

5.2配置管理节点。

#配置文件详解

cat > /usr/local/mysql/config.ini <

[ndbd default]

# Options affecting ndbd processes on all data nodes:

NoOfReplicas=2# Number of replicas

DataMemory=98M # How much memory to allocate fordata 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 forMGM 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 forMGM node log files

[ndbd]

# Optionsfor data node "A":

# (one [ndbd] section per data node)

HostName=192.168.137.130# Hostname or IP address

NodeId=3 # Node ID forthis data node

DataDir=/data/apps/mysql-8.0 # Directory for this data node's data files

[ndbd]

# Optionsfor data node "B":

HostName=192.168.137.131# Hostname or IP address

NodeId=4 # Node ID forthis 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

# specifiedfor this node forvarious

[mysqld]

# SQL node options:

NodeId=6HostName=192.168.137.131# purposes such as running ndb_restore)

EOE

6、NDB群集的初始启动

6.1管理主机

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

4efdf355022226d4dc25d46113373ff2.png

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

ndbd --initial (初始化才加)

如报错,执行下列命令

3fa208b7359326e4408a007037cf5d3d.png

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

再次启动成功:

80b968d89908a6e3379e740bdfd99d26.png

6.3 Sql节点启动数据库:

/usr/local/mysql/bin/mysqld &

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

管理节点

9b646fb4492e51cc34a2b24f94ac4210.png

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 nullauto_increment,

name varchar(20) not null default '经理', #设定默认值

description varchar(100),

primary key PK_positon (id) #设定主键

) ENGINE=NDBCLUSTER;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值