SQL Server 2012 licensing options

  • Hi everybody. After reading every guide and forum post that I can find, I still have a few questions about SQL Server 2012 licensing.

    Enterprise Edition: Requires per core licensing (4 core minimum, sold in packs of 2, so a 4 core system would require 2 licenses)

    If I'm not using virtualization and install multiple SQL Server instances on the same server, would I pay the per core price once or multiple times?

    Standard Edition Requires per core or Server + CAL.

    If I have an application that uses SQL Server Standard edition on a dedicated server, I'm buying a service license and then CALs. When they say per user, do they mean the SQL Server user that the application uses to query the database server? Alternately, per device, would the device be the application server? If there are two application servers but they log in using a single user id, would I purchase 1 user CAL or 2 device CALs?

    Thanks,

    Howard

  • Think I found the answer to the Enterprise question here. It looks if all cores are licensed, unlimited instances within a number of OS's up to the number of physical cores.

    Licensing for Maximum Virtualization

    With the SQL Server 2012 Enterprise Edition, customers who have licensed all physical cores on the server

    can run an unlimited number of instances of the software in a number of OSEs (physical and/or virtual) equal

    to the number of core licenses assigned to the server. For example, a four processor server with four cores

    per processor—fully licensed with sixteen core licenses—can run SQL Server software in up to sixteen VMs,

    regardless of the number of virtual cores allocated to each VM.

    ?? Customers who have licensed all the physical cores on the server and want to run SQL Server 2012 software

    in more VMs than are permitted can assign additional core licenses to the licensed server.

    ?? Each additional core license allows deployment of SQL Server software in an additional VM, so in the

    previous example, a customer who wants to run the SQL Server Enterprise Edition in eighteen VMs would

    simply acquire and assign eighteen core licenses to that server.

    With the addition of Software Assurance (SA) coverage on all Enterprise Edition core licenses (for a fully

    licensed server) customers’ use rights are expanded to allow any number of instances of the software to run in

    any number of OSEs (physical or virtual). This valuable SA benefit enables customers to deploy an unlimited

    number of VMs to handle dynamic workloads and fully utilize hardware computing capacity.

    Note: This benefit ends when SA coverage expires.

  • Still not clear on Standard Edition and the definition of a user or a device. Do application accounts count as users and do application servers count as devices?

    So, in the case where "people" don't connect to the SQL Server, would one application server connecting with multiple user ids benefit from a single device CAL where as several application servers connecting through a single application user id would benefit from a single user CAL? What about an ETL connection from a 3rd server? Would that require a 3rd device CAL? What if it logs in using the same user id as the application? Would it then be covered in the existing user CAL?

    Do DBAs who connect to the SQL instance to perform maintenance require a user CAL? If multiple DBAs connect remotely from the same management server, would that need only a single device CAL? What if the DBA connects to the database server through remote desktop connection then manages the server locally? Would that not require a device CAL? Also, what about a monitoring tool that logs into the instance to collect performance information, do we need an additional device CAL for that tool? Are those type of connections accounted for in the license agreement?

    Thanks for helping me to understand.

  • Any answer you get here will be opinion. You really should be talking to your SQL Server vendor or Microsoft.

  • Lynn Pettis (1/10/2014)


    Any answer you get here will be opinion. You really should be talking to your SQL Server vendor or Microsoft.

    Thanks Lynn. I'll do that. Several management levels in between me and our vendor so was hoping to go into any meeting with some level of understanding.

    The documentation online is rather vague so I guess there is not one true answer to how the licensing works.

  • The term "user" refers to a person sitting in front of a PC.

    A "device" is a system not directly used or influenced by a person (e.g. a robot in a assembly, but even this example might get more complicated...).

    It doesn't matter how many "steps" (= other applications) are in between. A device can also a PC (e.g. an information terminal being used by more than one person).

    The general MS recommendation: if you can't precicely calculate the max. number of "named users" or "named devices" use a core licensing model (they usually add the intermediate step "hire a MS license Pro to assist you" bot that person usually comes to the same conclusion...).

    Think of a Web based application: the app might just use a single "system user" to connect to the database. But you'll still need to license each and every person/device accessing your web site if you'd decide to use a CAL based license. To quote MS: "Devices not operated by humans require device CALs, even when connecting to SQL Server indirectly. For human operated devices such as PCs or hand-held terminals, a user CAL or device CAL may be used." (Source: SQL Server 2012 Licensing Quick Reference Guide.pdf).

    If you have a company internal intranet solution you might be able to use a user-based or device based solution since you're able to calculate the number of users/devices. But you'll need to track it permanently (e.g. a dptmt. hires 10 new people you'll need to verify if the number of purchased CAL's will cover for that...)

    To me it looks like MS purposely uses a vague licensing system to force the customers being in doubt and go for the "safe side" (= expensive model = more MS profit).

    But it's also some kind of "fun" to "trap" MS with their own requirements 🙂 (been there, done that)

    Even MS license "specialists" couldn't finally answer our (rather easy) questions. To my knowledge they didn't make any money out of it since they weren't able to do what they were hired for: answer a "simple licensing question" 🙂 (The final agreement with MS must not be published I've been told...)

    To answer your question ("When they say per user, do they mean the SQL Server user that the application uses to query the database server?"): No.

    They refer to each and every person/device connecting to SQL Server. A CAL license can access any SQL Server instance of the same or lower version as the purchased license (SQL 2012 license can also access a 2008R2 instance but not vice versa). If your app is installed on just a few PC's being used by several people, then you're better off using a device CAL. If the app is on a server and the users connect from their own PC then you'll need to license each and every user or PC.

    Example: If you have 10 handhelds (being used by 10 persons per shift for 3 shifts per day) connecting to an app server that will connect to a SQL Server you'll either need 30 user CALs or 10 device CALs.

    Long story short: calculate the number of persons using your app and the number of front end PC's (and the like) being involved. If you can't do either one, use a core based license. Otherwise, get the lower number of licenses.



    Lutz
    A pessimist is an optimist with experience.

    How to get fast answers to your question[/url]
    How to post performance related questions[/url]
    Links for Tally Table [/url] , Cross Tabs [/url] and Dynamic Cross Tabs [/url], Delimited Split Function[/url]

  • Maybe someone can clarify one part of the documentation that I'm currently having an issue understanding fully. On page 12 of the SQL Server 2012 Licensing Reference Guide (http://download.microsoft.com/download/7/3/C/73CAD4E0-D0B5-4BE5-AB49-D5B886A5AE00/SQL_Server_2012_Licensing_Reference_Guide.pdf), it states:

    Licensing for Maximum Virtualization

    With the SQL Server 2012 Enterprise Edition, customers who have licensed all physical cores on the server

    can run an unlimited number of instances of the software in a number of OSEs (physical and/or virtual) equal

    to the number of core licenses assigned to the server. For example, a four processor server with four cores

    per processor—fully licensed with sixteen core licenses—can run SQL Server software in up to sixteen VMs,

    regardless of the number of virtual cores allocated to each VM.

    If I understand this correctly, it's saying that I can run as many VMs (equal to the number of physical cores licensed) with an unlimited number of virtual cores. Example; If I've licensed 8 physical cores, I can run 8 VMs with 4 virtual cores each.

    However, if I bought the same with Software Assurance, I can then run an unlimited number of VMs with an unlimited number of virtual cores per each one.

    Can anyone confirm, or correct this for me? Thanks!!

  • The most a DBA should be doing is to advise what additional licensing may be required. There are professionals in this area who should make the final decision. Somebody in your organisation will be tasked with dealing with the Microsoft license, and they will have a better understanding of the T&C that apply. You should make clear how you intend to use your licenses (real or virtual servers, in-house or in-cloud, etc), so that your license vendor can check you are buying the right licenses.

    There are many discounts and permutations within a Microsoft license agreement, and it may be that your calculations of cost of CAL against CORE licences does not get the same financial answer that your license vendor will give.

    It is also accepted practice that if your server has more cores than you need to you, you can licence only what you need to use providing that you set processor affinity to match your licensing. This applies to both virtual and physical servers, but be aware that hyperthread cores are treated just the same as physical cores when you license a virtual server.

    Also remember that SQL Standard Edition will not use more than 16 cores. Therefore you only have to license this number even if your server is presenting a higher core count to Windows.

    Original author: https://github.com/SQL-FineBuild/Common/wiki/ 1-click install and best practice configuration of SQL Server 2019, 2017 2016, 2014, 2012, 2008 R2, 2008 and 2005.

    When I give food to the poor they call me a saint. When I ask why they are poor they call me a communist - Archbishop Hélder Câmara

  • I'm not sure I agree with that SSCrazy. Hyperthreading is only supposed to apply in standalone virtual licensing....not physically licensed cores. Do you have a resource where I can read this from Microsoft? Thank you.

    MicrosoftServerVirtualization_LicenseMobility_VLBrief.pdf

    You have the following two options for licensing under the per core licensing model:

    1. Individual Virtual OSE. You can license based on individual virtual OSEs within the server that are running the server software. If you choose this option, for each virtual OSE in which you run the server software, you need a number of licenses equal to the number of virtual cores in the virtual OSE, subject to a minimum requirement of four licenses per virtual OSE. In addition, if any of these virtual cores is at any time mapped to more than one hardware thread, you need a license for each additional hardware thread mapped to that virtual core. Those licenses count toward the minimum requirement of four licenses per virtual OSE.

    2. Physical Cores on a Server. You can license based on all of the physical cores on the server. If you choose this option, the number of licenses required equals the number of physical cores on the server multiplied by the applicable core factor located in the SQL Server 2012 Core Factor Table.

  • I am not sure which aspect you are referring to. This link

    http://download.microsoft.com%2Fdownload%2FC%2F3%2F7%2FC37F243B-0246-493E-ABFC-41A7FFD6DE38%2FSQL_Server_2012_Virtualization_Licensing_Guide.pdf

    has a section called hyper-threading which may be of help.

    Original author: https://github.com/SQL-FineBuild/Common/wiki/ 1-click install and best practice configuration of SQL Server 2019, 2017 2016, 2014, 2012, 2008 R2, 2008 and 2005.

    When I give food to the poor they call me a saint. When I ask why they are poor they call me a communist - Archbishop Hélder Câmara

  • Thanks. I did read that section and again, that applies to "Licensing Individual VMs with Hyper-threading"....not to licensing a full server blade's processor cores for maximum virtualization. That brings me back to my original question. I 'have' licensed all the physical processor cores, without Software Assurance, I know I cannot exceed the licensed core count for the number of VMs I create. However, the documentation suggests that I can run an unlimited number of virtual cores on those limited number of VMs.

    Sorry, I'm not trying to be argumentative. Just trying to get a firm answer to this question. I've posed the question to Microsoft and their response did not clear it up. They have elevated the question so if I get an answer, I will post it here. Unfortunately, I am a one man shop when it comes to MS SQL. I don't have others in the organization to assist me with the licensing. Each time I read through the documents, I take away something new. Although MS attempts to clearly describe scenarios, there are still a few cracks in the pavement. My question is one of those cracks and I hoped that someone else had experienced the same thing and could share their own experience.

  • I think our understanding is the same.

    If you licence all the physical cores on a server you own, then you can run an unlimited number of VMs on that server each one using an unlimited number of cores, without needing any extra licensing. In this situation you do not need to account for hyperthread cores, just the primary cores.

    However, if the server is owned by a third-party (eg in a cloud) and hyperthreading is turned on then you need licensing for both the primary and the hyperthreaded cores.

    Also if you are running SQL on VMs and the physical host used for your servers may change at some time then you also need License Mobility (which is only available as part of Software Assurance) to be licensed. (We run in AWS and when we patch our servers we power them down after patching to take a server image backup. At reboot the VM may come up on a different host so we need SA. I call this a Virtualisation Tax.)

    This understanding is the result of a long discussion with Microsoft and our license vendor, but ultimately could be wrong. The deal you get from your license vendor is the deal you have to comply with.

    Original author: https://github.com/SQL-FineBuild/Common/wiki/ 1-click install and best practice configuration of SQL Server 2019, 2017 2016, 2014, 2012, 2008 R2, 2008 and 2005.

    When I give food to the poor they call me a saint. When I ask why they are poor they call me a communist - Archbishop Hélder Câmara

Viewing 12 posts - 1 through 11 (of 11 total)

You must be logged in to reply to this topic. Login to reply