In our organization, having daily cut-off data is important. We are planning a database for as system that collects data from external systems and will be committing transactions throughout the day. For our analysts we would like to set up a replicated mirror. We would like the mirror database to be refreshed once per day at exactly midnight such that all transactions committed before 12:00:00.000 AM midnight are included and all transactions committed on or after 12:00:00.000 AM midnight are excluded.
We expect the amount of data in the database to grow to a point where snapshot replication would end up taking too long to synchronize each night. So, we are looking at setting up transactional replication with a scheduled (or maybe on demand) push distribution agent that runs once per day at midnight.
My question is about the data cut-off for the distribution. Let's say that the push distribution agent is started at 12:00 AM midnight and runs for 10 minutes until 12:10 AM. Meanwhile a transaction commits in the publisher database at 12:05 AM. Will that transaction be pushed to the subscriber? In my case I hope not. But if so, I can program the data collection to pause for the distribution period. I just need to know which way I need to do it.
Is there some other way to do this, like maybe informing the distribution agent to not go past a certain time or transaction ID?
Dan Jameson
Associate Director of IT/DBA
Children's Oncology Group
www.ChildrensOncologyGroup.org