We have a database intensive Java application. The DB we use is SQL Server 2008.
We are thinking of shifting our Java application to a 2-3 node load-balancing cluster. We have frequent application feature additions/bug fixes (and hence new releases). Whenever any database change is not involved in a release, we could probably update the Java application by taking one node at a time from the cluster for maintenance and deploying the newer application on it.
However, sometimes we make releases that involve updating the DB. (We run scripts and stored procedures that add, remove or update data on the DB.) These operations sometimes require about an hour. Is there a way we can handle this in some way so that we don't have to take the application down during this period of updating the DB?
Can any type/configuration of clustering help in this situation? Is any kind of solution possible where in we have the DB on 2 servers (with mirroring or something) and we take one server offline for our update process and when update is over, we bring the server back online and it is updated with the changes that took place since it was taken down from the other server?
I am new to clustering (and more so to SQL Clustering). So pardon me if the above paragraph amuses you or sounds awkward.
Thanks for your answers.