Olivier Le Moal - Fotolia
Licensing of Microsoft products has always been complicated, and SQL Server 2016 is no exception. To make matters worse, it can be deployed in a number of different scenarios that can confuse licensing requirements even further. In this article, I'll guide you through the SQL Server 2016 licensing maze and clear up some of the biggest areas of confusion, including how to handle licensing for virtual machines and for high availability features such as AlwaysOn Failover Cluster Instances and AlwaysOn Availability Groups.
Before jumping into the more complicated areas of SQL Server 2016 licensing, you need to have a basic understanding of Microsoft's licensing models. Depending on the edition of the database you're using, SQL Server 2016 offers licensing by processor cores or Microsoft's Server + CAL model, which includes the purchase of client access licenses.
CALs allow clients to connect to a server. With Server + CAL licensing, you buy one license for the entire database server, but need to have a CAL for every user or device that accesses the server. This licensing model is typically best when you know the number of clients that will be connecting to the SQL Server system. Core licensing, on the other hand, is based on the number of processor cores or virtual CPUs in the system. It's designed for large installations with heavy usage and internet deployments in which the number of users and devices can't be predicted.
SQL Server 2016 Enterprise edition, which provides the complete SQL Server 2016 feature set, supports core-based licensing only. It has a retail list price of $14,256 in two-core packs, and you need to license a minimum of four cores; also, if you're using the Enterprise edition on a physical server, you need to license all of the cores in that system.
SQL Server 2016 Standard edition has options for both core-based and Server + CAL licensing. The former is priced at $3,717 in packs of two cores, while the latter has a list price of $931 per server and $209 per CAL. The Standard edition's database engine is limited to 128 GB of RAM and the lesser of 4 sockets or 24 cores -- 20 if you select Server + CAL licensing. It also lacks many of the scalability and availability features found in the Enterprise edition.
SQL Server 2016 Developer edition is free as part of the Visual Studio Dev Essentials program; it has all the features of the Enterprise edition, but is only licensed for development uses. Also free are the three editions of SQL Server 2016 Express Edition, which can be used for production workloads, but are limited to a single CPU and a database size of 10 GB.
SQL Server licensing and virtualization
When it comes to SQL Server 2016 licensing, virtualization is one of the more confusing areas. With core-based licensing, one virtual CPU (vCPU) is equivalent to one core license. For Server + CAL licensing, one virtual machine (VM) is equivalent to one server license. For instance, if you're using SQL Server 2016 Standard edition in a virtualized environment with the Server + CAL licensing model, you have to license per VM, and each VM requires a separate server license regardless of how many vCPUs are in use within the VMs. Plus, of course, all users and devices that connect to the virtual servers need CALs.
But there are additional rules to keep in mind. If you're running SQL Server 2016 Enterprise edition in a virtual environment, you have the choice between licensing individual cores and licensing for maximum virtualization (see Figure 1). If you license all of the cores in the virtualization host and cover the licenses with Microsoft's Software Assurance maintenance and update program, you can run as many virtual SQL Server instances as you have core licenses purchased. If you want to run more, you'll need to purchase more two-pack licenses.
Passive vs. active SQL Server licensing
Another common question about SQL Server 2016 licensing comes up in high availability and disaster recovery implementations of a specific type. In these implementations, one of the servers is actively running a workload and another is essentially passive, waiting to take over the workload in the event that the primary server fails. The question is: In what circumstances do you need to license the passive server, and when can you get by without a license for that system?
First, with SQL Server 2016, passive failover scenarios require the primary server to be licensed with Software Assurance. If the secondary server is truly passive -- in other words, it's only used in failover situations and not for anything else -- then you don't need to purchase an additional SQL Server license for that server.
However, if you're using that server to run any other sort of additional workload, you do need to license it -- for instance, if you're using AlwaysOn Availability Groups to protect the primary server and the secondary server is used for read-only reporting or backups.
Windows Server licensing issues
In addition to SQL Server 2016 licensing, you need to consider licensing for the Windows Server operating system. SQL Server is most commonly run on either the Standard or Datacenter edition of Windows Server 2012 R2. For each one, a single Windows Server 2012 R2 license covers up to two physical processors. The two editions have the same features and are differentiated only by virtualization rights.
The Standard edition's license is designed for light virtualization usage scenarios: It entitles you to run up to two Virtual Operating System Environments (VOSEs) with no additional licensing costs. If you need more Windows Server virtual machines, you have to purchase additional Standard edition licenses.
In contrast, the license for Windows Server 2012 R2 Datacenter edition enables heavy virtualization usage, entitling you to run an unlimited number of VOSEs. However, the total number of physical processors used by those VOSEs can't exceed the number of software licenses assigned to that server.
Cut licensing costs using SQL Server containers
SQL Server 2016 improves and revitalizes in-memory OLTP
Test your knowledge of SQL Server 2016's new features