AWS RDS 排查數據庫問題
1.查看當前橫在執行的SQL
select id,user,time,left(info,100) from information_schema.processlist where time>0 and info is not null order by time desc ;
2.AWS RDS 查看性能詳情
查看 Top SQL,AAS最高的幾個sql,然后看這個顏色的柱子,綜合正在執行的SQL 最后初步得出具體什么原因導致的。
3.kill 會話
查看正在執行會話的用戶
SELECT id, USER, HOST, COMMAND, TIME, STATE,info, QUERY_ID FROM INFORMATION_SCHEMA.PROCESSLISTWHERE USER = '...' and id='...' and COMMAND <>'Sleep' \G;
kill 掉具體的用戶會話:
CALL mysql.rds_kill( id );
4. 終極手法
在復雜情況中,MySQL 并沒有非常實時的將耗時SQL凸顯出來,我們可以找一臺VPC內服務器,通過一個簡單的腳本將數據庫當前性能詳情寫入到一個文件里面,用來分析,查看數據庫正在干什么。
[root@ip-10-1-61-250 ~] # cat ./mysqltest.sh
#!/bin/bash
while :;
do
mysql -hjiangmysql.cpa1onesgnhw.rds.cn-north-1.amazonaws.com.cn -uroot -pXXXXX -e"select now();show full processlist;show status like 'Open_tables';show open tables;" >> /root/mysqldata.log;
sleep 5;
done