2021-06-05 11:31  阅读(1412)
文章分类:MySQL 技术内幕 文章标签:MySQLMySQL 技术内幕MySQL 高级
©  原文作者:一直不懂 原文地址:https://blog.csdn.net/shenchaohao12321/category_8075653.html

二进制日志非常关键,用户可以通过它完成 point-in-time的恢复工作。 MySQL数据库的replication同样需要二进制日志。在默认情况下并不启用二进制日志,要使用二进制日志首先必须启用它。如在配置文件中进行设置:
[mysqld]
log-bin=mysql-bin
对于InnoDB存储引擎只简单启用二进制日志是不够的,还需要启用一些其他参数来保证最为安全和正确地记录二进制日志,因此对于 InnoDB存储引擎,推荐的二进制日志的服务器配置应该是:
[mysqld]
log-bin=mysql-bin
sync_binlog =1
innodb_support_xa =1
在备份二进制日志文件前,可以通过 FLUSH LOGS命令来生成一个新的二进制日志文件,然后备份之前的二进制日志。
要恢复二进制日志也是非常简单的,通过 mysqlbinlog即可。mysqlbinlog的使用方法如下:
shell>mysqlbinlog [options] log file
例如要还原 binlog.00000可以使用如下命令:
shell>mysqlbinlog binlog.0000001 I mysql -uroot -p test
如果需要恢复多个二进制日志文件,最正确的做法应该是同时恢复多个二进制日志文件,而不是一个一个地恢复,如:
hell>mysqlbinlog binlog.[0-10]* | mysql -uroot -p test
也可以先通过 mysqlbinlog命令导出到一个文件,然后再通过 SOURCE命令来导人,这种做法的好处是可以对导出的文件进行修改后再导入,如
shell>mysqlbinlog binlog.000001 >/tmp/statements.sql
shell>mysqlbinlog binlog.000002>>/tmp/statements.sql
shell>mysql -u root -p -e "source /tmp/statements.sql"
--start-position和--stop-position选项可以用来指定从二进制日志的某个偏移量来进行恢复,这样可以跳过某些不正确的语句,如:
shell>mysqlbinlog --start-position107856 binlog.0000001 I mysql-uroot -p test
--start-datetime和--stop-datetime选项可以用来指定从二进制日志的某个时间点来进行恢复,用法和--start-position和--stop-position选项基本相同。


来源:https://blog.csdn.net/shenchaohao12321/category_8075653.html

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> 【MySQL技术内幕】60-二进制日志备份与恢复
上一篇
【MySQL技术内幕】59-逻辑备份
下一篇
【MySQL技术内幕】61-热备份