cancel
Showing results for 
Search instead for 
Did you mean: 

Repair corrupt sqlanywhere 9 database with no backup. Assertion failed: 201129 (9.0.2.2451) File is shorter than expected.

davidreynolds5
Discoverer
0 Kudos

I am looking for help in attempting to repair a corrupt SQL Anyhere 9 (9.0.2.2451) database. There is no backup of the database. The database service will not start and gives the following error: Assertion failed: 201129 (9.0.2.2451) File is shorter than expected. Is repairing the database possible? Could data from the database be salvaged to use in creating a new database? I have tried unloading tables using the dbunload command but the same 201129 error occurs when I make the attempt.

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member244518
Participant
0 Kudos

Hi David,

Do you have the corresponding *.log file for the database? If the file has never been truncated you may be able to translate the entire transaction log into a SQL file.  This would provide you with the complete history of DDL/DML statements which you could playback on a fresh database.

It might be worth trying to start the database with the -f switch, in case the transaction log itself is corrupted (although log corruption would likely being up a different error message).

Mikel

davidreynolds5
Discoverer
0 Kudos

Thanks for the response.

The transaction log was lost due to the same hardware failure that caused the database corruption.

Attempting to start with the -f switch fails with the assertion error: 201129. I believe I may not have any options at this point but wanted to be sure.

former_member188493
Contributor
0 Kudos

You may not have any options... BUT... it may also be possible that only unimportant data at the end of the file was truncated... this is JUST A GUESS, but perhaps you could try adding bytes to the end of the file using some kind of binary editor, and repeatedly try to start the database. Make a backup file copy of the .db file first, so you can start everything over again if desired. Then start by padding it to the next 2K boundary, then add 2K chunks (the most likely block size). Or use 1K boundary and chunks.

The probability of that working is very low... but not necessarily zero : )

If it works, then you may be able to rescue some of your data.

Former Member
0 Kudos

David you can try Stellar Phoenix repair for SQL AnyWhere software developed by Stellar data recovery. I hope that it can help you.

It helps you in recovery of data from corrupt SQL AnyWhere database along-with tables, triggers, indexes, views, table properties and many more.

Good Luck!!!

davidreynolds5
Discoverer
0 Kudos

Thanks for the suggestion. I will give this a try.

davidreynolds5
Discoverer
0 Kudos

Thank you for the suggestion. I will look into that option.

Former Member
0 Kudos

Please share the result after using it.