MySQL slave_net_timeout参数解决的一个集群问题案例

【背景】
   对一套数据库集群进行5.5升级到5.6之后,alter.log 报warning异常。
  

代码如下:

2015-02-03 15:44:51 19633 [Warning] Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the \'START SLAVE Syntax\' in the MySQL Manual for more information.

数据库业务压力  qps 1 tps 几乎为0  4-10 秒或者更久会有写入操作。
【分析】
  1 主从复制信息 主机地址,端口,复制用户,binlog 文件位置等信息是存储在master.info中的, 5.6 版本在安全性上做了很多改善,不建议在执行change master的时候指定密码。如果在搭建主从时制定密码,5.6 MySQL 会提示上述warning信息。这也是该集群在5.5版本时不报错的原因。
 
  2 MySQL Replication的重连机制

在一个已经建立主从复制关系的系统里面,正常情况下,由从库向主库发送一个 COM_BINLOG_DUMP 命令后,主库有新的binlog event,会向备库发送binlog。但是由于网络故障或者其他原因导致主库与从库的连接断开或者主库长时间没有向从库发送binlog。例如该例子中数据库集群 10s 左右还没有写入的情况,超过slave_net_timeout设置的4s ,从库会向主库发起重连请求。5.6 版本slave 发起重连请求时,MySQL都会判断有没有用明文的用户名密码,如果有则发出上述信息到error.log。
 
【解决方法】
   在本案例中可以尝试将slave_net_timeout 调整大一些 设置为25 。slave_net_timeout是设置在多少秒没收到主库传来的Binary Logs events之后,从库认为网络超时,Slave IO线程会重新连接主库。该参数的默认值是3600s ,然而时间太久会造成数据库延迟或者主备库直接的链接异常不能及时发现。将 slave_net_timeout 设得很短会造成 Master 没有数据更新时频繁重连。一般线上设置为5s 。

代码如下:

set global slave_net_timeout = 25

当然也可以和业务方沟通,对于几乎没有访问量的业务线进行下线 ,为公司节省资源。

(0)

相关推荐

  • C3P0连接池+MySQL的配置及wait_timeout问题的解决方法

     一.配置环境 spring4.2.4+mybatis3.2.8+c3p0-0.9.1.2+Mysql5.6.24 二.c3p0的配置详解及spring+c3p0配置 1.配置详解 官方文档 : http://www.mchange.com/projects/c3p0/index.html <c3p0-config> < default-config> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数.Default: 3 --> <property

  • MySQL中interactive_timeout和wait_timeout的区别

    在用mysql客户端对数据库进行操作时,打开终端窗口,如果一段时间没有操作,再次操作时,常常会报如下错误: ERROR 2013 (HY000): Lost connection to MySQL server during query ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... 这个报错信息就意味着当前的连接已经断开,需要重新建立连接. 那么,连接的时长是如何确认的?

  • MySQL和连接相关的timeout 的详细整理

    MySQL和连接相关的timeout   前言: 今天同事问为什么查询mysql库时, 在数据量比较大时,会话总断.刚开始以为是mysql的和连接有关timeout的问题,结果是网络的不稳定的原因. 下面总结下和连接有关的timeout slave-net-timeout The number of seconds to wait for more data from the master before the slave considers the connection broken, abo

  • MySQL slave_net_timeout参数解决的一个集群问题案例

    [背景]    对一套数据库集群进行5.5升级到5.6之后,alter.log 报warning异常.    复制代码 代码如下: 2015-02-03 15:44:51 19633 [Warning] Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using

  • 基于mysql+mycat搭建稳定高可用集群负载均衡主备复制读写分离操作

    数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了常用的读写分离方式,推荐mycat,社区活跃,性能稳定. 测试环境 MYSQL版本:Server version: 5.5.53,到官网可以下载WINDWOS安装包. 注意:确保mysql版本为5.5以后,以前版本主备同步配置方式不同. linux实现思路类似,修改my.cnf即可. A主mysql.19

  • 使用Docker部署MySQL 5.7&8.0主从集群的方法步骤

    > 部署 MySQL 5.7 集群 master & slave (仅测试用) 镜像版本 5.7 1.创建 overlay 网络 docker network create --driver overlay common-network --attachable 2.编辑两个配置文件 master.cnf 与 slave.cnf !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ [mysqld] log-b

  • MySQL Cluster集群的初级部署教程

    Mysql Cluster概述 MySql Cluster最显著的优点就是高可用性,高实时性,高冗余,扩展性强. 它允许在无共享的系统中部署"内存中"数据库的Cluster.通过无共享体系结构,系统能够使用廉价的硬件.此外,由于每个组件有自己的内存和磁盘,所以不存在单点故障. 它由一组计算机构成,每台计算机上均运行者多种进程,包括mysql服务器,NDB cluster的数据节点,管理服务启,以及专门的数据访问程序 所有的这些节点构成一个完整的mysql集群体系.数据保存在"

  • MySQL 集群迁移到 Kubernetes操作步骤

    目录 背景 适用场景 前提条件 操作步骤 Step 1:自建集群开启 GTID Step 2:容器集群在线迁移全量数据 Step 3:进行增量同步 Step 4:同步数据到容器集群的其他节点 Step 5:业务切换 Step 6:停止同步 总结 背景 如果你有自建的 MySQL 集群,并且已经感受到了云原生的春风拂面,想将数据迁移到 Kubernetes 上,那么这篇文章可以给你一些思路. 文中将自建 MySQL 集群数据,在线迁移到 Kubernetes 的 MySQL 集群中,快速实现了 M

  • 如何搭建 MySQL 高可用高性能集群

    目录 MySQL NDB Cluster 是什么 搭建集群的前置工作 开始部署集群 部署管理服务器 部署数据服务器 部署 SQL 服务 所有集群服务部署完毕,我们来测试一下集群是否真的部署成功 数据库集群部署成功了,总结一下集群的注意事项 MySQL NDB Cluster 是什么 MySQL NDB Cluster 是 MySQL 的一个高可用.高冗余版本,适用于分布式计算环境. 文档链接 搭建集群的前置工作 至少准备 3 台服务器,一台作为管理服务器,两台作为数据服务器和 SQL 服务器,当

  • 利用MySQL Shell安装部署MGR集群的详细过程

    目录 1. 安装准备 2. 利用MySQL Shell构建MGR集群 3. MySQL Shell接管现存的MGR集群 4. 小结 参考资料.文档 免责声明 本文介绍如何利用MySQL Shell + GreatSQL 8.0.25构建一个三节点的MGR集群. MySQL Shell是一个客户端工具,可用于方便管理和操作MySQL,支持SQL.JavaScript.Python等多种语言,也包括完善的API.MySQL Shell支持文档型和关系型数据库模式,通过X DevAPI可以管理文档型数

  • mariadb集群搭建---Galera Cluster+ProxySQL教程

    目录 前言 一.Galera Cluster 二.基础环境搭建 三.加入配置参数启动集群 四. 测试 五.ProxySql 总结 前言 本篇主要用于记录mariaDb环境下Galera Cluster模式集群环境的搭建过程,只做演示中间参数可能会有不当地方需自行调整. 案例所采用的的是最新10.5.8版本,Mariadb10.1以后的版本中MariaDB Galera Cluste不再单独发行,而是以galera-25.3.12-2.el7.x86_64包的形式出现.如果是10.0以下版本需要另

  • redis集群规范详解

    本文档翻译自 http://redis.io/topics/cluster-spec . 引言 这个文档是正在开发中的 Redis 集群功能的规范(specification)文档, 文档分为两个部分: 第一部分介绍目前已经在 unstable 分支中实现了的那些功能. 第二部分介绍目前仍未实现的那些功能. 文档各个部分的内容可能会随着集群功能的设计修改而发生改变, 其中, 未实现功能发生修改的几率比已实现功能发生修改的几率要高. 这个规范包含了编写客户端库(client library)所需的

  • 详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南

    Nginx是一种服务器软件,也是一种高性能的http和反向代理服务器,同时还是一个代理邮件服务器.也就是说,我们在Nginx上可以发布网站,可以实现负载均衡(提高应答效率,避免服务器崩溃),还可以作为邮件服务器实现收发邮件等功能.而最常见的就是使用Nginx实现负载均衡. Nginx与其他服务器的性能比较: Tomcat服务器面向Java语言,是重量级的服务器,而Nginx是轻量级的服务器.Apache服务器稳定.开源.跨平台,但是Apache服务器不支持高并发,Nginx能支持处理百万级的TC

随机推荐