备份与恢复

优质
小牛编辑
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

从文件开头到指定结束位置

增量恢复思想

  1. 流程制度控制。如果不做,将面临服务和数据,鱼和熊掌不可兼得。
  2. 信息做监控,黑名单,白名单机制,延迟备份解决。
  3. 业务需求,选择停库。

增量恢复

  1. 人为SQL造成的误操作
  2. 全备和增量
  3. 恢复时建议对外停止更新
  4. 恢复全量,然后把增量日志中有问题的SQL语句删除,恢复到数据库

MySQL的物理备份

mysqldump -uroot -paaaaaa -B database > /data/bak/3306.sql

MySQL的物理还原

mysql -uroot -paaaaaa  </data/bak/3306.sql