Today, I had a process running amok and filling up my boot volume. This was bad, as Safari seems to have tried to update my RSS feeds and failed in the process, leaving a Database3_BROKEN file in my user's Library/Syndication folder. This was especially annoying as I have a backlog of hundreds of unread articles. On several sites, this amounts to more articles having been accumulated than entries in their respective RSS feeds. It would have required a lot of work to check all the sites I have subscribed to manually. So I set out to find a solution that did not involve trashing my old Syndication database.
This command worked for me on 10.4 (in Terminal):
A word of caution though: check the repaired database carefully before relying on it. According to the somewhat unrelated discussion that led to this solution, this may not work for a database if the application using it died in the middle of a commit. This can result in both records and index being broken. In any case, this should be worth a try.
sqlite3 broken.db .dump | sqlite3 repaired.db
Mac OS X Hints