mysql binlog 二进制日志【备忘】

当数据丢失后,除了备份外,就是日志文件了,所在MYSQL日常管理中,若磁盘空间允许,建议开启BINLOG日志
1:开启binlog日志记录 
修改mysql配置文件mysql.ini,在[mysqld]节点下添加 
# log-bin 
log-bin = /usr/local/mysql/logbin.log   《---也可以不指定路径,默认在mysql_base下
expire-logs-days=3 《---保存最近三天


重启数据库后,在指定的路径下便 会生成相关日志。


2、BINLOG日志文件不能直接查看,需导出来才行
 导出日志可以根据自己的掌握的信息的需求导出
常见导出的几种方法
全部导出  
[root@db1 tmp]# /usr/bin/mysqlbinlog  mysqlbinlog.000002 > e.txt

根据时间段导出 
[root@db1 tmp]# /usr/bin/mysqlbinlog --start-datetime="2013-01-23 17:00:00" --stop-datetime="2013-01-24 03:05:00" mysqlbinlog.000002  > e.txt


根据位置导出
 
[root@db1 tmp]# /usr/bin/mysqlbinlog  --start-position=5 --stop-position=10 mysqlbinlog.000002 > e.txt
其它参数参考 mysqlbinlog --help 
关于数据导入 正常情况下,用命令mysql < e.txt就能恢复了,但是如果 发现提示有很主键重复什么的。就需对导出的文件进行下整理,我的经验如下:
  1、用ultredit 打开,使用批量替换功能 将/*!*/;    替换成/*!*/; ^p(也就是加个回车符)
  2、将一些DDL语句过滤掉如:
#cat e.txt | grep -v '^#' | grep -v '^SET' | grep -v '^BEGIN' | grep -v ^$ | grep -v '^ROLLBACK' | grep -v '^DELIMITER' | grep -v '^\/\*\!\\C' > test1.txt
3、再用mysql < test1.txt导入即可


BINLOG 其它一些操作
强制轮转日志:mysql>flush logs; (在进行数据库备份后,建议强制轮转一次)
手工清除日志:mysql>show master logs; 


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值