MySQL读写IO的操作过程解析
数据库作为存储系统,所有业务访问数据的操作都会转化为底层数据库系统的IO行为(缓存系统也可以当做是key-value的数据库),本文主要介绍访问MySQL数据库的IO流程以及IO相关的参数。 一、MySQL的文件 首先简单介绍一下MySQL的数据文件,MySQL 数据库包含如下几种文件类型: 1)数据文件 (datafile) 存放表中的具体数据的文件。 2……
MySQL基于MHA高可用测试篇(Binlog模式)
一、环境准备 下面来测试MHA提供的各种功能,包括自动切换、手动切换、在线切换三种常用模式。下面是MHA manager的启动配置。 [root@mha ~]# cat /etc/masterha/app1.cnf [server default] manager_log=/var/log/masterha/app1/ma……
MySQL基于MHA高可用部署篇(Binlog模式)
一、部署MHA前提要求(必须满足) 1. SSH公钥认证 基本上MHA manager,MNA node,以及二次检测的节点,都需要互相信任。如果slave比较多,实例比较多,最好提高下 /etc/ssh/sshd_config MaxStartups 的值(默认是10)。 2. 操作系统 仅在Linux上测试过。 3. 单写master和多slave或者只……
MySQL基于MHA高可用部署篇(GTID模式)
一、GTID与MHA MHA是被广泛使用MySQL HA组件,MHA 0.56以后支持基于GTID的复制。 MHA在failover时会自动判断是否是GTID based failover,需要满足下面3个条件即为GTID based failover。 所有节点gtid_mode=1 所有节点Executed_Gtid_Set不为空 至少一个节点Auto……
Zabbix自动监控Memcached多实例配置
本人在工作中一般喜欢把MySQL、Redis、Memcached、MongoDB等数据库按照实例的方式对外提供服务。一般都是一台高配的服务器上开启多个实例给每个业务使用。而监控是重中之重,我自己也尝试了多种监控方式,但对我来说感觉最简单最快的就是使用zabbix了,灵活定义key。 由于我是多实例,所以就需要用到zabbix的自动发现功能(LLD)。基本处理……
MySQL 5.7默认ONLY_FULL_GROUP_BY语义介绍
ONLY_FULL_GROUP_BY是MySQL提供的一个sql_mode,通过这个sql_mode来提供SQL语句“分组求最值”合法性的检查,在MySQL的sql_mode为非ONLY_FULL_GROUP_BY语义时。一条select语句,MySQL允许target list中输出的表达式是除聚集函数或group by column以外的表达式,但这个表……
使用pt-query-digest分析MySQL日志
一、工具介绍 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询……
Percona Toolkit工具集介绍
部署mysql工具是一个非常重要的部分,所以工具的可靠性和很好的设计非常重要。percona toolkit是一个有30多个mysql工具的工具箱。兼容mysql,percona server,mariadb;它可以帮助DBA自动化的管理数据库和系统任务。因为他有很多工具,所以从哪里开始是一个难题,因为这个原因,所以我们下面介绍一些可能会常用到的percon……
MySQL基于MHA高可用理论篇
一、MySQL高可用系统 MySQL高可用,顾名思义就是当MySQL主机或服务发生任何故障时能够立马有其他主机顶替其工作,并且最低要求是要保证数据一致性。因此,对于一个MySQL高可用系统需要达到的目标有以下几点: 数据一致性保证这个是最基本的同时也是前提,如果主备的数据的不一致,那么切换就无法进行,当然这里的一致性也是一个相对的,但是要做到最终一致性。 ……
MySQL基于MHA高可用源码篇
一、MHA在Binlog模式下切换过程解析 Phase 1: Configuration Check Phase init_config():初始化配置 MHA::ServerManager::init_binlog_server:初始化binlog server check_settings():检查相关配置 a. c……
MySQL基于MHA+VIP部署篇
本章节基于:MySQL基于MHA高可用部署篇(二) 通过上一个章节实验,我们知道mha可以正常切换主从,但是当mysql正常切换之后,应用中是无法正常自动切换的,这时就需要vip了。VIP配置可以采用两种方式,一种通过keepalived的方式管理虚拟ip的浮动;另外一种通过脚本方式启动虚拟ip的方式(即不需要keepalived或者heartbeat类似的……