MySQL binLog 查询教程
查看binlog文件
show binary logs;
查看当前正在写入的binlog文件
show master status;
查看指定的binlog文件
show binlog events in 'mysql-bin.000060'
mysql-bin.000060
是当前binlog文件名称
从指定位置 pos
的偏移量是 offset
位置查看,查询 row_count
条记录
show binlog events [in 'log_name'] [FROM pos] [limit [offset,] row_count]
例如:
show binlog events in 'mysql-bin.000060' from 21125164 limit 1,3;
备份binlog文件
/usr/bin/mysqlbinlog --no-defaults --database=lyws-repair --set-charset=utf8 --start-datetime="2022-09-15 00:30:00" /home/mysql/mysql_master/data/mysql-bin.000060 > /home/lyws/lyws_dev/mysql_data/mysql-bin.000060
查询最新的binlog文件
awk 'END {print}' /var/lib/mysql/mysql-bin.index
远程备份binlog脚本
#!/bin/sh
BACKUP_BIN=/usr/bin/mysqlbinlog
LOCAL_BACKUP_DIR=/root/cron/binlog/
BACKUP_LOG=/root/cron/binlog/backuplog
REMOTE_HOST=192.168.1.220
REMOTE_PORT=3310
REMOTE_USER=root
REMOTE_PASS=db@lyws
FIRST_BINLOG=mysql-bin.000034
SLEEP_SECONDS=10
mkdir -p ${LOCAL_BACKUP_DIR}
cd ${LOCAL_BACKUP_DIR}
while :
doif [ `ls -A "${LOCAL_BACKUP_DIR}" |wc -l` -eq 0 ];thenLAST_FILE=${FIRST_BINLOG}elseLAST_FILE=`ls -l ${LOCAL_BACKUP_DIR} | grep -v backuplog |tail -n 1 |awk '{print $9}'`fi${BACKUP_BIN} --raw --read-from-remote-server --stop-never --host=${REMOTE_HOST} --port=${REMOTE_PORT} --user=${REMOTE_USER} --password=${REMOTE_PASS} ${LAST_FILE}echo "`date +"%Y/%m/%d %H:%M:%S"` mysqlbinlog停止,返回代码:$?" | tee -a ${BACKUP_LOG}echo "${SLEEP_SECONDS}秒后再次连接并继续备份" | tee -a ${BACKUP_LOG} sleep ${SLEEP_SECONDS}
done
查询binglog版本
msyqlbinlog --version