• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!
Amazon RDS多区域高可用测试

Amazon RDS多区域高可用测试

最近在AWS上面需要部署一组多区域RDS集群,AWS的多区域简单理解就是RDS一主一从分别在当地的两个机房(两个区域)。所以就有了下面各方面的测试。 我们需要测试什么? Primary挂掉时,Secondary是否会自动升级为Primary提供服务,切换期间中断多久? 发生切换后,数据是否有丢失? TPS&QPS分别是多少(配置不同得到的值会不同)……

MySQL备份恢复:Xtrabackup流传输实践

MySQL备份恢复:Xtrabackup流传输实践

XtraBackup支持流式备份,将备份以指定的tar或xbstream格式发送到STDOUT,而不是直接将文件复制到备份目录。要使用此功能,仅需要使用--stream选项即可,指定流格式为tar或xbstream,以及指定存储临时文件的绝对路径。 $ innobackupex --stream=tar /tmp ……

MySQL备份恢复:Xtrabackup全备strace调用栈信息

MySQL备份恢复:Xtrabackup全备strace调用栈信息

innobackupex全备strace调用栈信息解释,以下strace输出信息去掉了一些无用信息: 注意事项: 留意open系统调用等号后边的数字,这个数字是open打开一个文件时系统分配的FD号,如果一旦调用了close(FD)之后,系统会回收该FD分配给其他open的文件使用,请留下下文中的FD切换 innobackupex工具在备份过程中会创建几个……

MySQL 8.0:持久化自增列值

MySQL 8.0:持久化自增列值

MySQL 8.0修复了一个MySQL十年之久的自增列Bug,在2003年由Percona的CEO(当时应该还没Percona吧)提出的bug#199。先重现一下这个BUG。 create table t1(id int auto_increment, a int, primary key (id)) engine=innodb……

InnoDB Drop Table的机制及瓶颈

InnoDB Drop Table的机制及瓶颈

一、背景 在使用 MySQL 时,如果有大表的存储引擎是 InnoDB,并且系统参数 innodb_file_per_table 设置为 1,即每个文件对应一个独立的表空间,当对这些大表进行 DROP TABLE 时,有时会发现整个数据库系统的性能会有显著下降,包括一些只涉及几行数据的简单 SELECT 查询和 DML 语句,而且这些语句和正在删除的大表没有……

MySQL发展时间轴

MySQL发展时间轴

毫无疑问,目前MySQL已经成为最为流行的开源关系数据库系统,并且一步步地占领了原有商业数据库市场。如今Google、Facebook、Yahoo、网易、九游、淘宝等大公司都在使用MySQL数据库。而MySQL的发展也从1.0到如今的8.0版本,其功能的完善和稳定性也得到了很好的保证。 简单来说,MySQL发展史可分为三个阶段,如下图: 第一阶段:MySQ……

PMM中的饱和度量值(Saturation Metrics)

PMM中的饱和度量值(Saturation Metrics)

PMM 1.2添加新图形之一是饱和度度量(Saturation Metrics)标准。这篇博文解释如何使用这些图表提供的信息。 您可能听说过Brendan Gregg的USE方法(利用率 – 饱和度 – 误差)作为分析任何系统性能的方法。我们在PMM中的目标是随着时间的推移完全支持这种方法,这些图表使我们向前迈进了一步。 在利用率方面……

使用innodb_ruby分析InnoDB内部结构

使用innodb_ruby分析InnoDB内部结构

一、innodb_ruby 介绍 如果你想了解 MySQL InnoDB 内部结构,不好意思,官方在 5.7 版本之前并没有什么好的工具。所以你只能自己写一个工具去分析表空间文件或使用别人开源的工具,比如innodb_ruby。在 MySQL 5.7 版本,官方加强了innochecksum工具,使之也可以简单分析表空间,比如查看页类型统计信息等。但跟 Je……

磁盘利用率和饱和度理解

磁盘利用率和饱和度理解

在这篇文章里,会介绍磁盘利用率(Utilization)和饱和度(Saturability)相关的知识。 在之前的博客里面,我写了一些关于CPU使用率和饱和度之间有什么实质性不同,以及CPU使用率、饱和度如何从不同维度影响响应时间(RT)的文章。现在我们来看另一个影响数据库性能重要因素:存储子系统。在下面文章里,我会用“磁盘”代替存储子系统。 监控IO性能最……

Django存储emoji到MySQL

Django存储emoji到MySQL

一、问题描述 目前来说,多数 MySQL 都是以 utf8 存储,注意 MySQL 的 utf8 和我们所说的传统 utf8 有点区别。MySQL 的 utf8 实际上不是真正的 UTF-8,MySQL 的 utf8 编码规定了最多只能有 3 个字节,而真正的 UTF-8 是每个字符最多四个字节。 MySQL 一直没有修复这个 bug,他们在 2010 年发……

MySQL查询解析顺序

MySQL查询解析顺序

一、逻辑查询处理 SQL语言不同于其他编程语言,最明显的不同体现在处理代码的顺序上。在大多数编程语言中,代码按编码顺序被处理。但在SQL语言中,第一个被处理的子句总是FROM子句。下面显示了逻辑查询处理的顺序以及步骤的序号。 (8) SELECT (9) DISTINCT <select_list> (1) FRO……

MySQL运算符介绍

MySQL运算符介绍

运算符是告诉MySQL执行特殊算术或逻辑操作的符号,主要用于在SQL语句的WHERE子句来执行,比较和算术运算等操作。运算符用于指定一个SQL语句中的条件,并作为连词多个条件在一份声明中。MySQL的内部运算符很丰富,主要有四大类:算术运算符、比较运算符、逻辑运算符、位操作运算符。 一、算术运算符 运算符 作用 + 加法运算 –……