MySQL备份恢复数据的一般步骤

WBOY
풀어 주다: 2016-06-07 16:07:17
원래의
1028명이 탐색했습니다.

下面是备份一个数据库的例子: 1、备份前读锁定涉及的表 mysql>LOCK TABLES tbl1 READ,tbl1 READ,… 如果,你在mysqldump实用程序中使用--lock-tables选项则不必使用如上SQL语句。 2、导出数据库中表的结构和数据 shell>mysqldump --opt db_name>db_name.sql

下面是备份一个数据库的例子:

1、备份前读锁定涉及的表

mysql>LOCK TABLES tbl1 READ,tbl1 READ,…
如果,你在mysqldump实用程序中使用--lock-tables选项则不必使用如上SQL语句。

2、导出数据库中表的结构和数据

shell>mysqldump --opt db_name>db_name.sql

3、启用新的更新日志

shell>mysqladmin flush-logs

这样可以记录你备份后的数据改变为恢复数据准备。

4、解除表的读锁

mysql>UNLOCK TABLES;

为了加速上述过程,你可以这样做:

shell> mysqldump --lock-tables --opt db_name>db_name.sql; mysqladmin flush-logs

但是这样可能会有点小问题。上命令在启用新的更新日志前就恢复表的读锁,
在更新繁忙的站点,可能有备份后的更新数据没有记录在新的日志中。
现在恢复上面备份的数据库

1、对涉及的表使用写锁

mysql>LOCK TABLES tbl1 WRITE,tbl1 WRITE,…

2、恢复备份的数据

shell>mysql db_name

3、恢复更新日志的内容

shell>mysql --one-database db_name

假设需要使用的日志名字为hostname.nnn

4、启用新的更新日志

shell>mysqladmin flush-logs

5、解除表的写锁

mysql>UNLOCK TABLES;

希望上面的例子能给你启发,因为备份数据的手法多种多样,你所使用的和上面所述可能大不一样,但是对于备份和恢复中,表的锁定、启用新的更新日志的时机应该是类似的,仔细考虑这个问题。

思考题

请在完成这些思考题之前,启用常规日志和更新日志,因为下面的思考题将涉及到这个问题。

1、使用带有带有--all-databases选项的mysqldump实用程序,备份你现有的所有数据到一个文件all.sql中(如果你的数据不太多的话),查看输出的SQL语句。

2、使用带有--ab选项的mysqldump,把你的test数据库中的表结构和数据分别备份到一个目录中。检查一下生成的SQL语句与上题中备份文件中的有什么不同。

3、建立一个新的数据库test1,把上题的备份文件恢复到该数据库中。请简述一下过程。

4、查看你的更新日志和常规日志,看看上述操作是否都留下了记录以及留下了什么记录。

5、先在test数据库中的任意一个表中INSERT一个记录,然后在删除这个记录。(目的是在更新日志中留下记录。)删除数据库test1,试试如何从更新日志恢复test1数据库。

 

 


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿