首页
最新活动
服务器租用
香港服务器租用
台湾服务器租用
美国服务器租用
日本服务器租用
新加坡服务器租用
高防服务器
香港高防服务器
台湾高防服务器
美国高防服务器
裸金属
香港裸金属服务器
台湾裸金属服务器
美国裸金属服务器
日本裸金属服务器
新加坡裸金属服务器
云服务器
香港云服务器
台湾云服务器
美国云服务器
日本云服务器
CDN
CDN节点
CDN带宽
CDN防御
CDN定制
行业新闻
官方公告
香港服务器资讯
帮助文档
wp博客
zb博客
服务器资讯
联系我们
关于我们
机房介绍
机房托管
登入
注册
帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
联系客服
服务器资讯
/
香港服务器租用
/
香港VPS租用
/
香港云服务器
/
美国服务器租用
/
台湾服务器租用
/
日本服务器租用
/
官方公告
/
帮助文档
Mysql分布式集群部署---MySQL集群Cluster将数据分成多个片段,每个片段存储在不同的服务器上
发布时间:2024-02-27 23:43:51 分类:帮助文档
Mysql分布式集群部署---MySQL集群Cluster将数据分成多个片段,每个片段存储在不同的服务器上 1.1 目的 部署MysqlCluster集群环境 1.2 MySQL集群Cluster原理 1 数据分片 MySQL集群Cluster将数据分成多个片段,每个片段存储在不同的服务器上。这样可以将数据负载分散到多个服务器上,提高系统的性能和可扩展性。 2. 数据同步 MySQL集群Cluster使用多个服务器来存储数据,因此需要确保数据在不同的服务器之间同步。MySQL集群Cluster使用多种同步机制,如异步复制、半同步复制和全同步复制等,来确保数据的一致性和可靠性。 3. 负载均衡 MySQL集群Cluster使用负载均衡算法来分配客户端请求到不同的服务器上。这样可以避免单个服务器过载,提高系统的性能和可用性。 4. 自动故障转移 MySQL集群Cluster可以自动检测服务器的故障,并将故障服务器上的数据转移到其他服务器上。这样可以确保系统的高可用性和可靠性。 1.3 NDB引擎介绍 在MySQL实现集群Cluster架构中,存储节点使用的存储引擎为NDB引擎。NDB引擎是一种分布式的基于内存的引擎,因此作为MySQL集群Cluster架构中的存储节点,内存一定要足够大。 使用NDB引擎有以下优点: 1、基于内存存储,没有磁盘I/O瓶颈,速度快。 2、扩展性好,增加节点即可实现数据库集群Cluster的扩展。 3、冗余性好,单个节点故障,集群还可以提供服务。 同时,NDB引擎也有以下缺点: 1、由于存储基于内存,因此在设备断电后数据即丢失。 2、存储空间大小受内存大小限制。 3、多个节点分布式架构整体速度受会网络速度影响 1.4 InnoDB存储引擎 InnoDB是一种支持事务和行级锁的崇尚ACID特性的储存引擎。它是MySQL5.5版本后的默认引擎。InnoDB非常适合那些需要频繁进行更新操作的应用,比如在线事务处理系统(OLTP)。 使用InnoDB引擎有以下优点: 1、支持事务:InnoDB储存引擎具有事务处理的能力,能够保证数据的完整性和一致性。 2、行级锁:InnoDB通过行级锁来控制并发读写操作,提高了多用户环境下的并发性能。 3、外键约束:InnoDB支持外键约束,保证数据的完整性。 4、适合OLTP:InnoDB引擎特别适合处理大量的并发读写操作,如OLTP系统。 5、Crash Recovery:InnoDB具备崩溃恢复的功能,能够在异常退出后将数据恢复到一致的状态。 同时,InnoDB引擎也有以下缺点: 1、 读写效率较差。 2、 占用的数据空间相对较大。 1.5 MyISAM存储引擎 MyISAM是MySQL早期的默认储存引擎,它采用表级锁,适合处理大量的读操作。然而,它不支持事务和外键约束。 使用MyISAM引擎有以下优点: 1、表级锁:MyISAM采用表级锁,对于大量更新操作的并发性能较差。 2、不支持事务:MyISAM不支持事务处理,因此可能存在数据不一致的风险。 3、全文索引:MyISAM支持全文索引,适合处理搜索引擎和全文搜索等应用。 4、插入性能:MyISAM在插入性能方面较好,对于大量的插入操作,性能较高。 同时,MyISAM引擎也有以下缺点: 1、不支持事务的完整性和并发性。 1.6 引擎对比选择 InnoDB适用于大量的并发读写操作、需要事务处理和外键约束的应用;MyISAM适用于大量的读操作、不需要事务处理和外键约束的应用;NDB适用于高并发、实时性要求高的应用。 2. 部署程序 2.1 部署环境 服务器作用 服务器名 服务器IP 系统版本 管理节点 master 192.168.186.128 Centos7 数据节点 slave1 192.168.186.129 Centos7 SQL节点 slave2 192.168.186.130 Centos7 SQL节点 slave3 192.168.186.130 Centos7 2.2.1 修改四台主机名和添加hosts #关闭防火墙: systemctl stop firewalld systemctl disable firewalld #关闭selinux: sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久 setenforce 0 # 临时 #时间同步 yum install ntpdate -y ntpdate time.windows.com hostnamectl set-hostname master && bash #192.168.186.128上操作 hostnamectl set-hostname slave1 && bash #192.168.186.129上操作 hostnamectl set-hostname slave2 && bash #192.168.186.130上操作 hostnamectl set-hostname slave3 && bash #192.168.186.131上操作 #四台服务器同时添加内容 cat >> /etc/hosts << EOF 192.168.186.128 master 192.168.186.129 slave1 192.168.186.130 slave2 192.168.186.131 slave3 EOF #所有机器上都操作 ssh-keygen -t rsa #一路回车,不输入密码 #把本地的ssh公钥文件安装到远程主机对应的账户 for i in master slave1 slave2 slave3;do ssh-copy-id -i .ssh/id_rsa.pub $i ;done 2.3 管理节点部署 2.3.1 管理节点原理 顾名思义,管理节点用来对其它节点进行管理。实际操作中,是通过对一个叫做config.ini的配置文件进行维护而起到管理的作用。该文件可以用来配置有多少需要维护的副本、需要在每个数据节点上为数据和索引分配多少内存、数据节点的位置、在每个数据节点上保存数据的磁盘位置、SQL节点的位置等信息。管理节点只能有一个,配置要求不高。 #关闭防火墙: systemctl stop firewalld systemctl disable firewalld #关闭selinux: sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久 setenforce 0 # 临时 #时间同步 yum install ntpdate -y ntpdate time.windows.com mkdir -p /var/log/mysql-cluster mkdir -p /etc/mysql-cluster mkdir -p /usr/local/mysql && cd /usr/local/mysql #上传安装包到此路径下 wget https://downloads.mysql.com/archives/get/p/14/file/mysql-cluster-8.0.25-linux-glibc2.12-x86_64.tar.gz --no-check-certificate tar -zxvf mysql-cluster-8.0.25-linux-glibc2.12-x86_64.tar.gz #解压 mv mysql-cluster-8.0.25-linux-glibc2.12-x86_64 mysql-cluster #重命名 touch /etc/mysql-cluster/config.ini cat > /etc/mysql-cluster/config.ini << EOF [ndbd default] #数据写入数量。1表示一份,1个数据节点 NoOfReplicas=1 [ndb_mgmd] nodeid=1 #管理结点的日志 datadir=/var/log/mysql-cluster #管理结点的IP地址。本机IP HostName=192.168.186.128 data node options: #存储结点 [ndbd] HostName=192.168.186.129 DataDir=/data/mysql #mysql数据存储路径 nodeid=2 # SQL node options: #关于SQL结点 [mysqld] HostName=192.168.186.130 nodeid=3 [mysqld] HostName=192.168.186.131 nodeid=4 EOF #初始化管理节点 /usr/local/mysql/mysql-cluster/bin/ndb_mgmd -f /etc/mysql-cluster/config.ini #查看集群状态 /usr/local/mysql/mysql-cluster/bin/ndb_mgm ndb_mgm> show #发现管理节点已经启动,当数据节点以及SQL节点未启动时显示的是not connected。 2.4 数据节点部署 2.4.1 数据节点原理 用来存放Cluster里面的数据,可以有多个数据节点。每个数据节点可以有多个镜像节点。任何一个数据节点发生故障,只要它的镜像节点正常,Cluster就可以正常运行。 这3种逻辑上不同的节点物理上可以存放在不同的服务器上,也可以在同一台 服务器上。通过架构中各个节点的介绍,可以总结一下MySQL Cluter的访问过程:前台应用利用一定的负载均衡算法将对数据库的访问分散到不同的SQL节点上,然后SQL节点对数据节点进行数据访问并从数据节点返回结果,最后SQL节点将收到的结果返给前台应用。而管理节点并不参与访问过长,它只用来对SQL节点和数据节点进行配置管理。 #关闭防火墙: systemctl stop firewalld systemctl disable firewalld #关闭selinux: sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久 setenforce 0 # 临时 #时间同步 yum install ntpdate -y ntpdate time.windows.com mkdir -p /usr/local/mysql && cd /usr/local/mysql wget https://downloads.mysql.com/archives/get/p/14/file/mysql-cluster-8.0.25-linux-glibc2.12-x86_64.tar.gz --no-check-certificate tar -zxvf mysql-cluster-8.0.25-linux-glibc2.12-x86_64.tar.gz #解压 mv mysql-cluster-8.0.25-linux-glibc2.12-x86_64 mysql-cluster #重命名 useradd -M -s /sbin/nologin mysql mkdir -p /etc/mysql mkdir -p /data/mysql chown -R mysql:mysql /data/mysql/ cat > /etc/my.cnf << EOF [mysqld] #mysql数据存储路径 datadir=/data/mysql #启动ndb引擎 ndbcluster #管理节点IP地址 ndb-connectstring=192.168.186.128 [mysql_cluster] #管理节点IP地址 ndb-connectstring=192.168.186.128 EOF #启动数据节点 /usr/local/mysql/mysql-cluster/bin/ndbd –initial #检查数据节点是否启动 /usr/local/mysql/mysql-cluster/bin/ndb_mgm ndb_mgm> show 2.5 SQL节点部署(2台 SQL服务器同样的部署方式) SQL节点可以理解为应用和数据节点之间的一个桥梁。应用不能直接访问数据节点,只能先访问SQL节点,然后SQL节点再去访问数据节点来返回数据。Cluster中可以有多个SQL节点,通过每个SQL节点查询到的数据都是一直的,通常来说,SQL节点越多,分配到每个SQL节点的负载就越少,系统的整体性能就越好。 #关闭防火墙: systemctl stop firewalld systemctl disable firewalld #关闭selinux: sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久 setenforce 0 # 临时 #时间同步 yum install ntpdate -y ntpdate time.windows.com mkdir -p /usr/local/mysql mkdir -p /etc/mysql mkdir -p /data/mysql && cd /usr/local/mysql wget https://downloads.mysql.com/archives/get/p/14/file/mysql-cluster-8.0.25-linux-glibc2.12-x86_64.tar.gz --no-check-certificate tar -zxvf mysql-cluster-8.0.25-linux-glibc2.12-x86_64.tar.gz #解压 mv mysql-cluster-8.0.25-linux-glibc2.12-x86_64 mysql-cluster #重命名 chown -R mysql:mysql /data/mysql/ useradd -M -s /sbin/nologin mysql #创建SQL节点配置文件 cat > /etc/my.cnf << EOF [mysqld] user=mysql #启动ndb引擎 ndbcluster #管理节点IP地址 ndb-connectstring=192.168.186.128 [mysql_cluster] #管理节点IP地址 ndb-connectstring=192.168.186.128 EOF #配置mysql服务 cp /usr/local/mysql/mysql-cluster/support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld #编辑mysqld服务 vim /etc/init.d/mysqld #图片中的代码如下: # Set some defaults mysqld_pid_file_path= if test -z "$basedir" then basedir=/usr/local/mysql/mysql-cluster bindir=/usr/local/mysql/mysql-cluster/bin if test -z "$datadir" then datadir=/data/mysql fi sbindir=/usr/local/mysql/mysql-cluster/bin libexecdir=/usr/local/mysql/mysql-cluster/bin else bindir="$basedir/bin" if test -z "$datadir" then datadir="$basedir/data" fi sbindir="$basedir/sbin" libexecdir="$basedir/libexec" fi #初始化mysql数据库 cd /usr/local/mysql/mysql-cluster/bin ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-cluster --datadir=/data/mysql/ #启动mysql systemctl daemon-reload systemctl start mysqld systemctl enable mysqld #两台SQL节点操作相同。 #检查SQL节点是否启动 /usr/local/mysql/mysql-cluster/bin/ndb_mgm ndb_mgm> show #2台 SQL服务器同样的部署后,截图如下: cp /usr/local/mysql/mysql-cluster/support-files/mysql.server /etc/init.d/mysqld ln -s /usr/local/tools/mysql/bin/mysql /usr/bin #登录数据库 mysql -uroot -p #初始化时候的密码 alter user user() identified by "Mysql@123"; #修改为新的密码 flush privileges; 3. 验证集群 #192.168.5.130上执行 mysql -uroot -pMysql@123 #利用修改后的密码登录 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | ndbinfo | | performance_schema | | sys | +--------------------+ 5 rows in set (0.11 sec) mysql> create database mqq; Query OK, 1 row affected (0.17 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mqq | | mysql | | ndbinfo | | performance_schema | | sys | +--------------------+ 6 rows in set (0.00 sec) mysql> 192.168.5.131上验证 mysql -uroot -pMysql@123 #利用修改后的密码登录 mysql> show databases; 可以看到数据完成同步。 至此MysqlCluster集群部署完成 4. 集群命令操作 4.1 管理节点操作 管理节点关闭(关闭管理节点后会一起关闭数据节点) /usr/local/mysql/mysql-cluster/bin/ndb_mgm -e shutdown rm /usr/local/mysql/mysql-cluster/ndb_1_config.bin.1 #如果集群配置有更新了 4.2 数据节点操作 数据节点(NDB)关闭 cd /usr/local/mysql/mysql-cluster/bin ./ndbd stop 4.3 SQL节点操作 SQL节点关闭 systemctl stop mysqld 参考地址:https://blog..net/hanyuce/article/details/134684116?app_version=6.2.2&code=app_1562916241&_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22134684116%22%2C%22source%22%3A%22qq_14910065%22%7D&uLinkId=usr1mkqgl919blen&utm_source=app
上一篇
日本樱花服务器电影
下一篇
【私有云】 Windows IIS搭建webdav服务实现公网文件共享「内网穿透」
相关文章
Ubuntu- windows10利用ssh连接Ubuntu,配置ssh,避坑
阿里云服务器怎么重置系统
4核8G服务器配置性能怎么样-12M带宽配置服务器能干什么-
曲靖阿里云代理商:阿里云有高防服务器吗
Linux文件写入操作:write函数的使用
如何使用Pritunl搭建OpenVPN服务器,实现远程连接【内网穿透】
服务器数据盘怎么上传数据
内网穿透与搭建私人服务器
服务器ipv6地址显示“scope global dadfailed tentative noprefixroute”无法连通的问题处理一例
香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价
7*24H在线售后
高可用资源,安全稳定
1v1专属客服对接
无忧退款试用保障
德讯电讯股份有限公司
电话:00886-982-263-666
台湾总部:台北市中山区建国北路一段29号3楼
香港分公司:九龙弥敦道625号雅兰商业二期906室
服务器租用
香港服务器
日本服务器
台湾服务器
美国服务器
高防服务器购买
香港高防服务器出租
台湾高防服务器租赁
美国高防服务器DDos
云服务器
香港云服务器
台湾云服务器
美国云服务器
日本云服务器
行业新闻
香港服务器租用
服务器资讯
香港云服务器
台湾服务器租用
zblog博客
香港VPS
关于我们
机房介绍
联系我们
Copyright © 1997-2024 www.hkstack.com All rights reserved.