"If it takes a long time to copy a database and it gets updated midway through, rsync may give me an invalid database file"
Wot? There are multiple ways of snapshotting/checkpointing, starting at the virty level and working on down the stack through the application level.