I'm writing a spec for a high availability application. I need a low budget solution to be able to failover between two data centers. Replicating databases and content I'll be able to manage solutions for. What are some solutions for "cutting over" from one location to another?
Your problem is two-fold. One is how you replicate data; second is how you direct traffic to the currently active site.
1: This heavily depends on your requirements. Synchronous replication is expensive, really expensive, mostly hitting your network costs. Async can be done in many different, both simple and cheap, and complex and vendor-license-cost-bleeding ways, but won't give you the assurance of never losing any data. Talk to your business leaders, find out what they want to see, build something that answers those specific requirements.
2: Two standard approaches are modifying DNS records (which you seem to be aware of, judging by the question tags) or running BGP.
Most existing GSLB appliances use DNS: the hardware that's aware of your servers' status acts as the authoritative server for you domain, issuing responses that point the clients to the appropriate site. Your failover time depends on TTL set for the zone and the behavior of client software. This approach doesn't guarantee 100% success, but seems to be accepted by everyone as "good enough". You can do the same without dedicated hardware, just with some smart scripting (monitor the hosts, modify bind zone files and reload bind when necessary).
BGP is more clearcut: you advertise your IP block from the site that needs to receive all traffic, and within the convergence time (15 minutes or so) all traffic will go there. No dependency on broken DNS resolvers or name caches. More difficult to setup though - you do need BGP capable routers at both sites.
To handle real time data center failover (aka DR) for your databases you'll need some storage which can handle real time synchronous replication between the sites. All your big storage array's can handle this but they are pricey. Starwind software has some storage software which will turn any Windows server into a storage array.
Some more information as to what you are trying to do, what platforms you are looking at, etc would be most helpful.