Download presentation
Presentation is loading. Please wait.
Published byJarmo Hovinen Modified over 5 years ago
1
Understanding and making good decisions on SQL licensing
Dustin Dorsey Understanding and making good decisions on SQL licensing
2
Who am I? Managing Database Engineer for Lifepoint Health (Fortune 500 company) - LinkedIn – linkedin.com/in/dustindorsey Twitter Blog (Work in progress) - I have been working with SQL Server for over 10 years in development and administration Have worked with several companies to discover\reduce their licensing costs by millions
3
Agenda Help you understand the options for SQL Licensing so you can make good decisions Provide you with information that can help determine where you are with your existing licenses Provide you with takeaway items that you can begin doing now to put this information to use We will be focused mostly on licensing for Windows, although a lot of this applies to Linux\Containers as well. We will not be looking at licensing for Analytic Platform System\Parallel Data Warehouse (PDW), specifically Azure, This presentation will primarily describe on premise, but applies to cloud as well. Will mention some cloud scenarios throughout the presentation if it may differ
4
Disclaimer I am not a representative for Microsoft or any other Microsoft approved partner. This session is intended for informational purposes only. You need to work with your Microsoft Rep or 3rd party provider to understand your agreement and the actual costs\benefits to your organization. This presentation is created with the guidelines in SQL Server 2017 (the latest licensing guide) This presentation is not a blueprint for how you should do licensing, it is meant to provide you with information to help you determine that. HIGHLY encourage you work with your reseller. Also highly suggest that you get anything that tell you in writing. Mistakes happen, licensing is confusing
5
How licensing makes some of us feel
6
How licensing makes others feel…
7
SQL Server Editions Enterprise ($$$$) – Full version of SQL. Used for applications requiring mission critical in-memory performance, security and high availability Standard ($) – Slightly scaled versions of SQL. Typically used for mid-tier applications and datamarts. Web ($) – Web hosters and Web VAPs Express – Free version of SQL Developer – Non-prod use * There are some other editions that we are not going to focus on in this session There are other versions that are not listed here. We will be talking about the ones listed. – Web – Only available under Microsoft Services Provider License (SPLA)
8
MSRP Costs* Enterprise – $14,256 per license which includes 2 cores
Standard – $3,717 per license which includes 2 cores Standard server + CAL - $931 server license + $209 per CAL Express – Free Developer – Free** Software Assurance (SA) – Usually around 30% of license costs and paid yearly * Based on SQL 2017 pricing ** Microsoft made Developer edition free starting with SQL 2014 Licensing is expensive, so understanding and making the right decisions can save you tons! These are MSRP numbers and not the numbers you are likely paying. Please work\negotiate with your Microsoft rep or 3rd party re-seller Developer edition became free through Dev Essentials or Microsoft website starting April 1, You must make sure there it is truly non-production.
9
Is non-prod free? Maybe…
Starting with SQL 2014, Microsoft started offering Developer free via the Visual Studio Dev Essentials (VSDE) program OS is not included You may be covered under Visual Studio Subscription (MSDN) licenses Work with your rep to understand your coverage here $50 per user if you are not covered under MSDN
10
Licensing SQL Components
If you are running one of the licensed server components you have to the license the server where the component is installed This includes DB Engine, SSRS, SSIS, SSAS, Machine Learning, MDS, DQS or any combination You cannot separate components and cover it under the same license Management or Dev tools do not have to be licensed SMS, documentation, client connectivity tools, software add-ins, and SDK’s As a general rule, if its running a service it will need to be licensed. You cannot install DB Engine on one server and SSRS server on another and cover this under the same license. You would need to license both servers Management or Dev tools can generally be ran anywhere without requiring a license. If you are unsure though, check the volume licensing product terms or speak to your rep.
11
Software Assurance and its benefits
Software assurance is Microsoft’s maintenance program Benefits: Ability to Upgrade Ability to move server around a virtual environment High Availability and Disaster Recovery License Mobility Licenses transferrable to the cloud 24x7 support Deployment planning services and training Note: Licensing gets a lot more complicated when you do not have this (and its probably not going to get easier) If a VM has software assurance, it can move around a virtual environment and the license goes with it. Otherwise all hosts need to be licensed License Mobility– Allows reassignment of SQL Server licenses. Does not apply to SQL Server PDW High Availability – 1 passive per active
12
Ways to licensing Production
License the Physical Hosts for virtual environment by physical cores – This means that you license all physical cores on each server in a virtual cluster for the highest version of SQL you are running on said cluster. License a Physical server by physical cores (non-virtual) – This means that you all license all physical cores on the physical server for the version of SQL that is running on it. Limited to Enterprise edition only. License the individual VM’s by virtual cores – In a virtual environment, you can license each individual VM with the version of SQL that you are running. License using server + CAL (limited to Standard edition) – This means that you must assign a license to the server running SQL Server and acquire a CAL for each user or device that accesses the server This presentation will spend most of the time on looking at licensing your virtual environment, however, will spend some time talking about other options and when you may want to consider these. Many people may remember when licensing was done on the processor level in earlier versions Some people may have been grandfathered in with older licensing models. We will not spend time talking through this
13
Minimum Requirements 1 SQL license equals 2 virtual cores or physical cores For a physical server, there is a 4 core minimum per physical processor. For a VM, there is a 4 virtual core license minimum There are minimum requirements when you license by cores. NOTE: The minimums apply to physical cores. Careful not to license hyper-threading. The DMV’s that query the server core count with include hyper-threading, be sure to check the actual physical cores for physical servers.
14
Server + CAL licensing With this model you pay a server license and then pay for a CAL for each device or user. Only available with Standard edition. Pros Cost effective when the number of clients\devices are pre-determined No price increase for more cores. Only limited to the maximum number Standard supports (the lesser of 4 sockets or 24 cores) Other considerations Limited to Standard edition in newer versions Do the math to see if this makes sense Users and devices that directly or indirectly access SQL Server through another application or hardware device still require CALs (Multiplexing) If you are considering a CAL model, be sure to do the math to compare the cost vs licensing the cores. No longer supported with Enterprise. If you need to upgrade to Enterprise you have to move to core based licensing * Microsoft did allow your to grandfather these in up to a certain version before they converted these to core licenses. Check with rep Multiplexing – Refers to the use of hardware or software to pool connections, reroute information, or reduce the number of devices that directly access or use SQL Server
15
License Physical Hosts\Servers By Cores
With this model you license the Physical hosts\servers that you have server(s) running on. For virtual environments this is all hosts that make up the virtual cluster. Can only be used with Enterprise edition. Pros Easier to manage Potentially save by using hyper-threading, private cloud scenarios with high VM density and using dynamic provisioning and de-provisioning of VM resources Other considerations Can function without SA as long as the number of VM’s do not exceed the physical core count. With SA you can run as many as you like for as long as you keep SA Do the math to see if this makes sense for you I use “other considerations” because these could be pros or cons based on your environment. In my experience, this model usually cost more.. By A LOT. But there are cases where it can make sense Enterprise only
16
License Physical Hosts\Servers By Cores (cont’d)
Other considerations You have to license every host in the cluster (even if not used) More difficult to quantify costs for projects You may be paying to license cores you are not using Must have a well-managed\well-designed infrastructure to maintain compliance Limited on opportunities to reduce licensing footprint Potential for more hardware needed to support licensing model Do the math to see if this makes sense for you (continued) Other considerations: In my dealings, this option usually costs more This option is more difficult to quantify costs for projects\budgets. It is hard to communicate the cost for an application requiring SQL since it is shared by many things. You are typically going to be paying for licenses that you are not using. To come out ahead you have to have more licensable number of cores on the VM’s then you have on the hosts. Must have a well-managed\well-designed infrastructure to maintain compliance. You probably want to segregate SQL servers in your environment to dedicated virtual hosts to minimize your footprint. This requires consideration to be taken in the design stages of your infrastructure. Additionally, if you have some licenses that go up to SQL 2012 and others that go up to SQL 2014, then you may have to create dedicated Virtual clusters to host certain versions of SQL. Limited opportunities to reduce licensing footprint. You cannot tune\consolidate a SQL Server and reduce the core count on it and affect the licensing, because you still have to license all of the hosts in the virtual cluster despite what is allocated to the VM’s. Potential for more hardware needed to support this licensing model. If you have to create several different virtual clusters to contain different SQL versions (and you use some form of a N+1 model) you could end up requiring more hardware then what you need. You have to pay to license everything for the highest version of SQL you are running on the cluster. For example, if you have 1 VM running Enterprise edition and 30 running Standard, you still have to license all hosts for Enterprise.
17
License Individual Server By Cores
With this model, you license the individual virtual machine (or containers) Pros For most, this is the lowest cost option Cost is more easily determined for budgeting\spending You are just paying for what you need Grants immediate opportunities to reduce licensing allocation Not limited to version (continued) For a virtual environment that you are licensing per VM, you must have SA for the VM’s to move around. Otherwise you are limited 1 time per 90 days. It requires someone to keep track of this. What licenses are applied to which VM. You cannot have someone blindly install SQL somewhere because it can put you out of compliance Pros: Usually the lower cost option. The reason being is it’s uncommon to see more licensable cores being allocated to the VM’s then what the hosts have. Additionally, it is likely that you may be running multiple editions of SQL (Standard\Enterprise\Express\Developer) on the same cluster. Cost is more easily determined for budgeting\spending. It is easy to communicate the cost to the business when a new SQL VM gets built since you know exactly how many licenses it needs. You are only playing for what you need. Grants immediate opportunity to reduce licensing. You can tune\optimize as much as you can and reduce cores. As you reduce the cores, you can reduce the licenses needing to be allocated to it.
18
License Individual Server By Cores (cont’d)
Other Considerations Licenses have to be managed per physical server\VM to remain in compliance Must purchase SA in a virtual\HA environment in order to maintain license mobility You can license per VM without SA, but you can only failover that server once every 90 days to remain compliant (excluding permanent hardware failure) Check with your licensing rep for additional restrictions here Cons: Licenses have to be managed per VM to remain in compliance. This requires you to keep track of your inventory to understand how many licenses are allocated. There is a little more management here over licensing the hosts. You cannot just build something anytime you want and expect to be in compliance. There is a level of accountability that occurs You must purchase SA. SA is required if the virtual server can move around on hosts.
19
Example
20
Licensing for High Availability
With SA you get 1 free passive included per 1 licensed active The passive must be passive The passive cannot exceed the core count of the associated active If you are running servers with different core counts, you have to license the highest one Without SA then you do have mobility rights which allows you to have no more then 1 failover event in a 90 day period without having to license the passive server With SA, you do not have to license 1 passive per active, but it must be truly passive. You cannot perform operations against it. An example would be a Shared Disk Failover cluster or AG with non-readable secondary Microsoft defines passive as – one that is not serving SQL Server data to clients or running active SQL Server workloads Some restrictions in terms of your server farm. If you have failover capability within data centers more then 4 time zones apart then speak to your licensing rep on this.
21
DR Considerations In order to not have to license your DR servers that are a few things to be mindful of The server cannot be running except for 1 week every 90 days, during a DR scenario in which production is down or is being used to transfer from prod to DR. If running in a virtual environment, the hosts running the DR servers must be dedicated to DR Must have software assurance * This is not the complete list of considerations with DR, but notable things If your DR server is running (ie AG) then you the DR server is licensed as a Passive. Goes from DR to HA
22
Check yourself! If you are unsure the right way to allocate the licenses for yourself then do the math and figure it out. If your DR server is running (ie AG) then you the DR server is licensed as a Passive. Goes from DR to HA
23
Reducing Licensing Footprint
Pick the correct licensing model for you Correct issues with resource overprovisioning Running the correct edition of SQL Stop running applications on DB Servers Try to virtualize wherever you can Understanding Growth\Usage and preparing for that (Continued) Correct any issues with overprovisioning. Make sure you are adding adequate amount of CPU, but not too much. Remember, you are paying expensive licensing costs to cover that. Make sure you are running the correct version of SQL. Oftentimes companies will run Enterprise edition in situations where it is not needed. Make sure if you are running Enterprise edition you have a valid reason to do so. NOTE: Microsoft does not have a supported downgrade path so if you need to downgrade you will need to do a uninstall\reinstall Avoid running applications on the same server as the database. If at all possible, the database should be on an isolated server. You do not want to be paying expensive licensing costs only to be having an application consuming those resources Limit your physical database servers except where it is required or requires a lot of resources. With a virtual server you typically have an easier path related to scalability (whether up or down). Understand your growth and usage patterns and prepare for that. Get an idea of what your server will\should like in the next 6 months to 1 year
24
Reducing Licensing Footprint (cont’d)
Pro-active performance tuning Look for consolidation opportunities, especially on servers that do not meet minimum licensing core count Define and execute on decommission process Determine servers where licensing may be included with the purchase of an application Run periodic audits on yourself to make sure you are compliant Spend time performance tuning where you can. This encompasses a lot of stuff from server tuning, query tuning, index tuning, application tuning, etc. If you can perform work to reduce the CPU load then you can reduce CPU and ultimately reduce licensing Look for consolidation opportunities, especially on servers that do not meet the minimum licensing core count. Can you use a shared SQL instance to eliminate several small, low resource servers? * Remember, the minimum licensing number you can use per server is 2 licenses (or 4 cores). If you are running 2 core servers with Enterprise or Standard edition you are having to pay for a license you are getting no use out of. Define and execute on a decommission process. If something is not being used try to get it removed as soon as you can to free up those licenses. * Oftentimes servers stop getting used and they sit out in the environment taking up licenses and you continue to pay for maintenance on those. I suggest performing audits occasionally to see if a server is still being used (if you are unsure). Determine if SQL licensing was included in the purchase of an application. You do not want to be paying for a license a 2nd time over. * Several applications will include a copy of the license with the product. Additionally, sometimes these licenses have certain restrictions so please work with your licensing manager to check this.
25
Where to get started Develop an inventory if you do not have one. You need to know what things look like currently. Self-audit In your inventory be sure you know how many cores are allocated. And/or device\users if CALs are an option Run a environment scan to go through all SQL Instances running in your environment Allocate licenses out to the inventory Determine opportunities to reduce licensing and execute on it. Documenting your inventory and keeping track of it is one of the most important things you can do. Double check the information you get is accurate. If you run queries to get information, be careful with servers using hyper-threading I recommend scanning your environement ever so often to see what licensable SQL services are running in your enviorment. You do not want to be surprised during an audit. * Other people may be installing SQL and you are not aware.
26
Questions?
27
To learn more about edition differences
SQL 2019 (Preview) SQL 2017 SQL 2016 SQL 2014
28
Licensing Guides SQL 2017 SQL 2016 SQL 2014
SQL 2016 SQL 2014 The complete information is available in the licensing guides. NOTE: There is a licensing datasheet which is a complete summary. There is also a licensing guide which covers more in-depth and advanced scenarios. Please review these and again, work with your Microsoft rep\reseller
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.