内容简介:标题虽然叫做MySQL家族新成员,但如果从发布时间上来看,MySQL Shell已经不能算做新成员了,它的正式版与MySQL8.0同一天诞生,2018年4月19日,但还有很多人对它比较陌生,所以称之为“新”。在这篇文章里,我将会介绍一下它的部分功能和使用方法。首选概括一下它的功能,MySQL Shell是一个统一的命令行客户端,使用它可以对MySQL进行管理和操作。它支持多种语言,包括JavaScript,Python和SQL,并且支持编写脚本。此外,它同时支持文档型和关系型数据库模式,并且具有完整的开发和
本文转载自“MySQL解决方案工程师”公众号,由 徐轶韬翻译
标题虽然叫做 MySQL 家族新成员,但如果从发布时间上来看,MySQL Shell已经不能算做新成员了,它的正式版与MySQL8.0同一天诞生,2018年4月19日,但还有很多人对它比较陌生,所以称之为“新”。在这篇文章里,我将会介绍一下它的部分功能和使用方法。
首选概括一下它的功能,MySQL Shell是一个统一的命令行客户端,使用它可以对MySQL进行管理和操作。它支持多种语言,包括JavaScript,Python和SQL,并且支持编写脚本。此外,它同时支持文档型和关系型数据库模式,并且具有完整的开发和管理API。
看到这里,您可能会发现MySQL Shell与传统的MySQL数据库的客户端mysql的区别了,旧的mysql客户端缺失了脚本功能(可能有人会说可以通过编写 SQL 命令进行批处理),但是想要通过脚本语言对数据库进行管理的用户会发现,并没有专门适用于合并脚本语言的工具,MySQL Shell的出现弥补了这一点。
使用MySQL Shell除了可以对数据库里的数据进行操作,还可以对数据库进行管理,特别是对Innodb Cluster的支持,使用它可以十分方便的对Innodb Cluster进行管理,配置。您可以理解为MySQL Shell就是为Innodb Cluster 而生的。这篇文章将主要介绍通过MySQL Shell对I nnodb Cluster进行管 理,配置 。
既然提到了Innodb Cluster,在这里简单的介绍一下它。Innodb Cluster是由多个组件构成的高可用框架。
MySQL Group Replication:提供DB的扩展、自动故障转移
MySQL Router:轻量级中间件,提供应用程序连接目标的故障转移
MySQL Shell:新的MySQL客户端,多种接口模式。可以设置群组复制及MySQL Router
X DevAPI:通过X Protocol与服务器进行通信的API
Admin API:通过MySQL Shell使用的API,可以用于对Innodb Cluster进行配置管理
相信使用过MGR的人知道,手动配置MGR步骤很多,稍微有些麻烦,如果使用MySQL Shell将会简化很多工作。让我们通过一个例子来感受一下。
我们创建一个集群,首先要配置一台服务器用于在集群中使用。执行:
接下来连接到这台服务器,执行:
创建集群,执行:
向集群内追加节点,执行:
当新节点加入集群时,如果有缺失的事务,需要经过一段时间的数据恢复后才会变成在线状态,这个恢复过程可能会持续很长。MGR会根据新加入节点的状态选择增量恢复(增量恢复只提取基于GTID的丢失数据),或者是使用克隆恢复(执行物理快照,替换新服务器的全部数据)。管理员也可以主动选择哪种方式进行恢复。
克隆插件Clone Plugin 是MySQL8.0.17推出的新功能,使用它可以快速创建新节点,恢复数据并加入集群。当进行恢复时,MySQL Shell的提示如下:
同时,可以监控基于克隆恢复的实时进度信息,主要分为三个步骤,可以通过下图很容易看出每个步骤的状态:
使用 mysqlsh-js>cluster.status() 可以确认集群和节点成员的状态信息:
此外,还支持查看扩展状态。使用
mysqlsh-js>cluster.status({extended:1})可以查看:
•群组名称
•群组协议版本
•集群成员的 UUID
•集群成员的角色和状态
•Read-only的配置
mysqlsh-js>cluster.status({extended:2})可以查看:
•连接和回放处理的事务
mysqlsh-js>cluster.status({extended:3 })可以查看:
•有关每个集群成员的复制机制的详细统计信息
另外,MySQL Shell还具有报表框架。可以使用系统自带的报表或者用户自定义报表进行输出。
使用MySQL Shell还可以对集群进行监控和维护。
执行 mysqlsh-js>cluster.options() 可以查看
•集群全局配置选项
•每个集群成员的设置
关于集群,需要注意下面4个选项:
•expelTimeout 避免由于网络故障而频繁驱逐成员
•memberWeight 发生故障转移时的下一个主要成员
•exitStateAction 从群集中驱逐服务器时的操作:中止,只读,脱机模式
•autoRejoinTries 驱逐后尝试重新加入
可以通过MySQL Shell快速改变选项的值
此外,使用集群时需要考虑集群级别的一致性。Innodb Cluster默认以单主模式运行,应用程序和用户将数据写入到主节点。
如何保证集群范围内:
•永远读到最新数据 ?
• 不读取被驱逐服务器的过时数据吗?
•不会发生脏读?
通过MySQL Shell可以配置一致性级别的选项来实现:
Innodb Cluster的拓扑模式也可以通过MySQL Shell进行实时更改:
实时更改主节点:
// 变成多主模式
mysqlsh-js> cluster.switchToMultiPrimaryMode()
//变成单主模式
mysqlsh-js> cluster.switchToSinglePrimaryMode()
关于日志:默认情况下,MySQL Shell提供了足够的信息,但是某些特殊的情况下,用户会需要更多的信息来排除故障。
MySQL Shell的日志级别包括如下:
•1:none
•2:internal
•3:error
•4:warning
•5:info
• 6,7, 8: debug
使用
$mysqlsh –-log-level=8
使用 $ mysqlsh –-log-level=4
输出诊断信息。
使用
$ mysqlsh –-dba-log-sql=2
AdminAPI SQL日志:
•0: 无日志
•1: 记录除SELECT和SHOW以外的查询
•2: 记录全部查询
以上是关于使用MySQL Shell对Innodb Cluster进行配置管理的一个简单介绍,更为详细的内容请访问官网手册。
最后,总结一下:
•InnoDB Cluster 是MySQL内置的高可用解决方案
•MySQL Clone插件将InnoDB C luster 的可用性提升到了一个全新的高度! InnoDB Cluster 功能内置了对完整实例配置的支持
• MySQL Shell 是开发人员和 DBA 的统一接口 以及 InnoDB C luster 的前端管理软件
感谢您关注MySQL!
叶老师新课程《 MySQL性能优化 》已经在腾讯课堂发布,本课程讲解读几个MySQL性能优化的核心要素: 合理利用索引,降低锁影响,提高事务并发度 。下面是报名小程序码,厚着脸皮请求大家推荐给需要的小伙伴们。
下面是本课程内容目录
扫码加入MySQL技术Q群
(群号: 650149401)
点“在看”给我一朵小黄花
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 列队:网络空间拟态防御的“家族成员”们
- Lisp 家族迎来新成员,函数式语言 Lux 是什么?
- Lisp 家族迎来新成员,函数式语言 Lux 是什么?
- NI矢量信号收发仪产品家族再添新成员,可覆盖X频段至Ka频段应用
- “乱世”木马家族分析报告
- Eval家族的那些事儿
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
模糊数学基础及实用算法
李鸿吉编 / 科学出版社 / 2005-1 / 55.00元
本书开发了模糊数学常用的计算机程序,并以大量的算例系统地介绍了模糊数学的实用算法。本书可以作为模糊数学的应用程序包,在详细解释源代码的同时,对应用程序开发所用到的Visual Basic 6.0方法做了系统介绍,其目的是为读者做进一步的自主开发提供便利。本书所提供的源程序可以作为读者自主开发的素材。本书配有光盘,分章节提供程序源代码。 本书可以作为大专院校、培训班的教学参考书。对需......一起来看看 《模糊数学基础及实用算法》 这本书的介绍吧!