
Microsoft announces the next version SQL Server for Windows and Linux - willyyr
https://techcrunch.com/2016/11/16/microsofts-sql-server-for-linux-is-now-available-for-testing/
======
LyalinDotCom
As someone who has been working with them on pushing this live for the last 6
months I can tell you, we're all very excited to finally push this public
preview

~~~
unixhero
Wow

Will the Linux build come with SSASS capabilities as well?

~~~
peschkaj
It's just the relational engine for now, no SSIS, SSAS, or SSRS. If you want
to see more capabilities on Linux, I'd open a Connect item or search for an
existing one and share it back here so people can vote.

------
cygned
Microsoft has created an apt repository for Ubuntu. That's really nice.

[https://docs.microsoft.com/en-gb/sql/linux/sql-server-
linux-...](https://docs.microsoft.com/en-gb/sql/linux/sql-server-linux-setup-
ubuntu)

~~~
bsharitt
sudo apt install mssql-server felt really weird. Oddly a much nicer install
process than the last time I installed MSSQL server on Windows(which was
admittedly a log time ago, and it could be better now).

~~~
snuxoll
Installing SQL Server on Windows still sucks, though with your CM tool of
choice it's less painful (still takes a flipping century to install, however).

~~~
bebop
SQL Server 2016 on Windows 10 was fairly one click install when I did it a
week or so ago. It was infinitely better than my experience with SQL Server
2012, which was a struggle at the best of times.

------
m_st
The bigger news and unfortunatly _hidden_ behind an innocent blog title about
SP1 for SQL Server 2016 is that now all the features of Enterprise Edition are
available on all editions of SQL Server!

See my commit here:
[https://news.ycombinator.com/item?id=12969059](https://news.ycombinator.com/item?id=12969059)

~~~
dhd415
They haven't made all of the Enterprise Edition features available on all
lower editions, but they have made many big ones such as table partitioning,
Always Encrypted, in-memory OLTP, etc. available in most lower editions. There
are a number of operational features such as piecemeal restores, Resource
Governor, online index rebuilds, etc. that are still exclusive to Enterprise
Edition.

There's a more complete discussion of these here:
[https://sqlperformance.com/2016/11/sql-server-2016/big-
deal-...](https://sqlperformance.com/2016/11/sql-server-2016/big-deal-sp1)

------
emcrazyone
I've not looked at MS-SQL in a long time. My business ships software using
PostgreSQL.

Does anyone have, in their opinion, compelling reasons why one should consider
MS-SQL on Linux for either a new project or potential migrating too?

Consider too, PostgreSQL runs under Windows as a service too.

What does MS-SQL have that PostgreSQL does not?

~~~
edpichler
I think this product in targeted to companies who already have a MS-SQL
database, and now can consider use Linux.

~~~
wavefunction
^^^Or even move their on-premise or NOC'd IIS servers into Azure's Linux
environment.

~~~
ickler8
ding ding ding

------
jrspence
This doesn't seem to be a bona fide port to Linux. The sqlservr binary seems
to load some .sfp files in the lib directory of the installation, and those
files seem to include a good chunk of a Windows installation. There's registry
hives, batch commands, and what look like PE64 executables in there.

~~~
int_19h
MSSQL is basically an OS of its own, and does a lot of things in its sandbox
that you'd normally expect OS to provide (like really low-level memory
management and I/O, and I think even threading is heavily customized) - and
that's on Windows. So it wouldn't be surprising if that is the case on Linux
also.

------
nailer
Since [https://www.microsoft.com/en-us/evalcenter/evaluate-sql-
serv...](https://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-vnext-
ctp) is still focused on downloading ISO and cab files for Windows:

\- Direct link to RHEL instructions: [https://docs.microsoft.com/en-
us/sql/linux/sql-server-linux-...](https://docs.microsoft.com/en-
us/sql/linux/sql-server-linux-setup-red-hat)

\- Ubuntu: [https://docs.microsoft.com/en-us/sql/linux/sql-server-
linux-...](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-
ubuntu)

\- Docker: [https://docs.microsoft.com/en-us/sql/linux/sql-server-
linux-...](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-
docker)

------
rch
> all SQL Server users — including those using free edition — will now get
> access to the developer features that were previously restricted to the
> Enterprise edition.

This aspect is interesting. What I _haven 't_ done since all of these open
source and cross-platform moves by Microsoft is go back and figure out how
tech costs scale with user growth (starting from 0). It used to be no contest
(initially), but I'm not sure anymore.

~~~
jamra
I'm not sure what it means. Do you have no restrictions on developer tools
only or do they remove the 10GB database size restriction for SQL Server
Express, the free version.

~~~
dhd415
Lots of previously Enterprise Edition-only features such as table partitioning
and data compression are now available in Standard, Web, and local editions.
This is a pretty big deal. More detail here:
[https://sqlperformance.com/2016/11/sql-server-2016/big-
deal-...](https://sqlperformance.com/2016/11/sql-server-2016/big-deal-sp1)

------
rb808
I can still remember an old conference when Microsoft bragged that running
windows-only allowed them to remove 20-30% of the Sybase code base as they
didn't need the cross-platform cruft.

It would be interesting to see how they code for cross platform portability
now.

~~~
anonymfus
Apparently they ship it together with Windows as library OS:

[https://twitter.com/TobiasSQL/status/798937457916002304](https://twitter.com/TobiasSQL/status/798937457916002304)

 _> The Platform Abstraction Layer (PAL) powering @SQLServer on #Linux evolved
from the MSFT Research Drawbridge project_

~~~
davidgerard
So Microsoft Wine? Part of the way there?

~~~
vurpo
If I understand correctly, this is not even a compatibility layer like Wine.
This is literally a part of the Windows kernel and userspace, running entirely
inside Linux userspace.

------
gokhan
Looks like there are some (most?) unsupported features external to core DB
engine ATM (replication, mirroring, agent, SSIS etc. ), but documentation says
"The support of these features will be increasingly enabled during the monthly
updates cadence of the preview program". Nice.

[https://docs.microsoft.com/en-gb/sql/linux/sql-server-
linux-...](https://docs.microsoft.com/en-gb/sql/linux/sql-server-linux-
release-notes)

------
wila
This is great news and I am looking forward to be able to use MSSQL from
within linux and macOS. Hopefully the client support is going to be cross
platform too.

The one thing in the article that puzzled me is:

    
    
      Thanks to its support for Docker containers, even macOS users will be able to run it. 
      Indeed, Microsoft is betting on containers as one of the main distribution mechanisms for the preview
    

Wasn't there a golden rule to not store persistent data in a container? I can
see it being useful for testing, but am wondering if this is going to be
suggested for deployment as well.

Of course one can locate the database on external block storage, but that
makes it less easy to support due to having multiple parts. (not that that is
a very big issue)

~~~
vkjv
> Wasn't there a golden rule to not store persistent data in a container?

You shouldn't store persistent data in the container. However, you can mount
external storage and read/write to it from inside the container. The most
simple example of this is mapping a path from the host.

EDIT:

In fact, the MS documentation gives an example of exactly this.
[https://docs.microsoft.com/en-us/sql/linux/sql-server-
linux-...](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-
docker)

> sudo docker run –e 'ACCEPT_EULA=Y' –e 'SA_PASSWORD=<YourStrong!Passw0rd>' -p
> 1433:1433 -v <host directory>:/var/opt/mssql -d microsoft/mssql-server-linux

~~~
wila
interesting, thanks!

------
edpichler
Microsoft should have his own Linux version, supported by the company. It will
be inevitable.

~~~
TheRealDunkirk
The only point of offering it would be to support running desktop applications
on it, like Word and Excel, no? And that's such a stretch that all the
versions of Wine still haven't solved the problem, even after 20 years.

At this point, if Apple really wanted to scrape another percentage of desktop
users away from Microsoft, THEY could release an unsupported, white-box
version of the BSD-based macOS for generic PC hardware, which would run all
normal macOS binaries, like Word and Excel. It would go a long way to shoring
up the gap in their lagging "pro" line...

~~~
pritambaral
> all the versions of Wine still haven't solved the problem, even after 20
> years.

Wine isn't Microsoft, and doesn't have access to Windows internal code. If
Microsoft decided to write a Windows compatibility layer for non-Windows OSes,
it wouldn't have to reverse-engineer. That is an immense difference in terms
of amount of effort.

------
alyandon
Is there a ELIF type link for licensing that explains what we are allowed to
do with this on Linux? Can I use it for development work on a company owned
workstation?

~~~
greggyb
I'd imagine you can just use a free (as in beer) developer license for SQL
Server work on Linux, just as you can on Windows. SQL Server licensing is only
really charged on production instances.

------
jcoffland
Microsoft has really adopted an if-you-can't-beat-em-join-em attitude these
days. There were times when Microsoft and Linux were at such odds that an
announcement like this seemed impossible.

The next smart move I'd love to see from Microsoft is similar to Apple's
adoption of BSD as their base OS with the introduction of OSX, an adoption of
Linux as the base Microsoft OS. They could stop wasting money on systems
programming and focus on the UI and apps which is where they make their money
anyway. Wine has come a long way with Microsoft's direct help it could support
all of the existing Microsoft apps.

~~~
laumars
NT is decent. It's a lot of the stuff that runs atop of it which is garbage
and WINE is nowhere near stable enough to be a viable replacement.

~~~
jcoffland
Like I said, with Microsoft's help Wine could be awesome.

NT might be decent but it's not great. Why waste resources on it when they
could be put to more lucrative use?

~~~
laumars
Because NT, as in modern NT, is pretty damn sophisticated. Switching to Linux
really wouldn't be a step up for Microsoft.

As I said before, it's the crap that's been bolted on that really makes
Windows feel like a dinosaur. It's the decades - literally decades - of
backwards comparability, the lack of a proper package management system and
the free reign that developers gets that makes Windows a mess. It's the
multiple shells that try to coexist or the feature bloat of pass releases or
even Microsofts past tendency to reinvent the desktop every few years rather
than introduce incremental improvements. This is all issues independent of the
kernel, syscalls etc - i.e. All issues Microsoft would have to address
regardless of which core they chose to run. So switching to Linux wouldn't
help them. If anything it would just make things worse because they would
forgo the stable graphics ABIs in NT for the uncertainty that is Linuxes
display server wars. They'd forgo their stable Win32 APIs and other libraries
for WINE. They'd have to reinvent DirectX - who's support in WINE is several
generations behind - and have to battle with the appalling state of Linuxes
graphics card drivers. And that's just scratching the surface of the problems
they'd face.

I do love Linux and find Windows to be a hateful platform, but pragmatically
Windows switching away from NT would be the dumbest thing Microsoft could do.
NT simply isn't an issue.

------
rbanffy
Apart from reducing OS bingo (no need to deploy Windows to run SQL Server
alongside whatever non-Windows OS you use to run your apps on), what is the
selling point?

I assume it runs on x86 processors. If I do everything wrong and end up
needing a ridiculously powerful machine I can check IBM's POWER-based boxes or
Oracle's SPARC machines that run MySQL or PostgreSQL (or Mongo or anything
else) and scale vertically well beyond the largest Xeon boxes. But those won't
run SQL Server. Being that the case, why not Windows?

~~~
jpalomaki
Windows licenses cost. Also if you are running your other stuff completely on
Linux, having to setup Windows boxes just for the SQL Server can be bit
inconvenient. I see this as a companion to the multiplatform .NET. Now you can
run a Microsoft shop without running Windows.

------
thx4thefish
So how do I add a sql server instance in a container with an average of 300
million rows per table and a db of average size of maybe 3 tb and not have io
issues? Containers do not seem to scale to enterprise besides nosql type
operations of let's commit later.

------
cuttinedg
A basic Vagrantfile that will get this going in Ubuntu

[https://github.com/mbharadwaj/sqlserver-linux-
vagrant](https://github.com/mbharadwaj/sqlserver-linux-vagrant)

------
habaryu
Thanks! As of yesterday I was looking to find a way to install it on Ubuntu. I
finally chose to use TeamViewer on my home PC but my database didn't connect.
I'll try this instead.

------
mmargerum
Hopefully Microsoft will also provide a proper multi platform node.js client
as well as ODBC support.

I may aware of tedious, but it's missing a lot of features and I prefer
officially supported code.

~~~
radtravis
Hi mmargerum - We have a Microsoft engineer contributing to the tedious
project now. Let us know what you want to see in our new gitter room:
[https://gitter.im/mssqldev/Lobby](https://gitter.im/mssqldev/Lobby)

~~~
mmargerum
Good to know! thanks

------
netcraft
no announcement of support for mssqlstudio on other platforms yet though
right? still, this is excellent - I love my postgres but having mssql on linux
is a great option.

~~~
radtravis
We did announce today that there is a new extension for Visual Studio Code
which is cross-platform: macOS, Linux, Windows. Check it out:
[https://marketplace.visualstudio.com/items?itemName=ms-
mssql...](https://marketplace.visualstudio.com/items?itemName=ms-mssql.mssql)

Get VS Code here:
[http://code.visualstudio.com/](http://code.visualstudio.com/)

There are native command line tools as well: [https://docs.microsoft.com/en-
us/sql/linux/sql-server-linux-...](https://docs.microsoft.com/en-
us/sql/linux/sql-server-linux-setup-tools)

More to come!

~~~
netcraft
very cool, I missed that. Not quite the same as studio but great nonetheless!

------
otto_ortega
I like SQL Server a lot, I wish I could use it on production over Centos, but
the price of the licenses... Oh boy... I can't afford that.

------
antaviana
Where is the information on the change in pricing structure mentioned in the
article?

~~~
tmullaney
The changes are in SQL Server 2016 Service Pack 1 (released today):
[https://blogs.technet.microsoft.com/dataplatforminsider/2016...](https://blogs.technet.microsoft.com/dataplatforminsider/2016/11/16/sql-
server-2016-service-pack-1-generally-available/)

------
hjek
Is it released under a free/libre license?

~~~
tracker1
It's commercial, privately licensed software... that said, the out of the box
defaults for MSSQL perform better than most databases, with features far
easier to configure. I've been hoping for this for a long while... much better
for most use cases than Oracle.

------
logronoide
Rolling all commits back to 1994

------
baq
i'm in desperate need of a Dockerfile for this so i can see it with my own
eyes.

~~~
bjg
[https://www.microsoft.com/en-us/sql-server/sql-server-
vnext-...](https://www.microsoft.com/en-us/sql-server/sql-server-vnext-
including-Linux#resources)

[https://hub.docker.com/r/microsoft/mssql-server-
linux/](https://hub.docker.com/r/microsoft/mssql-server-linux/)

~~~
ohstopitu
Thanks! I wanted to checkout the Dockerfile for the container but by the looks
of it, it was not published?

~~~
y4mi
the dockerfile on dockerhub is only visible if its an automated build, done by
the docker build service.

if you want the image to be auditable just write your own, its a really short
and well documented installation that previous poster linked to.

------
boona
> These include advanced features like always-encrypted and row-level security

Am I the only one who reads this in their mind as "low-level security" but
with an asian accent? Forgive me, please ignore me.

