初探mysql innodb集群_MySQL InnoDB Cluster搭建

本文介绍了MySQL的高可用解决方案InnoDB Cluster,包括其组成如MySQL Shell、MySQL Router和Group Replication。详细阐述了如何在单台服务器上搭建InnoDB Cluster,涉及MySQL Server、Router和Shell的安装与配置,并对比了NDB和InnoDB存储引擎的差异。
摘要由CSDN通过智能技术生成

MySQL的高可用架构无论是社区还是官方,一直在技术上进行探索,这么多年提出了多种解决方案,比如MMM, MHA, NDB Cluster, Galera Cluster, InnoDB Cluster, 腾讯的PhxSQL, mysql Fabric. 本文主要介绍MySQL的高可用架构InnoDB Cluster。 MySQL InnoDB Cluster解决方案其实是由MySQL的几个不同产品和技术组成的,比如MySQL Shell, MySQL Router, Group Replication.

MySQL InnoDB Cluster是一套完整的、高可用的解决方案。一组MySQL服务器可以配置为一个MySQL集群。在默认的单主节点模式下,集群服务器具有一个读写主节点和多个只读辅节点。辅助服务器是主服务器的副本。客户端应用程序通过MySQL Router连接到主服务程序。如果主服务连接失败,则次要的节点自动提升为主节点,MySQL Router请求到新的主节点。InnoDB Cluster不提供NDB Cluster支持。

一个高可用的数据库解决方案,可以使用下面的MySQL集群技术:

MySQL Shell 1.0.9或更高的版本

MySQL Router 2.1.3或更高的版本

MySQL Server 5.7.17或更高的版本

这些技术如何协同工作如下图所示:

innodb_cluster_overview.png

MySQL安装rpm安装包安装需要Python、Perl环境:

mysql-community-client-5.7.18-1.fc26.x86_64.rpm

mysql-community-common-5.7.18-1.fc26.x86_64.rpm

mysql-community-devel-5.7.18-1.fc26.x86_64.rpm

mysql-community-libs-5.7.18-1.fc26.x86_64.rpm

mysql-community-libs-compat-5.7.18-1.fc26.x86_64.rpm

mysql-community-server-5.7.18-1.fc26.x86_64.rpmyum 方式安装:

yum install mysql-community-server

安装mysql-shell和mysql-router

从MySQL下载地址中下载。对应安装包:

mysql-shell-1.0.9-1.fc26.x86_64.rpm

mysql-router-2.1.3-1.fc26.x86_64.rpm

本次搭建只使用一台服务器,所有的东西都安装在一台服务器上,本次使用的系统为fedora 26。安装完成 MySQL Server 、 MySQL  Router 、 MySQL Shell 就可以开始了。windows安装后配置环境变量就可以了。

集群搭建

启动MySQL shell:

#mysqlsh

MySQL shell 提供了两种脚本语言: JavaScript 和 Python 。在本指南中 MySQL shell 主要用于 JavaScript 模式 。MySQL Shell 启动时默认处于 JavaScript 模式。可以使用以下命令\js、\py、\sql,切换到 JavaScript 、 python 和 SQL 模式。

执行命令创建多个服务器实例:

mysql-js> dba.deploySandboxInstance(3310)

mysql-js> dba.deploySandboxInstance(3320)

mysql-js> dba.deploySandboxInstance(3330)

每创建一个实例需要创建对应实例的密码,实例文件路径$HOME/mysqlsandboxes/port

连接到3310服务器实例创建集群,以3310实例作为主节点:

mysql-js> \connect root@localhost:3310//连接到3310实例

mysql-js>var cluster = dba.createCluster('testCluster')//创建集群

添加实例到集群中,添加实例需要输入对应的密码:

mysql-js> cluster.addInstance('root@localhost:3320')

mysql-js> cluster.addInstance('root@localhost:3330')

引导MySQL Router配置元数据服务器, 下面使用所有默认设置:

#mysqlrouter --bootstrap root@localhost:3310 --user=mysqlrouter

MySQL Router配置信息:

37595b4e9dbe0ddc4d19aaf3e7002413.png

读写连接:localhost:6446

只读连接:localhost:6447

启动MySQL Router:

#mysqlrouter &

连接测试:

mysql-shell连接:#mysqlsh --uri root@localhost:6446

mysql连接:#mysql -u root -h 127.0.0.1 -P 6446 -p

MySQL InnoDB Cluster搭建完成。

NDB和InnoDB存储引擎之间的差异

InnoDB(MySQL 5.7)特性:

InnoDB版本:InnoDB 5.7.20;

NDB Cluster版本:不支持;

最大存储长度:64TB;

事物:所有标准事物类型;

多版本并发控制:支持;

数据压缩:支持;

大行支:VARBINARY、VARCHAR、BLOB;

同步支持:半同步、异步;

块读取:支持;

块写入:需要使用水平分区;

高可用性:高;

NDB 7.5/7.6特性:

InnoDB版本:InnoDB 5.7.20;

NDB Cluster版本:NDB 7.5.8/7.6.4;

最大存储长度:128TB;

事物:读提交;

多版本并发控制:不支持;

数据压缩支持:不支持;

大行支持:BLOB、 TEXT;

同步支持半:自动同步;

块读取:支持;

块写入:支持;

高可用性:非常高;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值