MYSQL binlog简述及简单操作
来源:互联网 发布:网上哪里买淘宝钻号 编辑:程序博客网 时间:2024/05/23 00:05
原文地址:http://blog.csdn.net/johnstrive/article/details/47946277
binlog主要两大作用
- 高可用
- 数据恢复。
如何开启binlog
在my.cnf中配置:log_bin =/home/data/mysql/binlog/mysql-bin
检查是否开启
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
关闭binlog
my.cnf注销#log_bin =/home/data/mysql/binlog/mysql-bin
需要restart数据库
线上开启binlog
SET sql_log_bin=1|0
(1为开启,0为关闭)
ps:重启数据库失效
切换binlog命令
在mysql中执行flush logs;
修改二进制日志文件(binlog)大小
my.cnf中配置max_binlog_size
binlog 清理
主从模式下需要关闭主从
设置有效天数清理binlog
my.cnf设置expire_logs_days=10;
意思是保留10天的binlog滚动清理。
手动清除binlog文件
根据日志文件名:PURGE MASTER LOGS TO ′MySQL-bin.010′;
根据日志时间: PURGE MASTER LOGS BEFORE '2015-03-02 13:00:00';
根据日志天数: PURGE MASTER LOGS BEFORE DATE_SUB(NOW(), INTERVAL 1 DAY);
清除binlog时,注意slave保持一致,不能清除正在复制的日志。
使用mysqlbinlog进行二进制解析
执行mysqlbinlog可能会遇到的错误
ERROR: Error in Log_event::read_log_event(): ‘Found invalid event in binary log’, data_len: 77, event_type: 19 Could not read entry at offset 306709:Error in log format or read error,将最新安装的mysql bin目录放到环境变量中就可以了。或使用全路径: /usr/local/mysql/bin/mysqlbinlog
解析出来的格式(隔离级别rc模式):read-commit
- 1
- 2
- 3
- 1
- 2
- 3
rr模式不受此限制
使用binlog恢复数据
恢复条件:
- 旧表:全备份sql文件 + binlog日志
- 新表:binlog日志(在此binlog录入期间create)
binlog恢复命令
- 1
- 1
管道符的作用是先执行前面的语句,然后通过后面的语句导入数据库
定点恢复
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
实战手记
在测试之前,需要保证my.cnf中几个关键配置是关闭的,因为如果我打开指定忽略和指定写入binlog的配置,测试表将无法写入binlog,也有一种情况是写入了。但是无法将数据恢复到表中。
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
旧表:全备份sql文件 + binlog日志
1.以前录入的表数据:
- 1
- 2
- 3
- 1
- 2
- 3
2.全备份
- 1
- 1
3.建表
– 录入数据 insert into test(id,name)values(3,'c');
//新开一个binlog日志,现在会生成一个新的binlog日志,下面的操作会记录在新的binlog日志中
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
4.切换日志
以便将完整的操作保存到单独的binlog中 flush logs;
5.删除数据
- 1
- 2
- 3
- 1
- 2
- 3
6.恢复数据
先查看上一个binlog里面的内容:
- 1
- 1
7.查看新的binlog里面的内容
- 1
- 1
8.先恢复全备份集合: /usr/local/mysql/bin/mysql -uroot -p </tmp/alldb.sql
9.恢复数据
- 1
- 1
10.查看表中变化
新表新表:binlog日志(在此binlog录入期间create)
1.切换日志 flush logs;
2.建立新表
- 1
- 2
- 3
- 1
- 2
- 3
3.切换日志 flush logs;
4.之后drop表; drop table test2;
5.然后利用二进制日志进行恢复
- 1
- 1
定点恢复
定位:
- 1
- 2
- 1
- 2
按照起始时间来恢复
- 1
- 1
按照起始位置来进行恢复
- 1
- 1
- MYSQL binlog简述及简单操作
- MYSQL binlog简述及简单操作
- mysql binlog 简述
- mysql binlog日志及mysqlbinlog操作详解
- mysql binlog日志及mysqlbinlog操作详解
- mysql binlog日志简介及操作详解
- mysql binlog操作
- mysql-binlog常用操作
- mysql 查看binlog 操作日志及恢复数据
- Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
- Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
- mysql binlog开启及查看
- 简述REDO简单操作
- mysql的binlog并做简单恢复
- MYSQL简单的binlog恢复测试
- MySQL 二进制日志操作(Binlog)
- 使用binlog撤销MySQL误操作
- MySql的binlog日志操作(一)
- caffe实战-2
- Android Fragment 之获取FragmentManager
- 使用Docker编译Android系统源码
- maven整合springmvc-Spring-ActiveMQ
- CentOS7 Failed to start LSB: Bring up/down解决方法
- MYSQL binlog简述及简单操作
- Nginx服务器支持pathinfo模式
- LVS之六:使用keepalived实现LVS的DR模式热备
- 在wpf中,基于dev实现Gridcontrol单元格合并
- RecyclerView学习--初始化RecycleView
- 中国移动也开源 他如何使用Linux、OpenStack?
- lib框架收集
- Python分支和循环
- Java有序数组的实现