Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

This has been killing me for weeks - I'm finally breaking down and asking for advice.

I'm currently in the process of setting up database servers for a startup web application. The application manages real-time payments at retailers, so downtime and redundancy are huge factors. I would like to keep an offsite hot backup as well in case we have a region failure.

PCI is also something we are bound to.

Initially, I investigated some MySql solutions such as NDB, Percona Cluster, MMM, and master/slave setups. After a ton of research, I don't think any of these systems could work - simply because of either downtime with failure or the high probability of data corruption.

I've since started looking at databases like mongodb and crunchbase, I feel like I'm just wondering aimlessly looking for a perfect solution, but I doubt I will find one.

I would really appreciate any guidance!

share|improve this question

closed as off topic by John Gardeniers, mdpc, Ward, Scott Pack, Michael Hampton Dec 27 '12 at 0:36

Questions on Server Fault are expected to relate to professional server, networking, or related infrastructure administration within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

1  
How many millions of dollars do you have to spend? –  Michael Hampton Dec 24 '12 at 21:44
    
@MichaelHampton Heh, I wish! Bootstrapping it with some ec2 nodes to start off with. That's the main reason redundancy matters. Those nodes can drop in a heartbeat. –  Jonathan Dec 24 '12 at 21:48
2  
You're trying to build a commercial business, which other companies will depend on, around a technological capability that you don't have and are trying to get from a free Q&A website instead of hiring an expert. Enjoy the flames, chief. –  mfinni Dec 25 '12 at 12:34

2 Answers 2

up vote 8 down vote accepted

Don't do that - find someone who will do it for you with some simple drop in code and let them worry about it. Sure it'll cost you a bit but look at what it's cost you already - weeks and you don't yet know where to start.

Do everyone a favour and don't roll your own.

share|improve this answer
    
Mind you, if it's a startup, this might the service that they're selling. In which case, it's not one of their core competencies, so this will be an entertaining diversion for observers. And, also too, PCI. –  mfinni Dec 24 '12 at 21:33
1  
@mfinni: If they're doing that I want to know who their customers are so I can avoid them. –  Iain Dec 24 '12 at 21:35
    
I absolutely would - given the chance, but as @mfinni stated, we are tied to PCI unfortunately. I apologize for not stating that beforehand. –  Jonathan Dec 24 '12 at 21:36
    
Please clarify...what does "this might the service" mean? ALso there are LOTS of DUE DILIGANCE things in this space....Find something like salesforce.com or go for oracle....or an existing package.. –  ArrowInTree Dec 25 '12 at 3:08
    
I did find pablowe.net/2010/04/pci-dss-mysql-requirement-3. Oracle has all sorts of Point-in-time and recover-in-x-blocks. Multiple destinations are also easy under oracle. I know. I have/had an Oracle certification but they are under serious fire. –  ArrowInTree Dec 25 '12 at 3:16

Why exactly couldn't simple MySQL / Percona replication work for offsite mirroring of data?

If the master goes down, just point the clients to the slave. In the meanwhile, build a new slave. If the new master goes down, repeat the process.

share|improve this answer
    
There would be a minute of downtime when switching master/slave. Downtime means our end customer cannot run transactions which is a HUGE issue. –  Jonathan Dec 24 '12 at 23:53
    
the promotion of the master can be triggered when the first transaction fails if you wanted to code it that way. have the "clients" point to a load balancer and have the load balancer point to the current master. or if there really is only one client (the web application code), then pointing would be even easier. –  user145837 Dec 25 '12 at 0:30

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