mysql数据通过binlog恢复

 时间:2026-02-11 22:57:12

1、首先要确保数据库启动mysqlbinlog

mysql> show variables like 'log_bin';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| log_bin       | ON    |

+---------------+-------+

1 row in set (0.00 sec)

mysql> 

只有log_bin状态时ON的情况下才是开启状态。

mysql数据通过binlog恢复

2、数据库备份时,需要加上 --flush-logs --hex-blob --master-data=2参数,这样每次备份时都会重新生成新的mysqlbinlog,有利于后续的备份恢复。

[root@localhost mysql-t1]# ll -th mysql-bin.*

-rw-r----- 1 mysql mysql 1.9K 7月  24 21:05 mysql-bin.000001

-rw-r----- 1 mysql mysql   19 7月  24 20:23 mysql-bin.index

[root@localhost mysql-t1]# mysqldump -h192.168.10.235 -uroot -p --all-databases  --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 >/data/app/bin/b.sql

Enter password: 

[root@localhost mysql-t1]# ll -th mysql-bin.*

-rw-r----- 1 mysql mysql   38 7月  24 21:10 mysql-bin.index

-rw-r----- 1 mysql mysql  154 7月  24 21:10 mysql-bin.000002

-rw-r----- 1 mysql mysql 2.0K 7月  24 21:10 mysql-bin.000001

mysql数据通过binlog恢复

3、在服务器恢复后,先将当天的数据库binlog日志倒入到sql文件。(方法任选一个)

mysqlbinlog  /data/app/mysql-t1/mysql-bin.000002 >/root/a.sql

如果只是需要恢复该文件中的部分数据,那么可以

mysqlbinlog --start-position=292 --stop-position=709 /data/app/mysql-t1/mysql-bin.000002>/root/a.sql

另外建议先将今天的这个binlog备份在别的地方,以防操作失误导致恢复起来费劲。

mysql数据通过binlog恢复

4、数据恢复:

将备份数据导入数据库,然后再将binlog的sql导入数据库即可完成数据库恢复。

mysql备份时的数据

mysql> select * from base_roles;

+---------+-----------+--------------------+

| role_id | role_name | role_desc          |

+---------+-----------+--------------------+

|       1 | Admin     | Administrator      |

|      10 | User      | Authenticated User |

|      50 | ag_editor | Alert Group Editor |

|     111 | 233       | Authenticated User |

|   10000 | Anonymous | Anonymous User     |

+---------+-----------+--------------------+

5 rows in set (0.00 sec)

恢复binlog日志

mysql> source /root/a.sql;

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql> select * from base_roles;

+---------+-----------+--------------------+

| role_id | role_name | role_desc          |

+---------+-----------+--------------------+

|       1 | Admin     | Administrator      |

|      10 | User      | Authenticated User |

|      50 | ag_editor | Alert Group Editor |

|     111 | 233       | Authenticated User |

|     121 | 222       | Authenticated User |

|   10000 | Anonymous | Anonymous User     |

+---------+-----------+--------------------+

6 rows in set (0.00 sec)

完成数据恢复

mysql数据通过binlog恢复

mysql数据通过binlog恢复

  • 设置SecureCRT连接linux的背景文字颜色等操作
  • 如何抽取ArrayList集合中的某一个属性的集合
  • jenkins安装git报错no such executable in PATH
  • spring boot全局异常处理
  • ORA-38706:Cannot turn on FLASHBASK DATABASE
  • 热门搜索
    3月份去哪里旅游好 贵港旅游景点大全 上海免费旅游景点大全 济南旅游人才网 镇江旅游景点大全 湖南旅游局官网 杭州黄龙旅游集散中心 同程旅游招聘 8月适合去哪里旅游 永泰云顶旅游攻略