A Virtuoso transaction log file may fail to replay, with an error of the form:
11:42:57 Invalid log entry in replay. Delete transaction log virtuoso.trx or truncate at point of error. Valid data may exist after this record. A log record begins with bytes 193 188 5 188 0. Error at offset 13205546 11:42:57 Searching for the next valid header signature starting at 13205547 11:42:57 No valid looking header found. 11:42:57 Server exiting
Resolution of this error varies with the kind of Virtuoso server you're running.
This can be recovered by truncating to the transaction log to the reported error offset.
Unix-like OS can use the built-in dd
command; Windows users must first install WinDD or cygwin to get the same functionality.
Given the error above, the recovery steps on a Unix-like OS would look like --
# mv virtuoso.trx old.trx # dd if=old.trx of=new.trx bs=1 count=13205546 13205546+0 records in 13205546+0 records out # mv new.trx virtuoso.trx # virtuoso-iodbc-t -f
Restarting Virtuoso should now succeed.