mysqldump备份和恢复MySQL数据库(2)

删除数据库,但是把二进制日志文件复制出去,假设日志文件和数据不在同一目录存储,不然如果连二进制日志文件也删除了就没有办法做时间点恢复了
[root@localhost date]# cp mysql-bin.000008 /root/
[root@localhost date]# rm -rf ./*

这时就会发现MySQL停止不了了,所以只要关闭进程
[root@localhost date]# service mysqld stop
MySQL server PID file could not be found!                  [失败]
[root@localhost date]# killall mysqld

初始化MySQL数据库
[root@localhost date]# cd /usr/local/mysql/
[root@localhost mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydate/date/

首先还原完全备份的数据库文件
[root@localhost ~]# mysql -uroot -p < alldatabases.sql
这时数据就恢复到了完全备份之前
被删除的大于80岁的两个用户还存在
mysql> USE jiaowu;
Database changed
mysql> SELECT * FROM tutors;
+-----+--------------+--------+------+
| TID | Tname        | Gender | Age  |
+-----+--------------+--------+------+
|  1 | HongQigong  | M      |  93 |
|  2 | HuangYaoshi  | M      |  63 |
|  3 | Miejueshitai | F      |  72 |
|  4 | OuYangfeng  | M      |  76 |
|  5 | YiDeng      | M      |  90 |
|  6 | YuCanghai    | M      |  56 |
|  7 | Jinlunfawang | M      |  67 |
|  8 | HuYidao      | M      |  42 |
|  9 | NingZhongze  | F      |  49 |
+-----+--------------+--------+------+
9 rows in set (0.00 sec)

将第一次和第二次备份的二进制文件转化为sql文件,然后导入第一次的增量备份和第二次的增量备份
[root@localhost ~]# mysqlbinlog mysql-bin.000007 > diyici.sql
[root@localhost ~]# mysqlbinlog mysql-bin.000008 > dierci.sql
[root@localhost ~]# mysql -uroot -p < diyici.sql
Enter password:
[root@localhost ~]# mysql -uroot -p < dierci.sql
Enter password:

这时数据就恢复了
mysql> SELECT * FROM tutors;
+-----+--------------+--------+------+
| TID | Tname        | Gender | Age  |
+-----+--------------+--------+------+
|  2 | HuangYaoshi  | M      |  63 |
|  3 | Miejueshitai | F      |  72 |
|  4 | OuYangfeng  | M      |  76 |
|  6 | YuCanghai    | M      |  56 |
|  7 | Jinlunfawang | M      |  67 |
|  8 | HuYidao      | M      |  42 |
|  9 | NingZhongze  | F      |  49 |
|  10 | zhangsan    | M      | NULL |
+-----+--------------+--------+------+

注意:生产环境:在恢复数据库的时候关闭二进制日志文件,不然就产生很多没有用的记录,数据恢复完成后开启记录二进制日志文件
临时性关闭二进制日志记录
mysql> SET sql_log_bin=0;
Query OK, 0 rows affected (0.00 sec)
开启二进制日志文件记录
mysql> SET sql_log_bin=1;
Query OK, 0 rows affected (0.00 sec)

Linux下通过mysqldump备份MySQL数据库成sql文件

Linux中使用mysqldump对MySQL数据库进行定时备份

mysqldump缺失-q参数导致MySQL被oom干掉

mysqldump和LVM逻辑卷快照

MySQL备份方案-->(利用mysqldump以及binlog二进制日志)

[MySQL] 用mysqldump制作文本备份

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/1ea2dba8d6f7d88d572c03cfb3d2b7fa.html