I'm setting an HA environment and I want to use mirroring with arbiter (to allow automatic failover). I have only two servers available, so I have to put the arbiter in one of them. So, if the server with the arbiter goes down, doesn't that mean that my mirror will stop functioning properly? Is there a way to have an arbiter on both servers. I'm a a total newbie and inexperienced in HA, but if there is no redundancy possible for the arbiter, doesn't the arbiter become a single point of failure?

asked 20 Apr, 20:39

fieldworker's gravatar image

accept rate: 0%

Memo to all: This is an important question, one that should be repeatedly asked and answered, so let's see some more upvotes!

(It's important because everyone thinks it at least once... I know I did :)

(21 Apr, 08:05) Breck Carter

I want to use mirroring with arbiter

Note, there is no mirroring without an arbiter. (The arbiter may be unavailable but it must be configured in the HA setup.)

if there is no redundancy possible for the arbiter

No, it's different: There are three servers involved in a HA setup, two partners and the arbiter. If at least 2 of the 3 can communicate with each other, the HA system can run, because it takes two servers to decide whether one of the partners can "have a quorum" and by that is allowed to "own" the database and make it available to connection requests.

If the single arbiter goes down, but the partner servers remain connected, they can still agree on the quorum, so the arbiter is no single point of failure.

Of course, if you have only two machines to run your three servers, and you therefore let partner 1 and the arbiter run on machine 1 and partner 2 on machine 2, the HA system will continue when machine 2 goes down but will stop when machine 1 goes down - in the latter case, only one server is left and cannot decide about the quorum alone.

I'd highly recommend to follow the HA tutorials in the SA docs.

permanent link

answered 21 Apr, 03:30

Volker%20Barth's gravatar image

Volker Barth
accept rate: 32%

edited 21 Apr, 03:32

Volker's answer is thorough and complete.

> doesn't the arbiter become a single point of failure?

No, the single point of failure is the single computer being used for the arbiter and one of the partners.

If you can't provide three separate computers, you shouldn't bother with HA.

The SQL Anywhere software costs several times more than a third computer; for example, Dell ships a brand-new Desktop for U$299.00 which is perfectly adequate for an arbiter... overkill actually, since it's got a 1T drive and two USB 3 ports so it could be used for backups.

permanent link

answered 21 Apr, 04:40

Breck%20Carter's gravatar image

Breck Carter
accept rate: 21%


Breck, you gave me a good topic to ask you. If the arbiter is a small software, why cannot I run it on a small machine, such as "Raspberry PI"?
Are there prerequisites, what the Arbiter must have (e.g. high throughput network, much RAM, CPU, dark colors etc.)?

(24 Apr, 04:13) Vlad

As Breck and Volker have correctly said, if you aren't using 3 separate machines for the partners and arbiter, you don't have HA. There is no way around this with only two computers.

Note that you could consider using a root server and copy node if you don't care about failover (say for disaster recovery - but you can lose an unbounded number of transactions in that configuration). A root server and a copy node will work correctly with only two computers. Also note (as Breck says), the arbiter server doesn't consume significant resources, so modest hardware is adequate for the arbiter. Finally, one SQL Anywhere server can function as an arbiter for multiple HA systems, even if the arbiter is on modest hardware.

permanent link

answered 21 Apr, 08:49

Ian%20McHardy's gravatar image

Ian McHardy
accept rate: 38%

> root server and copy node

> arbiter for multiple HA systems

(21 Apr, 16:59) Breck Carter
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: 20 Apr, 20:39

question was seen: 350 times

last updated: 24 Apr, 04:13