MySQL binlog操作的一些方法

让mysql从库记录binlog方法
需要记录binlog的情况
1 当前从库还要做为其他从库的主库
2 把从库作为数据库备份服务器是需要开启binlog

编辑从库my.cnf
打开log-bin = /data/mysql-bin
添加
log-slave-updates

保留binlog文件设置
编辑my.cnf
expire_logs_days = 7
注:自动删除七天前的binlog日志

查看binlog日志内容
mysqlbinlog /application/mysql/data/mysql.000001

备份二进制binlog为SQL语句
备份指定binlog数据信息
mysqlbinlog /application/mysql/data/mysql.000006 >/tmp/all20_bak.sql

binlog备份指定数据库
mysqlbinlog -d he /application/mysql/data/mysql.000006 >/tmp/he20_bak.sql
-d 指定库备份binlog上的库

binlog指定位置点或时间备份数据
mysqlbinlog /application/mysql/data/mysql.000006 --start-position=20 --stop-position=100 > /tmp/bin_bak.sql
注释:位置点查看
mysqlbinlog /application/mysql/data/mysql.000004
#at 20 就是位置点位置
如果只给起始点不给结束点的话 就是从指定起始点到结尾,同理只给结束点不给起始点,从开头到指定结束点

mysqlbinlog mysql.000004 --start-datetime=’ 170925 10:21:22
‘ --stop-datetime=’ 170925 10:22:22’ -r /tmp/time_bak.sql
#170925 10:21:22 时间点
-r 等同于重定向 >
如果只给起始时间不给结束时间的话 就是从指定起时间点到结尾,同理只给结束时间不给起始时间,从开头到指定结束时间

刷新binlog
mysqladmin -uroot -p --flush-logs
mysql -uroot -p -e “flush logs”

删除已有的binlog日志文件
删除指定版本之前的binlog日志,不包括指定版本
purge master logs to ‘binlong文件’
例:mysql> purge master logs to ‘web01-bin.000003’; #删除01 02 binlog日志
删除所有binlog日志,并重新生成新的一个binlog日志
reset master
例;mysql> reset master;

猜你喜欢

转载自blog.csdn.net/bjgaocp/article/details/88193068