首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

线上MySQL不可用,报错数据库无法连接

数据库自己有个连接池,你的每个系统部署在机器时,那台机器上部署的系统实例/服务实例自己也有个连接池,你的系统每个连接Socket都对应DB连接池里的一个Socket连接,这就是TCP连接: 当MySQL...但这时若MySQL报异常Too many Connections,说明目前MySQL无法建立400个网络连接。这也太少了吧,这可是高配置机器!...登录到MySQL机器,执行如下命令: show variables like 'max_connections' 可观察到,当前MySQL仅建立了214个连接而已!...难道MySQL根本不在乎我们设置的这参数?...为何Linux最大文件句柄限制为1024时,MySQL最大连接数是214?MySQL源码中就是有个计算公式,算下来就是这样的结果。

3K20
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL】记一次线上重大事故:二狗子竟然把线上数据库删了!!

让他发个版本,结果,一行命令下去把线上数据库删了!你没听错:是删掉了线上数据库!运营那边顿时炸了锅:怎么回事?系统不能访问了!什么情况啊?!很多客户都在投诉了!!...事件背景 MySQL数据库每日零点自动全备 某天上午9点,二狗子不小心drop了一个数据库 我们需要通过全备的数据文件,以及增量的binlog文件进行数据恢复 主要思想与原理 利用全备的sql文件中记录的...test数据库。....000003.sql文件恢复全备时刻到删除数据库之间,新增的数据。...恢复时建议对外停止更新,即禁止更新数据库。 先恢复全量,然后把全备时刻点以后的增量日志,按顺序恢复成SQL文件,然后把文件中有问题的SQL语句删除(也可通过时间和位置点),再恢复到数据库

77510

线上MySQL为何频繁“抖擞”?

看监控图,就给人感觉数据库“抖”了。...平时执行很快的更新操作,其实就是在写内存和日志,而MySQL偶尔“抖”一下瞬间,可能就是在刷脏页(flush)。 那何时会触发数据库的flush? 想想掌柜在何时会把粉板上的赊账记录改到账本?...其中,第三种情况是属于MySQL空闲时的操作,这时系统没什么压力,而第四种场景是数据库本来就要关闭了。这两种情况下,你不会太关注“性能”问题。所以这里,我们主要来分析一下前两种场景下的性能问题。...之前,就曾有其他公司的开发负责人找我看一个库的性能问题,说MySQL的写入速度很慢,TPS很低,但是数据库主机的IO压力并不大。经过一番排查,发现罪魁祸首就是这个参数的设置出了问题。...利用WAL技术,数据库将随机写转换成了顺序写,大大提升了数据库的性能。 但是,由此也带来了内存脏页的问题。

1K20

线上MySQL优化案例

线上的SQL优化案例(一) 今天上班的时候,业务方询问了一个问题,说是某一服务每次在查询的时候会有0.5s的延迟,让DBA帮忙查一查到底是什么原因,听到0.5s的这个数字的时候,我感觉问题倒不是很严重...3、查看对应的表结构: mysql--dba_admin 12:59:09>>show create table account\G *************************** 1. row...| +-------------+ | 1 | +-------------+ 1 row in set (0.02 sec) mysql--dba_admin 12:02:25...改成单个字段的试试,这里我又把索引改成了: KEY `idx_accid` (`accountid`) 只保留一个字段,看看执行结果: mysql--dba_admin 13:12:17>>explain...建表语句如下: mysql--dba_admin 13:16:24>>show create table account\G *************************** 1. row ***

1.2K20

一次MySQL线上数据恢复过程

一次线上数据恢复过程 这个周末过得相当充实,当我们做一些有意思的事情的时候,就会觉得周末的时间特别长。...废话不多说了,今天写一次线上的数据恢复过程,今天有一个运维的女同事不小心误删了一张表里面的数据,来找我恢复,一副很焦急的样子,当时我询问了故障的发生过程,大概如下: 有两张业务表,利用了外键进行了关联...一般我们只需要执行一下binlog2sql.py的这个文件就行,恢复的命令如下: python binlog2sql.py -h"主机IP" -P"端口号" -u"用户名" -p"密码" -d"数据库名称...yeyz;Query OK, 1 row affected (0.00 sec) mysql:(none) 22:33:42>>use yeyz; Database changed mysql:yeyz...总结一下: 1、binlog2sql是一个开源工具,可以提供binlog中的SQL提取功能,和DML闪回功能 2、参数一般有:用户名、IP地址、密码、账号名、数据库名称、表名称、binlog名称、开始时间

71620

线上MySQL频繁抖动的性能优化实战

这时可能发现突然莫名线上DB执行某查询SQL就突然性能出现抖动,平时只要几十ms查询,这次一下子要几s,毕竟你要等待大量脏页flush磁盘,然后语句才能执行。...所以此时假设你在执行大量更新语句,可能突然发现线上DB莫名很多更新语句短时间内性能都抖动了,可能很多更新语句平时就几ms执行完,这次要等待1s才能执行完。...综上,导致线上DB的查询和更新语句莫名出现性能抖动,很可能就是上述两种情况导致的执行语句时大量脏缓存页刷入磁盘,你要等待他们刷完磁盘才能继续执行。...MySQL调优,降低缓存页刷盘对性能的影响 要达此目的,关键如下: 减少缓存页刷盘频率 很难!因为平时你的缓存页就是正常的在被使用,终究会被填满。...一旦填满,必然你执行下个SQL就会导致一批缓存页刷盘,这很难控制,除非你给你的数据库采用大内存机器,给BP分配的内存空间大些,则其缓存页填满的速率低些,刷盘频率也就较低。

1K10

记一次mysql线上问题排查

背景是这样的,我们有个系统每天都会调起多个定时任务,首先quartz每分钟会调起一次检查时间的任务,如果发现时间到达设定的任务执行时间,java代码会向数据库里写入一条记录,然后有另外一个系统就会根据这条记录执行相应的任务...原来是第一次写库会写失败,google这段报错,发现网上有人说mysql端会释放超过一段时间的空闲链接,默认8小时。如果你拿着已经被mysql释放的链接去读写库,肯定会失败。...解决方案一   把mysql段的超时时间设大,从默认的8小时设置到24小时。因为我们的系统至少每天都会有读写mysql的操作,24小时肯定能覆盖的一个完整的读写库周期。但其实这种方法治标不治本。...解决方案二   写个定时任务定期读一次数据库,保证mybatis维护的connection都是有效的,这是一个很low的方案,但确实有效啊。...poolPingEnabled" value="true"/> //select 1其实是定期执行的sql //表示无数据库操作

98610

MySQL性能优化浅析及线上案例讲解

Tech 导读 本文重点介绍了MySQL数据库性能优化的常见手段、底层架构实现原理、互联网医院建设过程中的几个典型案例;读者可以通过本文了解到日常开发中的注意事项、数据库性能优化的解决思路、...数据库性能优化的常见手段有很多,比如添加索引、分库分表、优化连接池等,具体如下: 图1 数据库性能优化的常见措施 02 MySql性能优化 理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板...案例2: 在某次大促的当天,突然接到DBA运维的报警,说数据库突然流量激增,CPU也打到100%了,影响了部分线上功能和体验,遇到这种情况当时大部分人都比较紧张,下图为当时的数据库流量情况:...案例3: 2020年某日上午收到数据库CPU异常报警,对线上有一定的影响,后续检查数据库CPU情况如下,从7点51分开始,CPU从8%瞬间达到99.92%,丝毫没有给程序员留任何情面。...CPU也就恢复到了49.91%,基本可以恢复线上业务,从而表象就是线上间歇性的一会儿可以开方一会不可以,这条SQL当时总共执行了230次,当时的CPU情况也是忽高忽低,伴随这条SQL语句的执行情况,从而最终证明

16320

线上MySQL部署的一个问题

线上MySQL部署的一个问题 今天在给线上的一套环境部署MySQL服务的时候,发现了一个问题,我特意记录了下来,这个问题暂时没有很好的解决方法,只是临时解决了一下,下面贴出来具体过程,大家可以看下,或者有好的建议可以提供给我...01 问题起因 目前在线上安装MySQL现在都是通过平台化操作的,平台化的后台操作逻辑也是将安装的脚本直接运行。..._4308/data --basedir=/usr/local/mysql [root@hb30-dba-mysql-124-153 mysql_4308]# [root@hb30-dba-mysql.../mysql_4308/my.cnf --datadir=/data/mysql_4308/data --basedir=/usr/local/mysql -- :: [WARNING] mysql_install_db...然后添加了相关的--no-default参数,重新启动: [root@hb30-dba-mysql-124-153 mysql_4308]# /usr/local/mysql/bin/mysql_install_db

76400

MySQL线上日志库迁移优化案例

MySQL线上日志库迁移优化案例 说说最近的一个案例吧,线上阿里云RDS上的一个游戏日志库最近出现了一点问题,随着游戏人数的增加,在线日志库的数据量越来越大,最新的日志库都已经到50G大小了,在线变更的时间非常长...,分表之后不利于关联操作 基于上面的分析,结合实际情况,初步设想的方案是: 1、对线上数据库game_log中的表进行rename操作,然后将原来的表重新创建出来,这个过程中不是连续的,可能会丢失几秒钟的数据...,该数据库采用infobright存储引擎,这样能够支持离线数据的快速查询 ?...3、备份并清理线上表3个月之外的数据,大概是40G,并将线上的game_log_bak数据库中3个月以内的数据(大概10G)重新灌入game_log数据库中,这样结构就变成了: ?...5、从本地的只读从库中,像本地的infobright数据库中同步数据,同步的方法可以选用dataX工具,像下面这样: ?

66530

线上IO问题跟踪-剖析MySQL IO路径

这一线程,确实来自于mysql进程,该时间段内没有抓到其他大量写入的记录,同时该实例slave mysql为单机独占,可以基本确定写入来源为mysql中145378这个线程,那么这个线程是哪一个线程呢?...通过mysql实例的监控可,可以看到mysql主要进行的操作为insert,slave mysql主要在进行单线程回放,执行这些insert操作,操作数量会有一些增长,每秒操作数不稳定,峰值可能达到4000...产生这个现象的时候,mysql在做什么事情?...为了更好的分析问题,同时不影响线上业务,在另外一台实验机器上单独搭建mysql 5.7的slave,连到源实例的master作为slave,问题现象也可以复现,为了获取更多信息,打开mysql 5.7的...腾讯数据库技术团队对内支持微信红包,彩票、数据银行等集团内部业务,对外为腾讯云提供各种数据库产品,如CDB、CTSDB、CKV、CMongo, 腾讯数据库技术团队专注于增强数据库内核功能,提升数据库性能

1.1K20

MySQL死锁系列-线上死锁问题排查思路

前言 MySQL 死锁异常是我们经常会遇到的线上异常类别,一旦线上业务日间复杂,各种业务操作之间往往会产生锁冲突,有些会导致死锁异常。...本篇文章会讲解一下如果线上发生了死锁异常,如何去排查和处理。除了系列前文讲解的有关加锁和锁冲突的原理还,还需要对 MySQl 死锁日志和 binlog 日志进行分析。...[线上死锁异常分析] 正文 日常工作中,应对各类线上异常都要有我们自己的 SOP (标准作业流程) ,这样不仅能够提高自己的处理问题效率,也有助于将好的处理流程推广到团队,提高团队的整体处理异常能力。...所以,面对线上偶发的 MySQL 死锁问题,我的排查处理过程如下: 线上错误日志报警发现死锁异常 查看错误日志的堆栈信息 查看 MySQL 死锁相关的日志 根据 binlog 查看死锁相关事务的执行内容...我们可以使用 MySQL 的命令行工具 Mysqlbinlog 远程获取线上数据库的 binlog 日志。

5K32

Mysql专栏 - 线上调优与压力测试

Mysql专栏 - 线上调优与压力测试 前言 本节内容讲述线上的调优手段以及压力测试的相关工具,结合一些实际的命令参数,我们将会介绍运行结果的具体含义。...概述 介绍常见的mysql系统性能分析指标,介绍吞吐量和机器的选择 压力测试工具的介绍,以及数据库压力测试的实战。...通常选择: 大多数情况下一般8核16G的机器部署的MySQL数据库,每秒抗个一两千并发请求是没问题的,但是如果并发量再高一些,假设每秒有几千并发请求,那么可能数据库就会有点危险了,因为数据库的「CPU...:这个很简单,就是说他基于mysql的驱动去连接mysql数据库,你要是oracle,或者sqlserver,那 自然就是其他的数据库的驱动了 --time=300:这个就是说连续访问300秒--threads...,而是要根据压力测试对于数据库进行实际的压测之后,通过增加压力的方式找到mysql服务器的压力极限,最后通过两个思考题我们可以看到衡量一个mysql的性能需要从多方面考虑,哪怕是理想情况下能够处理的请求其实也不是很多

2.2K20

一次线上MySQL分页事故,搞了半夜...

分页导致的线上事故,事情是这样的~ 背景 一天晚上 10 点半,下班后愉快的坐在在回家的地铁上,心里想着周末的生活怎么安排。...突然电话响了起来,一看是我们的一个运维同学,顿时紧张了起来,本周的版本已经发布过了,这时候打电话一般来说是线上出问题了。...果然,沟通的情况是线上的一个查询数据的接口被疯狂的失去理智般的调用,这个操作直接导致线上MySQL 集群被拖慢了。...比如像上面的 limit 2000000,25,这个等同于数据库要扫描出 2000025 条数据,然后再丢弃前面的 20000000 条数据,返回剩下 25 条数据给用户,这种取法明显不合理。...第二天使用第一种和第二种配合使用的方案对程序和数据库脚本进一步做了优化。合理来说做任何功能都应该考虑极端情况,设计容量都应该涵盖极端边界测试。 另外,该有的限流、降级也应该考虑进去。

34220
领券