In a single server environment, it is rather easy to create a transaction consistent backup.
You find (or force a specific point in time with no open transactions.
Freeze your server, take a snapshot and you are done.
With Sharding your DB is distributed across several server instances.
For high availability situations, you may run synch or async Mirrors.
But this doesn't solve the problem to generate a transaction consistent Backup.
I'd like to get your ideas on how this could be achieved as I see 3 important factors:
- no pending transactions
- all changes written to DB
- all across all Sharding Servers