备份与恢复
优质
小牛编辑
145浏览
2023-12-01
查看MySQL的备份数据 (重要)
egrep -v "#|\/|^$|--" /mnt/database_bak.sql
MySQL查看bin-log日志的方法
mysqlbinlog mysql-bin.000001
拆分总的binlog为指定库的增删改操作(恢复指定库的binlog时使用)
mysqlbinlog -d test mysql-bin.000001
基于位置点的增量恢复
指定开始位置和结束位置
mysqlbinlog mysql-bin.000001 --start-position=510 --stop-position=1212 -r pos.sql
# 输出初始位置510,结束位置1212的所有binlog日志到pos.sql文件中
注意:结尾的日志点比较特殊,不会被包含。即输出1212pos点以前的binlog。位置点信息一般要实际存在,不能随意指定。
指定开始位置到文件结束
mysqlbinlog mysql-bin.000001 --start-position=510 -r pos510toend.sql
# 输出初始位置510到binlog文件结尾的所有binlog到指定文件pos510toend.sql
中,也可以指定库名输出binlog,例如:
mysqlbinlog mysql-bin.000001 --start-position=510 -r pos510toend.sql -d test
从文件开头到指定结束位置
增量恢复思想
- 流程制度控制。如果不做,将面临服务和数据,鱼和熊掌不可兼得。
- 信息做监控,黑名单,白名单机制,延迟备份解决。
- 业务需求,选择停库。
增量恢复
- 人为SQL造成的误操作
- 全备和增量
- 恢复时建议对外停止更新
- 恢复全量,然后把增量日志中有问题的SQL语句删除,恢复到数据库
MySQL的物理备份
mysqldump -uroot -paaaaaa -B database > /data/bak/3306.sql
MySQL的物理还原
mysql -uroot -paaaaaa </data/bak/3306.sql