飘飘悠悠 发表于 2015-1-16 22:34:05

MYSQL网站制作之利用MYSQL备份数据恢复

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学习教程这就如同我们经常争论的故事:先有鸡还是先有蛋?

小女巫 发表于 2015-1-19 16:30:55

如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。

小妖女 发表于 2015-1-25 20:56:40

其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。

分手快乐 发表于 2015-2-4 00:47:55

是要和操作系统进行Socket通讯的场景。否则建议慎重!

爱飞 发表于 2015-2-9 08:53:14

其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!

只想知道 发表于 2015-2-27 05:01:36

两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书

金色的骷髅 发表于 2015-3-16 14:44:30

我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力

灵魂腐蚀 发表于 2015-3-22 23:16:38

也可谈一下你是怎么优化存储过程的?
页: [1]
查看完整版本: MYSQL网站制作之利用MYSQL备份数据恢复