MySQL - Monitor & kill sleep processes
1. Monitor:
mysql -uroot -ppassword databaseName -e "show full processlist" | grep -v Sleep
mysql -uroot -ppassword databaseName -e "show full processlist" | grep -v Sleep | sort -k6rn >sort.tmp //sort the SQL queries
mysql -uroot -ppassword databaseName -e "show global status like '%tmp%'" //IOWait is high, check the disk tmp table tmp, Sending Data、statistics will be the points to check out
2. Kill mysql:
ps -ef|grep mysql
-----------------------------------------------
root 3649 1 0 17:44 pts/1 00:00:00 /bin/sh ./bin/mysqld_safe --no-defaults
root 3663 3649 0 17:44 pts/1 00:00:06
/usr/local/mysql/bin/mysqld --no-defaults --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data --user=mysql
--pid-file=/usr/local/mysql/data/localhost.localdomain.pid
--skip-locking
root 3664 3663 0 17:44 pts/1 00:00:00
/usr/local/mysql/bin/mysqld --no-defaults --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data --user=mysql
--pid-file=/usr/local/mysql/data/localhost.localdomain.pid
--skip-locking
root 3665 3664 0 17:44 pts/1 00:00:00
/usr/local/mysql/bin/mysqld --no-defaults --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data --user=mysql
--pid-file=/usr/local/mysql/data/localhost.localdomain.pid
--skip-locking
root 3666 3664 0 17:44 pts/1 00:00:00
/usr/local/mysql/bin/mysqld --no-defaults --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data --user=mysql
--pid-file=/usr/local/mysql/data/localhost.localdomain.pid
--skip-locking
root 3667 3664 0 17:44 pts/1 00:00:00
/usr/local/mysql/bin/mysqld --no-defaults --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data --user=mysql
--pid-file=/usr/local/mysql/data/localhost.localdomain.pid
--skip-locking
root 3668 3664 0 17:44 pts/1 00:00:00
/usr/local/mysql/bin/mysqld --no-defaults --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data --user=mysql
--pid-file=/usr/local/mysql/data/localhost.localdomain.pid
--skip-locking
root 3669 3664 0 17:45 pts/1 00:00:02
/usr/local/mysql/bin/mysqld --no-defaults --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data --user=mysql
--pid-file=/usr/local/mysql/data/localhost.localdomain.pid
--skip-locking
root 3670 3664 0 17:45 pts/1 00:00:01
/usr/local/mysql/bin/mysqld --no-defaults --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data --user=mysql
--pid-file=/usr/local/mysql/data/localhost.localdomain.pid
--skip-locking
root 3673 3664 0 17:45 pts/1 00:00:00
/usr/local/mysql/bin/mysqld --no-defaults --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data --user=mysql
--pid-file=/usr/local/mysql/data/localhost.localdomain.pid
--skip-locking
root 3674 3664 0 17:45 pts/1 00:00:00
/usr/local/mysql/bin/mysqld --no-defaults --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data --user=mysql
--pid-file=/usr/local/mysql/data/localhost.localdomain.pid
--skip-locking
killall -9 mysql
ps -ef | grep mysql | kill -9 $2
ps -ef | grep mysql | killall -9 $2
killall mysqld
3. kill sleep
#!/bin/sh
while :
do
n=`/usr/bin/mysqladmin processlist -uroot -ppasswprd | grep -i sleep | wc -l`
date=`date +%Y%m%d\[%H:%M:%S]`
echo $n
if [ "$n" -gt 10 ]
then
for i in `/usr/bin/mysqladmin processlist -uroot -ppasswprd | grep -i sleep | awk '{print $2}'`
do
/usr/bin/mysqladmin kill $i
done
echo "sleep is too many i killed it" >> /tmp/sleep.log
echo "$date : $n" >> /tmp/sleep.log
fi
sleep 5
done
4. MySQL Replication:
4.1 Check Master-Slave:
mysql> Show slave status \G;
mysql> Show master status;
mysql> reset slave;
mysql> set global sql_slave_skip_counter=1;
//remember to Slave first:mysql> stop slave; then restart Slave:mysql> start slave;)
mysql>change master to master_host=IP,
master_user='replication userName',
master_password='replication Passwrod',
master_log_file='log-bin.000001',
master_log_pos=0;
//-F will refresh Master Log, it usually work with Change Master, but this command will lock your table
mysqldump --database DATABASEName -uUserName -pPassWord --lock-all-tables -F >DATAyyyymmdd.sql
mysqldump -d DATABASEName -uUserName -pPassWord > DATAyyyymmdd.structure
// structure only without data
mysqldump -t DATABASEName -uUserName -pPassWord > DATAyyyymmdd.data
// data only without table structure queries
mysqlbinlog binlogFileName --start-position=
mysql> grant replication slave on *.* to username@IP identified by ' passwd';
$ tcpdump -A "dst port 3306" //check port 3306
作者:Buro#79xxd
出处:http://www.cnblogs.com/buro79xxd/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
标签:
Sleeping
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架