RKL eSolutions Blog Trends and Insights

Microsoft SQL Server on Linux: An Initial Look


There have been a number of stunning developments recently in the Microsoft world.  We’ve known since March that SQL Server was coming to Linux, so the November preview release wasn’t a complete surprise.  .NET Core already is bringing Microsoft’s wonderful stack to macOS and Linux, and we’ve known this was also going to bring Linux and macOS support for the Azure App Service.

The most jaw dropping move, however, was Microsoft joining the Linux Foundation.

A sweaty Steve Ballmer famously liked to chant variations “developers, developers, developers,” and as relative to the time, Microsoft followed through.  But under CEO Satya Nadella, with the acquisition of Xamarin, combined with these moves, Microsoft is declaring its intent to leverage its intellectual capital more than it ever has before.

For now, SQL Server will install on Red Hat Enterprise 7.2 or Ubuntu 16.04.  You can also run it in Linux, macOS, or Windows with a pre-configured Docker container.

To install with Docker:
docker pull microsoft/mssql-server-linux
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linux

SQL Server for Linux Figure 1 - with Docker we see SQL Server for Linux attached to port 1433

I’ve used the Docker implementation on macOS to give this a test run.  I had to expand my Docker environment to 4 GB, the requirement for SQL Server on Linux.

At first blush, it appears to be indistinguishable from the Windows version, albeit running on a compatibility layer, the Platform Abstraction Layer (SQLPAL).  Like so many ports to Linux, this layer maps Windows API calls to Linux OS system calls.  SQL OS, which provides abstracted task scheduling, exception handling, and memory management, has been in the mix since 2005, looks like it’s been extended for the Linux release.

Some missing features immediately stood out.  The first I noticed, CLR .NET Runtime stored procedures are not enabled.  It doesn’t seem far-fetched that they will be integrated given the success of taking .NET Core across platforms.  Full-text search also didn’t work.  Active Directory authentication, as you might expect, was also not available.  I understand that Reporting Services and SQL Server Agent are also not available.

Some of those are deal-breakers for many of our use cases, for now.  Microsoft’s plan to make pricing and licensing the same as on Windows with the same edition offerings seems a little aggressive given what SQL Server for Linux doesn’t have, unless they will add these for the general release.

We also don’t have a port of SQL Management Studio to Linux or Windows.  This isn’t a deal breaker – folks working with Linux are still accustomed to doing so much from the command line. With JDBC drivers and associated GUI tools widely available, Linux developers aren’t left in the lurch.  There’s even a backdoor to getting Oracle SQL Developer to work with SQL Server.

But Microsoft doesn’t leave us completely in the lurch.  If you plan on developing in the Microsoft open source stack, there’s already a good chance you’ve installed Visual Studio Code.  This great editor has been my go-to for .NET Core and Node.js on macOS.  Microsoft released an extension for this product that allows you to develop for Microsoft SQL Server right from this great, lightweight IDE.

It’s not incredible.  In fact, it’s fairly true to the lean nature of the Code IDE, but you can manage connection profiles, edit and execute T-SQL, with some fairly surprising IntelliSense built-in.

Manipulating SQL Figure 2 - Linux and macOS users have great tools for manipulating SQL

Is SQL Server on Linux going to completely replace an enterprise-level Windows implementation?  Given some of the feature deficits, I’m not convinced many need-driven medium-sized businesses may want to make the jump.  Still, let’s say you’re going to process 7 million rows of actuarial event data; I know SQL server is robust enough to do that with even the missing features.  I’m not sure I’d want to tackle that with the open-source database offerings for Linux, and I’m sure SQL Server on Linux, if the licensing of editions holds true, will bring the same TCO benefits that SQL Server already holds over Oracle.

Given the aggregate picture of Microsoft’s recent moves, especially the joining of the Linux Foundation, it’s clear that Microsoft is here to stay in this world.  It’s the best news we’ve had in the IT world in some time.


Give it a try!

To learn more about RKL eSolutions IT Support services.

Tags: SQL Server
Brian Kresge

Written by Brian Kresge