mysql常规巡检

目录

  • 一、巡检脚本
  • 二、下载巡检脚本
  • 三、脚本执行说明
    • 1、inspection.conf 使用说明
    • 2、inspection_mysql.sh 使用说明
    • 3、mysqltuner.pl 使用说明
  • 四、执行结果

MySQL常规巡检

一、巡检脚本

巡检脚本包括三个文件inspection.conf、inspection_mysql.sh、mysqltuner.pl

bash>ll
-rw-r--r-- 1 root root    994 Nov  1 16:33 inspection.conf
-rwxr-xr-x 1 root root  39221 Nov  1 15:26 inspection_mysql_v4.sh
-rwxr-xr-x 1 root root 219803 Nov  1 11:32 mysqltuner.pl

二、下载巡检脚本

  • 下载地址:

Github:mysql_inspection.zip

三、脚本执行说明

1、inspection.conf 使用说明

使用说明:配置mysql登录账号信息以及mysql的标准配置

#============================================================================================================
#MySQL巡检配置
#============================================================================================================

#mysql用户名
MYSQL_USER=root

#mysql用户密码
MYSQL_PASS='xxxxxxx'

#mysql客户端
MYSQL_COMM=mysql

#备份路径
BAK_PATH=/r2/bak_sql

#mysql全局日志
GLOBAL_LOG=`hostname`_global_`date +%Y%m%d`.txt

#mycnf内容输出
MYCNF=`hostname`_mycnf_`date +%Y%m%d`.txt

#mysqltuner输出日志
MYSQLTUNER_LOG=`hostname`_mysqltuner_`date +%Y%m%d`.txt

#检查mysql标准配置日志
#TANDARD_MYSQL_CONF=`hostname`_standard_`date +%Y%m%d`.txt

#检查mysql标准配置
standard_basedir=/usr/
standard_datadir=/r2/mysqldata/
standard_plugin=/usr/lib64/mysql/plugin/
standard_osmysqluser=mysql
standard_log_error=/r2/mysqldata/error.log
standard_pid=/r2/mysqldata/`hostname`.pid
standard_socket=/r2/mysqldata/mysql.sock

2、inspection_mysql.sh 使用说明

inspection_mysql.sh

脚本简述 :主脚本通过读取inspection.conf 配置文件来执行,调用perl来执行 mysqltuner.pl来提供优化建议

#!/bin/bash
# line:         V1.4
# mail:         [email protected]
# data:         2018-11-01
# script_name:  inspection_mysql.sh
# Function:     MySQL巡检包含(mysqltuner.pl、inspection.conf)与inspection_mysql.sh放在同一目录下

#============================================================================================================
#定义颜色的变量
#============================================================================================================

. ./inspection.conf

echo_color(){
    color=${1} && shift
    case ${color} in
        black)
            echo -e "\e[0;30m${@}\e[0m"
            ;;
        red)
            echo -e "\e[0;31m${@}\e[0m"
            ;;
        green)
            echo -e "\e[0;32m${@}\e[0m"
            ;;
        yellow)
            echo -e "\e[0;33m${@}\e[0m"
            ;;
        blue)
            echo -e "\e[0;34m${@}\e[0m"
            ;;
        purple)
            echo -e "\e[0;35m${@}\e[0m"
            ;;
        cyan)
            echo -e "\e[0;36m${@}\e[0m"
            ;;
        *)
            echo -e "\e[0;37m${@}\e[0m"
            ;;
    esac    # --- end of case ---
}

#============================================================================================================
#设置MySQL配置信息
#============================================================================================================
#MYSQL_USER=root             #mysql的用户名
#MYSQL_PASS=iforgot          #mysql的登录用户密码
MYSQL_HOST="localhost"       #mysql的主机IP
#MYSQL_COMM=mysql
DATE=`date -d today +"%Y-%m-%d %T"`
#BAK_PATH=/r2/bak_sql
TIME_INTERVAL=3 #等待时间
#GLOBAL_LOG=`hostname`_global_`date +%Y%m%d`.txt
#MYCNF=`hostname`_mycnf_`date +%Y%m%d`.txt
#MYSQLTUNER_LOG=`hostname`_mysqltuner_`date +%Y%m%d`.txt
#STANDARD_MYSQL_CONF=`hostname`_standard_`date +%Y%m%d`.txt
HOSTNAME=`hostname`  #主机名


#============================================================================================================
# 判断mysql账号密码是否存在,不存在请输入密码
#============================================================================================================
echo_color green "#>>>>>>>>>>>>>>>>>>>>>>>>> ${HOSTNAME} ------ ${DATE} <<<<<<<<<<<<<<<<<<<<<<<#"

if [[ ! -n ${MYSQL_USER} && ! -n ${MYSQL_PASS} ]]; then
read  -s  -p "Enter your MySQL user:" MYSQL_USER
echo
echo_color green "User name is ${MYSQL_USER} "
echo
read  -s  -p "Enter your MySQL password:" MYSQL_PASS
echo
fi



${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e "select version();"
if [ $? -ne 0 ]
then
    echo_color red "mysql login failure, please check mysql process or the username and password match or mysql service no running!"  > ${GLOBAL_LOG}
    err_exit=`cat  ${GLOBAL_LOG}`
    echo_color red ${err_exit}
    exit 0
else
    echo_color green "MySQL is Running" > ${GLOBAL_LOG}
fi

#============================================================================================================
#设置主机配置信息
#============================================================================================================
hostname=`hostname`  #主机名
ipaddress=`ip route | awk '/src/ && !/docker/{for(i=1;i<=NF;++i)if($i == "src"){print $(i+1)}}' ` #IP地址
cpuinfo=`cat /proc/cpuinfo|grep "name"|cut -d: -f2 |awk '{print "*"$1,$2,$3,$4}'|uniq -c` #cpu
phmem=`dmidecode | grep -A 16 "Memory Device$" |grep Size:|grep -v "No Module Installed"|awk '{print "*" $2,$3}'|uniq -c` #物理内存数量
server_versions=`cat /etc/redhat-release `     #系统版本
kernel_versions=`uname -a  |awk '{print $3}'`  #内核版本
product_name=`dmidecode | grep  "Product Name" | awk 'NR==1'`
cpuload=`cat /proc/loadavg | awk '{print $1,$2,$3}'`
MYSQL_HOST="localhost"       #mysql的主机IP
#MYSQL_COMM=mysql
DATE=`date -d today +"%Y-%m-%d %T"`
#BAK_PATH=/r2/bak_sql
TIME_INTERVAL=3 #等待时间

#============================================================================================================
#内存情况
#============================================================================================================

mem_total=$(free -m |grep Mem|awk '{print $2}')
mem_used=$(free -m |grep Mem|awk '{print $3}')
mem_rate=`expr $mem_used/$mem_total*100|bc -l`

#============================================================================================================
#内存使用量
#============================================================================================================

mem_sum=`free -m | xargs | awk '{print "Free/total memory: " $17 " / " $8 " MB"}' \
| awk -F":" 'BEGIN{print " FREE / TOTAL " }  {print $2 }'`

#============================================================================================================
#硬盘容量
#============================================================================================================

dk_usage=`df -H |awk -F '\t' '{ print $1,$2,$3,$4,$5,$6}'`

#============================================================================================================
# MySQL original state
#============================================================================================================

# cat >> $STANDARD_MYSQL_CONF <${vs_file}
echo_color cyan "Import variables "

gs_file="global_status_`date +%Y%m%d%H%M%S`.txt"
${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e "show global status" 1>${gs_file}

echo_color cyan "Import global status "
echo

#============================================================================================================
#MySQL版本和端口
#============================================================================================================
mysql_version=`grep -w "version" $vs_file |awk '{print $2}';`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.1 mysql runing version is: ${mysql_version} "
echo
mysql_port=`grep -w "port" $vs_file |awk '{print $2}'; `
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.2 mysql port is: ${mysql_port} "
echo
#============================================================================================================
#客户端连接的MySQL进程连接数
#============================================================================================================
client_conn_num=`${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e'show full processlist' |grep -v Id |wc -l`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.3 mysql client connect number is: ${client_conn_num} "
echo

#============================================================================================================
#QPS(每秒事务量)
#============================================================================================================
qps_sql="show global status like 'Questions';"
qps1=`${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e "${qps_sql}" |grep -v Variable_name |cut -f 2 `
sleep "${TIME_INTERVAL}"
qps2=`${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e "${qps_sql}" |grep -v Variable_name |cut -f 2`
qps=`awk 'BEGIN{print ('${qps2}'-'${qps1}') / '${TIME_INTERVAL}'}'` #shell默认不支持浮点运算
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.4 current mysql server QPS is: ${qps} "
echo
rm -rf ${qps_re}
#============================================================================================================
#TPS(每秒事务量)
#============================================================================================================
tps_commit_sql="show  status where Variable_name in('Com_commit'); "
tps_rollback_sql="show  status where Variable_name in('Com_rollback'); "

tps1_commit=`${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e"${tps_commit_sql}" |grep -v Variable_name |cut -f 2`
tps1_rollback=`${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e"${tps_rollback_sql}" |grep -v Variable_name |cut -f 2 `
tps1=`awk 'BEGIN{print '${tps1_commit}' + '${tps1_rollback}'}'`
sleep "${TIME_INTERVAL}"
tps2_commit=`${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e"${tps_commit_sql}" |grep -v Variable_name |cut -f 2`
tps2_rollback=`${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e"${tps_rollback_sql}" |grep -v Variable_name |cut -f 2 `
tps2=`awk 'BEGIN{print '${tps2_commit}' + '${tps2_rollback}'}'` #shell默认不支持浮点运算
tps_nums=`awk 'BEGIN{print '${tps2}' - '${tps1}'}'`
tps_avg=`awk 'BEGIN{print '${tps_nums}' / '${TIME_INTERVAL}'}'` #shell默认不支持浮点运算
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.5 current mysql server TPS is: ${tps_avg} "
echo

#============================================================================================================
#key_buffer_write_hits = (1-key_writes / key_write_requests) * 100%
#============================================================================================================
kbwd_01="show  status like 'Key_writes'; "
kbwd_02="show  status like 'Key_write_requests'; "
kbwd_re01="kbwd01_`date +%Y%m%d%H%M%S`.txt"
kbwd_re02="kbwd02_`date +%Y%m%d%H%M%S`.txt"
${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e"${kbwd_01}" |grep -v Variable_name \
|cut -f 2 >${kbwd_re01}
${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e"${kbwd_02}" |grep -v Variable_name \
|cut -f 2 >${kbwd_re02}
kbwd_03=`cat ${kbwd_re01}`
kbwd_04=`cat ${kbwd_re02}`
if [ "${kbwd_03}" -eq 0  ] ;then
 echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
 echo -e "2.6 there is no any value!"
 echo
else
 kbwd_05=`awk 'BEGIN{print '${kbwd_03}' / '${kbwd_04}'}'` #shell默认不支持浮点运算
 kbwd_06=`awk 'BEGIN{print '1-${kbwd_05}'}'` #shell默认不支持浮点运算
 key_buffer_write_hits=`awk 'BEGIN{print '${kbwd_06}' * 100}'`
 echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
 echo -e "2.6 current mysql key_buffer_write_hits is: ${key_buffer_write_hits:0:5}% "
 echo
fi
rm -rf  ${kbwd_re01}
rm -rf  ${kbwd_re02}

#============================================================================================================
#InnoDB Buffer命中率
#Innodb_buffer_read_hits = (1 - innodb_buffer_pool_reads / innodb_buffer_pool_read_requests) * 100%
#============================================================================================================
innob_01="show  status like 'Innodb_buffer_pool_reads'; "
innob_02="show  status like 'Innodb_buffer_pool_read_requests'; "
innob_re01="innob_re01_`date +%Y%m%d%H%M%S`.txt"
innob_re02="innob_re02_`date +%Y%m%d%H%M%S`.txt"
${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e"${innob_01}" |grep -v Variable_name \
|cut -f 2 >${innob_re01}
${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e"${innob_02}" |grep -v Variable_name \
|cut -f 2 >${innob_re02}
innob_03=`cat ${innob_re01}`
innob_04=`cat ${innob_re02}`
if [ "${innob_03}" -eq 0  ] ;then
 echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
 echo -e "2.7 there is no any value!"
 echo
else
 innob_05=`awk 'BEGIN{print '${innob_03}' / '${innob_04}'}'` #shell默认不支持浮点运算
 innob_06=`awk 'BEGIN{print '1-${innob_05}'}'` #shell默认不支持浮点运算
 innodb_buffer_read_hits=`awk 'BEGIN{print '${innob_06}' * 100}'`
 echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
 echo -e "2.7 current mysql Innodb_buffer_read_hits is: ${innodb_buffer_read_hits:0:5}% "
 echo
fi
rm -rf ${innob_re01}
rm -rf ${innob_re02}

#============================================================================================================
#Query Cache命中率
#Query_cache_hits =((Qcache_hits/(Qcache_hits+Qcache_inserts+Qcache_not_cached))*100)
#============================================================================================================
qc_01="show  status like 'Qcache_hits'; "
qc_02="show  status like 'Qcache_inserts'; "
qc_03="show  status like 'Qcache_not_cached'; "
qc_re01="qc_re01_`date +%Y%m%d%H%M%S`.txt"
qc_re02="qc_re02_`date +%Y%m%d%H%M%S`.txt"
qc_re03="qc_re03_`date +%Y%m%d%H%M%S`.txt"
${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e"${qc_01}" |grep -v Variable_name \
|cut -f 2 >${qc_re01}
${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e"${qc_02}" |grep -v Variable_name \
|cut -f 2 >${qc_re02}
${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e"${qc_03}" |grep -v Variable_name \
|cut -f 2 >${qc_re03}

qc_04=`cat ${qc_re01}`
qc_05=`cat ${qc_re02}`
qc_06=`cat ${qc_re03}`
if [ "${qc_04}" -eq 0  ] ;then
 echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
 echo -e "2.8 there is no any value!"
 echo
else
 qc_07=`awk 'BEGIN{print '${qc_04}' + '${qc_05}' + '${qc_06}' }'`
 qc_08=`awk 'BEGIN{print  '${qc_04}'/'${qc_07}'}'`
 query_cache_hits=`awk 'BEGIN{print '${qc_08}' * 100}'`
 echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
 echo -e "2.8 current mysql query_cache_hits is: ${query_cache_hits:0:5}% "
 echo
fi
rm -rf ${qc_re01}
rm -rf ${qc_re02}
rm -rf ${qc_re03}

#============================================================================================================
#索引请求命中率
#key_cache_miss_rate = Key_reads / Key_read_requests * 100%   保持 key_cache_miss_rate < 0.1%
#============================================================================================================
Key_reads=`grep -w "Key_reads" $gs_file |awk '{print $2}'`
Key_read_requests=`grep -w "Key_read_requests" $gs_file  |awk '{print $2}' `

if [ "${Key_reads}" -eq 0  ] ;then
 echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
 echo -e "2.9 there is no any value!"
 echo
else
 kr_01=`awk 'BEGIN{print '${Key_reads}' / '${Key_read_requests}'}'` #shell默认不支持浮点运算
# kr_02=`awk 'BEGIN{print '1-${kr_01}'}'` #shell默认不支持浮点运算
 key_cache_miss_rate=`awk 'BEGIN{print '${kr_01}' * 100}'`
 echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
 echo -e "2.9 current mysql key_cache_miss_rate is: ${key_cache_miss_rate:0:5}% "
 echo
fi

#============================================================================================================
#binlog日志保留天数
#============================================================================================================
expire_logs_days=`grep "expire_logs_days" $vs_file`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.10 mysql expire_logs_days is: "
echo
echo ${expire_logs_days}
echo

#============================================================================================================
# mysql 3306端口响应时间(毫秒)
#============================================================================================================
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.11 mysql 3306 statistical response time(tcprstat)"
echo
tcprstat -p 3306 -t 1 -n 10
echo


#============================================================================================================
#MySQL 只读状态
#============================================================================================================
read_only_status=`grep "read_only" $vs_file`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.12 mysql read_only status is: "
echo
echo "${read_only_status} "
echo

#============================================================================================================
#MySQL redo log刷新策略
#============================================================================================================
innodb_flush_log_at_trx_commit=`grep "innodb_flush_log_at_trx_commit" $vs_file`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.13 mysql innodb_flush_log_at_trx_commit conf is: "
echo
echo "${innodb_flush_log_at_trx_commit}"
echo

#============================================================================================================
#MySQL binlog刷新策略
#============================================================================================================
sync_binlog=`grep "sync_binlog" $vs_file`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.14 mysql sync_binlog conf is: "
echo
echo "${sync_binlog}"
echo

#============================================================================================================
#MySQL 慢查询配置信息
#============================================================================================================
slow_conf=`grep "slow" $vs_file`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.15 mysql slow conf is: "
echo
echo "${slow_conf}"
echo

#============================================================================================================
#MySQL 慢查询时间
#============================================================================================================

long_query_time=`grep "long_query_time" $vs_file`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.16 mysql long_query_time conf is: "
echo
echo "${long_query_time}"
echo
#============================================================================================================
#MySQL 慢查询状态
#============================================================================================================

Slows=`grep "Slow" $gs_file`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.17 mysql slow status is: "
echo
echo "${Slows}"
echo

#============================================================================================================
#MySQL 最大连接数
#============================================================================================================
max_connections=`grep "max_connections" $vs_file`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.18 mysql max_connections is: "
echo
echo ${max_connections}
echo


#============================================================================================================
#MySQL 最大用户连接数
#============================================================================================================
Max_used_connections=`grep "Max_used_connections" $gs_file`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.19 mysql Max_used_connections is: "
echo
echo ${Max_used_connections}
echo

#============================================================================================================
#MySQL 线程创建情况
#============================================================================================================
Thread=`grep "Thread" ${gs_file}`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.20 mysql thread status is: "
echo
echo "${Thread}"
echo

#============================================================================================================
#MySQL Innodb刷新磁盘方式
#============================================================================================================
innodb_flush_method=`grep "innodb_flush_method" $vs_file`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.21 mysql innodb_flush_method is: "
echo
echo ${innodb_flush_method}
echo

#============================================================================================================
#MySQL Abort 连接情况
#============================================================================================================
abort=`grep "Aborted" $gs_file`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.22 mysql abort status is: "
echo
echo "${abort}"
echo

#============================================================================================================
#MySQL 日志报警级别
#============================================================================================================
log_warnings=`grep -w "log_warnings" $vs_file`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.23 mysql log_warnings status is: "
echo
echo  ${log_warnings}
echo

#============================================================================================================
#MySQL binlog 状态
#============================================================================================================
log_bin=`grep -w "log_bin" $vs_file`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.24 mysql log_bin status is: "
echo
echo  ${log_bin}
echo

#============================================================================================================
#MySQL binlog_format 日志格式
#============================================================================================================
binlog_format=`grep "binlog_format" $vs_file`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.25 mysql binlog_format is: "
echo
echo  ${binlog_format}
echo

echo_color yellow "#===========================================================================================================#"
echo_color yellow "# 2.2 MySQL static parameter                                                                                #"
echo_color yellow "#===========================================================================================================#"
echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.3.1 mysql basedir is: "
echo
grep -w "basedir" $vs_file |cut -f 2
echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.3.2 mysql datadir is: "
echo
grep -w "datadir" $vs_file |cut -f 2
echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.3.3 mysql plugindir is: "
echo
grep -w "plugin" $vs_file  |cut -f 2
echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.3.4 mysql error log is: "
echo
grep -w "log_error" $vs_file  |cut -f 2
echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.3.5 mysql pid-file is: "
echo
grep -w "pid" $vs_file  |cut -f 2
echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.3.6 mysql socket is: "
echo
grep -w "socket" $vs_file |cut -f 2
echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.3.7 mysql port log is: "
echo
grep -w "port" $vs_file |cut -f 2
echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "2.3.8 mysql static parameter check : "
echo
chk_parameter="basedir datadir plugin log_error pid socket "
if [ -s $vs_file ];then
    for parameter in $chk_parameter
    do
        S1=`grep -w "${parameter}"  $vs_file |cut -f 2`
        S2=standard_${parameter}
        eval S3=$(echo \$$S2)
        #S3=`echo ${S2}`
        #S3=`grep -w ${S2} $STANDARD_MYSQL_CONF |cut -d "=" -f 2`
        #S3=`grep -w ${S2} $STANDARD_MYSQL_CONF |cut -d "=" -f 2`
    if [ "${S1}" == "${S3}" ];then
        echo_color green "mysql $parameter is OK!"
    else
        echo_color red  "WARNING:The $parameter configure is error,Please check "  |tee -a ${GLOBAL_LOG}
            continue
    fi
    done
fi
echo

echo_color yellow "#===========================================================================================================#"
echo_color yellow "# 4 MySQL Replication and Statistics                                                                        #"
echo_color yellow "#===========================================================================================================#"

#============================================================================================================
#MySQL 主从状态
#============================================================================================================
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "3.1 mysql slave_status is: "
echo

slave_hosts=`${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS}  -BN -e "show slave hosts"  |wc -l`

if [ ${slave_hosts} == '0' ]
then

    slave_status=`${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e "show slave status\G;" | grep -i "Running" `
    master_host=`${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e "show slave status\G;" | grep -i "Master_Host"|cut -f 2 -d ":" |sed 's/^[ \t]*//g'`
    IO_env=`echo ${slave_status} | grep IO | awk  ' {print $2}'`
    SQL_env=`echo ${slave_status} | grep SQL | awk  ' {print $2}'`

    if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ]
    then
        echo_color green "MySQL Slave is running!"
    else
        echo_color red "WARNING:The mysql master-slave is failure or not configure,Please check" |tee -a ${GLOBAL_LOG}
    fi

else
     echo_color green "This host is master!"
fi
echo

#============================================================================================================
#MySQL Master_Host
#============================================================================================================
#master_host=`${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e "show slave status\G;" | grep -i "Master_Host"|cut -f 2 -d ":" |sed 's/^[ \t]*//g'`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "3.2 mysql master_host is:"
echo
if [ ${slave_hosts} == 0 ];then
    echo "${master_host}"
fi
echo

echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "3.3 MySQL master 信息"

${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e "show master status \G "
echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "3.4 MySQL slave 信息"

if [ ${slave_hosts} == 0 ];then
${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e "show slave status \G"
fi
echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "3.5 MySQL slave user信息"

if [ ${slave_hosts} == 0 ];then
    ${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e "show full processlist \G"  |grep Binlog
fi
echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "3.6 MySQL 账号信息"
VERSTON=`${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS}  -Bse "select @@version" |cut -b 1-3`
if [ $VERSTON = "5.5" ];then
    ${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e "SELECT user,host,password FROM mysql.user;"
else
    ${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e "SELECT user,host,authentication_string  FROM mysql.user;"
fi
echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "3.7 MySQL 数据量信息"
${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e "SELECT ENGINE AS 引擎类型,count(ENGINE) AS 表的数量,concat(round(sum((data_length+index_length)/1024/1024),2),'MB') AS 总数据量大小,concat(round(sum(data_length)/1024/1024,2),'MB') AS 数据的总大小,concat(round(sum(index_length)/1024/1024,2),'MB') AS 索引的总大小 FROM information_schema.TABLES WHERE table_schema NOT IN ('information_schema','performance_schema','mysql','sys') AND ENGINE IS NOT NULL GROUP BY ENGINE ORDER BY ENGINE ASC"
echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "3.8 MySQL 各个库数据库量"
echo
${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e "SELECT ENGINE AS 引擎类型,table_schema AS 库名,count(ENGINE) AS 表的数量,concat(round(sum((data_length+index_length)/1024/1024),2),'MB') AS 总数据量大小,concat(round(sum(data_length)/1024/1024,2),'MB') AS 数据的总大小,concat(round(sum(index_length)/1024/1024,2),'MB') AS 索引的总大小,concat( round( sum( data_free) / 1024 / 1024 , 2 ), 'MB' ) AS 碎片空间 FROM information_schema.TABLES WHERE table_schema NOT IN ('information_schema','performance_schema','mysql','sys') AND ENGINE IS NOT NULL GROUP BY table_schema ORDER BY table_schema ASC;"

echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "3.9 执行mysqltuner.pl 脚本"
echo
/usr/bin/perl mysqltuner.pl  --user ${MYSQL_USER} --pass ${MYSQL_PASS} > ${MYSQLTUNER_LOG}
echo_color cyan "execute mysqltuner "
echo

echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "3.10 MySQL 显示my.cnf 信息"
echo
egrep  -v "^$|^#" /etc/my.cnf  >${MYCNF}
echo_color cyan "Import my.cnf "
echo

echo_color yellow "#===========================================================================================================#"
echo_color yellow "# 4 MySQL backup and error.log                                                                              #"
echo_color yellow "#===========================================================================================================#"
echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "4.1 mysql bakcup list: "
echo
bkinfo_01="bakinfo_`date +%Y%m%d%H%M%S`.txt"
if [ ! -d $BAK_PATH ]; then
    echo "WARNING:The mysql bakup directory ${BAK_PATH} is not existed,Please check." > ${bkinfo_01} |tee -a  ${GLOBAL_LOG}
    else
    ls -l $BAK_PATH > ${bkinfo_01}
fi
bkinfo_02=`cat ${bkinfo_01}`
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "mysql backup_status is: "
echo
echo -e "${bkinfo_02}"
echo
rm -rf ${bkinfo_01}
echo
echo_color blue "#-----------------------------------------------------------------------------------------------------------#"
echo -e "4.2 mysql error log : "
mysql_error_log=`${MYSQL_COMM} -h${MYSQL_HOST} -u${MYSQL_USER}  -p${MYSQL_PASS} -e "show variables" | grep -w "log_error" |cut -f 2`
grep -I err $mysql_error_log | tail -n 10
echo

echo
echo_color yellow "#===========================================================================================================#"
echo_color yellow "# 5 WARNING......                                                                                           #"
echo_color yellow "#===========================================================================================================#"

echo
cat ${GLOBAL_LOG}
echo
rm -rf ${STANDARD_MYSQL_CONF}
rm -rf ${GLOBAL_LOG}
rm -rf ${vs_file}
rm -rf ${gs_file}
echo
echo_color yellow "#------------------------------------------------Done-------------------------------------------------------#"

3、mysqltuner.pl 使用说明

脚本简述:这是mysql调优工具,给出一些基本的建议

  • 单独运行

./mysqltuner.pl --user=xxxxxx --pass='xxxxxx'

或者

./mysqltuner.pl 按照提示输入账号秘密

[root@node05 inspection]# ./mysqltuner.pl
 >>  MySQLTuner 1.7.13 - Major Hayden 
 >>  Bug reports, feature requests, and downloads at http://mysqltuner.com/
 >>  Run with '--help' for additional options and output filtering

[--] Skipped version check for MySQLTuner script
Please enter your MySQL administrative login: root
Please enter your MySQL administrative password: [OK] Currently running supported MySQL version 5.7.18-log
[OK] Operating on 64-bit architecture

-------- Log file Recommendations ------------------------------------------------------------------
[--] Log file: /r2/mysqldata/error.log(15M)
[OK] Log file /r2/mysqldata/error.log exists
[OK] Log file /r2/mysqldata/error.log is readable.
[OK] Log file /r2/mysqldata/error.log is not empty
[OK] Log file /r2/mysqldata/error.log is smaller than 32 Mb
[!!] /r2/mysqldata/error.log contains 199 warning(s).
[!!] /r2/mysqldata/error.log contains 48 error(s).
[--] 13 start(s) detected in /r2/mysqldata/error.log
[--] 1) 2018-09-23T11:30:44.421380+08:00 0 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
[--] 2) 2018-09-08T14:02:24.419793+08:00 0 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
[--] 3) 2018-08-28T14:22:13.766952+08:00 0 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
[--] 4) 2018-08-28T14:19:05.843599+08:00 0 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
[--] 5) 2018-08-28T13:36:32.106335+08:00 0 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
[--] 6) 2018-08-28T12:09:18.446973+08:00 0 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
[--] 7) 2018-08-28T11:51:36.883974+08:00 0 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
[--] 8) 2018-08-06T17:45:10.958564+08:00 0 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
[--] 9) 2018-04-14T12:31:03.915754+08:00 0 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
[--] 10) 2018-04-03T09:28:06.695373+08:00 0 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
[--] 11 shutdown(s) detected in /r2/mysqldata/error.log
[--] 1) 2018-08-28T14:21:14.925010+08:00 0 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
[--] 2) 2018-08-28T13:39:34.139421+08:00 0 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
[--] 3) 2018-08-28T12:13:11.415338+08:00 0 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
[--] 4) 2018-08-28T12:05:50.779021+08:00 0 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
[--] 5) 2018-08-06T17:45:39.133446+08:00 0 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
[--] 6) 2018-04-14T12:45:53.671195+08:00 0 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
[--] 7) 2018-04-03T10:00:19.702983+08:00 0 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
[--] 8) 2018-04-03T09:24:02.192051+08:00 0 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
[--] 9) 2018-03-30T15:31:22.754077+08:00 0 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
[--] 10) 2018-03-30T15:26:57.967712+08:00 0 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

-------- Storage Engine Statistics -----------------------------------------------------------------
[--] Status: +ARCHIVE +BLACKHOLE +CSV -FEDERATED +InnoDB +MEMORY +MRG_MYISAM +MyISAM +PERFORMANCE_SCHEMA
[--] Data in InnoDB tables: 1.7G (Tables: 14)
[OK] Total fragmented tables: 0

-------- Analysis Performance Metrics --------------------------------------------------------------
[--] innodb_stats_on_metadata: OFF
[OK] No stat updates during querying INFORMATION_SCHEMA.

-------- Security Recommendations ------------------------------------------------------------------
[OK] There are no anonymous accounts for any database users
[OK] All database users have passwords assigned
[!!] User 'dbbackup@localhost' has user name as password.
[!!] User 'monitor@%' has user name as password.
[!!] User 'repl@%' has user name as password.
[!!] User 'gcdb@%' does not specify hostname restrictions.
[!!] User 'monitor@%' does not specify hostname restrictions.
[!!] User 'repl@%' does not specify hostname restrictions.
[!!] There is no basic password file list!

-------- CVE Security Recommendations --------------------------------------------------------------
[--] Skipped due to --cvefile option undefined

-------- Performance Metrics -----------------------------------------------------------------------
[--] Up for: 39d 5h 25m 12s (6M q [2.059 qps], 309K conn, TX: 2G, RX: 553M)
[--] Reads / Writes: 21% / 79%
[--] Binary logging is enabled (GTID MODE: ON)
[--] Physical Memory     : 3.7G
[--] Max MySQL memory    : 280.9G
[--] Other process memory: 39.2M
[--] Total buffers: 5.0G global + 28.2M per thread (10000 max threads)
[--] P_S Max memory usage: 72B
[--] Galera GCache Max memory usage: 0B
[!!] Maximum reached memory usage: 5.3G (143.80% of installed RAM)
[!!] Maximum possible memory usage: 280.9G (7589.63% of installed RAM)
[!!] Overall possible memory usage with other process exceeded memory
[OK] Slow queries: 0% (31/6M)
[OK] Highest usage of available connections: 0% (10/10000)
[!!] Aborted connections: 49.33%  (152905/309937)
[OK] Query cache is disabled by default due to mutex contention on multiprocessor machines.
[OK] Sorts requiring temporary tables: 0% (1 temp sorts / 216 sorts)
[OK] No joins without indexes
[!!] Temporary tables created on disk: 26% (140K on disk / 526K total)
[OK] Thread cache hit rate: 99% (10 created / 309K connections)
[!!] Table cache hit rate: 3% (1K open / 28K opened)
[OK] Open file limit used: 0% (70/50K)
[OK] Table locks acquired immediately: 100% (331K immediate / 331K locks)
[OK] Binlog cache memory access: 100.00% (2414856 Memory / 2414858 Total)

-------- Performance schema ------------------------------------------------------------------------
[--] Memory used by P_S: 72B
[--] Sys schema is installed.

-------- ThreadPool Metrics ------------------------------------------------------------------------
[--] ThreadPool stat is disabled.

-------- MyISAM Metrics ----------------------------------------------------------------------------
[!!] Key buffer used: 18.2% (195M used / 1B cache)
[OK] Key buffer size / total MyISAM indexes: 1.0G/43.0K
[OK] Read Key buffer hit rate: 99.9% (5K cached / 7 reads)

-------- InnoDB Metrics ----------------------------------------------------------------------------
[--] InnoDB is enabled.
[--] InnoDB Thread Concurrency: 64
[OK] InnoDB File per table is activated
[OK] InnoDB buffer pool / data size: 4.0G/1.7G
[!!] Ratio InnoDB log file size / InnoDB Buffer pool size (100 %): 2.0G * 2/4.0G should be equal 25%
[!!] InnoDB buffer pool instances: 8
[--] Number of InnoDB Buffer Pool Chunk : 32 for 8 Buffer Pool Instance(s)
[OK] Innodb_buffer_pool_size aligned with Innodb_buffer_pool_chunk_size & Innodb_buffer_pool_instances
[OK] InnoDB Read buffer efficiency: 99.99% (545706828 hits/ 545736823 total)
[!!] InnoDB Write Log efficiency: 73.85% (6832250 hits/ 9251110 total)
[OK] InnoDB log waits: 0.00% (0 waits / 2418860 writes)

-------- AriaDB Metrics ----------------------------------------------------------------------------
[--] AriaDB is disabled.

-------- TokuDB Metrics ----------------------------------------------------------------------------
[--] TokuDB is disabled.

-------- XtraDB Metrics ----------------------------------------------------------------------------
[--] XtraDB is disabled.

-------- Galera Metrics ----------------------------------------------------------------------------
[--] Galera is disabled.

-------- Replication Metrics -----------------------------------------------------------------------
[--] Galera Synchronous replication: NO
[--] No replication slave(s) for this server.
[--] Binlog format: ROW
[--] XA support enabled: ON
[--] Semi synchronous replication Master: Not Activated
[--] Semi synchronous replication Slave: Not Activated
[--] This is a standalone server

-------- Recommendations ---------------------------------------------------------------------------
General recommendations:
    Control warning line(s) into /r2/mysqldata/error.log file
    Control error line(s) into /r2/mysqldata/error.log file
    Set up a Secure Password for user@host ( SET PASSWORD FOR 'user'@'SpecificDNSorIp' = PASSWORD('secure_password'); )
    Restrict Host for user@% to user@SpecificDNSorIp
    Reduce your overall MySQL memory footprint for system stability
    Dedicate this server to your database for highest performance.
    Reduce or eliminate unclosed connections and network issues
    When making adjustments, make tmp_table_size/max_heap_table_size equal
    Reduce your SELECT DISTINCT queries which have no LIMIT clause
    Increase table_open_cache gradually to avoid file descriptor limits
    Read this before increasing table_open_cache over 64: http://bit.ly/1mi7c4C
    Read this before increasing for MariaDB https://mariadb.com/kb/en/library/optimizing-table_open_cache/
    This is MyISAM only table_cache scalability problem, InnoDB not affected.
    See more details here: https://bugs.mysql.com/bug.php?id=49177
    This bug already fixed in MySQL 5.7.9 and newer MySQL versions.
    Beware that open_files_limit (50000) variable
    should be greater than table_open_cache (1024)
    Before changing innodb_log_file_size and/or innodb_log_files_in_group read this: http://bit.ly/2wgkDvS
Variables to adjust:
  *** MySQL's maximum memory usage is dangerously high ***
  *** Add RAM before increasing MySQL buffer variables ***
    tmp_table_size (> 32M)
    max_heap_table_size (> 32M)
    table_open_cache (> 1024)
    innodb_log_file_size should be (=512M) if possible, so InnoDB total log files size equals to 25% of buffer pool size.
    innodb_buffer_pool_instances(=4)

四、执行结果

inspection_mysql_v4.sh mysqltuner.pl 需要执行权限,mysql需要root权限

[root@slave1 inspection]# chmod -x inspection_mysql_v4.sh mysqltuner.pl
[root@slave1 inspection]# ./inspection_mysql_v4.sh 2>/dev/null
#>>>>>>>>>>>>>>>>>>>>>>>>> slave1 ------ 2018-11-01 16:35:58 <<<<<<<<<<<<<<<<<<<<<<<#
+------------+
| version()  |
+------------+
| 5.7.18-log |
+------------+

#===========================================================================================================#
# 1 The system basic infomation                                                                             #
#===========================================================================================================#

#-----------------------------------------------------------------------------------------------------------#
1.0 server product name is:

Product Name: PowerEdge R720xd

#-----------------------------------------------------------------------------------------------------------#
1.1 server cpuinfo is:

24 *Intel(R) Xeon(R) CPU E5-2620

#-----------------------------------------------------------------------------------------------------------#
1.2 server physical memory number is:

1 *16384 MB 2 *8192 MB 1 *16384 MB 2 *8192 MB

#-----------------------------------------------------------------------------------------------------------#
1.3 server hd disk info is:

文件系统                                                容量  已用  可用 已用% 挂载点
/dev/sda6                                                53G  8.6G   42G   18% /
devtmpfs                                                 34G     0   34G    0% /dev
tmpfs                                                    34G     0   34G    0% /dev/shm
tmpfs                                                    34G  2.7G   31G    8% /run
tmpfs                                                    34G     0   34G    0% /sys/fs/cgroup
/dev/sdg1                                               1.2T  310G  800G   28% /data5
/dev/sdc1                                               975G  370G  555G   41% /data1
/dev/sdd1                                               975G  317G  608G   35% /data2
/dev/sdb1                                               1.0T  726G  224G   77% /r2
/dev/sdh1                                               1.2T  311G  799G   28% /data6
/dev/sde1                                               975G  328G  598G   36% /data3
/dev/sdf1                                               975G  333G  593G   36% /data4
/dev/sdj1                                               1.2T  313G  797G   29% /data7
/dev/sdi1                                               1.2T  315G  796G   29% /data8
/dev/sda3                                               1.1G  106M  848M   12% /boot
/dev/sda5                                               205G  5.4G  189G    3% /usr/local


#-----------------------------------------------------------------------------------------------------------#
1.4 server hostname is:

slave1

#-----------------------------------------------------------------------------------------------------------#
1.5 server ipaddree is:

192.168.102.131


#-----------------------------------------------------------------------------------------------------------#
1.6 server version is:

CentOS Linux release 7.3.1611 (Core)

#-----------------------------------------------------------------------------------------------------------#
1.7 server system kernel version is:

3.10.0-514.el7.x86_64

#-----------------------------------------------------------------------------------------------------------#
1.8 server CPU load average is:

3.42 2.45 2.22

#-----------------------------------------------------------------------------------------------------------#
1.9 server memory Summary is:

FREE / TOTAL 32765 / 64217 MB

#-----------------------------------------------------------------------------------------------------------#
1.10 server top task status is:

Tasks: 367 total,   1 running, 364 sleeping,   0 stopped,   2 zombie

#-----------------------------------------------------------------------------------------------------------#
1.11 server top cpu status is:

%Cpu(s):  5.5 us,  2.6 sy,  0.0 ni, 91.7 id,  0.2 wa,  0.0 hi,  0.1 si,  0.0 st

#-----------------------------------------------------------------------------------------------------------#
1.12 server top mem status is:

KiB Mem : 65758324 total, 12051048 free, 47868896 used,  5838380 buff/cache
KiB Swap: 33553404 total, 33551392 free,     2012 used. 11977532 avail Mem

#-----------------------------------------------------------------------------------------------------------#
1.13 server top swap status is:

KiB Swap: 33553404 total, 33551392 free,     2012 used. 11966972 avail Mem

#-----------------------------------------------------------------------------------------------------------#
1.14  mysqld services active is:

mysql.service  loaded  active  running
pmm-mysql-metrics-42002.service  loaded  active  running
pmm-mysql-queries-0.service  loaded  active  running

#-----------------------------------------------------------------------------------------------------------#
1.15 mysqld number is:

1

#-----------------------------------------------------------------------------------------------------------#
1.16 server ESTABLISHED TCP connect number is:

ESTABLISHED 457
TIME_WAIT 942


#===========================================================================================================#
# 2.1 MySQL basic infomation                                                                                #
#===========================================================================================================#

Import variables
Import global status

#-----------------------------------------------------------------------------------------------------------#
2.1 mysql runing version is: 5.7.18-log

#-----------------------------------------------------------------------------------------------------------#
2.2 mysql port is: 3306

#-----------------------------------------------------------------------------------------------------------#
2.3 mysql client connect number is: 3

#-----------------------------------------------------------------------------------------------------------#
2.4 current mysql server QPS is: 23.3333

#-----------------------------------------------------------------------------------------------------------#
2.5 current mysql server TPS is: 0

#-----------------------------------------------------------------------------------------------------------#
2.6 current mysql key_buffer_write_hits is: 92.26%

#-----------------------------------------------------------------------------------------------------------#
2.7 current mysql Innodb_buffer_read_hits is: 99.99%

#-----------------------------------------------------------------------------------------------------------#
2.8 there is no any value!

#-----------------------------------------------------------------------------------------------------------#
2.9 current mysql key_cache_miss_rate is: 2.387%

#-----------------------------------------------------------------------------------------------------------#
2.10 mysql expire_logs_days is:

expire_logs_days 30

#-----------------------------------------------------------------------------------------------------------#
2.11 mysql 3306 statistical response time(tcprstat)

timestamp   count   max min avg med stddev  95_max  95_avg  95_std  99_max  99_avg  99_std
1541061367  0   0   0   0   0   0   0   0   0   0   0   0
1541061368  8   619 106 254 189 171 443 202 109 443 202 109
1541061369  0   0   0   0   0   0   0   0   0   0   0   0
1541061370  0   0   0   0   0   0   0   0   0   0   0   0
1541061371  8   715 138 290 230 178 398 230 81  398 230 81
1541061372  0   0   0   0   0   0   0   0   0   0   0   0
1541061373  0   0   0   0   0   0   0   0   0   0   0   0
1541061374  8   479 83  208 169 133 371 170 90  371 170 90
1541061375  0   0   0   0   0   0   0   0   0   0   0   0
1541061376  0   0   0   0   0   0   0   0   0   0   0   0

#-----------------------------------------------------------------------------------------------------------#
2.12 mysql read_only status is:

innodb_read_only    OFF
read_only   OFF
super_read_only OFF
tx_read_only    OFF

#-----------------------------------------------------------------------------------------------------------#
2.13 mysql innodb_flush_log_at_trx_commit conf is:

innodb_flush_log_at_trx_commit  2

#-----------------------------------------------------------------------------------------------------------#
2.14 mysql sync_binlog conf is:

sync_binlog 0

#-----------------------------------------------------------------------------------------------------------#
2.15 mysql slow conf is:

log_slow_admin_statements   OFF
log_slow_slave_statements   OFF
slow_launch_time    2
slow_query_log  ON
slow_query_log_file /r2/mysqldata/slow.log

#-----------------------------------------------------------------------------------------------------------#
2.16 mysql long_query_time conf is:

long_query_time 10.000000

#-----------------------------------------------------------------------------------------------------------#
2.17 mysql slow status is:

Slow_launch_threads 0
Slow_queries    157

#-----------------------------------------------------------------------------------------------------------#
2.18 mysql max_connections is:

max_connections 10000

#-----------------------------------------------------------------------------------------------------------#
2.19 mysql Max_used_connections is:

Max_used_connections 8 Max_used_connections_time 2018-09-27 04:00:11

#-----------------------------------------------------------------------------------------------------------#
2.20 mysql thread status is:

Threads_cached  7
Threads_connected   1
Threads_created 8
Threads_running 1

#-----------------------------------------------------------------------------------------------------------#
2.21 mysql innodb_flush_method is:

innodb_flush_method O_DIRECT

#-----------------------------------------------------------------------------------------------------------#
2.22 mysql abort status is:

Aborted_clients 2
Aborted_connects    2

#-----------------------------------------------------------------------------------------------------------#
2.23 mysql log_warnings status is:

log_warnings 2

#-----------------------------------------------------------------------------------------------------------#
2.24 mysql log_bin status is:

log_bin ON

#-----------------------------------------------------------------------------------------------------------#
2.25 mysql binlog_format is:

binlog_format MIXED

#===========================================================================================================#
# 2.2 MySQL static parameter                                                                                #
#===========================================================================================================#

#-----------------------------------------------------------------------------------------------------------#
2.3.1 mysql basedir is:

/usr/

#-----------------------------------------------------------------------------------------------------------#
2.3.2 mysql datadir is:

/r2/mysqldata/

#-----------------------------------------------------------------------------------------------------------#
2.3.3 mysql plugindir is:

/usr/lib64/mysql/plugin/

#-----------------------------------------------------------------------------------------------------------#
2.3.4 mysql error log is:

/r2/mysqldata/error.log

#-----------------------------------------------------------------------------------------------------------#
2.3.5 mysql pid-file is:

/r2/mysqldata/slave1.pid

#-----------------------------------------------------------------------------------------------------------#
2.3.6 mysql socket is:

/r2/mysqldata/mysql.sock

#-----------------------------------------------------------------------------------------------------------#
2.3.7 mysql port log is:

3306

#-----------------------------------------------------------------------------------------------------------#
2.3.8 mysql static parameter check :

mysql basedir is OK!
mysql datadir is OK!
mysql plugin is OK!
mysql log_error is OK!
mysql pid is OK!
mysql socket is OK!

#===========================================================================================================#
# 4 MySQL Replication and Statistics                                                                        #
#===========================================================================================================#
#-----------------------------------------------------------------------------------------------------------#
3.1 mysql slave_status is:

MySQL Slave is running!

#-----------------------------------------------------------------------------------------------------------#
3.2 mysql master_host is:

192.168.102.130

#-----------------------------------------------------------------------------------------------------------#
3.3 MySQL master 信息
*************************** 1. row ***************************
             File: slave1-bin.000958
         Position: 699382221
     Binlog_Do_DB:
 Binlog_Ignore_DB:
Executed_Gtid_Set: 746122da-663e-11e7-9de1-b8ca3a6567c4:1-19119,
a57cd625-663e-11e7-9ba9-b8ca3a64d66c:18606-190213162:190249486-190252207:190327015-207860771:207860811-244861160:244862559-1116656470

#-----------------------------------------------------------------------------------------------------------#
3.4 MySQL slave 信息
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.102.130
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: slave1-bin.000757
          Read_Master_Log_Pos: 977018627
               Relay_Log_File: slave1-relay-bin.000966
                Relay_Log_Pos: 977018842
        Relay_Master_Log_File: slave1-bin.000757
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 977018627
              Relay_Log_Space: 977019138
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1
                  Master_UUID: a57cd625-663e-11e7-9ba9-b8ca3a64d66c
             Master_Info_File: /r2/mysqldata/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set: a57cd625-663e-11e7-9ba9-b8ca3a64d66c:739182758-1116656470
            Executed_Gtid_Set: 746122da-663e-11e7-9de1-b8ca3a6567c4:1-19119,
a57cd625-663e-11e7-9ba9-b8ca3a64d66c:18606-190213162:190249486-190252207:190327015-207860771:207860811-244861160:244862559-1116656470
                Auto_Position: 0
         Replicate_Rewrite_DB:
                 Channel_Name:
           Master_TLS_Version:

#-----------------------------------------------------------------------------------------------------------#
3.5 MySQL slave user信息

#-----------------------------------------------------------------------------------------------------------#
3.6 MySQL 账号信息

+--------------+-----------+
| user         | host      |
+--------------+-----------+
| monitor      | %         |
| repl         | %         |
| root         | %         |
| root         | localhost |
+--------------+-----------+


#-----------------------------------------------------------------------------------------------------------#
3.7 MySQL 数据量信息
+--------------+--------------+--------------------+--------------------+--------------------+
| 引擎类型     | 表的数量     | 总数据量大小       | 数据的总大小       | 索引的总大小       |
+--------------+--------------+--------------------+--------------------+--------------------+
| InnoDB       |         1475 | 8555.11MB          | 6741.61MB          | 1813.50MB          |
| MyISAM       |          815 | 462.22MB           | 375.53MB           | 86.69MB            |
+--------------+--------------+--------------------+--------------------+--------------------+

#-----------------------------------------------------------------------------------------------------------#
3.8 MySQL 各个库数据库量

+--------------+-----------------+--------------+--------------------+--------------------+--------------------+--------------+
| 引擎类型     | 库名            | 表的数量     | 总数据量大小       | 数据的总大小       | 索引的总大小       | 碎片空间     |
+--------------+-----------------+--------------+--------------------+--------------------+--------------------+--------------+
| InnoDB       | adbcd_data      |            7 | 231.38MB           | 231.38MB           | 0.00MB             | 32.00MB      |
| InnoDB       | adbss_dtss      |          182 | 1417.19MB          | 1156.67MB          | 260.52MB           | 796.00MB     |
+--------------+-----------------+--------------+--------------------+--------------------+--------------------+--------------+

#-----------------------------------------------------------------------------------------------------------#
3.9 执行mysqltuner.pl 脚本

execute mysqltuner

#-----------------------------------------------------------------------------------------------------------#
3.10 MySQL 显示my.cnf 信息

Import my.cnf

#===========================================================================================================#
# 4 MySQL backup and error.log                                                                              #
#===========================================================================================================#

#-----------------------------------------------------------------------------------------------------------#
4.1 mysql bakcup list:

#-----------------------------------------------------------------------------------------------------------#
mysql backup_status is:

WARNING:The mysql bakup directory /r2/bak_sql is not existed,Please check.


#-----------------------------------------------------------------------------------------------------------#
4.2 mysql error log :

2018-09-08T14:31:12.555799+08:00 0 [Warning] Using pre 5.5 semantics to load error messages from /usr/share/.
2018-09-08T14:31:18.596139+08:00 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key
2018-09-23T11:22:29.289013+08:00 0 [Warning] Using pre 5.5 semantics to load error messages from /usr/share/.
2018-09-23T11:22:59.916567+08:00 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key



#===========================================================================================================#
# 5 WARNING......                                                                                           #
#===========================================================================================================#

MySQL is Running


#------------------------------------------------Done-------------------------------------------------------#

转载于:https://www.cnblogs.com/gczheng/p/9909520.html

你可能感兴趣的:(mysql常规巡检)