Using SQLAnywhere / Mobilink 11 64bit
We just recently started getting the error: Found duplicate or partial transaction logs and file name in our staging environment. Adding the -do switch to our dbmlsync call seems to resolve the issue.
Any ideas why has this suddenly come up? We do have multiple databases (and their transaction logs) in the same directory, but we have been running in this same configuration for some time without issue. Also is using the -do switch the correct action?
The problem might be that one of your databases has created an offline log. That happens when you do a backup with renaming the transaction log (e.g. BACKUP DATABASE ... TRANSACTION LOG RENAME). You have then two logs for the same database:
The same renaming of logs can be done with DBMLSYNC -x (and DBREMOTE -x).
Whereas the names of the original logs for different databases are different (i.e. db1.log, db2.log, ...), the names for renamed logs are similar. As such, DBMLSYNC can't know which renamed log belongs to which database if they are stored in the same directory. So it might be that it scans a renamed log of the wrong database. That may lead to inconsistencies in the log offsets - resulting in the eror message you got.
I would generally recommend to put different databases with their logs in different directories to prevent this problem.
DBMLSYNC -do may be your solution for the moment but only as long as there's no need to rescan a renamed log.
answered 25 Jun '10, 09:59