曾就职于阿里巴巴担任Oracle DBA,MySQL DBA,目前在新美大担任SRE。[是普罗米修斯还是一块石头,你自己选择!] 欢迎关注微信公众号 “自己的设计师”,不定期有原创运维文章推送。
发布时间:2017-04-10 16:28:13
申明:本文大多数理解和部分图都是本人多standford关于Paxos的学习后,或是翻译或者整理,结合本人自己的理解写下的这篇文章。 最近几年分布式协议在数据库产品中飞速发展,各大公司都有基于特定场景相应的分布式数据产品出现,国内典型的包括腾讯的基于Paxos.........【阅读全文】
发布时间:2017-03-08 18:28:20
年前看到percona的blog关于mydumper的lockless更新,因此萌发了重写mydumper的想法。这篇文章是我对mydumper的分析,以及对之前重写的产品datapumper的思考与实践。具体的代码由于没有经过性能对比,目前还未开放出来。 在MySQL的逻辑备份中,mydumper逻辑备份一直以并发和快.........【阅读全文】
发布时间:2016-10-16 16:00:31
在使用redis作为缓存的场景下,内存淘汰策略决定的redis的内存使用效率。在大部分场景下,我们会采用LRU(Least Recently Used)来作为redis的淘汰策略。本文将由浅入深的介绍redis lru策略的具体实现。 首先我们来科普下,什么是LRU ?(以下来自维基百科) .........【阅读全文】
发布时间:2016-01-19 15:33:00
mysql_config_editor采用的AES ECB加密。关于AES 的ECB加密通常都是块加密,如果要加密超过块大小的数据,就需要涉及填充和链加密模式,文中提到的ECB就是指链加密模式。这篇文章主要介绍在该工具中该加密技术的使用与实现,并未详细介绍该机密技术的算法与实现细节。 在前一篇文章中,.........【阅读全文】
发布时间:2016-01-05 16:57:56
从mysql5.6开始,mysql推出了加密工具mysql_config_editor。在此之前我们通过将账号和密码明文放入my.cnf,从而使用mysql客户端登录时,无需指定账号密码就可以登录数据库。而有了mysql_config_editor工具之后,我们将加密后的账号密码放入二进制文件。在登录时,客户端通过解密该文件来登录数据库。.........【阅读全文】
发布时间:2015-12-23 11:15:03
这篇文章会详细解说MySQL中使用非常广泛的MEM_ROOT的结构体,同时省去debug部分的信息,仅分析正常情况下,mysql中使用MEM_ROOT来做内存分配的部分。 在具体分析之前我们先例举在该结构体使用过程中用到的一些宏:点击(此处)折叠或打开#define MALLOC_OVERHEAD 8 /.........【阅读全文】
发布时间:2015-12-09 20:08:18
MySQL中,常常会看到一些关于动态字符串的处理,列如:DYNAMIC_STRING。为了记录动态字符串的实际长度,缓冲区的最大长度,以及每次字符串需要调整时,及时分配新的内存,以及调整长度。MySQL使用了DYNAMIC_STRING来保存动态字符串相关的信息:点击(此处)折叠或打开typedef .........【阅读全文】
发布时间:2015-12-08 15:10:02
近期有同学使用mysqldump导出数据的时候,发现线下环境导出数据卡住,且导致mysql比较繁忙!同时dump的报错如下:点击(此处)折叠或打开mysqldump: Couldn't execute 'SELECT DISTINCT TABLESPACE_NAME, FILE_NAME, LOGFILE_GROUP_NAME, EXTENT_SIZE, INITIAL_SIZE, ENGI.........【阅读全文】
发布时间:2015-12-03 00:04:25
MHA已经是一个比较成熟的MySQL Master切换软件,很多公司都在使用,这里主要介绍一下MHA关于Failover的具体实现原理。主要从代码出发,如有错误,还望指正!关于MHA的Failover主要代码都在MasterFailover.pm中,具体的Failover流程步骤如下: a.停止所有slave从master接收数据(stop io_thread.........【阅读全文】
发布时间:2015-07-01 16:49:10
2015-06-30 13:11:00左右,memcache由于硬件故障,莫名重启,导致数据库访问量突然增大(按照之前的测试结果,远未到达系统瓶颈),且当时syscpu 远高于正常值。
监控信息如下:
.........【阅读全文】