日期:2011-05-02 15:44:00 来源:本站整理
MySQL数据库备份(4)[MySQL防范]
本文“MySQL数据库备份(4)[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
4 用备份恢复数据
数据库破坏的发生有很多缘由,程度也差别.假如你走运,你大概仅破坏一两个表(如掉电),假如你倒运,你大概必须替换整个数据目录(如磁盘破坏).在某些情形下也需求恢复,比方用户错误地删除了数据库或表.不管这些倒运事件的缘由,你将需求实施某种恢复.
假如表破坏但没丧失,尝试用myisamchk或isamchk修复它们,假如这样的破坏可有修复程序修复,你大概根本不需求利用备份文件.关于表修复的历程,见《数据库保护与修复》.
恢复历程触及两种信息源:你的备份文件和个更新日记.备份文件将表恢复到实施备份时的状况,但是普通表在备份与发生问题之间的时间内已经被改正,更新日记包含了用于举行这些改正的查询.你可以利用日记文件作为MySQL的输入来反复查询.这已恰是为什么要启用更新日记的缘由.
恢复历程视你必须恢复的信息多少而差别.实际上,恢复整个数据库比单个表跟简单,因为关于数据库应用更新日记比单个表简单.
4.1 恢复整个数据库
首先,假如你想恢复的数据库是包含受权表的mysql数据库,你需求用--skip-grant-table选项运行服务器.不然,它会抱怨不能找到受权表.在你已经恢复表后,履行mysqladmin flush-privileges奉告服务器装载受权标并利用它们.
将数据库目录内容拷贝到别的某个地方,假如你在今后需求它们.
用最新的备份文件重装数据库.假如你用mysqldump产生的文件,将它作为mysql的输入.假如你用直接从数据库拷贝来的文件,将它们直接拷回数据库目录,但是,此时你需求在拷贝文件之前关闭数据库,然后重启它.
利用更新日记反复做备份今后的改正数据库表的查询.关于任何可实用的更新日记,将它们作为mysql的输入.指定--one-database选项使得mysql只履行你有爱好恢复的数据库的查询.假如你知道你需求应用全部更新日记文件,你可以在包含日记的目录下利用这条号令:
% ls -t -r -1 update.[0-9]* | xargs cat | mysql --one-database db_name
ls号令生成更新日记文件的一个单列列表,按照服务器产生它们的次序排序(主张:假如你改正任何一个文件,你将改变排序次序,这招致更新日记一错误的次序被应用.)
极大概你会是应用某几个更新日记.比方,自从你备份以来产生的更新日记被命名为update.392、update.393等等,你可以这样重新运行:
%mysql --one-database db_name < update.392
%mysql --one-database db_name < update.393
.....
假如你正在实施恢复且利用更新日记恢复由于一个错误倡议的DROP DATABASE、DROP TABLE或DELETE语句造成丧失的信息,在应用更新日记之前,要保证从此中删除这些语句.
4.2 恢复单个表
恢复单个表较为复杂.假如你用一个由mysqldump生成的备份文件,并且它不包含你感爱好的表的数据,你需求从相关行中提取它们并将它们用作mysql的输入.这是简单的部份.难的部份是从只应用于该表的更新日记中拉出片断.你会发觉mysql_find_rows实用程序对此很有帮忙,它从更新日记中提取多行查询.
另一个大概性是利用另一台服务器恢复整个数据库,然后拷贝你想要的表文件到原数据库中.这大概真的很简单!当你将文件拷回数据库目录时,要确保原数据库的服务器关闭. 以上是“MySQL数据库备份(4)[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:MySQL数据库类的定义
- ·下一篇文章:MySQL数据库备份(2)
- ·中查找“MySQL数据库备份(4)”更多相关内容
- ·中查找“MySQL数据库备份(4)”更多相关内容
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论