The buzz about Microsoft bringing SQL Server to Linux has been building since the initial announcement, back in spring 2016. It seems you can't throw a CPU without hitting a blog post about SQL Server on Linux, as everybody scrambles to be the SQL Server on Linux expert. Here’s what you really need to know.
SQL on Linux? What voodoo is this?
No, it’s not magic, or even black magic. SQL on Linux is the result of a new version of the SQL OS, called the performance abstraction layer (PAL). This effort came out of a Microsoft Research project called Drawbridge.
You can read more about the details of PAL and Drawbridge here. It’s interesting to note that Drawbridge research started in 2011; not many companies have pockets deep enough to fund a research project for six years before it bears fruit.
The beauty of PAL means that as new features get added to SQL Server, they can be ported to Linux with minimal effort. All Microsoft needs to do is include the necessary Windows libraries and update the package for distribution.
What versions of Linux are supported?
SQL Server on Linux currently supports Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server and Ubuntu. You can also run SQL Server in a Docker container. This means it is possible to run SQL Server on Linux, Mac or Windows platforms. (See a full list of supported platforms here, along with installation directions.)
Is there a difference in performance?
When Microsoft first discussed bringing SQL Server to Linux, the company made it clear that performance would be at least equal to that of SQL Server on Windows. The goal is that the customer experience on SQL Server should be the same no matter what OS is being used. To that end, Microsoft has published guidelines for configuring SQL Server on Linux.
But it’s Linux--certainly some Windows features won’t work, right?
It’s true that not every SQL Server for Windows feature will work on Linux. (There is a list of unsupported features here.) Microsoft has focused on bringing core database functionality to Linux, but some SQL Server capabilities depend on Windows functionality (for example, Distributed Transaction Coordinator). With that said, “unsupported” does not mean a feature won’t work; it just means that the feature is not officially supported.
What versions of SQL Server are available?
This isn’t Ballmer’s Microsoft; it is Satya’s. That means you are going to get every possible option unless there is a technical reason preventing it. With it comes to SQL Server for Linux, Microsoft didn’t make it an enterprise-only option. Rather, support is available for the Enterprise, Standard, Developer, Web and Express versions of the platform.
What will this cost?
The licensing model for SQL Server does not change with the Linux edition. You have the option of server and CAL or per-core. The Developer and Express Editions are available for free. Developer is equal to Enterprise in every aspect except for one: You can’t use it for production. The Standard edition has many of the same features, but they are often throttled. That’s because the new world of software licensing is more a pay-for-performance than a pay-for-features model.
Why would I want SQL Server on Linux?
Because having the option is better than not having the option. If your company is primarily a Linux shop, then your choices of database servers have been limited. Microsoft has removed that limitation and is now part of the discussion. Data is a commodity, and Microsoft is focused on making certain it offers every way possible to store it.
What skills do I need?
For starters, you need to be comfortable working with a command line. IT staffers who can only “click, next, next, next, finish” will need some training. And, staff members who couldn’t work with Server Core because it lacked a GUI also should not be put in charge of your Linux servers.
You will need to be able to install, update and remove applications from the Linux command line. Debugging applications, understanding telnet/SSH and even starting/stopping processes are necessary skills for anyone working with SQL Server on Linux.
Microsoft has created a stable version that performs as well on Linux as it does on Windows (and, in some cases, even better). Microsoft is making it easy to migrate your data to its platform with the goal of hosting your data in Azure.
Thomas LaRock is a Head Geek at SolarWinds and a Microsoft Certified Master, Microsoft Data Platform MVP, VMware vExpert, and former Microsoft Certified Trainer. He has over 20 years’ experience in the IT industry as a programmer, developer, analyst, and database administrator. LaRock has spent much of his career focused on data and database administration, which led to his being chosen as a Technical Evangelist for Confio Software in 2010, where his research and experience helped to create the initial versions of the software now known as SolarWinds Database Performance Analyzer. LaRock has served on the board of directors for the Professional Association for SQL Server (PASS), and is an avid blogger, author, and technical reviewer for numerous books about SQL Server management. He now focuses on working with customers to help resolve problems and answer questions regarding database performance tuning and virtualization for SQL Server, Oracle, MySQL, SAP, and DB2. He’s made it his mission to give IT and data professionals longer weekends.