I have a webserver, lets call it example.com, IP 1.2.3.4. It hosts a few dozen domains, and also acts as a DNS server.

In another city I have a backup server - example1.com, IP 4.3.2.1 . My intention is to mirror the main server. If the main server goes down, I update the DNS for each of the hosted domains (to set the nameservers to example1.com). Example1.com then returns 4.3.2.1 whenever a client looks up one of the hosted domains. In other words, my hosted domains become 'live' on 4.3.2.1

With me so far?

The downside to this is that I'd have to manually update the DNS settings for each of my hosted domains (and many are with different registrars). So I wondered if the following scenario would work:

For each of my hosted domains, I set example1.com as the primary DNS, and example2.com as the secondary. Both DNS servers return different results - eg if I query mydomain.com at example1.com, it returns 1.2.3.4, if I query it at example2.com it returns 4.3.2.1. Since I don't want users hitting example2.com while example1.com is up and running, I disable BIND on example2.com. If the user's resolver queries example1's NS , all is fine; if it queries example2's NS, it doesn't receive an answer, so tries example1, and again all is good.

If example1.com goes down. I bring BIND up on example2.com. If the user's resolver queries example1.com, it gets no answer, and queries example2.com. Or it may just query example2.com first - either way, it gets the 4.3.2.1 IP as the answer.

Are there any drawbacks to this method?