We have a software backed with database. We want to keep database at a remote location and have it all the time available. For this task, a 5 year old project experience came into my mind. I remember, IT department over there asked me to deploy database not locally but remotely on another LAN computer. They told me, there will be two computers there but thanks to a special software, I will see only one Windows OS interface and that software will handle all sync, backup, replication .. tasks. They were calling it "virtual machine".

So with the IP they gave me, I just connected to so called virtual machine and I just deployed my SQL database there just like it is in a local machine. In summary, we need such a solution now for ourselves. I made some search on the net and I found out Automatic Failover, Database Mirroring etc. topics. But I am not sure these refer to what I described. At this point I need your help. Maybe there is a better solution after 5 year for such a task. I am not a database administrator.

I did not choose a specific database yet. Our software can connect to several number of major databases. Just seems that SQL will provide a robust solution for that. And In short, what we need is to have a database backend which will be always available to us. So in the case of failures, it should have a system to automatically switch to working replica.


What you're describing sounds like Microsoft Sql Server HADR commonly called AlwaysOn Availability Groups. It combines traditional Windows clustering with Database Mirroring to allow you a primary replica and up to 4 (Sql Server 2012) secondary replicas.

Once set up correctly it will provide you with a single IP address and port # to use as a connection target for your application. Setting up the mirroring portion is a bit more than just deploying your database to the connection though there are ways to automate that also.

The replicas may be geographically separated as well as residing on different sub-nets and domains.

  • This seems a very suitable solution. But as our software can connect to several number of major database systems such as PostgeSQL, MySQL, Oracle, SQL Server etc. , there would be any other similar and cheaper option for this task? For example, can this solution be achieved by PostgreSQL and virtual machines operating linux servers? Jan 18 '17 at 12:05
  • I have heard that Oracle clusters can use a similar architecture but I don't have any data on other systems. On Oracle it is called "Shared Nothing" clustering. Jan 20 '17 at 0:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.