突发事件防止数据库被打死紧急处理措施
Jun 07, 2016 pm 05:36 PM开发上线完以后,到早上高峰期并发压力大,有可能因某个SQL的原因把数据库给打死,参考《一个引号导致1个小时网站打不开》,这个时候你可以用pt-kill杀死,但连
开发上线完以后,到早上高峰期并发压力大,有可能因某个SQL的原因把数据库给打死,参考《一个引号导致1个小时网站打不开》,这个时候你可以用pt-kill杀死,但连接数过高,CPU负载很高,,这个工具根本没法去处理,数据库这个时候已经成瘫痪状态,那么应该怎么办?
首先要保证数据库不能被打死,先让数据库压力降下来,这里就要做一些限制措施。
我们先用iptables封死3306端口,先把压力降下来,然后tail -n 100 mysql.slow查看慢日志,找出那条耗时时间长的SQL,并通知开发。
#!/bin/bash #保证本机可以访问MySQL iptables -s localhost -A INPUT -p tcp --dport 3306 -j ACCEPT #保证监控机可以访问MySQL,以免造成HA切换。 iptables -s 监控机IP地址 -A INPUT -p tcp --dport 3306 -j ACCEPT #封杀应用连接数的所有IP地址 iptables -A INPUT -p tcp --dport 3306 -j DROP然后下一步,我们要修改参数限制数据库连接数的并发以及InnoDB并发处理请求。
set global max_connections = 210; set global max_user_connections = 200; set global innodb_thread_concurrency = 8;然后再iptables -F打开3306端口,观察数据库运行状态和CPU情况,如果压力仍然大,再适当的降低连接数,最终等待开发回滚代码,保证数据库不宕机。
本文出自 “贺春旸的技术专栏” 博客,请务必保留此出处

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Que dois-je faire si mon téléphone Black Shark ne peut pas être allumé ? Apprenez-vous à vous sauver !

Comment le langage Go implémente-t-il les opérations d'ajout, de suppression, de modification et de requête de la base de données ?

Tutoriel détaillé sur l'établissement d'une connexion à une base de données à l'aide de MySQLi en PHP

Comment Hibernate implémente-t-il le mappage polymorphe ?

iOS 18 ajoute une nouvelle fonction d'album 'Récupéré' pour récupérer les photos perdues ou endommagées

Une analyse approfondie de la façon dont HTML lit la base de données

Analyse des principes de base du système de gestion de base de données MySQL
