I have a database that had an assertion failed. When I get the last backup and try to apply the LOG file I get a validation error. Come to find out the indexes on 6 tables needed to be rebuilt. The catch 22 is when I fix the indexes and try to apply the LOG, i get the message that the DB is newer and cannot apply log. Is there any way to force apply the LOG?
I don't think you would get a "validation error" (which I associate with running dbvalid) when applying a log. Exactly what error did you see?
You could try going to an even older backup and applying all logs since that backup.
Also, if you are content with the database with rebuilt indexes, you could translate the log (using dbtran) and apply the SQL against the database using dbisql.
In addition to what John said...
As you know, or have discovered, you can't apply log files out of order in recovery mode, which is what happens when you start a backup database normally and run new transactions (e.g., reorganize indexes), and then try to apply an old log file in recovery mode that has older transactions.
If possible, try starting over... and document EXACTLY what steps you take and EXACTLY what results and/or error messages you get so we can help.
If there are any differences between what you did (or are doing) and the following steps, please describe those differences as well.
You may find some ideas in the following blog posts:
April 1, 2011 Demonstrating Full and Incremental Backups
April 8, 2011 Recovering Across Multiple Backup Generations
April 22, 2011 Validating Backups
April 25, 2011 Demonstrating Backup, Validation and Restore
answered 05 May '13, 09:29