We are planning to implement new servers and storage, etc for an database server.
Actually, this database have about 70gb of data, growing +- 50mb/day.
It's an internet banking with about 800-1k concurrent users. We need to provide fast response and great availability.

I'm thinking:
1 primary server 16gb ram ecc 2x quad core + storage raid 10 15k rpm sas or ssd.
1 secondary server virtual with data in another storage.
1 arbiter server virtual (in different server than secondary) - this can act as backup server.

What can you suggest me? At this time, money isn't problem.

This question is marked "community wiki".

asked 16 Nov '09, 22:30

Zote's gravatar image

accept rate: 43%

edited 12 Dec '09, 09:08

Breck%20Carter's gravatar image

Breck Carter

To help with your hardware investment, you should take a look at this whitepaper : Capacity Planning with SQL Anywhere

and possibly this one: Diagnosing Application Performance Issues With SQL Anywhere

Even though your budget may be large, doing a few things up front to figure out where your bottlenecks (or potential bottlenecks) are likely to be will help to guide you to where you should spend your money to get the best return for your investment.

permanent link
This answer is marked "community wiki".

answered 17 Nov '09, 13:57

Jason%20Hinsperger's gravatar image

Jason Hinspe...
accept rate: 35%

Nice links for performance tunning. But about high availability, how is my "solution" ?

(17 Nov '09, 16:08) Zote

Technically, your proposed setup for HA is fine. The only question I have regarding this setup is the same as Brecks. Consider your performance expectations for the secondary server running on a VM - what does the VM configuration look like? How many other VMs will be active on the same hardware? The arbiter server has very low utilization, so the hardware for it can be low-end.
As Breck says, backup and HA should be treated separately. I think it is ok to use the arbiter machine to take backups, but those backups should be moved offsite to ensure recovery from a site level disaster.

(17 Nov '09, 20:41) Jason Hinspe...

Normally I would not jump in with the first answer because I'm not a hardware or networking guy. I would wait for someone at iAnywhere to answer. And normally, they would (where "normally" means "on the NNTP forums").

However, Dave Neudoerffer said this: "we have asked our staff to try to allow time for the community itself to provide the answer, rather than jumping right in with the first answer".

So... I'm going to "game the system" by jumping in first ( where "game the system" means "cheat" :)...

You should try to eliminate all single-points-of-failure. That means physically separate computer hardware for all three servers... nothing shared. That includes physically separate UPS's. That means physically separate network hardware for all three connection paths: arbiter to primary, arbiter to secondary, primary to secondary; separate NICs (6 total?), separate cabling, separate ... ( this is where the "not being a network guy" really kicks in, I don't even know how to spell "fiber" :)

Plus, two physically separate locations for primary and secondary. How "separate" depends on your budget but certainly not "separate slots in the same rack". Since you said "banking" in a sentence, separate buildings or even separate postal codes may be justified. Think fire, flood, windstorm, "civilian unrest".

Here's a major point: Backup is a separate issue from high availability. The backup destination should be in a third physically separate location, far far away. It is possible and probably recommended to have two or more backup destinations, one further away than the other. I haven't used live backup (dbbackup -l) together with high availability but I can't think of any reason why it wouldn't work to provide warm standby on top of hot failover... I have seen multiple live backups in operation (before the days of HA), one database with two warm standbys in different locations (local and co-location).

Since the arbiter has so little in the way of requirements, I don't see the advantage to putting it on the same box as any of the other components, including the backup destinations. Or anything else for that matter.

About virtualization...

As far as I can see, the one and only reason to virtualize anything is to save money. I have never heard anyone say that virtualization does anything to eliminate single-points-of-failure. In fact, it seems that when you virtualize anything, by definition you are creating a single-point-of-failure. I'm not saying virtualization isn't the greatest thing since indoor plumbing, I'm saying it doesn't apply to high availability or backup... saving money isn't the primary goal, saving your life is.

To continue the analogy: indoor plumbing is wonderful at home and in the office, but it's really not important when you're 1000 feet underground in a mine shaft... down there, you are thinking about safety, not comfort.

Having said all that, what I really think is that you should hire someone (on short-term contract?) to advise you on the hardware and networking configuration. Or, exploit the vendors, get Cisco to teach you what you need, for example. It's really important to get a second opinion, especially when the first opinion is your own... it's called due diligence. Be careful, however, the world is full of imposters... trust but verify, and Google Search is great for that.

The SQL Anywhere part's easy... the hardware part is scary-hard.

permanent link
This answer is marked "community wiki".

answered 17 Nov '09, 07:27

Breck%20Carter's gravatar image

Breck Carter
accept rate: 20%

Actually, we have 2 physically separate UPS's. Each server, router, etc power supply is conected to 1 UPS.

(17 Nov '09, 12:17) Zote
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:


question asked: 16 Nov '09, 22:30

question was seen: 1,345 times

last updated: 12 Dec '09, 09:08