buchachon - Fotolia
SQL Server 2016 licensing requirements can be quite different depending on which SQL Server edition you're using...
and how you implement the software. This can make it difficult to figure out what exactly you must do to license SQL Server appropriately. In fact, licensing can sometimes seem more complex than the technology itself.
To help you cut through the complexity, here are six common SQL Server 2016 licensing scenarios, and the licensing requirements for each one.
Server and client licensing
If you run the Standard Edition of SQL Server 2016, you can use either Microsoft's per-core licensing model or its Server + CAL model. With the latter approach, each SQL Server instance requires one server license, plus a client access license (CAL) for each user and device that connects to the server -- no matter how many processor cores are in the server, up to the Standard Edition's maximum configuration of 24 cores.
Server + CAL licensing is typically used in on-premises deployments with a known number of users and devices accessing SQL Server, and it can only be used with SQL Server 2016 Standard.
Core-based licensing is available for both the SQL Server 2016 Enterprise and Standard Editions. With it, you license the number of physical or virtual processor cores in a SQL Server system. A minimum of four core licenses is required, even if the server has less than four cores. Additional core licenses are purchased in packs of two.
To run SQL Server in an eight-core system, then, you need the basic four-core license, plus two packs of additional licenses. In virtualized systems, a virtual core is equivalent to a hardware thread.
You don't need CALs in the per-core licensing model, which is intended for web and cloud scenarios and large on-premises applications where you don't reliably know the number of connected users and devices. This allows for an unlimited number of connections to the SQL Server instance.
Upgrading SQL Server core licenses
With per-core licensing on either SQL Server 2016 Enterprise or Standard Edition, keep in mind that if you need to add more cores to a system, you must purchase licenses for them in packs of two.
Continuing with the example from above, if you decide to upgrade your SQL Server instance from eight cores to ten, you must buy another pack of two core licenses.
Licensing for maximum virtualization
Let's say you have a host server with 64 physical cores, and you want to virtualize 20 different SQL Server instances. Licensing on a per-server basis would require you to individually license all 20 SQL Server virtual machines (VMs) -- and, of course, that's only an option with the Standard Edition. Likewise, if you used regular per-core licensing, you would need to license all of the virtual cores in all of the VMs. If each VM has four cores, that would require 80 core licenses.
Maximum virtualization licensing with the SQL Server 2016 Enterprise Edition lets you license all of the physical cores in the virtualization host and run as many virtual SQL Server instances as you want, up to the number of core licenses you've purchased -- regardless of how many virtual cores are used. If you further cover the licenses with Microsoft's Software Assurance (SA) maintenance and update program, the restriction on the number of instances goes away, and you can also use an unlimited number of VMs.
Maximum virtualization is designed for a private cloud implementation with a large number of VMs, and environments in which VMs are regularly provisioned and taken offline. SQL Server 2016 licensing for maximum virtualization works the same way with a VMware vSphere host as it does with Microsoft's Hyper-V virtualization hypervisor.
Always On Failover Clustering Instances
In licensing SQL Server 2016, there's also the issue of active versus passive database servers in implementations that include high availability technologies, like Microsoft's Always On Failover Cluster Instances (FCIs) and Always On Availability Groups (AGs). Each involves secondary servers that can be either active or passive.
In the case of a two-node FCI setup with SQL Server 2016 Standard Edition, in which both nodes have 12 cores and you're using the Server + CAL licensing model, you don't need to license the secondary node if it's truly passive -- i.e., not running any workloads. In this scenario, you would only need one server license that is covered with SA, plus CALs for the connected users and devices.
Always On Availability Groups
Now, let's say you have a two-node configuration with Always On Availability Groups in which each server is running SQL Server 2016 Enterprise Edition with eight cores -- but the secondary server is used for backups. If you use Always On AGs in that way, the secondary server is not considered passive, and you must license it. You would need to buy eight core licenses for the primary SQL Server 2016 system, plus an additional eight licenses for the secondary system.
More on navigating the complicated licensing of SQL Server 2016
How two companies cut their SQL Server licensing costs