Sincronização de banco de dados remoto/online

Bom Dia,

Tenho uma aplicação que trabalha 100% online, porém muitos clientes a usam durante viagem e não tem acesso à internet em tempo integral.
Precisaria disponibilizar a mesma aplicação em ambiente desktop, que quando tivesse internet faria a sincronização.

Pensei na seguinte aplicação:

Todo registro do banco de dados teria uma coluna que mostraria a data da ultima alteração, portanto, eu faria uma busca pelos registros alterados para sincronizar. Porém, surgiriam problemas como: e os registros excluidos como eu guardaria? e as chaves estrangeiras deveriam ser atualizadas (ja que na versao online a chave primaria sera diferente)?

Por isso… fui em busca de versões já implementadas para facilitar esse trabalho, achei esse aqui: SQLyog Job Agent

http://weblog.cemper.com/a/200410/15-sqlyog-job-agent-for-easy-mysql-replication-and-synchronization.php

Alguém já fez algo parecido? Usaram alguma ferramenta ou fizeram “na mão”?

Contem suas experiencias…

Abraços,