mysql-备份和还原(普通还原和binlog还原)

1)备份

mysqldump -uroot -proot share -l -F > /tmp/share.sql

说明:-l 锁表 -F 刷新日志文件(相当于flush logs)

2)还原(一)

mysqldump -uroot -proot share < /tmp/share.sql

3)还原(二)

登录mysql 后 source /tmp/share.sql

4)还原(三)(从binlog日志里恢复)

mysqlbinlog --no-defaults /var/lib/mysql/mysql-bin.000002 | mysql -uroot -proot share

使用binlog日志节点

--start-position='106' --stop-postion='500'

示例:

mysqlbinlog --no-defaults --start-position='106' --stop-postion='500' /var/lib/mysql/mysql-bin.000002 | mysql -uroot -proot share

意思是只恢复 106节点到500节点之前的数据操作

除了使用位置节点,还可以使用时间节点

--start-datetime='2016-11-01 00:00:00' --stop-datetime='2016-12-05 17:00:00'

示例:

mysqlbinlog --no-defaults --start-datetime='2016-11-01 00:00:00' --stop-datetime='2016-12-05 17:00:00' /var/lib/mysql/mysql-bin.000002 | mysql -uroot -proot share

注意事项:

备份时要锁表(库),避免备份过程中有其他数据写、删操作,保证备份文件的正确性。

备份完成时,要刷新binlog日志,记录下备份后数据库的所有操作,这样的话,如果备份后数据出现了损坏或丢失,就可以使用备份文件和这个binlog文件来恢复完整的数据。

原文地址:https://www.cnblogs.com/tujia/p/5255558.html