I am looking for suggestions/ideas to the following problem. We have a number of data warehouses for each of our clients (on SQL Server 2014). These data warehouses are maintained fairly fresh with continuous data loads every few minutes. When DW needs to change, this will, more often than not, require a complete data re-load. The challenge is that we can't afford to take DW offline for extended period of time and, consequently, make any applications, which use this data unavailable. It is acceptable if the data is stale, but it has to be available.
Therefore, we are looking for a solution, which will enable us to maintain a secondary copy of the data warehouse. Let's call these copies A and B. The secondary copy (B) needs to be kept in-synch with the primary copy (A). When the time comes to make significant DW changes, we would like for the following to happen: 1) stop synchronization between A and B 2) point our applications to the secondary copy (B) 3) perform our upgrade/maintenance/re-load of the primary copy (A) 4) point our applications back to the primary copy (A) 5) re-establish synchronization between A and B (we understand it will take some time)
So basically B acts as a temporary "fill-in" while A is being upgraded and reloaded.
The solution has to be automatable, meaning, we need to be able to do everything from a command-line/powershell.
We looked at some of the existing HA/DR technologies, for example SQL Server Always On, but it seems that breaking and re-establishing synchronization (as described above) may not be a good fit for it. It seems that what we need is a 3rd party software, possibly capturing disk activity at the system level.
I appreciate any ideas, recommendations or experiences.