TiDB数据库社区版开启数据库general日志
一、开启general日志
- 切换到/usr/local/sbin/ 目录下,
1cd /usr/local/sbin - 新建tidb-general-log-monitor.sh脚本, 脚本用来查看TiDB是否启动, 启动查询日志是否开启, 没有开启就开启日志
1vim tidb-general-log-monitor.sh
脚本内容
12345678910111213141516171819202122232425262728#!/bin/bash# tidb-general-log-monitor.sh# 单文件版本:检查 TiDB 是否运行并确保 General Log 永远开启# 日志写入 tidb-general-log-monitor.log# ==== 配置区域 ====TIDB_HOST="127.0.0.1"TIDB_PORT="4000"TIDB_USER="root"TIDB_PASSWORD="passwd" # <-- 替换成你的 TiDB root 密码TIDB_LOG="/home/TiDB/water-tidb/tidb-deploy/tidb-4000/log/tidb-general-log-monitor.log"# ==== 主逻辑 ====MYSQL_CMD="mysql -h $TIDB_HOST -P $TIDB_PORT -u $TIDB_USER -p$TIDB_PASSWORD -N -e"# 检查 TiDB 是否可连接if $MYSQL_CMD "SELECT 1;" &>/dev/null; then# 查询当前 General Log 状态LOG_STATUS=$($MYSQL_CMD "SHOW VARIABLES LIKE 'tidb_general_log';" | awk '{print $2}')if [ "$LOG_STATUS" != "ON" ]; then# 开启 General Log$MYSQL_CMD "SET GLOBAL tidb_general_log = 1;"echo "$(date '+%F %T') - 日志已开启" >> "$TIDB_LOG"fielseecho "$(date '+%F %T') - TiDB未运行,跳过日志检查" >> "$TIDB_LOG"fi - 赋予脚本权限
1chmod -R 755 /usr/local/sbin/tidb-general-log-monitor.s - 配置 定时任务crontab 每分钟执行
12345# 编辑文件vim /etc/crontab# crontab文件中添加一行* * * * * root bash /usr/local/sbin/tidb-general-log-monitor.sh - 重启定时任务crontab
1systemctl restart cron
二、设置日志轮转
- 配置 logrotate 管理 tidb.log (TiDB general日志 )
12# 创建配置文件vim /etc/logrotate.d/tidb-general-log
添加内容
12345678910/home/TiDB/water-tidb/tidb-deploy/tidb-4000/log/tidb.log {dailysize 100Mrotate 99compressdelaycompressmissingoknotifemptycopytruncate} - 配置 logrotate 管理 tidb-general-log-monitor.log (脚本日志 )
12# 创建配置文件vim /etc/logrotate.d/tidb-general-log-monitor
添加内容
12345678910/home/TiDB/water-tidb/tidb-deploy/tidb-4000/log/tidb-general-log-monitor.log {dailysize 100Mrotate 99compressdelaycompressmissingoknotifemptycopytruncate}
logrotate 文件中的详细内容介绍, 可以点击此链接查看 - 测试配置:
123logrotate -d /etc/logrotate.d/tidb-general-loglogrotate -d /etc/logrotate.d/tidb-general-log-monitor - 手动触发一次日志轮转(可选):
12345# 按正常条件轮转(即:仅在满足配置条件时才执行)logrotate /etc/logrotate.d/tidb-general-log# 强制轮转(即:无论是否满足条件都立即执行)logrotate -f /etc/logrotate.d/tidb-general-log-monitor
执行完这个命令后,可以到 /home/TiDB/water-tidb/tidb-deploy/tidb-4000/log/ 目录下查看日志文件的变化情况,比如是否生成了轮转后的旧日志文件(如果配置了压缩,是否有压缩后的文件出现),以及 TiDB 服务是否正常继续使用新的日志文件进行记录等情况。