Chinaunix

标题: 关于mysql bin-log [打印本页]

作者: happyjk    时间: 2012-03-09 11:07
标题: 关于mysql bin-log
请问binllog是从什么时候开启记录的呢。如果我每天早晨备份数据库,如果出现问题,是先恢复到早晨的备份,再用binlog吗?会不会重复恢复。谢谢。
作者: RogerZhuo    时间: 2012-03-09 11:16
回复 1# happyjk


    你找到你最近的全备份(应该就是你所说的“早晨备份”),用它来恢复了mysql, 然后再重放你从这一全备份来的所有binlog,不会有你所谓的重复恢复
binlog备份觉得相当于差异备份。

还有,如果你是由于误操作导致要恢复,你可以找到误操作的在binlog的events位置,
跳过它就可以了。
作者: 新手刚来    时间: 2012-03-09 11:52
先全备份,mysqldump 然后再增量备份,恢复的时候先全恢复,然后再根据时间点或者别的条件在恢复增量的那部分,mysqlbinlog恢复是建立在全备份恢复的基础上
作者: 新手刚来    时间: 2012-03-09 11:53
mysqlbinlog --start-date="时间" --stop-date="时间" /root/mysqldate/mysql-bin.* |mysql -uroot -p
作者: happyjk    时间: 2012-03-09 13:35
回复 2# RogerZhuo


    非常感谢。
也就是我做完一次mysqldump之后,binlog会开始重新记录是吧?

如果要恢复,就先恢复我最后一次完整的备份,然后再恢复binlog就可以了。
作者: RogerZhuo    时间: 2012-03-09 13:42
回复 5# happyjk


    不客气
是的

注意:binlog是从你dump开始时,到现在的,不是全部的。
如果有测试环境 ,最好先测试一下,你的备份和操作,
如果不有误,可能导致你丢失更多 的数据
作者: 新手刚来    时间: 2012-03-09 13:44
回复 6# RogerZhuo[/

呵呵昨天刚问完兄弟,谢谢,今天shell脚本自动化还是没搞定,补习shell中

   
作者: happyjk    时间: 2012-03-09 15:20
回复 6# RogerZhuo


    我现在是这样的, 我每天早晨都是自动备份,但我看BIN-log的序号是一直增长的。这个怎么恢复呢?从头开始恢复肯定有问题,如果从中间怎么恢复。
作者: 新手刚来    时间: 2012-03-09 15:42
回复 8# happyjk



先执行全备份mysqldump 这个你懂得,然后执行增量备份,cp /var/lib/mysql/mysql-bin.0000* /到你自己的目录
恢复的时候先恢复全备份的部分,然后再恢复增量的部分,增量的部分,你可以用时间点恢复 mysqlbinlog mysql-bin.0000* |more 查看时间点
然后恢复(具体恢复到操作的哪一步,就看你需要的了)
   
作者: 新手刚来    时间: 2012-03-09 15:45
mysql 全备份 增量备份 还原

启用二进制日志 关闭mysqld   vi /etc/my.cnf 加入[mysqld] log-bin  启动mysqld
会看到/var/lib/mysql/mysqld-bin.00001  mysqld-bin.index 这样的文件

每周全备份 mysqldump --user=root -p --all-databases > /root/mysqldate/mysql.sql


每天增量备份
锁住表 mysql>FLUSH TABLES WITH READ LOCK(退出解锁,保持对话状态)

备份二进制日志cp /var/lib/mysql/mysql-bin.00001 /root/mysqldate


查看二进制文件 mysqlbinlog 文件名 |more  判断错误时间

还原

mysql -uroot -p --socket=/var/lib/mysql/*.sock </root/mysqldate/mysql.sql

mysqlbinlog --start-date="时间" --stop-date="时间" /root/mysqldate/mysql-bin.00001 |mysql -uroot -p

flush-logs
作者: 飞鸿无痕    时间: 2012-03-09 16:29
回复 1# happyjk


    先恢复到造成的备份,然后再找一下备份那个log的位置,从该位置开始恢复。一般你备份的时候需要添加一个--flush-logs的选项,这样会重新生成一个binlog,因此log位置就很好找了。
作者: happyjk    时间: 2012-03-12 22:24
非常感谢各位





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2