恢复方案
1. 全部恢复新机器
- 将mysql数据目录中的binlog复制到新机器
- 执行
/usr/bin/mysqlbinlog bin-log.xxx | /usr/bin/mysql
2. 固定备份+binlog时间段恢复
- mysqldump导出的备份数据,恢复到数据库
- 备份始点以后使用binlog恢复
/usr/bin/mysqlbinlog --base64-output=decode-rows -v --start-date='2023-01-01 02:00:00' --stop-date='2023-01-01 10:00:00' /var/lib/mysql/mysql-bin.000017 >/data/mysqlbinlogsql_restore_2023-01-01.sql
- 检查并执行重做脚本
查用操作
1. 查询drop表的位置
mysqlbinlog binlog.000001 | grep -n "drop database"
或者
mysqlbinlog --set-charset=utf8 binlog.000001 > tmp.sql
2. 查询当前binlog
# 查询当前binlog
mysql> show master logs;
# 防止数据污染,可以创建新的binlog文件
flush logs;
3. MySQL开启binlog
[mysqld]
server-id=10
log-bin=mysql-bin
binlog-format=ROW
# binlog状态查看
mysql> show variables like '%log_bin%';