Search
  • dbrecover

DBRECOVER for MySQL Corrupted InnoDB Database recovery

force recovery parameter innodb_force_recovery may resolve below errors:


120207 13:30:29 InnoDB: Error: page 573441 log sequence number 22 697197707
InnoDB: is in the future! Current system log sequence number 5 2916730276.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-recovery.html
InnoDB: for more information.



130227 11:54:17InnoDB: Assertion failure in thread 4096 in file fil0fil.c line 3959
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html
InnoDB: about forcing recovery.
130227 11:54:17 - mysqld got signal 11 ;



The MySQL is not starting: [ERROR] InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT


InnoDB: Serious error! InnoDB is trying to free page 11200
InnoDB: though it is already marked as free in the tablespace!
InnoDB: Assertion failure in thread 16363778 in file fsp0fsp.c line 2981
mysqld got signal 11 ;

InnoDB: Waiting for the background threads to start
InnoDB: Error: tablespace size stored in header is 3712 pages, but
InnoDB: the sum of data file sizes is only 3072 pages
InnoDB: Cannot start InnoDB. The tail of the system tablespace is
InnoDB: missing. Have you edited innodb_data_file_path in my.cnf in an
InnoDB: inappropriate way, removing ibdata files from there?
InnoDB: You can set innodb_force_recovery=1 in my.cnf to force
InnoDB: a startup if you are trying to recover a badly corrupt database.


InnoDB: Assertion failure in thread 3876 in file ha_innodb.cc line 17352
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.


InnoDB: Assertion failure in thread 140154354255616 in file trx0purge.c line 848
InnoDB: Failing assertion: purge_sys->purge_trx_no <= purge_sys->rseg->last_trx_no
InnoDB: We intentionally generate a memory trap.


InnoDB: Your database may be corrupt or you may have copied the InnoDB tablespace but not the InnoDB log files. Please refer to http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html for information about forcing recovery


[ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace database/table uses space ID: 882 at filepath

[Note] InnoDB: Starting crash recovery.
[ERROR] InnoDB: Tablespace 11904 was not found at ./example_db/example1.ibd.
[ERROR] InnoDB: Set innodb_force_recovery=1 to ignore this and to permanently lose all changes to the tablespace.
[ERROR] InnoDB: Tablespace 11905 was not found at ./example_db/example2.ibd.
[ERROR] InnoDB: Cannot continue operation.


InnoDB: Error: space header page consists of zero bytes in data file ./ibdata1

InnoDB: Database page corruption on disk or a failed file read of page 660. A table cannot be properly queried with the SELECT statement - additional possible output: MariaDB [psa]> select * from db_example.misc;
ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect...

But if innodb_force_recovery don't work . You may try DBRECOVER for MySQL; The software directly reads data from ibd files , so it bypass any MySQL instance error.


RECOVERY STEP:

  • shutdown MYSQL instance

  • download and zip , run ./start_dbrecover_linux.sh (on Linux) or ./start_dbrecover_windows.bat ( on Windows)

  • select Conventional recovery

  • select MYSQL VERSION as you used; Page Size should be left as 16k

  • click select directory , and input the @@datadir directory

  • check the database treeview, every table will show up to 1000 rows

  • click export to file , the table data will be exported into MYSQLDUMP format SQL file

  • import the data into new MYSQL instance by : mysql -uroot -p < $SQL_FILE













EXAMINE RECORDS COUNT


User can examine every tables' record count .






7 views

Recent Posts

See All