Skip to main content

The dreaded InnoDB "ibdata1" slush file

Comments

4 comments

  • feldon27
    I have found two articles that explain how to completely backup all your innodb tables, either delete or regenerate the ibdata1 file, and then restore the data: [url=http://stackoverflow.com/questions/3927690/howto-clean-a-mysql-innodb-storage-engine/4056261#4056261]windows - Howto: Clean a mysql InnoDB storage engine? - Stack Overflow [url=http://erikimh.com/how-to-shrink-an-ibdata1-file-with-minimal-mysql-downtime/]How to shrink an ibdata1 file with minimal MySQL downtime | e r i k i m h d o t c o m Both sound somewhat scary, but what's the alternative? I have ghost innodb tables eating up 35GB on my server.
    0
  • cPanelMichael
    Hello :) The following third-party URL is likely the best guide on how to do this: [url=http://stackoverflow.com/questions/1270944/mysql-innodb-not-releasing-disk-space-after-deleting-data-rows-from-table]MySQL innodb not releasing disk space after deleting data rows from table - Stack Overflow If you would like to see a change in the default behavior, please ensure you submit a feature request via: Submit A Feature Request Thank you.
    0
  • feldon27
    Thank you for the link! As for the request to add a single entry of "innodb_file_per_table=1" to my.cnf, well if it hasn't happened after 7 years, how likely is it to happen now? Also, isn't the MySQL -> MariaDB transition right around the corner? Hopefully this setting is defauled on day 1 with MariaDB and then we don't have to worry about it going forward. From what I've read, on a shared server with multiple domains, there is absolutely no advantage to innoDB using a shared file. I only found huge disadvantages. For one thing, if the ibdata1 file is corrupted in a crash, then data recovery of ALL innoDB tables on the entire server is unlikely. That alone is a reason to NEVER leave the server set to use 1 file.
    0
  • kernow
    innodb_file_per_table is by default ON since Mysql 5.6.6
    0

Please sign in to leave a comment.