
SQL Server on Linux public preview - olalonde
https://blogs.technet.microsoft.com/dataplatforminsider/2016/11/16/announcing-sql-server-on-linux-public-preview-first-preview-of-next-release-of-sql-server/
======
digi_owl
Heh, Torvalds must be popping a cold one as clearly his victory condition has
been fulfilled.

> If Microsoft ever does applications for Linux it means I've won.

[https://en.wikiquote.org/wiki/Linus_Torvalds](https://en.wikiquote.org/wiki/Linus_Torvalds)

~~~
AsyncAwait
I think he already did a while ago[1], [2], [3], [4] etc, but am sure this is
a good excuse to open another one. :-)

[1] - [https://code.visualstudio.com](https://code.visualstudio.com)

[2] -
[https://github.com/PowerShell/PowerShell](https://github.com/PowerShell/PowerShell)

[3] -
[https://www.microsoft.com/net/core#linuxfedora](https://www.microsoft.com/net/core#linuxfedora)

[4] -
[https://blogs.msdn.microsoft.com/wsl/](https://blogs.msdn.microsoft.com/wsl/)

~~~
webmaven
Of those, I think only #1 and #2 should be considered "applications".

~~~
AsyncAwait
You're probably right. Point being, they already shipped code for Linux.

------
jsmeaton
I'm excited about this release because it means that developers of frameworks
and libraries that target SQL Server will no longer need to have Windows
available to test their software. As a specific example, the SQL server
backend for Django could now (soon) be bundled with Django directly and enjoy
the same level of support that other backends do. It'll also mean that users
will be free to run Django on Linux, and use the drivers to communicate with a
windows or Linux based SQL server.

I should note that Django isn't planning to add more backends to the core
project, and has actually discussed moving some into separate packages. But
that doesn't mean a backend couldn't be developed by the Organisation.

~~~
boris
Microsoft had SQL Server Native Client (ODBC) driver for Linux available for a
few years now. So your could develop/test on Linux with SQL Server running in
a VM. This is how we have been doing it in ODB (C++ ORM) for years.

Of course, don't expect either of them to be open source. Which means an open
source ORM backend that depends on them can't be in an official
Debian/Ubuntu/RH repository.

~~~
jsmeaton
The SQL Server running in a VM is precisely the part you no longer have to
worry about. Drive by contributors aren't going to do this when offering ORM
patches. But if they have an easy way to test on Linux it becomes a lot more
viable. Going back to Django, we provide a vagrant image with most databases
preinstalled. Adding sqlserver to this setup will now make sense.

Also Microsoft are deprecating the old bindings and are creating new ones I
believe will be open source. I might be off slightly.

~~~
toyg
_> Adding sqlserver to this setup will now make sense_

I would _strongly_ recommend you check SqlServer license terms first; the last
thing you want is to make any of your downloaders liable for license payments
as soon as they start the image. I really don't think what you suggest is
possible, because you would be redistributing SqlServer - _maybe_ with the
Express version, but that was pretty crippled last time I checked.

~~~
philliphaydon
You must have checked back in 2010. It has like a 10gb limit. But comes with
most standard features. Even full text search. (Wasn't available in 2008)

~~~
toyg
A 10 gb limit makes it unusable for me, so that's probably why I discounted
it.

------
nateguchi
> We have seen strong reception for the private preview to date with more than
> 50% of Fortune 500 companies applying for the private preview

wow

~~~
wictory
I guess it is easier to get rid of Windows than it is to get rid of SQL
Server.

~~~
paol
It probably is, but there's an even better reason: Windows may be worth
getting rid of, SQL Server isn't (except perhaps on grounds of licensing cost)

I've worked with all major RDBMS systems at one point or another and SQLS is
by far the nicest.

~~~
bartread
I concur. It's not the most powerful in all aspects or for all applications
but, most of the time, if you want an enterprise grade RDBMS (and you're happy
to pay) it's the one to go for simply because by comparison with the others
it's so _easy_ to work with.

The ease of use also makes it suitable for smaller shops as well. At the
lowest level you install it, and it just works, and it's back by a great
tooling ecosystem, and excellent documentation. It really does stand in
absolutely stark contrast to, for example, Oracle.

I wouldn't call it idiot-proof, but it's certainly friendlier than most RDBMS.
(That's not to say there aren't issues and annoyances with it, mind, but
that's true of any product.)

Beyond this, if you need a relational store and you really, _really_ don't
want to have to give a monkey's about it, I'd say SQL Azure is probably the
way to go.

(Saying all of this I recognise that lots of people will be able to tell war
stories about the torrid time they had with SQL Server, or for any other data
store. My experience has largely been it's a winner though.)

~~~
endymi0n
Anyone care to elaborate on how well it has aged? When I last used SQL Server
in 2010, it was indeed pretty cool, especially the awesome ecosystem (SQL
Studio, Reporting Services, graphical Query Planner, etc.).

Then I went to MySQL because my startup couldn't afford a database and it was
a pretty large step down.

Then at the next startup, I got used to PostgreSQL and by now I'd have a
pretty hard time to not being able to use JSONB, window functions or CTEs -
made me realize how bad most other DB systems are by now. That is, except for
a really nice GUI for PostgreSQL I'm a pretty happy camper by now.

How has SQL Server kept up in the meantime?

~~~
sovnade
Yes SQL 2016 has native support for JSON, CTEs (this one has been in since
2005), and windowed functions I believe were also in 2005.

Some other massive improvements are Columnstore indexes for absolutely
ridiculous OLAP data reads and compression (we are seeing 90% compression and
< 1 sec instant lookup times on multi-billion-row fact tables).

~~~
lobster_johnson
What is MSSQL's replication story these days? Master/slave or master/master?
Automatic failover?

~~~
sovnade
Automatic failover with read-only replicas.

No master/master - that's the only thing I would consider missing compared to
Oracle. It scales up, but not out. Peer to peer replication technically is
master/master, but calling that clunky would be a kindness.

------
Corrado
My default RDBMS of choice has always been PostgreSQL and I'm not sure why I
should choose SQL Server, even now that it's available on a non-Windows
platform. I understand that there are some fancy DB things that it can do and
it's optimizer can be better in some circumstances, however I like to use ORMs
and don't generally interact directly with the DB. Besides, those things pale
in comparison (in my mind) to the hassle in dealing with Microsoft and
licensing. Using PostgreSQL is simple and doesn't involve breaking out a
spreadsheet to determine how much we need to pay for it. I've seen Microsoft
licensing and the companies I've been at have had to have entire departments
to figure it out. No thanks.

Now, the one thing I've heard from everyone is that the SQL Server tooling is
beyond belief, and I believe it. If there is one weakness in the open source
RDBMS world it's tooling. With such as large and obvious gap how is it that no
one has filled it yet? Will no one pay for tooling? Are there tools available
but the quality is not there? Seems like a good candidate for someone to fill
a niche and possible make a successful business.

~~~
sixdimensional
Well, with paid db management tools like Navicat, and open source BI tools
like say, Pentaho (both just examples) you can get roughly on parity with SQL
Server's tooling for something like Postgres.

Microsoft has just been polishing the integrated set of tools with SQL Server
for a long time, especially with GUI tools that make the job of administering
SQL Server more accessible for a different class of user (e.g. the ones who
don't compile their own kernels and spend all day in a shell).

~~~
systems
i dont think the BI stack SSAS, SSIS, SSRS ... is part (for now at least) of
ms sql on linux

i do hope thought they do provide it and i really hope they provide SSAS and
SSIS development tools on linux

~~~
sixdimensional
Oh, SSAS/SSIS/SSRS definitely aren't included on Linux currently. I wasn't
suggesting they were.

But getting the features of these tools (cubes/OLAP = SSAS, reports = SSRS,
ETL = SSIS) for other databases such as Postgres is possible with open source
BI tools.

Open source BI platforms like Pentaho, BIRT, Jaspersoft (now owned by TIBCO)
roll together families of different open source tools to give the same type of
functionality for any DB platform. For example, things like Jaspersoft use the
Mondrian OLAP cube engine underneath.

And also, with all the newer engines for data processing (Apache Spark,
Hadoop, Ignite, etc.) you also have a lot of new backend options for
analytical/report/BI processing also.

------
heisenbit
SQL Server, Sharepoint, Active Directory and Office are all platforms in their
own right. It does not make sense to constrain them by requiring the windows
platform to run.

Balmer was jumping across the stage yelling Developers, Developers,
Developers! Now someone in Redmond is executing and pushing the applications
and tools platforms. It will be interesting to see where this leaves Windows
in the medium term.

~~~
mhurron
> Active Directory

Active directory is not a separate product like the others it is very much a
core part of Windows Server. Unless you think AAA parts of an OS are a
separate product from the OS, AD is very much tied to Windows.

You could turn AD into just another identity management platform, but you
would pretty much lose everything that makes AD awesome. AD is impressive
because it is so integral and closely tied to Windows. It begins to lose its
lustre when you integrate other platforms because when you lose that close
coupling, there's nothing but a distributed user authentication store.

~~~
TheRealDunkirk
I'm not sure what else you want from a directory server but a "distributed
user authentication store." Maybe you're referring to file and print services?
Email server integration? All of these kinds of things should be available,
regardless of what platform the directory server is running on.

I'd make some long argument about the Linux market longing for an easy-to-use
directory server, but I see that Novell Directory Services still lives on as
NetIQ, and I've never heard of anyone using it, so maybe the market just isn't
there. (Another victim of Microsoft's monopoly.) So maybe it doesn't matter
that AD isn't platform independent. I guess companies running a lot of Linux
are happy to hassle with the nightmare that is OpenLDAP.

~~~
webmaven
The various open source solutions that Oracle EOL'd which are now offered by
ForgeRock have seemed to be decent alternatives in this space, but of course
they are now making the source less accessible:

[https://news.ycombinator.com/item?id=13068512](https://news.ycombinator.com/item?id=13068512)

------
sandebert
I'm curious what results we will see when people start benchmarking it running
on the same hardware but Windows in one case and Linux in the other.

Also, what would happen (if anything) if the Linux results crushed the Windows
ones? Would that be embarrassing to Microsoft? And to take the thought to the
next level of paranoia, let's say Microsoft already ran those benchmarks in-
house and found the Linux version vastly faster. To avoid embarrassment, would
they slow it down to be more in line with the Windows version?

~~~
eknkc
I'd guess that it would be slower on Linux by design, but not in a malicious
way. They must be using various win32 apis and might have needed to shim them
on Linux. Maybe they had assumptions on NTFS performance, paging behavior etc.
All would contribute to a performance difference.

~~~
NicoJuicy
If I'm not mistaking, SQL is an OS on itselve, so it was designed
crossplatform from the start

~~~
Someone
Even if it was, it likely was tuned for, or even built for, only one OS for
years.

That will have made an impact. For example, if thread creation is faster on an
OS, starting threads for smaller tasks becomes a win; if locking primitives
are slower, it may be better to take a full-table lock more often.

------
walterbell
Sybase SQL Server 4.2 and Microsoft SQL Server (circa 1993) were identical.
The products have since diverged,
[https://en.wikipedia.org/wiki/Sybase#History](https://en.wikipedia.org/wiki/Sybase#History)

Sybase 11.0.3.3 for Linux was made free for production use somewhere around
2002. It is still useful for some applications, if you can find the binaries,
[http://froebe.net/blog/2013/03/10/howto-installing-and-
runni...](http://froebe.net/blog/2013/03/10/howto-installing-and-running-sap-
sybase-sql-server-11-0-3-3-esd-6-on-ubuntu-using-kvm/)

~~~
lobster_johnson
I used Sybase ASE on Linux in the early 2000s. It was a joy to use back then.
Same dialect of SQL as Microsoft SQL Server, easy to set up and work with.

Microsoft SQL Server has since diverged to the point of being a completely
different codebase, whereas Sybase stagnated and were acquired by SAP.

------
ageofwant
I've been expecting MSLinux for 5 years > now.

I've always thought that Microsoft's operating systems were the Albatross
around their neck. Their apps and systems are OK. Having those available on a
superior OS, like Linux would be good for the world, and MS.

Buying canonical would probably be the quickest way.

------
Qantourisc
> We have made it easier than ever to get started with SQL Server. You’ll find
> native Linux installations with familiar RPM and APT packages for Red Hat
> Enterprise Linux and Ubuntu Linux, and packages for SUSE Linux Enterprise
> Server will be coming soon as well.

So easy for some ;) Not to not applaud their efforts though.

~~~
oblio
SQL Server is meant primarily for enterprises, what they're doing makes sense.
IMO if they want to be super nice* they could provide a zip package which
other distros can turn into their specific packages.

* Open Sourcing it is probably unrealistic at this point.

~~~
loeg
Use rpm2cpio and you have a cpio archive. Not zip exactly but you could work
with it outside of Redhat/Ubuntu/Suse.

~~~
dozzie
Unless Microsoft fucked up postinstall scripts, what programmers that build
packages tend to do.

~~~
loeg
I don't believe that's a problem here.

------
gaurav-gupta
Microsoft is adapting at a good pace, going beyond the windows ecosystem. Last
time I used SQL server, it didn't support sharding across machines, so only
supported vertical scaling (unless you buy the appliance or add sharding logic
at the application layer). I think that's something they need to fix, to start
using SQL server for large scale applications.

Now if they can just fix windows, I might start using that too. Maybe
WindowsX? I do enjoy using VSCode on Mac!

~~~
webmaven
I think you meant WinX:
[https://www.wired.com/2005/02/microsoft-5/](https://www.wired.com/2005/02/microsoft-5/)

~~~
gaurav-gupta
Thanks for sharing this! Its interesting to know Microsoft tried this 10 years
ago. They might eventually bring it back, after making sure all their other
applications work on ..nix :) They are definitely sowing the seeds now, with
.NET support on Linux, adding the ubuntu subsystem, SQL server...

------
myf01d
I wonder who would choose Microsoft or MySQL over PostgreSQL these days.

~~~
paulirwin
_raises hand and waves excitedly_

I'd probably pick PostgreSQL over either of the other two _today_ for any case
where my constraint was that I _had_ to have the application run on Linux.
Otherwise, I'm going Azure SQL Database or SQL Server if on-prem (as in, non-
cloud) is needed. This will change soon with the OP about SQL Server on Linux.

SQL Server Management Studio is an incredible tool and beats the pants off of
equivalent free tools like MySQL Workbench and pgAdmin. (SSMS is now freely
available without an MSDN subscription or SQL Server license.) Yes, it
requires Windows, but compared to the other tools on Windows it is second to
none.

Azure SQL Database has been nothing but a good experience to work with. You
automatically get 3 highly-available replicas of your database for no extra
cost, built-in transparent data encryption, query auditing support, threat
detection alerts, near 100% compatibility with SQL Server, and no need to keep
the underlying OS or software up to date and secure. All of this for $30/mo
(Standard S1 we've found to be adequate for most small businesses with line-
of-business type apps.) Depending on the needs of the application, Azure SQL
Database can either be a good replacement for an existing SQL Server instance,
or a stepping stone towards a larger SQL Server installation. We're seeing
many small businesses power down their on-prem/colo SQL Server installs and
moving to Azure SQL Database to save on TCO.

SQL Server Express Edition is a free edition that supports up to 10GB
databases, so it is perfect for your local development environment (assuming
the size constraint allows that). In 2016 SP1, they even added all of the
Standard and Enterprise edition features to Express edition like memory-
optimized tables and columnstore indexes. With integrated Windows
authentication, it is incredibly easy to have your team use a single
connection string and for a new dev just install SQL Express and go.

SQL Server Database Projects in Visual Studio are by far the biggest reason
for me to prefer Azure SQL Database or SQL Server. This is the most elegant
way of storing your database schema in source control that I've ever seen. You
define the schema as just CREATE scripts, and when you build you generate a
DACPAC with the entire schema defined as if you're creating it from scratch.
But upon deployment it determines what objects need to be created, altered, or
(if you want) removed to make the target database schema match the normative
schema in the DACPAC. So it builds its own migration script based on the
schema of the target database, and it won't allow any operations that cause
data loss by default. This is super handy in a team environment because you
don't need to worry about writing migrations by hand, you just define the
schema "as it should be" and no matter what version of the database your team
members had on their machine it will get caught up. Also dealing with merge
conflicts is easier, because you're just doing a line-by-line merge of the
e.g. CREATE TABLE statement rather than having to worry about which order your
migrations run in. If anyone knows of something equivalent for MySQL or
PostgreSQL I'd love to know!

~~~
jmcqk6
>So it builds its own migration script based on the schema of the target
database, and it won't allow any operations that cause data loss by default.
This is super handy in a team environment because you don't need to worry
about writing migrations by hand, you just define the schema "as it should be"
and no matter what version of the database your team members had on their
machine it will get caught up

This only works if you're inside their rails. If you do have a change that
requires a migration of data and risks data loss, you're then in the realm of
creating pre and post-deploy scripts, and you're back on the migration train.

I've been playing around with a tool called sqitch (
[http://sqitch.org/](http://sqitch.org/) ), but I'm not familiar with it
enough to have an opinion on it yet.

~~~
flukus
There are a number of similar solutions
([https://flywaydb.org/](https://flywaydb.org/)), in practice I've found them
all much better than database projects.

------
jchannon
Would you ship your production system database in a container?

~~~
chiph
You might consider it if you have to ship with a lot of pre-loaded data
("vanilla" data), as it'd be easier to do all those inserts/BCP executions
just once on a local network and not over the internet.

------
mmgutz
They say they have top scores on performance benchmarks but weren't those run
on Windows servers? Would like to see Linux benchmarks.

------
roryisok
Anyone know if there's going to be a version of sql express for Linux? I
couldn't find any info on it last time I looked

~~~
gbrayut
Yes... They have said that all existing versions in 2016 will have Linux
releases including express.

------
kriro
Will be very interesting to see how this affects SAP installations. AFAIK the
only database options were SQL Server and Oracle. Granted it's been >5 years
since I had to deal with this mess but this could be amazing news for some
people on SAP who were pretty much forced to run Windows just for the
database.

~~~
albinary10
In fact, this is not the case. Actually, besides ORACLE and MS SQL Server you
can use also DB2 and other SAP's own DB products(MAXDB, Sybase, HANA). I am
talking about ERP and CRM, the main products.

Anyway, this is a very interesting news. Given the "not so good" relationship
between SAP and Oracle, this option will give SQL Server a boost when it comes
to SAP Customers, although it may take some time for SAP to fully support the
Linux-MSSQL option.

------
mcs_
It is time to port those legacy .net 2.0. to node. At least for me.

Thank Microsoft... good one

------
mattkrea
I assume it shares the same insane licensing model. I genuinely do not
understand how people put up with that (outside of enterprises that normally
overpay for everything).

~~~
tyingq
SQL 2016 Enterprise 2-pack of Core Licenses $14,256 ($7,128 per core)

SQL 2016 Standard 2-pack of Core Licenses $3,717 ($1,859 per core)

Not cheap, but perhaps attractive compared to Oracle.

~~~
mattkrea
I stand corrected. Cost is not what I was referencing.. the CAL model was my
problem. No software should require a data sheet to understand the licensing.

~~~
flukus
Yes, understanding licensing has a cost all on it's own. Not just to buy the
products, but as your developing you have to be aware of what you can and
can't use, the developer edition has everything, which can create some traps.

------
known
Satya may have pushed it hard

------
voltagex_
The 16.10 packages seem to be missing and I can't find where to report it.

