|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
MySQL数据库归MySQLAB公司所有,但是这个软件是开源的,有一个MySQL学习教程可以免费下载。稍俱常识的新入门者都可以轻松实现在一个常见硬件上安装和配置MySQL。mysql|备份|恢复|数据数据库损坏产生的缘故原由有很多,且水平各不不异。假如侥幸的话,多是一两个表的小损坏(比方,假如您的呆板因为断电而临时停机)。假如不是如许,大概必要置换全部的数据目次(比方,假如某个磁盘瘫痪并且数据目次在它上)。在其他情形下也必要恢复操纵,比方,当用户毛病地删除数据库或表时,大概毛病地删除表的内容时。不管这些不幸的事务产生是因为甚么缘故原由,都必要恢复它们。
假如表被损坏但没有丧失,可试着用myisamchk或isamchk来修复它们。假如修复有用程序能修复它们,就基本挥斜匾褂帽阜菸募1淼男薷垂探诘?3章会商。假如表被丧失或不克不及修复,则必要恢复它们。
恢复历程包含两个信息源:备份文件和更新日记。备份文件将表恢复到举行该备份时的形态。可是,在备份和妨碍产生这段工夫中,表一般已被修正。更新日记包括了用来完成这些修正的查询。能够经由过程将更新日记作为对mysql的输出来反复这些查询(这就是为何
应当同意更新日记的缘故原由。假如您还没有使更新日记无效,如今从速做,并在进一步读取之宿世成一个新的备份)。
恢复历程依据必需恢复的信息的几而变更。现实上,恢复全部数据库比恢复单个的表要简单,由于对数据库使用更新日记比对表要简单。
恢复全部数据库
起首,假如要恢复的数据库是含有受权表的mysql数据库,将必要利用--skip-grant-tables选项运转服务器。不然,服务器将埋怨没法找到受权表。在恢复表以后,实行mysqladminflush-privileges来告知服务器加载受权表,并用它们启动。
将原数据库目次的内容拷贝到其他的中央。比方,您大概会在稍后用它们举行溃散表的过后剖析反省(post-mortemexamination)。
用最新的备份文件从头加载数据库。假如您盘算利用由mysqldump加载的文件,则必要将它们作为mysql的输出。假如盘算利用从数据库中间接拷贝的文件(如,用tar或cp),则将它们间接拷贝回到该数据库目次中。可是,在这类情形下,应当在拷贝这些文件之前封闭服务器,然后再从头启动它。
用更新日记重做在举行备份后又修正了数据库表的查询。关于一切可用的更新日记,可以使用它作为mysql的输出。指定--one-database选项,使mysql只对想要恢复的数据库实行查询。假如您晓得必要利用一切的更新日记文件,可在包括日记的目次中利用
以下命令:
%ls-t-r-lupdate.(0-9)*|xargscat|mysql--one-databasedb_name
ls命令发生更新日记文件的单列列表,更新日记文件依据服务器天生的按次举行排序(要晓得,假如您修正了个中的任何文件,排序的按次都将改动,这将招致更新日记按毛病的按次利用)。
您极可能必需利用某些更新日记。比方,假如自备份以来所发生的日记定名为update.392、update.393等等,能够从头运转它们中的命令:
%mysql--one-databasedb_name<updata.392
%mysql--one-databasedb_name<updata.393
。。。
假如正在运转恢复并盘算利用更新日记恢复因为失察的DROPDATABASE、DROPTABLE或DELETE语句而丧失的信息,应确保先从更新日记中删除这些语句。
恢复单个的表
恢复单个表是很坚苦的。假如有经由过程mysqldump天生的备份文件而且它刚好不包括您想要的表数据,则必要抽取相干的行并用它们作为mysql的输出,这部分较简单。坚苦的是抽取使用于该表的更新日记的片断。您会发明:mysql_find_rows有用程序对这方面有匡助,它能够从更新日记中抽取多行查询。
另外一种大概性是用另外一个服务器恢复全部数据库,然后将所要的该表的文件拷贝到原始数据库中。这实践很简单!在将文件拷贝回数据库目次时,应确保原始数据库的服务器封闭。列举选择MySQL的理由的最困难的地方在于,如何对这些理由进行排序。MySQL学习教程这就如同我们经常争论的故事:先有鸡还是先有蛋? |
|