当前位置:Gxlcms > 数据库问题 > mysql增量恢复

mysql增量恢复

时间:2021-07-01 10:21:17 帮助过:36人阅读

mysql增量恢复过程

创建一张用于测试的表

  1. mysql> create table user (name char(10),age int(3));
  2. Query OK, 0 rows affected (0.07 sec)
  3. mysql> desc user;
  4. +-------+----------+------+-----+---------+-------+
  5. | Field | Type     | Null | Key | Default | Extra |
  6. +-------+----------+------+-----+---------+-------+
  7. | name  | char(10) | YES  |     | NULL    |       |
  8. | age   | int(3)   | YES  |     | NULL    |       |
  9. +-------+----------+------+-----+---------+-------+
  10. 2 rows in set (0.00 sec)

往表中插入数据

  1. mysql> select database();
  2. +------------+
  3. | database() |
  4. +------------+
  5. | git        |
  6. +------------+
  7. 1 row in set (0.00 sec)
  8. mysql> insert into user(‘lyao‘,‘27‘);
  9. Query OK, 1 row affected (0.00 sec)
  10. mysql> select * from user;
  11. +------+------+
  12. | name | age  |
  13. +------+------+
  14. | lyao |   27 |
  15. +------+------+
  16. 1 row in set (0.00 sec)

备份数据库,备份前查看mysql的二进制文件信息

  1. [root@mysql-m ~]# ll /data/mysql/data/ |grep mysql-bin
  2. -rw-rw---- 1 mysql mysql      302 May 18 11:10 mysql-bin.000001
  3. -rw-rw---- 1 mysql mysql      448 May 18 11:20 mysql-bin.000002
  4. -rw-rw---- 1 mysql mysql      221 May 18 11:21 mysql-bin.000003
  5. -rw-rw---- 1 mysql mysql      150 May 18 11:21 mysql-bin.000004
  6. -rw-rw---- 1 mysql mysql      716 May 18 12:47 mysql-bin.000005
  7. -rw-rw---- 1 mysql mysql       95 May 18 11:21 mysql-bin.index
  8. [root@mysql-m ~]# mysqldump -uroot -p -h 127.0.0.1 --flush-logs git >git.bak.sql
  9. Enter password: 
  10. [root@mysql-m ~]# ll /data/mysql/data/ |grep mysql-bin
  11. -rw-rw---- 1 mysql mysql      302 May 18 11:10 mysql-bin.000001
  12. -rw-rw---- 1 mysql mysql      448 May 18 11:20 mysql-bin.000002
  13. -rw-rw---- 1 mysql mysql      221 May 18 11:21 mysql-bin.000003
  14. -rw-rw---- 1 mysql mysql      150 May 18 11:21 mysql-bin.000004
  15. -rw-rw---- 1 mysql mysql      759 May 18 12:52 mysql-bin.000005
  16. -rw-rw---- 1 mysql mysql      107 May 18 12:52 mysql-bin.000006
  17. -rw-rw---- 1 mysql mysql      114 May 18 12:52 mysql-bin.index

测试:往表user中继续insert数据

  1. mysql> insert into user values(‘zhang3‘,‘34‘);
  2. Query OK, 1 row affected (0.01 sec)
  3. mysql> insert into user values(‘li4‘,‘34‘);
  4. Query OK, 1 row affected (0.00 sec)
  5. mysql> select *  from user;
  6. +--------+------+
  7. | name   | age  |
  8. +--------+------+
  9. | lyao   |   27 |
  10. | zhang3 |   34 |
  11. | li4    |   34 |
  12. +--------+------+
  13. 3 rows in set (0.00 sec)

更新age列为19

  1. mysql> update user set age=19;
  2. Query OK, 3 rows affected (0.01 sec)
  3. Rows matched: 3  Changed: 3  Warnings: 0
  4. mysql> select * from user;
  5. +--------+------+
  6. | name   | age  |
  7. +--------+------+
  8. | lyao   |   19 |
  9. | zhang3 |   19 |
  10. | li4    |   19 |
  11. +--------+------+
  12. 3 rows in set (0.00 sec)

此时看到,age列全部更新了,但是这不是我们想要的。通过备份数据还原

  1. mysql> source  git.bak.sql;
  2. mysql> select * from user;
  3. +------+------+
  4. | name | age  |
  5. +------+------+
  6. | lyao |   27 |
  7. +------+------+
  8. 1 row in set (0.00 sec)
  9. #还原到备份前的数据了,但是我们后来还insert进去2条数据的,这个要通过二进制日志恢复了
  10. #上文中显示备份后的log-bin日志是mysql-bin.000006
  11. [root@mysql-m ~]# mysqlbinlog  -d git /data/mysql/data/mysql-bin.000006 >bin.log
  12. #在bin.log中找到我们刚才插入的语句
  13. [root@mysql-m ~]# egrep "zhang3|li4" bin.log 
  14. insert into user values(‘zhang3‘,‘34‘)
  15. insert into user values(‘li4‘,‘34‘)
  16. #在mysql中插入这2条语句即可
  17. mysql> select * from user;
  18. +------+------+
  19. | name | age  |
  20. +------+------+
  21. | lyao |   27 |
  22. +------+------+
  23. 1 row in set (0.00 sec)
  24. mysql> insert into user values(‘zhang3‘,‘34‘);
  25. Query OK, 1 row affected (0.02 sec)
  26. mysql> insert into user values(‘li4‘,‘34‘);
  27. Query OK, 1 row affected (0.00 sec)
  28. mysql> select * from user;
  29. +--------+------+
  30. | name   | age  |
  31. +--------+------+
  32. | lyao   |   27 |
  33. | zhang3 |   34 |
  34. | li4    |   34 |
  35. +--------+------+
  36. 3 rows in set (0.00 sec)


本文出自 “ly36843运维” 博客,请务必保留此出处http://ly36843.blog.51cto.com/3120113/1652333

mysql增量恢复

标签:mysql增量恢复

人气教程排行