Saturday, 5 March 2016

MySQL Process Kill Script


[root@server]# cat /home/sysuser/kill_process/kill_process_script.sh
# script to kill long running queries written  on 11 May 2015
# */1 * * * * /bin/sh /home/sysuser/kill_process/kill_process_script.sh

user=root
password='mypassword'
today=$(date -d '1 day ago' +'%Y%m%d');
base_dir=/home/sysuser/kill_process
database=dbname

echo $'\n'
echo $'\n'
echo "Process Started at : " `date`

# echo $'\n' >> /home/sysuser/sync_repl/repl_log
# echo $'\n' >> /home/sysuser/sync_repl/repl_log

mysql -u $user -p$password -v -v -v $database -e "CALL Kill_Long_Queries();" ;

# mysql -u $user -p$password -v -v -v $database -e "SELECT kill_query INTO OUTFILE '$base_dir/initial_kill_them.sql' FROM long_queries;" ;
# mysql -u $user -p$password -v -v -v $database -e "SELECT kill_query INTO DUMPFILE '$base_dir/initial_kill_them.sql' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' FROM long_queries;" ;

mysql -u $user -p$password -v -v -v $database -e "SELECT kill_query  FROM long_queries;" | grep "KILL "  > $base_dir/initial_kill_them.sql;

cat $base_dir/initial_kill_them.sql | awk '{print $2, $3}' > $base_dir/final_kill_them.sql


mysql -u $user -p$password $database < $base_dir/final_kill_them.sql;
echo "Process Ended at : " `date`


Setup Cron:

*/1 * * * * /bin/sh /home/sysuser/kill_process/kill_process_script.sh >> /home/sysuser/kill_process/process.log


No comments: