检测mysql长事务脚本 放crontab里

技术 · 2022-03-10

Last login: Thu Mar 10 07:41:34 2022 from 10.4.0.203
[root@wyvpdjmysql01 ~]# crontab -l

5 17 * sh /acdata/scripts/mysqldump.sh

30 4 * sh /acdata/scripts/mysqldump.sh
/1 * /acdata/dba_tools/shell/check_uncommit_trx.sh > /acdata/dba_tools/shell/check_uncommit_trx.log 2>&1
30 2 * sh /acdata/mysql/logs/sqllogsbak.sh
[root@wyvpdjmysql01 ~]# cd /acdata/dba_tools/
[root@wyvpdjmysql01 dba_tools]# ll
总用量 4
drwxr-xr-x. 3 root root 4096 3月 7 18:03 shell
[root@wyvpdjmysql01 dba_tools]# cd shell/
[root@wyvpdjmysql01 shell]# ll
总用量 12
-rw-r--r--. 1 root root 81 3月 10 09:02 check_uncommit_trx.log
-rwxr-xr-x. 1 root root 1848 3月 7 17:38 check_uncommit_trx.sh
drwxr-xr-x. 2 root root 4096 3月 10 09:00 uncommit_trx_data
[root@wyvpdjmysql01 shell]# less check_uncommit_trx.sh

mkdir -p $unco_trx_dir
fi

source /etc/profile
my_tool=$(which mysql)

cat ./.tt.log|while read line
do

  my_instance=$(echo "$line"|grep "8.53"|awk '{print $1}')
  my_user=$(echo "$line"|grep "8.53"|awk '{print $2}')
  my_passwd=$(echo "$line"|grep "8.53"|awk '{print $3}')
  my_host=$(echo "$line"|grep "8.53"|awk '{print $4}')
  my_port=$(echo "$line"|grep "8.53"|awk '{print $5}')
  
  if [ ! -z $my_user  ];then

    echo "#######Starting Check Uncommit TRX -- ${dm_time}#######" >>$unco_trx_dir/uncommit_trx_${dh_time}.log

    #$my_tool -h $my_host -u$my_user -p$my_passwd -P$my_port -e "select now();" >>$unco_trx_dir/uncommit_trx_${dh_time}.log 

    $my_tool -h $my_host -u$my_user -p$my_passwd -P$my_port -e "
    -- 查询未提交事务最后一条执行的SQL语句:\  
    select now();
    SELECT \
     t1.* \
    FROM  \
      performance_schema.events_statements_current t1 \
      INNER JOIN performance_schema.threads t2 \
      ON t1.THREAD_ID=t2.THREAD_ID \
      INNER JOIN information_schema.PROCESSLIST t3 \
      ON t2.PROCESSLIST_ID=t3.ID \
      INNER JOIN information_schema.INNODB_TRX t4 \
      ON t3.ID=t4.trx_mysql_thread_id;"                             >>$unco_trx_dir/uncommit_trx_${dh_time}.log

   echo "#######Finished Check Uncommit TRX -- ${dm_time}#######"  >>$unco_trx_dir/uncommit_trx_${dh_time}.log

  fi

done

crontab 如下配置
/1 * /acdata/dba_tools/shell/check_uncommit_trx.sh > /acdata/dba_tools/shell/check_uncommit_trx.log 2>&1

Theme Jasmine by Kent Liao