mysql使用mysqlbinlog 恢复数据库

1.查看当前日志文件情况:
mysql> show binlog events in 'mysql-bin.000001';
+------------------+-----+-------------+-----------+-------------+-------------------------------------------+
| Log_name         | Pos | Event_type  | Server_id | End_log_pos | Info                                      |
+------------------+-----+-------------+-----------+-------------+-------------------------------------------+
| mysql-bin.000001 |   4 | Format_desc |         1 |         106 | Server ver: 5.1.73-log, Binlog ver: 4     |
| mysql-bin.000001 | 106 | Query       |         1 |         198 | use `test`; insert into ran values(1,'a') |
| mysql-bin.000001 | 198 | Query       |         1 |         290 | use `test`; insert into ran values(1,'a') |
+------------------+-----+-------------+-----------+-------------+-------------------------------------------+
3 rows in set (0.00 sec)

2.导出日志文件:
[root@mail mysql]# mysqlbinlog /var/lib/mysql/mysql-bin.000001  > /tmp/log01.txt

追加导出:
[root@mail mysql]# mysqlbinlog /var/lib/mysql/mysql-bin.000002  >> /tmp/log01.txt 

按指定位置导出:
mysqlbinlog /var/lib/mysql/mysql-bin.000001  --start-position=4 --stop-position=106 > /tmp/log01.txt
mysqlbinlog /var/lib/mysql/mysql-bin.000001  --start-position=4  > /tmp/log01.txt 从4的位置开始导出
mysqlbinlog /var/lib/mysql/mysql-bin.000001  --stop-position=106  > /tmp/log01.txt 导出位置198之前的

按照时间导出:
mysqlbinlog /var/lib/mysql/mysql-bin.000001  --start-datetime="2014-09-16 07:38:17" --stop-datetime="2014-09-16 07:38:18" > /tmp/log01.txt
导出可以用管道过滤

3.恢复数据库:
按日志文件恢复:
mysqlbinlog /var/lib/mysql/mysql-bin.000001 | mysql -uroot -p
mysqlbinlog binlog.[0-9]* | mysql -u root -p

按位置恢复:
mysqlbinlog /var/lib/mysql/mysql-bin.000001 --start-position=4 --stop-position=106 | mysql -uroot -p

按时间恢复:
mysqlbinlog /var/lib/mysql/mysql-bin.000001  --start-datatime="2014-09-16 07:38:17" --stop-datatime="2014-09-16 07:38:18" | mysql -uroot -p

先导出再恢复:
shell> mysqlbinlog binlog.000001 >  /tmp/statements.sql
shell> mysqlbinlog binlog.000002 >> /tmp/statements.sql
shell> mysql -u root -p -e "source /tmp/statements.sql"

具体用法man mysqlbinlog

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值