Please be aware that the content in SAP SQL Anywhere Forum will be migrated to the SAP Community in June and this forum will be retired.

A client plans to move a database engine to a VM while upgrading to SA12. Currently they use SQLA 9 with 1 processor licence which covers 2 physical processors. The licence model for SQLA 12 is different, each physical processor requiring a separate licence.

I googled for hints on that topic and found that page:

But that didn't get me very far, there's no such simple case with only one instance or SQLA.

The new machine might have 2 or 4 quad core processors (I don't know yet). I'm a newbie when it come's to virtualization (apart from using VM's for test environments). So I'm unable to imagine how to count processors in a VM.

Any insights are welcome!

asked 11 Nov '10, 18:05

Reimer%20Pods's gravatar image

Reimer Pods
accept rate: 11%

edited 12 Nov '10, 14:23

Reimer, In version 9.0, we sold a 2 CPU package. So, your comment that your version 9.0 "1 processor licence which covers 2 physical processors." is actually incorrect. After version 9.0, we changed the packaging, so it is only a 1 CPU package.

Therefore, in version 12.0, you need 2 of the 1 CPU licenses.

Now, to your actual question: The license is on the number of CPUs, and NOT the number of cores. On a machine with 2 quad-core processors, you will need 2 CPU licenses.

Now, to answer the question about Virtualization. A VM is treated by our license as a machine. There is nothing special about virtual machines. The "machine" that you are running SQL Anywhere has to be properly licensed for the number of CPUs that you want your SQL Anywhere Server to use.

permanent link

answered 11 Nov '10, 21:10

Chris%20Kleisath's gravatar image

Chris Kleisath
accept rate: 37%

Comment Text Removed
Comment Text Removed
Comment Text Removed

@Chris: Thanks for correcting me and for your explanation. What I still don't understand is the way SQLA differentiates CPUs from Cores w.r.t. to a VM. I have to admit my knowledge of how processors or cores are assigned to a VM is nonexistent, so I need it to be spelled out for dummies ;-)

(12 Nov '10, 14:21) Reimer Pods

@Reimer: There are low level API calls on each operating system that SQL Anywhere Server uses to determine the number of CPUs (sometimes, in various Sybase licensing and marketing literature these are called "chips", or "sockets") and the number of cores on each CPU. SQL Anywhere is licensed by the number of CPUs. Some other Sybase software, such as ASE, is licensed by the number of cores.

(15 Nov '10, 16:33) Chris Kleisath

@Chris: (sorry about the lateness...) So just to clarify - If I am running SQL Anywhere on a virtual machine that is allocated 4 vCPU's (equivalent to a single physical CPU) we would need to purchase 4 x 1 CPU licenses? Which would also mean we would need to purchase the SQL Anywhere standard edition as the workgroup edition can only run on 2 CPU's?

(18 Jan '11, 07:02) Nick Brooks

As I understand it, the software running in a VM thinks it is running on real hardware. In that sense, if the VM is only presented with 1 processor (whether this comes from 1 of many real physical processors, or merely 1 core of a multi-core processor) it will only be able to see the 1 processor.

That is how the software itself would interpret the situation. How Sybase as a company would interpret the licensing is another matter. I am not sure if they license based on actual physical processors on the box housing the VM (which in a large scale VM setup could change at any moment) at that point or again the processors presented to the VM itself.

This is all conjecture. Please correct with real Sybase-certified info.

permanent link

answered 11 Nov '10, 20:03

Siger%20Matt's gravatar image

Siger Matt
accept rate: 15%

I talked to Sybase sales in Germany. To make it short, this is the summary of our conversation :

  • For a physical machine, use a CPU licence for every CPU (alias processor, socket, chip, but not core) to be used.
  • In a virtual machine, every assigned (aka logical) processor needs a CPU licence for SQLA usage, even if it's a actually only a core.

That sounds logical, if I assume that applications running in a virtual machine can't tell if a processor is "real" or "virtual".

permanent link

answered 28 Mar '11, 06:03

Reimer%20Pods's gravatar image

Reimer Pods
accept rate: 11%

My observation at a client site using VmWare: they "allocate" the number of processors to each VM they create. So the hardware has 2 CPUs, they allocated only 1 CPU to our database server, so when I look in Control Panel/System on that VM it says it is running on a 1 CPU machine. Therefore they purchased a 1 CPU license. (If I understand correctly, a 1 CPU license will automatically only use 1 CPU even if the hardware has more than 1 CPU. So I think the licensing takes care of itself in that regard.)

permanent link

answered 12 Nov '10, 19:43

Bill%20Aumen's gravatar image

Bill Aumen
accept rate: 16%

@Bill: You are correct. A 1 CPU licensed SQL Anywhere Server will only use 1 CPU, even if the hardware has more than 1 CPU. The actual details of how we do this involve understanding the number of OS threads the server creates. If you really care about this, then some of the engineers on the server team could go into great detail on it. That explanation might be quite interesting, but won't actually help in deciding which license to buy. :-)

(15 Nov '10, 16:37) Chris Kleisath

This isn't an answer, it's an exhortation: Be prepared to hear your client complain about performance problems after virtualization. Maybe it won't happen, but... if the current non-virtualized database engine uses, say, only a small percentage of the CPU capacity, it may be a good candidate for virtualization... unless it also does a lot of disk I/O and that disk I/O is optimized by heavy use of the RAM cache, and after virtualization the database is starved for RAM, and the hard drive light comes on and stays on 24 by 7.

"While physical CPUs are frequently amenable to muliplexing, main memory is not. Many services run comfortably on a machine with 1GB of RAM; multiplexing 10 VMs on that same host, however would allocate each just 100MB of RAM. Increasing a machine's physical memory is often both difficult and expensive." - "Difference Engine: Harnessing Memory Redundancy in Virtual Machines", Communications of the ACM, October 2010

Caveat Emptor: I have zero personal experience setting up database servers on VMs, and very little second-hand knowledge... 100% of that being tales of woe. My simplistic answer is always "get off", like the simplistic medical advice "if it hurts when you do that, stop doing it."

Of course, clients don't often call and tell me when things are going well so perhaps there are many success stories :)

permanent link

answered 13 Nov '10, 09:25

Breck%20Carter's gravatar image

Breck Carter
accept rate: 20%

edited 13 Nov '10, 09:44


We have a few clients using VmWare and one using Microsoft Hyper-something-or-ruther. Our largest client has 2 sharp techs who setup and manage the servers: they buy good hardware, pack it with plenty of RAM and disks, use all the VmWare tools to make servers work great, and the performance is... at LEAST as good as the days when we had excellent, dedicated boxes. Other clients read the marketing white paper, installed VmWare on the same white box they are now using for a single server, and guess what... performance AND EVERYTHING ELSE (like reliability) sucks.

(13 Nov '10, 16:51) Bill Aumen

Having the sharp techs and the good hardware and the RAM and the disks... doesn't that wipe out the savings that a pile of $300 servers from Tiger Direct would give them? :)

(14 Nov '10, 11:19) Breck Carter

With virtualization you have other advantages than just pricing. If you have a hardware failure you can easily bring back the complete system online on a different server. This is also a use case for hardware migrations. So if you want to run your db on a more powerful server you don't have to reinstall everything, you just have to exchange the hardware. Another advantage is delpoyment, you can prestage everything in a VM environment and then you can just ship the VM machine to the productive system.

(15 Nov '10, 08:37) Martin

I appreciate every bit of information I can get w.r.t. virtualization. We have some clients using SQLA in a VM and everything runs smoothly (2 x 4 Cores, 24 GB, SAS-SAN ...). This particular client is part of a larger enterprise whose IT department told our client: "you're systems will be virtualized". So it's not about DO IT or DON'T, it's just: how do I count licences if they don't want to licence per seat.

(15 Nov '10, 14:22) Reimer Pods
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]( "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: 11 Nov '10, 18:05

question was seen: 13,196 times

last updated: 28 Mar '11, 06:03