We currently have 1 SQL server with a fairly large database. We're running necessary SQL maintenance tasks in the evening that obviously degrade performance when users access the database during the maintenance window.
We'd like to be able to run the maintenance tasks without affecting the user experience. At first glance we thought SQL mirroring and then offloading all user access to the mirror during the maintenance window. The problem is, while failover to the mirrored server can be scripted during the maintenance window, there is no clear method of redirecting those user connections to the mirrored server as long as the primary server is still available on the network. Obviously, the primary server has to be up and active for us to run maintenance, and as long as it's up the user connections will be directed to that primary server.