Question

I have an application running on a x86 system with MySQL InnoDB database. This application store many rows per day and yesterday, due to a power failure, I experienced a rollback of a one entire day of data. Simply I have a hole of data of the day before the power failure, and I'm sure there were many data before the power failure because I checked backup dumps.

How can a power failure involving data committed and so many rows? Is because of the log structure of innodb? Can I do something in MySQL configuration (expect to avoid power failure)?

My configuration is a standard-default of the mysql installer in Windows x64 7 environment.

Was it helpful?

Solution

I'm quite sure that the rollback was made by automatic Windows 7 System Restore after the power failure. This restored the mysql data folder. I cannot understand how a OS restore can move files from other applications even becuse I was using a custom path for mysql-data: c:\mysqldata and not the standard c:\programData\Mysql\.... My solution is to disabled the windows restore, but I think can be a better solution.

EDIT

The problem is the IBD data files of Mysql/MariaDB, these are a "monitored extension" and Windows rollbacks them anywhere in the volume.

EDIT2

Seems that switching innodb_file_per_table option to OFF solved the problem because new tables (only new ones) will not use IBD files.

Licensed under: CC-BY-SA with attribution
Not affiliated with dba.stackexchange
scroll top