爱可生 DBA 团队成员,主要负责 MySQL 故障处理和 SQL 审核优化。对技术执着,为客户负责。
客户反映无法登录系统。再三询问之下,客户说出一个情况:服务器因信息中心人为原因,最近总是意外断电。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』
前面可以加nohup 后面加 &,(只加& 有时候不行,可以先用只加&的测试一下可以不)
可以看出是从内部的一个ip上用dev_read 用户连接到备库上执行的 查询导致数据库备份拷贝完数据文件后FLUSH NO_WRITE_TO_BINLOG TABLES加锁处等待状态(waiting for table flush)
mysql中用的最多存储引擎就是innodb和myisam。做为Mysql的默认存储引擎,myisam值得我们学习一下,以下是我对《高性能MYSQL》书中提到的myisam的理解,请大家多多指教。
为了数据安全,数据库需要定期备份,这个大家都懂,然而数据库备份的时候,最怕写操作,因为这个最容易导致数据的不一致,松哥举一个简单的例子大家来看下: 假设在数据库备份期间,有用户下单了,那么可能会出现如下问题: 库存表扣库存。 备份库存表。 备份订单表数据。 订单表添加订单。 用户表扣除账户余额。 备份用户表。 如果按照上面这样的逻辑执行,备份文件中的订单表就少了一条记录。将来如果使用这个备份文件恢复数据的话,就少了一条记录,造成数据不一致。 为了解决这个问题,MySQL 中提供了很多方案,我们来逐一进行讲解
由于众所周知的原因,在国内使用 maven,会等待很长的时间来下载相应的 jar 包。
-- select * from information_schema.PROCESSLIST where info is not null;
cookie模式: web认证方式,以普通网站登录界面显示,输入mysql的用户名和密码,然后进入管理界面
有时候,遇到同样的 SQL 语句在正式环境的主库和只读实例的执行时间相距甚远时,第一时间就会想到是不是采样信息不一致,导致执行计划不准,从一个高效的查询变成了慢查询。找到问题所在之后,自然是 analyze 一下,重新采集信息就好,这个时候,却发现 analyze 表上的所有 select 突然卡住了,不返回任何结果。
先说第一个阵营,使用perpare的开发组,perpare 本身是一个预处理的事务的语句,将执行的语句的执行计划等内容进行固化到系统内
虽然现在都在推广自动化运维,不过有些时候还是需要登入到服务器去做些事情。那么,在有限的几次登入服务器机会中,作为DBA应该关注哪些事情呢?
近日遇到一个线上服务 socket 资源被不断打满的情况。通过各种工具分析线上问题,定位到问题代码。这里对该问题发现、修复过程进行一下复盘总结。
MYSQL 8.018-9 已经上线了,下载了percona 的8.018-9 ,打开了官方的 show card。
还真有,最近有 C++ 同学被百度从简历池捞起来面试了,目前经历了一二面,我把比较通用的面试问题抽离出来跟大家分享一波。
| 作者 王文安,腾讯CSIG数据库专项的数据库工程师,主要负责腾讯云数据库 MySQL 的相关的工作,热爱技术,欢迎留言进行交流。 ---- 有时候,遇到同样的 SQL 语句在正式环境的主库和只读实例的执行时间相距甚远时,第一时间就会想到是不是采样信息不一致,导致执行计划不准,从一个高效的查询变成了慢查询。找到问题所在之后,自然是 analyze 一下,重新采集信息就好,这个时候,却发现 analyze 表上的所有 select 突然卡住了,不返回任何结果。 这时候该怎么处理呢? 先上结论,如果这种现象
这是去年在线上遇到了一个系统负载的问题,问题的内容如下:某个从库上的系统负载从5天前开始,一直处于比较高的状态,磁盘IO也比较高,这里我先截取一部分监控的曲线图:
相信有不少同学都看过“DBA随笔”,幕后的作者是我前同事小叶,作为小叶的导师,我教过他正事,也教过一些坏的习惯,不过写笔记这个习惯算是小叶自己开窍了,他已经坚持了很长一段时间了,这股学习劲头值得点赞,圈子就这么大,其实要深耕做点事情靠的还是兴趣和坚持。
http://jingyan.baidu.com/article/a3761b2b66fe141577f9aa51.html
今天早上在公司,遇到了一个系统负载的问题,问题的内容如下:某个从库上的系统负载从5月26日开始,一直处于比较高的状态,磁盘IO也比较高,这里我先截取一部分监控的曲线图:
先来说说这俩语法的概念,第一种kill query pid指的是断开当前线程中正在执行的语句,而不断开线程连接。第二种kill pid的方法指的是断开该线程的连接,如果线程中有正在执行的语句,那么也会停止这个语句。
最近安装MYSQL 8的时候遇到一些问题,之前MYSQL 8.011 的shell脚本安装8.026 报错,后面手动安装MYSQL虽然没有什么问题,但重复性的劳动也没有人愿意去经常做,所以做了一个简易的python脚本来快速安装8.026。
线程池 简介 1、mysql每连接每线程,mysql都分配一个单独的线程,该线程处理客户端发来的所有命令 2、每个线程会占用一定的系统资源,线程数越多消耗的系统资源也越多 3、线程的创建和销毁有一定的开销 4、当线程数过多时,如果大部分线程都处于活跃状态,会导致频繁的上下文切换,从而造成系统巨大的开销 5、线程的本质就是线程共用,多个连接之间共享线程 何时使用 1、在有大量短查询的业务场景下 2、大量长查询的业务场景下不适合使用线程池,由于长查询占据了线程池的线程,导致线程池出现效率低下的情况 组成 1、线
根据TCP协议定义的3次握手断开连接规定,发起socket主动关闭的一方socket将进入TIME_WAIT状态,TIME_WAIT状态将持续2个MSL(Max Segment Lifetime),TIME_WAIT状态下的socket不能被回收使用. 具体现象是对于一个处理大量短连接的服务器,如果是由服务器主动关闭客户端的连接,将导致服务器端存在大量的处于TIME_WAIT状态的socket, 甚至比处于Established状态下的socket多的多,严重影响服务器的处理能力,甚至耗尽可用的socket,停止服务. TIME_WAIT是TCP协议用以保证被重新分配的socket不会受到之前残留的延迟重发报文影响的机制,是必要的逻辑保证。
近期由测试反馈的问题有点多,其中关于系统可靠性测试提出的问题令人感到头疼,一来这类问题有时候属于“偶发”现象,难以在环境上快速复现;二来则是可靠性问题的定位链条有时候变得很长,极端情况下可能要从 A 服务追踪到 Z 服务,或者是从应用代码追溯到硬件层面。
最近在家里捣鼓一个公司自己搭建的demo的时候,发现程序一启动就会出现CommunicationsException: Communications link failure错误,经过一番排查最后发现是数据库url写错造成的,这个过程中也对出现这个错误的解决思路有了一些自己的理解,现和大家分享。该错误的具体信息如下:
最近利用 MHA 做好 Mysql 读写分离后,时不时有用户反馈后台发布文章时,报程序“通用异常",经问题排查,里面涉及应用JDBC连接池参数及Mysql参数调整问题。
Hibernate是Java世界中使用最广泛的数据持久化框架,使用ORM(对象关系映射)模式简化关系型数据库的的数据增删改查功能。
统计在一台前端机上高峰时间TCP连接的情况,统计命令: netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
在上一篇《用于修改配置的存储过程 | 全方位认识 sys 系统库》中,我们介绍了sys 系统库中用于修改配置的存储过程,利用这些存储过程可以代替修改performance_schema配置表的DML语句等操作,本期的内容讲介绍用于查看performance_schema配置信息的存储过程。
作为一个后端工程师,想必没有人没用过数据库,跟我一起复习一下MySQL吧,本文是我学习《MySQL实战45讲》的总结笔记的第四篇,总结了MySQL的锁相关知识。
行内数据库备份在使用某备份软件,使用的数据库版本MySQL 8.0社区版,全备使用mysqldump进行,DBA早上巡检发现有一套数据库全备份失败,心里一疙瘩怎么回事呢?来看看如下报错
根据实例上的业务量判断CLOSE_WAIT数量是否超出了正常的范围。TCP连接断开时需要进行四次挥手,TCP连接的两端都可以发起关闭连接的请求,若对端发起了关闭连接,但本地没有关闭连接,那么该连接就会处于CLOSE_WAIT状态。虽然该连接已经处于半开状态,但是已经无法和对端通信,需要及时的释放该连接。建议从业务层面及时判断某个连接是否已经被对端关闭,即在程序逻辑中对连接及时关闭,并进行检查。
阅读文本大概需要 6 分钟。 中午和同事一起吃饭,饭后AA,可一直没收到同事转账,下班前提醒了她。同事说:早就给你转过去了啊,我的钱都扣了的。可是,你的账户上确实没有收到... 这事可能真不是你的同
在MySQL 5.7中,查询 performance_schema.replication_group_members 时,没有 MEMBER_ROLE 这个列,这很不便于快速查看哪个节点是Primary Node。
最近一套MySQL,show processlist的时候,看到很多会话状态是Opening tables,这是什么意思?
全局锁就是对整个数据库实例加锁。MySQL提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。
MySQL 中并非所有的数据库存储引擎都支持事务操作,比如 MyISAM 就不支持。所以,使用事务处理的时候一定要确定所操作的表示是否支持事务处理,可以通过查看建表语句来查看有没有指定事务类型的存储引擎。当然,事务处理是为了保障表数据原子性、一致性、隔离性、持久性。这些都需要消耗系统资源,请谨慎选择。
在Keepalived集群中,其实并没有严格意义上的主、备节点,虽然可以在Keepalived配置文件中设置“state”选项为“MASTER”状态,但是这并不意味着此节点一直就是Master角色。
TCP协议端口状态说明:CLOSE-WAIT、TIME-WAIT 、LISTENING、SYN_SENT、ESTABLISHED、LAST-ACK …
谈到Hermes的索引技术,相信很多同学都会想到Solr、ElasticSearch。Solr、ElasticSearch真可谓是大名鼎鼎,是两个顶级项目,最近有些同学经常问我,“开源世界有Solr、ElasticSearch为什么还要使用Hermes” 在回答这个问题之前,大家可以思考一个问题,既然已经有了Oracle、MySQL等数据库为什么大家还要使用ES下的Hive、Spark? Oracle和MySQL也有集群版,也可以分布式,那ES与Hive的出现是不是多余的? Hermes的出现,并
一般情况下,如果我跟你说查询性能优化,你首先会想到一些复杂的语句,想到查询需要返回大量的数据。但有些情况下,“查一行”,也会执行得特别慢。今天,我就跟你聊聊这个有趣的话题,看看什么情况下,会出现这个现象。
当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构;
点击上方蓝字每天学习数据库 作者简介:鲁越,腾讯云数据库架构师,主要负责腾讯云数据库MySQL、Redis、MongoDB、Oracle等数据库架构设计、数据库运维、运营开发等工作,曾就职于网易游戏。 ---- 问题背景 用户将MySQL从IDC迁移至公有云后,时常有出现建立连接超时的情况,业务使用的场景是PHP短连接到MySQL,每秒的新建连接数在3000个左右,这个量算是比较大。但在IDC内自建时也是这样的使用场景,从未遇到过这个问题。 排查步骤 1、首先肯定是排查MySQL以及MySQL所在的物
CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙步骤。 firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
前段时间调研nacos,用来代替zookeeper当作dubbo的注册中心,使用的是nacos的1.1.4版本。还用了nacosSync,一款nacos提供的迁移工具,可将常见的注册中心上的服务同步到nacos上。这玩意很不好用,至少不是生产级别的工具。但这与本文无关,后面会专门写一篇文章来介绍这个同步工具的优缺点,以及生产级别还需要做哪些改造。开始测试时,总有服务莫名奇妙的下线了,一直找不到原因。后来在调研的过程中,nacos发布了1.2.0-beta.0版本,于是去github上看了1.2.0-beat.0的release note。把修复的bug一个一个去review,重要的都merge到调研版本上,其中有一个bugfix引起了我的注意。
领取专属 10元无门槛券
手把手带您无忧上云