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

日期: 2009-11-12 来源:TechTarget中国

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

  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 < db_name.sql

  3、恢复更新日志的内容

  shell>mysql –one-database db_name < hostname.nnn

  假设需要使用的日志名字为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数据库。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐