本人踫到的情况是这样,同样的语句,备份数据库.但有时候,正常恢复(应该算是吧,因为恢复时用了一定时间)但是有时候,恢复竟然快得出奇.结果查了一下数据库里的数据,竟然没有恢复数据.因为这种情况,本人还测了一下,先备份,然后改数据.再还原(用的时间是以前的3分1).按理是回到没改前.可就是没变回来.
还有的就是备份问题,有时候备份会出现错误,但多试几次后,竟然又没有错误,这是什么问题?

解决方案 »

  1.   

    按照如下的mysqldump / mysql 来备份/恢复应该没有你所讲的这种现象。http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#disaster-prevention
    5.9. 备份与恢复
    5.9.1. 数据库备份
    5.9.2. 示例用备份与恢复策略
    5.9.3. 自动恢复
    5.9.4. 表维护和崩溃恢复
    5.9.5. myisamchk:MyISAM表维护实用工具
    5.9.6. 建立表维护计划
    5.9.7. 获取关于表的信息
      

  2.   

    备份就不知道了,因为那程序不是我写的,只怪那原程序是没有还原功能,所以我才写了个还原的.还原的语句是这样的:
    mysql -h localhost -uroot -p123 --database yourdb < d:\1111122.sql
      

  3.   

    看下你的11111122.sql里面有什么内容
    速度很快多半是这里面有问题
      

  4.   

    但是我恢复的,可是完整的SQL档吖,因为我打开来看过了.是完整的,竟然3秒就完成恢复,晕了我
      

  5.   


    首先需要定位你的问题。 是备份部分还是恢复部分有问题?确定方法,你可以直接打开这个  d:\1111122.sql 看看其中内容是否正确。 如果 d:\1111122.sql正确则说明备份软件没有问题。
    如果不正确,则你要想办法了。既然你无法看到源代码,也不清楚其机制,不如你就改用MYSQL标准自带的 mysqldump 来进行备份。如果 d:\1111122.sql内容正确,则你可以将其逐句在MYSQL命令行工具中执行,以看执行到什么后不正确了。看一下你的MYSQL错误日志中的内容。
      

  6.   

    我的意思是说,备份或还原都有正常的时候,也有不正常的时候,不正常的时候都是3~5秒就完成,如备份就备成只有100多K的SQL档,用完整的SQL档还原,也是几秒时间,并未正常还原.
      

  7.   

    唉。如果你根本没有机会去查看你的备份程序,那怎么分析呢? 原因可能有很多,你的备份脚本有BUG。你的服务器可能有问题。或者当前你的表被LOCK住了,mysql -uroot -p1111 < d:\1111122.sql 
    其实就是逐句执行你的 d:\1111122.sql 的SQL语句。 如果不成功,你应该去看一下你的错误日志中有什么信息可以参考,如果什么线索都没有无异于猜谜。 可能的原因有上百种。 比如 你的d:\1111122.sql里的语句本身有问题,你执行这个恢复的时候表已经被其它进程LOCK了,主键冲突,外键冲突。 这个需要你来分析d:\1111122.sql中的内容到底是什么,哪一句出了问题。
      

  8.   

    好久没回到CSDN了....回下从你描述的信息看,应该是程序方调用了mysqldump进行备份了那你可以直接看下备份文件的内容但是你的描述缺少一些关键性信息
    1.备份策略
    2.使用的数据库表引擎
    3.备份方法
    第三点,可能会跟第一、二有点关系若是MyISAM引擎建议可以使用mysqlhotcopy工具,写个批处理,使用windows任务调度
    若是InnoDB虽然拷贝数据库文件与日志文件可以做到,但是为稳妥,且库不大,可以考虑直接使用免费mysqldump,加上--single-transaction方式备份,在进行完整备份进行前,先进行日志的刷新工作,然后方便备份日志与日后恢复用建议保留2个完整备份+两个完整备份期间的日志备份+第二个完整备份之后的日志恢复的时候,就非常方便了
      

  9.   

    备份是用mysqldump来备的,数据库里并没有什么表打开.或在执行什么.而有一次备份是这样的:开头三次都没有成功备份,但第四次竟然又可以了,再备一次又不行
      

  10.   

    错误提示的话,大部份是那些提示语句有问题,但是试多一两次,又是可以了,所以不确定性.BTW: 做这些操作时,并无其它数据库的更改或插入,只有那个备份或还原的操作,也没网络上的其它机子操作.
      

  11.   

    楼主如果真想快速让别人来分析的话,就直接原样贴出你的错误提示,屏幕上是什么就贴什么。
    相应的错误信息在你MYSQL的错误日志中也有。否则如果只是不断的重复的说“有错误”,别人怎么来分析呢? 
      

  12.   

    说SQL档里的建表语句有错~~ 看过了,是没错的.怎么帖吖,一时说这个表,一时说那个表,那说说,mysqldump生成的建表会错吗? 更何况我都检查过了的,怎么会有错呢??唉~~