I did an innodb force recovery. I went from 1-> and on 5 MySQL booted up. I was able to do mydqldump.
Customer is now saying some of data is wrong. (References to another table)
Is this possible?
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It only takes a minute to sign up.Sign up to join this community
I did an innodb force recovery.
Customer is now saying some of data is wrong.
Is this possible?
Short answer: Yes.
Any form of recovery can result in data loss.
Using innodb force recovery, you are telling the DBMS to get that database back up and running any way it can, no matter what that means to the data [that used to be] inside it.
Presumably, you did the force recovery because you had a problem with the database or the server that it runs on?
Your first thought should have been to restore your database from your backups (which, after all, only exist to allow you to do exactly that).
Trying to get MySQL to try and piece together something that may or may not be on the disk any more is a Fool's Errand.
Using the value of 5 for
innodb_force_recovery will not process undo logs. This can result in data corruption from the perspective of partially completed transactions being persisted (even transactions that ended in error & needed to be rolled back!). I would not expect "surprise" data.
I'm not sure what you mean by "some of data is wrong...references to another table," but if you're referring to foreign keys where the referenced row doesn't exist, that would make sense, as a partially completed (or even partially rolled back) transaction could result in that situation.
From the docs:
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.