初探mysql innodb集群_MySQL InnoDB Cluster搭建
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或更高的版本
这些技术如何协同工作如下图所示:
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配置信息:
读写连接: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;
同步支持半:自动同步;
块读取:支持;
块写入:支持;
高可用性:非常高;
初探mysql innodb集群_MySQL InnoDB Cluster搭建相关推荐
- MySQL数据库集群的原理与搭建
[1.应用背景] 在最近做的项目中,因为有一个短时间内很多人访问服务,会频繁访问数据库,看到这里不免有些人会想起数据库集群.我们组长也想到了用数据库集群,于是就带着我们几个研究起来了mysql ...
- mysql percona 集群_MySQL高可用性解决方案—Percona XtraDB Cluster
MySQL数据库的性能是服务器运维中不可缺少的部分,需要不断的优化数据库的性能,寻找出系统的瓶颈.今天就来分享一款提高数据库高可用性的解决方案.Percona XtraDB Cluster---MyS ...
- mysql双机集群_mysql双机集群
MYSQL集群服务配置 篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群.并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行. 注意! 虽然这是基于2台服务器的MySQL集群,但 ...
- mysql windows集群_Mysql集群windows服务器版搭建过程
此文就聊聊在windows服务器上搭建集群遇到的一些问题,具体的安装和配置解释我就不赘述了.供后续遇到问题的朋友们可以更快的找到问题所在,直接搞定以便避免占用太多不必要的时间. 服务器版本winsev ...
- mysql mongodb 集群_MySQL与MongoDB
MySQL与MongoDB 声明: MySQL与MongoDB都是开源的常用数据库, 但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库. ...
- mysql数据库 集群_mysql数据库集群
mysql用来开发中小型项目还是挺好用的,从节约成本的方面来考虑的确是个不错的选择,但是开发并发了比较大的项目显然还是有些吃力的,前几 年解决这种问题通常是通过读写分离来优化数据库,因此出现了amoe ...
- mysql数据库集群架构图_搭建MySQL-Cluster集群架构
实验需求:部署MySQL集群,减少数据库单点故障. 实验方案:准备5台服务器,mgmd(192.168.100.1)作为管理节点,sqlA(192.168.100.2)和sqlB(192.168.10 ...
- innodb 集群_部署MySQL InnoDB集群以实现高可用性
innodb 集群 In this article, I am going to explain how we can deploy the MySQL InnoDB cluster. InnoDB ...
- mysql如何管理innodb元数据_MySQL 8 InnoDB 集群管理
使用 dba.checkInstanceConfiguration() 在添加实例到集群中前,使用该方法检查实例配置是否满足InnoDB 集群要求. 使用 dba.configureLocalInst ...
最新文章
- 中国首场AI芯片产业峰会成功举办 GTIC 2018热度空前
- SAP WMSD集成之Copy WM Quantity – Copy WM qty as delivery qty into delivery and PGI
- oracle10g提权,Oracle 10g提权测试
- CentOS 6.5 64位 安装Nginx, MySQL, PHP
- 现任明教教主共享胖AP与WLC安全配置录像.上半部分
- JavaScript:学习笔记(3)——正则表达式的应用
- MyBatis学习前篇
- 韩顺平 linux视频教程
- Blender全新毛发工具演示露出,预计9月份正式更新
- 汇编语言伪指令详解(附实例)
- powergui 中“varargout“ 时,未对一个或多个输出参数赋值。
- 【技巧】pytorch tif转成jpg
- 励志:滴滴打车CTO张博:生死战役,技术和时间赛跑
- rocky linux 8.5 基本设置
- Memcached命名空间
- Unity2D 实现UGUI滚动鼠标滑轮以鼠标位置点为中心缩放图片
- Java 开发工程师 面试题(一)
- 2020年全新开放式学习资源
- deepin标题栏边框美化
- 网站调整为黑白的方法