今天客户开机的时候,前面4张单正常,做第5张的时候,数据库就出现错误.然后就开不了MASTERDATA.
MYSQL Query Browser也进不了,一进就说LOCALHOST出错.
我备份MASTERDATA的时候,发现一个表TRANSPAYMENT备份不了,然后要重新启动机器才能使用别的数据库TRAINING.
所以是由TRANSPAYMENT这个表引起的,现在备份的数据也没有这个表.该怎么备份这个坏掉的表.
该怎么恢复?
帮我分析下是什么原因会引起MYSQL需要重启才能用?
MERRY X MAS!

解决方案 »

  1.   

    至少要检查一下你的MYSQL的错误日志。
    一种可能就是锁。
      

  2.   

    客户那边顾客排起长队,匆忙给他换了DATA就让客户先用了.
    我们是第一次发生TRANSPAYMENT这个数据表坏的情况.星期一还要下去把硬盘拿回来检查.查看日记是在哪里看?
      

  3.   

    错误日志 ERROR。LOG之类的,表什么引擎,没有备份吗?
      

  4.   

    如果是MYISAM的,可以考虑用修复硬盘的程序试试。
      

  5.   

    刚才去客户那边COPY MYSQL的全部文件,发现一个idata1这个ERRORCOPY不了提示:cyclic redundancy check 循环冗余校验
      

  6.   

    101224 23:00:21  InnoDB: Starting shutdown...
    101224 23:00:23  InnoDB: Shutdown completed; log sequence number 0 645141810
    101224 23:00:23 [Note] C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: Shutdown complete101225  9:01:06  InnoDB: Started; log sequence number 0 645141810
    101225  9:01:07 [Note] C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: ready for connections.
    Version: '5.0.51b-community-nt'  socket: ''  port: 3306  MySQL Community Edition (GPL)
    101225 10:59:15  InnoDB: Operating system error number 23 in a file operation.
    InnoDB: Some operating system error numbers are described at
    InnoDB: http://dev.mysql.com/doc/refman/5.0/en/operating-system-error-codes.html
    InnoDB: File name .\ibdata1
    InnoDB: File operation call: 'Windows aio'.
    InnoDB: Cannot continue operation.
    InnoDB: Log scan progressed past the checkpoint lsn 0 645158130
    101225 11:03:09  InnoDB: Database was not shut down normally!
    InnoDB: Starting crash recovery.
    InnoDB: Reading tablespace information from the .ibd files...
    InnoDB: Restoring possible half-written data pages from the doublewrite
    InnoDB: buffer...
    InnoDB: Doing recovery: scanned up to log sequence number 0 645158990
    InnoDB: 1 transaction(s) which must be rolled back or cleaned up
    InnoDB: in total 3 row operations to undo
    InnoDB: Trx id counter is 0 739328
    101225 11:03:10  InnoDB: Starting an apply batch of log records to the database...
    InnoDB: Progress in percents: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 
    InnoDB: Apply batch completed
    InnoDB: Starting in background the rollback of uncommitted transactions
    101225 11:03:10  InnoDB: Rolling back trx with id 0 738818, 3 rows to undo
    101225 11:03:10  InnoDB: Started; log sequence number 0 645158990帮我看下错误。
      

  7.   

    我假设你的数据不会重要到,送硬盘去数据恢复公司的程度。1 用ghost备份整个分区。这样你就有了备份文件。
    2 用这个备份,恢复到一个新硬盘,让此硬盘作为从盘,挂在一台win的机子上,开始恢复mysql数据。
    2.1启动服务器mysqld。
    2.2用mysqldump导出所有数据。(至少导出所有innodb表)
    2.3假如上述2步中任何步骤出错,则修改配置文件my.ini后再做这两个步骤。
    [mysqld]
    innodb_force_recovery = 43 必须重建innodb表空间和日志,即关闭mysqld,删除ibdata*,ib_log*,重启mysqld。4 导入所有数据。
      

  8.   

    目前COPY下MASTERDATA所有的数据表,怎么恢复表的数据?
    把MASTERDATA的表放在我的MYSQL的目录下,然后INI什么的有什么设定?