Option 1 Write a line-level transaction data transfer application. This may take longer, but will not lead to interruption of the site using data, because there are lines before and after reading, only with new data. This processing will be performed on a separate server to minimize load.
In sql server 2008, you can set READ_COMMITTED_SNAPSHOT to ON to ensure that the updated row does not cause blocking.
But basically, this whole application reads new data, as it is available from one database to another.
Option 2 Move data (tables or an entire database) from the aggregation server to an external server. Automate this if possible. Then switch your web application to point to a new database or table for future queries. This works, but requires control of the web application, which you may not have.
Option 3 If you talked about one table (or this could work with many), then you can do swap exchange. So you write your code against the sql view that points to table A. You work in table B, and when it is ready, you update the view to point to table B. You can even write a function that defines the active table and automates whole swap.
Option 4 Perhaps you can use something like byte level replication on the server. That sounds scary. Which basically copies the server from point A to point B right down to the most bytes. This is mainly used in DR situations that sound like it might be a random / sorta DR situation, but actually.
Option 5 Give up and find out how to sell insurance. :)
source share