In most cases, dbmlsync determines what to upload by using the SQL Anywhere transaction log. The offset indicates the point to which all operations for a subscription have been uploaded and acknowledged.
SQL Anywhere databases maintain transaction logs by default. You can determine where the transaction log is located, or whether to have one, when you create the database.
The transaction log may not be required if you implement scripted upload or only use download-only publications.
To prepare the upload, the dbmlsync utility requires access to all transaction logs written since the last successful synchronization of all subscriptions for the MobiLink user who is synchronizing. However, SQL Anywhere log files are typically truncated and renamed as part of regular database maintenance. In such a case, old log files must be renamed and saved in a separate directory until all changes they describe have been synchronized successfully.
You can specify the directory that contains the renamed log files on the dbmlsync command line. You may omit this parameter if the working log file has not been truncated and renamed since you last synchronized, or if you run dbmlsync from the directory that contains the renamed log files.
Suppose that the old log files are stored in the directory c:\oldlogs. You could use the following command to synchronize the remote database.
dbmlsync -c "dbn=remote;uid=syncuser" c:\oldlogs
The path to the old logs directory must be the final argument on the command line.