mardi 2 décembre 2014

MySQL won't start - e44 InnoDB: Assertion failure in thread 3652 in file fil0fil.cc line 5594


MySQL 5.6 is installed on my Windows 2008 server. The service is refusing to start. The error log reported:



2014-12-02 20:27:16 1664 [Note] Plugin 'FEDERATED' is disabled.
2014-12-02 20:27:16 634 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.
2014-12-02 20:27:16 1664 [Note] InnoDB: Using atomics to ref count buffer pool pages
2014-12-02 20:27:16 1664 [Note] InnoDB: The InnoDB memory heap is disabled
2014-12-02 20:27:16 1664 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2014-12-02 20:27:16 1664 [Note] InnoDB: Memory barrier is not used
2014-12-02 20:27:16 1664 [Note] InnoDB: Compressed tables use zlib 1.2.3
2014-12-02 20:27:16 1664 [Note] InnoDB: Not using CPU crc32 instructions
2014-12-02 20:27:16 1664 [Note] InnoDB: Initializing buffer pool, size = 710.0M
2014-12-02 20:27:16 1664 [Note] InnoDB: Completed initialization of buffer pool
2014-12-02 20:27:16 1664 [Note] InnoDB: Highest supported file format is Barracuda.
2014-12-02 20:27:16 1664 [Note] InnoDB: Log scan progressed past the checkpoint lsn 144397543303
2014-12-02 20:27:16 1664 [Note] InnoDB: Database was not shutdown normally!
2014-12-02 20:27:16 1664 [Note] InnoDB: Starting crash recovery.
2014-12-02 20:27:16 1664 [Note] InnoDB: Reading tablespace information from the .ibd files...
2014-12-02 20:27:16 1664 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace mysql/innodb_table_stats uses space ID: 1 at filepath: .\mysql\innodb_table_stats.ibd. Cannot open tablespace sessionds/cf_client_data which uses space ID: 1 at filepath: .\sessionds\cf_client_data.ibd
InnoDB: Error: could not open single-table tablespace file .\sessionds\cf_client_data.ibd
InnoDB: We do not continue the crash recovery, because the table may become
InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it.
InnoDB: To fix the problem and start mysqld:
InnoDB: 1) If there is a permission problem in the file and mysqld cannot
InnoDB: open the file, you should modify the permissions.
InnoDB: 2) If the table is not needed, or you can restore it from a backup,
InnoDB: then you can remove the .ibd file, and InnoDB will do a normal
InnoDB: crash recovery and ignore that table.
InnoDB: 3) If the file system or the disk is broken, and you cannot remove
InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf
InnoDB: and force InnoDB to continue crash recovery here.


When I first saw the error I followed the suggestions in another question and made a backup of my data files and then set innodb_force_recovery = 1 in my.ini. I worked my way all the way up to 6, but it still did not work. However, the entire sessionds database is just a temporary datastore for our web server's sessions, so the data is worthless. I renamed the ibd files in that database.


When I tried again MySQL made it much further, but still failed to start. I originally tried with innodb_force_recovery = 1, but again worked my way up to 6. This had no effect. On startup the log reports:



2014-12-02 20:42:56 872 [Note] Plugin 'FEDERATED' is disabled.
2014-12-02 20:42:56 e44 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.
2014-12-02 20:42:56 872 [Note] InnoDB: Using atomics to ref count buffer pool pages
2014-12-02 20:42:56 872 [Note] InnoDB: The InnoDB memory heap is disabled
2014-12-02 20:42:56 872 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2014-12-02 20:42:56 872 [Note] InnoDB: Memory barrier is not used
2014-12-02 20:42:56 872 [Note] InnoDB: Compressed tables use zlib 1.2.3
2014-12-02 20:42:56 872 [Note] InnoDB: Not using CPU crc32 instructions
2014-12-02 20:42:56 872 [Note] InnoDB: Initializing buffer pool, size = 710.0M
2014-12-02 20:42:57 872 [Note] InnoDB: Completed initialization of buffer pool
2014-12-02 20:42:57 872 [Note] InnoDB: Highest supported file format is Barracuda.
2014-12-02 20:42:57 872 [Note] InnoDB: Log scan progressed past the checkpoint lsn 144397543303
2014-12-02 20:42:57 872 [Note] InnoDB: Database was not shutdown normally!
2014-12-02 20:42:57 872 [Note] InnoDB: Starting crash recovery.
2014-12-02 20:42:57 872 [Note] InnoDB: Reading tablespace information from the .ibd files...
2014-12-02 20:42:57 872 [Note] InnoDB: Restoring possible half-written data pages
2014-12-02 20:42:57 872 [Note] InnoDB: from the doublewrite buffer...
2014-12-02 20:42:57 872 [Warning] InnoDB: A page in the doublewrite buffer is not within space bounds; space id 1 page number 575, page 2 in doublewrite buf.
2014-12-02 20:42:57 872 [Warning] InnoDB: A page in the doublewrite buffer is not within space bounds; space id 2 page number 265, page 3 in doublewrite buf.
2014-12-02 20:42:57 872 [Warning] InnoDB: A page in the doublewrite buffer is not within space bounds; space id 2 page number 256, page 38 in doublewrite buf.
2014-12-02 20:42:57 872 [Warning] InnoDB: A page in the doublewrite buffer is not within space bounds; space id 2 page number 258, page 81 in doublewrite buf.
2014-12-02 20:42:57 872 [Warning] InnoDB: A page in the doublewrite buffer is not within space bounds; space id 2 page number 259, page 82 in doublewrite buf.
2014-12-02 20:42:57 872 [Warning] InnoDB: A page in the doublewrite buffer is not within space bounds; space id 2 page number 227, page 114 in doublewrite buf.
2014-12-02 20:42:57 872 [Warning] InnoDB: A page in the doublewrite buffer is not within space bounds; space id 2 page number 229, page 117 in doublewrite buf.
InnoDB: Doing recovery: scanned up to log sequence number 144397549155
2014-12-02 20:43:00 872 [Note] InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percent: InnoDB: Error: trying to access page number 254 in space 2,
InnoDB: space name mysql/innodb_index_stats,
InnoDB: which is outside the tablespace bounds.
InnoDB: Byte offset 0, len 16384, i/o type 10.
InnoDB: If you get this error at mysqld startup, please check that
InnoDB: your my.cnf matches the ibdata files that you have in the
InnoDB: MySQL server.
2014-12-02 20:43:00 e44 InnoDB: Assertion failure in thread 3652 in file fil0fil.cc line 5594
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://ift.tt/1nYfkMj
InnoDB: about forcing recovery.


I'm not sure what to do at this point. My database experience is limited; this is a personal web server in my home office. What could have caused this problem and how do I resolve it?





Aucun commentaire:

Enregistrer un commentaire