诡异的”慢查询“
早上接到研发的通知,说数据库有大量的慢查询,并把调用的时间发过来,查询时间基本在0.5s以上。通知他们把sql发过来,打开数据库连接,执行sql,发现sql执行很快,执行时间不到0.1s,让他们排查下网络问题。 过了段时间接到通知,网络无任何问题,怀疑是不是dns问题导致,使用本地连接和远程连
redis在线加密
##查看密码是否修改成功>>auth password>>config get requirepass >>config get masterauth 查看哨兵配置信息密码是否写入cat sentinel.confecho "requirepass password" >> redis.confecho "masterauth password" >> red...
mysql慢查询和错误日志分析
mysql慢查询和错误日志分析和告警查看比较麻烦,目前的慢查询告警都是仅仅反应慢查询数量的。我们做了一个慢查询日志告警和分析的程序后台使用filebeat日志文件托运工具,将日志传输到redis数据库。filebeat默认使用es。定时器1分钟执行一次。vi /etc/filebeat/filebeat.ymlfilebeat.prospectors: pa...
高并发实战之幂等处理
一、背景1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱;3. 发送消息,也应该只发一次,同样的短信发给用户,用户会哭的;4. 创建业务订单,一次业务请求只能创建一个,创建多个就会出...
redis flushdb造成的哨兵漂移
年前发现一redis数据量过大,数据不大正常,和研发商量使用flushall进行清理。在主节点执行,执行完后发现master漂移到其他节点,然后数据又从其他节点同步过来了。。于是在三台机器上同时执行flushall,再检查发现数据已清理完毕,redis集群状态正常。经分析,由于数据量较大,flushall的时间需要将近...
pt-table-checksum出现的问题
今天使用pt-table-checksum检查数据库的一致性,突然报下面的错误:一脸懵逼,这个语句在其他机器上执行都没问题检查语句如下:pt-table-checksum h=xx,u=xx,p='xxx',P=xx --databases=xx报错如下:Cannot connect to MySQL because the Perl DBD::mysql module is not installed or not found上网搜索发现为包perl-DB...
mysql慢查询的奇异事件
打开mysql慢查询日志,发现有很多sql查询时间很短,明显不到0.01s的sql竟然也在慢日志查询里面,日志详细情况如下:# User@Host: otterpro[otterpro] @ [172.22.53.122] Id: 2061# Schema: otter Last_errno: 0 Killed: 0# Query_time: 0.000559 Lock_time: 0.000080 Rows_...
运维的常用命令
----查找字符串find epdres_center-solrcloud -type f | xargs grep 50412----查杀某个端口的进程ps -ef|grep redis|grep 6902|awk '{print $2}'|xargs kill -9----批量替换某文件的内容sed -i "s/67.102/51.172/g" sentinel.conf...
mysql主从同步机制
1、binlog+pos同步(默认为异步)从服务器通过IO进程读取主库的binlog,写入到relay_log中,从服务器通过sql running进程读取从库的relay_log,并写入到从库的bin_Log实现同步我们生产一般使用row模式,因为有些函数在使用mix和state模式可能会报错。2、半同步(5.5开始)半同步就是就是用户向mysql...
mysql进修
1、同步方式binlog和pos同步、异步、半同步、基于GTID同步、单线程同步、多线程同步2、关键参数配置innodb_buffer_pool_size、key_buffer_size、innodb_flush_log_at_trx_commit、bin、sync_binlog、innodb_file_per_table、character_set_server、max_connections、transaction_isolation隔离级别、默认...
分享MySQL的自动化安装部署的方法
有过MySQL运维的人应该都清楚,线上的MySQL一般都采用源码编译,因为这样才可以根据企业的各自需要选择要编译的功能,虽然MySQL的源码编译挺简单的,但是试想一下,如果你有几百台服务器同时要安装MySQL,难道你还一台台去手动编译、编写配置文件吗?这显然太低效了,本文讨论MySQL的自动化安装部署。1、制作符合自己...
优化 | MySQL全面快速优化参考
全面的MySQL快速优化参考
MySQL oak-online-alter-table工具使用初探
MySQL oak-online-alter-table工具使用初探
mysql备份的三种方式详解
备份的本质就是将数据集另存一个副本,但是原数据会不停的发生变化,所以利用备份只能回复到数据变化之前的数据。那变化之后的呢?所以制定一个好的备份策略很重要.一、备份的目的做灾难恢复:对损坏的数据进行恢复和还原需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用二、备份需要...
mysql 关于主键索引--节选丁奇博客
CREATE TABLE t ( a char(32) not null primary key, b char(32) not null, KEY idx1 (a,b), KEY idx2 (b,a) ) Engine=InnoDB;插入部分数据后可以看到idx1和idx2两个索引的大小相同。这说明idx1和idx2的内部结构是一样的,因此 不可能 是idx1在内部存为(a,b,a)。只要用户定义的索引字段中包含了主键中的字段,那么这个...
相同sql不同机器上效率差异case
一个用户问题,数据从ECS迁移到RDS,相同的语句,查询性能下降了几十倍。而实际上RDS这个实例在内存上的配置与原来ECS上的实例相当。本文简单说明这个case的原因及建议。用户反馈性能变慢的语句为 (修改了真实表名和列名)select count(1) from HR hr join H h on h.hid = hr.hid join A e on e.aid = h.eid jo...
慢查询优化及分析
一个用户反映线上一个SQL语句执行时间慢得无法接受。SQL语句看上去很简单(本文描述中修改了表名和字段名):SELECT count(*) FROM a JOIN b ON a.`S` = b.`S` WHERE a.`L` > '2014-03-30 00:55:00' AND a.`L` < '2014-03-30 01:00:00' ; 且查询需要的字段都建了索引,表结构如下:CREATE TABLE `a` ( `L` timesta...
autocommit=0引起的业务hang住 ---转自丁奇博客
背景有用户报告一个普通的select 语句被hang住了,执行超时。查明之后发现是autocommit使用不当导致。这里将case简化,说明复现步骤及原因。 复现session1 建表并插入数据:create table if not exists t(id int primary key, c int);set autocommit=0;insert into t values(1,1);insert into t values(2,2)...
MySQL5.6 PERFORMANCE_SCHEMA 说明
MySQL 5.5开始新增一个数据库:PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数。并且库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表。MySQL5.5默认是关闭的,需要手动开启,在配置文件里添加:[mysqld] performance_schema=ON从M...
找到MySQL服务器发生SWAP罪魁祸首
0、导读MySQL数据库服务器发生SWAP相信很多人都遇到过,如何找出元凶,又如何应对呢?2、问题交代我的朋友小芳(这次不是小明了,hoho),最近遇到了一个郁闷的问题:明明OS还有大量的空闲内存,可是却发生了SWAP,百思不得其解,她就来找我搬救兵了(嗯,我可不是派来的)。先看下SWAP是干嘛的,了...