zoukankan      html  css  js  c++  java
  • innodb文件损坏处理

    innodb文件损坏报错如下:

    2018-09-03T09:52:43.486363Z 0 [ERROR] InnoDB: Space id and page no stored in the page, read in are [page id: space=0, page number=50345472], should be [page id: space=0, page number=408]
    2018-09-03T09:52:43.486498Z 0 [ERROR] InnoDB: Database page corruption on disk or a failed file read of page [page id: space=0, page number=408]. You may have to recover from a backup.
    2018-09-03T09:52:43.486544Z 0 [Note] InnoDB: Page dump in ascii and hex (16384 bytes):
     len 16384; hex 0d00000003003600013700c6003600000000000000000000000000000000000000000000000000000000000000000000000000000000810a81bcff2606027b04811b4c8d4172697374657520526f7a616e736b69203c61726f7a616e736b407265646861742e636f6d3e205b322e362e33322d3134372e656c365d4dc928c02d205b6275696c645d2064697361626c65205765727220666f722065787465726e616c206d6f64756c657320284172697374657520526f7a616e736b6929205b3730333530345d880f81bcff2506027b048f254c8d4172697374657520526f7a616e736b69203c61726f7a616e736b407265646861742e636f6d3e205b322e362e33322d3134382e656c365d4dcbcbc02d205b6e65745d20646363703a2068616e646c6520696e76616c69642066656174757265001df982854381bcff2406027b048a0d4c8d4172697374657520526f7a616e736b69203c61726f7a616e736b407265646861742e636f6d3e205b322e362e33322d3134392e656c365d4dcd1d402d205b7838365d204d43453a2044726f70207468652064656661756c74206465636f64696e67206e6f746966696572202850726172697420426861726761766129205b3638383238315d0a2d205b7838365d204d43453a20446f206e6f74207461696e74207768656e2068616e646c696e6720636f727265637461626c65206572726f7273202850726172697420426861726761766129205b3638383238315d0a2d205b6b65726e656c5d207072696e746b3a2075736520704b20666f72202f70726f632f6b616c6c73796d7320616e64202f70726f632f6d6f64756c657320285068696c6c692018-09-03T09:52:43.492211Z 0 [Note] Semi-sync replication initialized for transactions.
    2018-09-03T09:52:43.504398Z 0 [Note] Semi-sync replication enabled on the master.
    70204c6f756768657229205b3637393236325d0a2d205b6b65726e656c5d2074696d65722064656275673a2048696465206b65726e656c206164647265737365732076696120704b20696e202f70726f632f74696d65725f6c69737420285068696c6c6970204c6f756768657229205b3637393236325d0a2d205b64726d5d20646f206e6f74206c65616b206b65726e656c2061646472657373657320766961202f70726f632f6472692f2a2f2018-09-03T09:52:43.504481Z 0 [Note] Starting ack receiver thread
    766d6120285068696c6c6970204c6f756768657229205b3637393236325d0a2d205b6b65726e656c5d206b7074725f726573747269637420666f7220686964696e67206b65726e656c20706f696e746572732066726f6d20756e70726976696c6567656420757365727320285068696c6c6970204c6f756768657229205b3637393236325d0a2d205b6e65745d20666978206e65746e732076732070726f746f20726567697374726174696f6e206f2018-09-03T09:52:43.504874Z 0 [Note] Recovering after a crash using mysql-bin
    2018-09-03T09:52:43.510443Z 0 [Note] Starting crash recovery...
    72646572696e67202857616465204d65616c696e6729205b3730323330365d207b4356452d323031312d31373637204356452d323031312d313736387d00000000206f7074696f6e73206c656e67746820284a697269205069726b6f29205b3730333031335d207b4356452d2018-09-03T09:52:43.510528Z 0 [Note] Crash recovery finished.
    

      使用innodb_force_recovery参数来恢复,innodb_force_recovery参数有6个选项具体如下

    1 (SRV_FORCE_IGNORE_CORRUPT)
    
    Lets the server run even if it detects a corrupt page. Tries to make SELECT * FROM tbl_name jump over corrupt index records and pages, which helps in dumping tables.
    
    2 (SRV_FORCE_NO_BACKGROUND)
    
    Prevents the master thread and any purge threads from running. If a crash would occur during the purge operation, this recovery value prevents it.
    
    3 (SRV_FORCE_NO_TRX_UNDO)
    
    Does not run transaction rollbacks after crash recovery.
    
    4 (SRV_FORCE_NO_IBUF_MERGE)
    
    Prevents insert buffer merge operations. If they would cause a crash, does not do them. Does not calculate table statistics. 
    This value can permanently corrupt data files. After using this value, be prepared to drop and recreate all secondary indexes. Sets InnoDB to read-only.
    
    5 (SRV_FORCE_NO_UNDO_LOG_SCAN)
    
    Does not look at undo logs when starting the database: InnoDB treats even incomplete transactions as committed. 
    This value can permanently corrupt data files. Sets InnoDB to read-only.
    
    6 (SRV_FORCE_NO_LOG_REDO)
    
    Does not do the redo log roll-forward in connection with recovery. This value can permanently corrupt data files. 
    Leaves database pages in an obsolete state, which in turn may introduce more corruption into B-trees and other database structures. Sets InnoDB to read-only.
    

      尽量用最小的参数尝试启动,大的包含小的

    innodb_force_recovery=1
    

      修改参数以后启动成功,mysqlcheck工具检查看具体哪个表的文件损坏。

    [root@redis03 data]# mysqlcheck -A -u root -p
    Enter password: 
    ht.tb                                              OK
    mysql.columns_priv                                 OK
    mysql.db                                           OK
    mysql.engine_cost                                  OK
    mysql.event                                        OK
    mysql.func                                         OK
    mysql.general_log                                  OK
    mysql.gtid_executed                                OK
    mysql.help_category                                OK
    mysql.help_keyword                                 OK
    mysql.help_relation                                OK
    mysql.help_topic                                   OK
    mysql.innodb_index_stats                           OK
    mysql.innodb_table_stats                           OK
    mysql.ndb_binlog_index                             OK
    mysql.plugin                                       OK
    mysql.proc                                         OK
    mysql.procs_priv                                   OK
    mysql.proxies_priv                                 OK
    mysql.server_cost                                  OK
    mysql.servers                                      OK
    mysql.slave_master_info                            OK
    mysql.slave_relay_log_info                         OK
    mysql.slave_worker_info                            OK
    mysql.slow_log                                     OK
    mysql.tables_priv                                  OK
    mysql.time_zone                                    OK
    mysql.time_zone_leap_second                        OK
    mysql.time_zone_name                               OK
    mysql.time_zone_transition                         OK
    mysql.time_zone_transition_type                    OK
    mysql.user                                         OK
    sys.sys_config                                     OK
    

      如果有损坏可以先备份出来删除原表在导入进去

    mysqldump  --databases ht --set-gtid-purged=OFF >ht.sql
    mysql -u root -p < ht.sql
    

      

  • 相关阅读:
    Unity shader 代码高亮+提示
    PTA --- L2-003 月饼
    PTA --- L2-002 链表去重
    计蒜客 —— 字符串p型编码
    计蒜客 —— 最好的草
    最近忙科研立项 & 对博客的优化
    计蒜客 —— 删除单词后缀
    Tensorflow 保存模型 & 在java中调用
    Tensorflow 用训练好的模型预测
    Tensorflow 保存和载入训练过程
  • 原文地址:https://www.cnblogs.com/omsql/p/9592756.html
Copyright © 2011-2022 走看看