网站地图    收藏   

主页 > 后端 > PHP语言 >

如何使用MYSQL数据库进行备份数据恢复_自学php网

来源:自学PHP网    时间:2014-12-04 21:50 作者: 阅读:

[导读] 数据库毁坏发生的原因有许多,且程度各不相同。如果幸运的话,可能是一两个表的小毁坏(例如,如果您的机器由于断电而暂时停机)。如果不是这样,可能需要置换整个的数据目录...

数据库毁坏发生的原因有许多,且程度各不相同。如果幸运的话,可能是一两个表的小毁坏(例如,如果您的机器由于断电而暂时停机)。如果不是这样,可能需要置换整个的数据目录(例如,如果某个磁盘瘫痪而且数据目录在它上)。在其他情况下也需要恢复操作,例如,当用户错误地删除数据库或表时,或者错误地删除表的内容时。不论这些不幸的事件发生是由于什么原因,都需要恢复它们。

如果表被毁坏但没有丢失,可试着用myisamchk 或isamchk 来修复它们。如果修复实用程序能修复它们,就根本没有必要使用备份文件。表的修复过程将在第13 章讨论。如果表被丢失或不能修复,则需要恢复它们。

恢复过程包括两个信息源:备份文件和更新日志。备份文件将表恢复到进行该备份时的状态。但是,在备份和故障发生这段时间中,表通常已经被修改。更新日志包含了用来完成这些修改的查询。可以通过将更新日志作为对mysql的输入来重复这些查询(这就是为什么

应该允许更新日志的原因。如果您还没有使更新日志有效,现在赶快做,并在进一步读取之前生成一个新的备份)。

恢复过程根据必须恢复的信息的多少而变化。事实上,恢复整个数据库比恢复单个的表要容易,因为对数据库应用更新日志比对表要容易。

恢复整个数据库

首先,如果要恢复的数据库是含有授权表的mysql数据库,将需要使用--skip-grant-tables选项运行服务器。否则,服务器将抱怨无法找到授权表。在恢复表之后,执行mysqladmin flush-privileges 来告诉服务器加载授权表,并用它们启动。

将原数据库目录的内容拷贝到其他的地方。例如,您可能会在稍后用它们进行崩溃表的事后分析检查(post-mortem examination)。

用最新的备份文件重新加载数据库。如果您打算使用由mysqldump 加载的文件,则需要将它们作为mysql的输入。如果打算使用从数据库中直接拷贝的文件(如,用tar 或c p),则将它们直接拷贝回到该数据库目录中。但是,在这种情况下,应该在拷贝这些文件之前关闭服务器,然后再重新启动它。

用更新日志重做在进行备份后又修改了数据库表的查询。对于所有可用的更新日志,可使用它作为mysql的输入。指定--one-database 选项,使mysql只对想要恢复的数据库执行查询。如果您知道需要使用所有的更新日志文件,可在包含日志的目录中使用下列命令:

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论