MySQL Router

MySQL 8.0.22 GA!

大憨熊 提交于 2020-12-19 08:28:23
作者: Geir Hoydalsvik 翻译:管长龙 本文来源:原文翻译 *爱可生开源社区出品 ,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 MySQL 开发团队非常高兴地宣布,MySQL 8.0.22 现在可以下载了。除了 Bug 的修复,此版本中还添加了一些新功能。可以在 8.0.22 发行说明中找到更改和错误修复的完整列表。以下是该版本主要更新。 Perpared Statements 每个 DML 语句预处理一次(WL#9384) Perpared 语句只在 Perpare 时准备一次,而不是在每次执行时准备一次。同样,存储过程中的语句也将在第一次执行时准备一次。 这项工作的好处是: 性能增强:避免每次执行时进行昂贵的准备; 简化代码:避免繁琐的准备结构回滚。 SHOW PROCESSLIST 重新实现 SHOW PROCESSLIST(WL#9090) SHOW PROCESSLIST 将作为 PERFORMANCE_SCHEMA 中 processlist 表的视图实现,从 Performance Schema 而不是线程管理器中查询活动线程数据。当前的实现在保持全局互斥的同时,从线程管理器中跨活动线程进行迭代,这在繁忙的系统上可能是令人讨厌的。从 Performance Schema 中聚合相同的信息不会以任何方式影响用户负载。 可以通过系统变量: -

异步复制连接自动故障转移

佐手、 提交于 2020-12-17 15:55:23
作者: Hemant Dangi 译:徐轶韬 MySQL 8.0.22引入了 异步复制连接自动故障转移 。这个功能能够 自动重建 一个复制连接 到另一个可用的源服务器,使得MySQL异步复制对源服务器连接失败具有容错性。 如果多个数据中心中都有源服务器,用户还可以为它们之间的 副本配置 故障转移,在整个数据中心遇到故障时进行灾难恢复。 数据库的可用性是利用 在备用服务器中保留的数据来实现,服务器使用复制功能从源服务器连续接收数据。 但在某些情况下,源服务器的连接会失败,复制的数据流会中断。 为了解释如何使用这个功能处理源服务器故障,让我们考虑以下情形:通过异步复制通道C2连接两个站点–纽约和伦敦,如下图1所示。 纽约站点中的服务器(S1,S2)通过复制通道C1(用于自动故障转移的异步或组复制)连接,这意味着S2具有S1的数据副本。 伦敦站点中的服务器(R1)配置有S1和S2的源连接详细信息,因此当S1和R1之间的连接C2失败(图2)时,R1在S2和R1之间建立新的连接C3,如图3所示。 在下一节中,我们将引导您完成该功能的配置和使用。 用法 先决条件 在启用异步连接故障转移功能之前,所有服务器都需要使用gtid_mode = ON,并且使用异步连接故障转移的副本服务器必须已将CHANGE MASTER TO配置为MASTER_AUTO_POSITION = 1。 1

centos7 安装mysql5.7及配置

我与影子孤独终老i 提交于 2020-10-23 02:49:40
一、Mysql 各个版本区别: 1、MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。 2、MySQL Enterprise Edition 企业版本,需付费,可以试用30天。 3、MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。 4、MySQL Cluster CGE 高级集群版,需付费。 5、MySQL Workbench(GUI TOOL)一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。 MySQL Workbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL Workbench SE)。 MySQL Community Server 是开源免费的,这也是我们通常用的MySQL的版本。根据不同的操作系统平台细分为多个版本, Linux下安装MYSQL有三种方式: 1 通过yum命令在线下载安装 2 下载离线rpm安装包安装 3 下载源码编译安装 MySQL Yum Repository MySQL官方新提供了一种安装MySQL的方法--使用YUM源安装MySQL. 1、MySQL官方网站下载MySQL的YUM源,在MySQL的下载页有一个“NEW!MySQL YUM

Centos7部署MySQL-router实现读写分离及从库负载均衡

旧城冷巷雨未停 提交于 2020-08-18 12:00:49
简介 MySQL Router是处于应用client和dbserver之间的轻量级代理程序,它能检测,分析和转发查询到后端数据库实例,并把结果返回给client,是mysql-proxy的一个替代品 Router可以实现读写分离,程序不是直接连接数据库IP,而是固定连接到mysql router,MySQL Router对前端应用是透明的,应用程序把MySQL Router当作是普通的mysql实例,把查询发给MySQL Router,而MySQL Router会把查询结果返回给前端的应用程序 当从数据库服务器故障时,业务也可以正常运行,MySQL Router可实现自动下线不可用服务器,程序配置不需要任何修改 若主数据库发生故障,由MySQL Router来决定主从自动切换,业务同样可以正常访问,程序配置不需要做任何修改 读写分离(Read/Write Splitting) 让一部分数据库服务器处理事务性增、改、删操作(INSERT、UPDATE、DELETE),另一部分数据库服务器处理SELECT查询操作 前期准备 准备四台Centos7虚拟机,配置IP地址和hostname,关闭selinux和防火墙,同步系统时间,修改IP地址和hostname映射 ip hostname 部署服务 192.168.29.132 master mysql 192.168.29.138

技术分享 | kubernetes 环境测试部署 MySQL 的随想

◇◆丶佛笑我妖孽 提交于 2020-08-05 11:02:33
作者:王悦 爱可生研发团队成员,负责数据库管理平台相关项目的开发和故障排查,好奇 MySQL 技术原理及各类数据库实现方案。 本文来源:转载自公众号-图解 MySQL *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 注:阅读本文需要了解 pod,controller,service 等一些 kubernetes 的基本概念。 什么是 kubernetes?有了容器技术后为什么还需要 kubernetes? 容器凭借其良好的移植性,敏捷性和革命性的打包方式迅速成为云服务的新基础设施。但 Docker 毕竟只是 “container runtime”,我们需要一个编排框架作为系统核心来串联开发、测试、部署、运维等整个软件生命周期。kubernetes 就提供这样一个框架,提供大量容器的部署、编排、管理的能力。 如果将 MySQL 部署在 kubernetes 会有哪些挑战?带来了什么收益? 虽然 kubernetes 社区一直在努力使得有状态应用成为一等公民,也推出了 statefulset 控制器支持 pod 的顺序部署,稳定的域名访问和存储访问。但鉴于 MySQL 部署运维的多样性和复杂性,在 kubernetes 上部署 MySQL 仍然要面临众多挑战。 1、业务流量入口的配置方式 传统虚拟机环境下,我们通过虚 IP 的方式

MySQL 同步复制及高可用方案总结

淺唱寂寞╮ 提交于 2020-04-10 16:26:23
1.前言 mysql作为应用程序的数据存储服务,要实现mysql数据库的高可用。必然要使用的技术就是数据库的复制,如果主节点出现故障可以手动的切换应用到从节点,这点相信运维同学都是知道,并且可以实现的。但是这种情况只是手动的切换,对可用性有要求的业务需要分别实现主库和从库的高可用,保障在数据库出现down机的情况下,可以自动实现数据库的故障转移,保障应用的可用性和用户体验。 本文将会对一些常用的数据库高可用方案进行介绍,根据你不同的场景,选择合适的高可用方案即可。 2.MMM高可用方案 2.1.Mysql-MMM介绍 MMM(Master-Master replication managerfor Mysql,Mysql主主复制管理器)是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的)。 2.2.组件 mmm_mond: 监控进程,负责所有的监控工作,决定和处理所有节点角色活动。此脚本需要在监管机上运行。 mmm_agentd: 运行在每个mysql服务器上的代理进程,完成监控的探针工作和执行简单的远端服务设置。此脚本需要在被监管机上运行。 mmm_control: 一个简单的脚本,提供管理mmm_mond进程的命令。 mysql

新特性解读 | MySQL 8.0.19 支持 DNS SRV

两盒软妹~` 提交于 2020-02-27 15:39:00
转载自公众号:玩转MySQL 作者:洪斌 MySQL Router 是 InnoDB Cluster 架构的访问入口,在架构部署上,官方给出的建议是 router 与应用端绑定部署,避免 router 单点问题。 之前还有客户咨询,能否 router 不与应用端绑定部署,不便于部署,在此之前都需要在 router 前面加 VIP 或者一层负载均衡。 我还在想这事儿就应该由 MySQL Connector 来实现访问链路的 Failover 和 Loadbalance, 现在有了 DNS SRV 的支持,router 不必和应用端绑定部署,也可以省了 VIP 和负载均衡,MySQL InnoDB Cluster 方案更加完善,配合 consul 等服务发现组件,更容易适配 service mesh 架构。 DNS SRV 是 DNS 记录的一种,用来指定服务地址。SRV 记录不仅有服务目标地址,还有服务的端口,并且可以设置每个服务地址的优先级和权重。 MySQL Connector 8.0.19 覆盖多种语言支持 DNS SRV,包括经典协议和 X 协议。遵循 RFC 2782 实现,支持 Priority 和 Weight 客户端必须连接优先级值最低的可达地址,若优先级相同,权重值越大的访问概率越高。 Connector/NET Connector/ODBC Connector/J

新特性解读 | MySQL 8.0 新特性-副本集(replicaset)

可紊 提交于 2020-02-27 12:54:47
作者:杨涛涛 引言 之前,我介绍过一篇 《MySQL Innodb Cluster 扫盲篇》 。 MySQL Innodb Cluster = MySQL Shell + MySQL Router + MySQL Group Replication(MGR) 全程由 MySQL Shell 来管理操作 MGR 的聚合套件。MySQL 8.0.19 发布后,这种组合延伸到 MySQL Replication(主从复制),也就是 MySQL Shell + MySQL Router + MySQL Replication。 MySQL 主从复制,相信大家已经非常了解了,原理大概如下图: 一、环境准备 举个例子,搭建主从的基本步骤大概如下: 主机 A:192.168.2.171:4010 从机 B/C:192.168.2.171:4011 / 192.168.2.171:4012 主机和从机经过简单的配置,后期其他配置自己任意搭配( 不同的主机要将 server-id 分别改成不同的就行了 ) # my.cnf server-id = 4010 log-bin=ytt enforce_gtid_consistency=on gtid_mode=on log_slave_updates=on master-info-repository=table relay-log-info

MySQL 8.0.19支持DNS SRV

孤者浪人 提交于 2020-02-26 14:00:32
本文转载自mysqlplayer,作者洪斌 MySQL Router是InnoDB Cluster架构的访问入口,在架构部署上,官方给出的建议是router与应用端绑定部署,避免router单点问题。 之前还有客户咨询,能否router不与应用端绑定部署,不便于部署,在此之前都需要在router前面加VIP或者一层负载均衡。 我还在想这事儿就应该由MySQL Connector来实现访问链路的Failover和Loadbalance, 现在有了DNS SRV的支持,router不必和应用端绑定部署,也可以省了VIP和负载均衡,MySQL InnoDB Cluster方案更加完善,配合consul等服务发现组件,更容易适配service mesh架构。 DNS SRV是DNS记录的一种,用来指定服务地址。SRV记录不仅有服务目标地址,还有服务的端口,并且可以设置每个服务地址的优先级和权重。 MySQL Connector 8.0.19 覆盖多种语言支持DNS SRV,包括经典协议和X协议。遵循RFC 2782实现,支持Priority和Weight客户端必须连接优先级值最低的可达地址,若优先级相同,权重值越大的访问概率越高。 Connector/NET Connector/ODBC Connector/J Connector/Node.js Connector/Python