当前位置:嗨网首页>书籍在线阅读

05-完全恢复

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

mysqldump的恢复也很简单,将备份作为输入执行即可,具体语法如下:

mysql –uroot –p dbname < bakfile

注意,将备份恢复后数据并不完整,还需要将备份后执行的日志进行重做,语法如下:

mysqlbinlog binlog-file | mysql -u root –p***

以下是一个完整的mysqldump备份与恢复的例子。

(1)上午9点,备份数据库:

[root@localhost mysql]# mysqldump -uroot –p –l –F test >test.dmp

Enter password:

其中-l参数表示给所有表加读锁,-F表示生成一个新的日志文件,此时,test中emp表的数据如下:

mysql> select * from emp order by id;

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

| id | name |

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

| 1 | z1 |

| 2 | z2 |

| 3 | z3 |

| 4 | z4 |

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

4 rows in set (0.00 sec)

(2)9点半备份完毕,然后,插入新的数据:

mysql> insert into emp values(5,'z5');

Query OK, 1 row affected (0.04 sec)

mysql> insert into emp values(6,'z6');

Query OK, 1 row affected (0.04 sec)

(3)10点,数据库突然故障,数据无法访问。需要恢复备份:

[root@localhost mysql]# mysql -uroot -p test < test.dmp

Enter password:

恢复后的数据如下:

mysql> select * from emp order by id;

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

| id | name |

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

| 1 | z1 |

| 2 | z2 |

| 3 | z3 |

| 4 | z4 |

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

4 rows in set (0.00 sec)

(4)使用mysqlbinlog恢复自mysqldump备份以来的BINLOG。

[root@localhost mysql]# mysqlbinlog localhost-bin.000015 | mysql -u root –p test

Enter password:

查询完全恢复的数据如下:

mysql> select * from emp order by id;

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

| id | name |

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

| 1 | z1 |

| 2 | z2 |

| 3 | z3 |

| 4 | z4 |

| 5 | z5 |

| 6 | z6 |

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

6 rows in set (0.00 sec)

至此,数据库完全恢复。