연구개발/MYSQL
monitoring script
HEAD1TON
2014. 9. 12. 10:33
728x90
반응형
monitoring script 짤 때 사용하면 될 듯.
env.ini 파일 내용
export MySQL_VER=5.6.12
export MySQL_BASE=/usr1/mysql
export MySQL_HOME=$MySQL_BASE/$MySQL_VER/bin
export MySQL_SID=vm21
export MySQL_PORT=10614
export MySQL_SOCKET=/tmp/mysql_sandbox10614.sock
export _DBDBA_UID=msandbox
export _DBDBA_PWD='msandbox'
export _DBBACKUP_UID=msandbox
export _DBBACKUP_PWD='msandbox'
export _DBMON_UID=msandbox
export _DBMON_PWD='msandbox'
mon_script.sh 파일 내용
#!/bin/bash
cd /usr1/mysql/dba/
. .env.ini
clear
echo "######################################"
echo "### Script List ###"
echo "######################################"
echo ""
echo " 1.Transaction"
echo " 2.Blocking trans"
echo " 11.Process (All)"
echo " 12.Process (Long Time : 5 sec)"
echo ""
while :
do
echo ""
echo "Select > "
read ScriptNo
case $ScriptNo in
1)
SQLSTR=" select trx_id, trx_state, trx_started, trx_requested_lock_id, trx_mysql_thread_id"
SQLSTR+=" , substr(trx_query,1, 50) as tsql, trx_operation_state, trx_tables_locked "
SQLSTR+=" from information_schema.innodb_trx;"
break ;;
2)
SQLSTR=" select il.*"
SQLSTR+=" from information_schema.innodb_locks il"
SQLSTR+=" join information_schema.innodb_lock_waits ilw"
SQLSTR+=" on (il.lock_trx_id = ilw.blocking_trx_id);"
break ;;
11)
SQLSTR=" select *"
SQLSTR+=" from information_schema.processlist"
SQLSTR+=" order by time desc limit 50;"
break ;;
12)
SQLSTR=" select *"
SQLSTR+=" from information_schema.processlist"
SQLSTR+=" where time > 5 order by time desc limit 50;"
break ;;
*) ;;
esac
done
while (true)
do
clear
echo "##################################"
date "+%Y/%m/%d %H:%m:%S"
echo "##################################"
mysql -u ${_DBMON_UID} --password=$_DBMON_PWD --port=${MySQL_PORT} --socket=${MySQL_SOCKET} -t -e "$SQLSTR"
sleep 1
done
728x90
반응형