Microsoft announced its SQL Server on Linux public preview yesterday. I’m really excited to check it out. Here are some interesting things I found during my testing. I’ll write more as I play with it further.
- If you want to play it on Ubuntu, it needs to be 16.04 or above. I didn’t pay attention to that initially, and started installing on Ubuntu 14. Below is a typical message you would get:
[code language=”text”]
The following packages have unmet dependencies:
mssql-server : Depends: openssl (>= 1.0.2) but 1.0.1f-1ubuntu2.21 is to be installed
E: Unable to correct problems, you have held broken packages.
[/code]Running sudo apt-get dist-upgrade brought my Ubuntu to 16.04. The install was smooth afterwards.
- Instruction for Red Hat Enterprise Linux also works for Fedora. I tested it on Fedora 23. I think it should also work on CentOS, although I didn’t test it myself.
- The machine needs to have at least 3.25 GB of memory. On Ubuntu, install won’t continue if that condition is not satisfied:
[code language=”text”]
Preparing to unpack …/mssql-server_14.0.1.246-6_amd64.deb …
ERROR: This machine must have at least 3.25 gigabytes of memory to install Microsoft(R) SQL Server(R).
dpkg: error processing archive /var/cache/apt/archives/mssql-server_14.0.1.246-6_amd64.deb (–unpack):
subprocess new pre-installation script returned error exit status 1
Processing triggers for libc-bin (2.21-0ubuntu4.3) …
Errors were encountered while processing:
/var/cache/apt/archives/mssql-server_14.0.1.246-6_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
[/code]
On Fedora, installation finishes, but you won’t be able to start the service:
[code language=”text”]
[hji@localhost ~]$ sudo /opt/mssql/bin/sqlservr-setup
Microsoft(R) SQL Server(R) SetupYou can abort setup at anytime by pressing Ctrl-C. Start this program
with the –help option for information about running it in unattended
mode.The license terms for this product can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746388 and found
in /usr/share/doc/mssql-server/LICENSE.TXT.Do you accept the license terms? If so, please type “YES”: YES
Please enter a password for the system administrator (SA) account:
Please confirm the password for the system administrator (SA) account:Setting system administrator (SA) account password…
sqlservr: This program requires a machine with at least 3250 megabytes of memory.
Microsoft(R) SQL Server(R) setup failed with error code 1.
Please check the setup log in /var/opt/mssql/log/setup-20161117-122619.log
for more information.
[/code] - Some simple testing 🙂 From the output below, we learn that: 1)in sys.sysfiles, full file name is presented like “C:\var\opt\mssql\data\TestDb.mdf”; 2) Database name, at least inside sqlcmd, is not case-sensitive. By the way, login is also case-insensitive: SA is sA.
[code language=”text”]
1> create database TestDb;
2> goNetwork packet size (bytes): 4096
1 xact[s]:
Clock Time (ms.): total 447 avg 447.0 (2.2 xacts per sec.)
1> use testdb;
2> go
Changed database context to ‘TestDb’.Network packet size (bytes): 4096
1 xact[s]:
Clock Time (ms.): total 3 avg 3.0 (333.3 xacts per sec.)
1> select filename from sys.sysfiles
2> go
filename
——————————————————————————————————————————————————————————————————————————————————————–
C:\var\opt\mssql\data\TestDb.mdf
C:\var\opt\mssql\data\TestDb_log.ldf
[/code] - I then did a quick testing of advanced feature, like Clustered Columnstore Index (CCI). Yes, it’s available in SQL Server for Linux!
[code language=”text”]
1> create table Person (PersonID int, LastName nvarchar(255), FirstName nvarchar(255))
2> goNetwork packet size (bytes): 4096
1 xact[s]:
Clock Time (ms.): total 28 avg 28.0 (35.7 xacts per sec.)
1> create clustered columnstore index Person_CCI on Person;
2> goNetwork packet size (bytes): 4096
1 xact[s]:
Clock Time (ms.): total 25 avg 25.0 (40.0 xacts per sec.)
1>Network packet size (bytes): 4096
1 xact[s]:
Clock Time (ms.): total 1 avg 1.0 (1000.0 xacts per sec.)[/code]
Overall, it looks pretty nice! I’ve got to say, I’m really impressed with Microsoft’s embrace of Linux. By the way, if you use Windows 10, I recommend Bash on Ubuntu on Windows. It’s in beta, but it works for me pretty well so far.
Stay tuned for more. I’ll definitely write more as I play with this new toy!
2 responses to “Initial impressions of SQL Server v.Next Public Preview”
Hello this is a very useful post however I got the same error since I am using ubuntu 14.04 LTS, 64-bit, I performed the command: sudo apt-get dist-upgrade, but getting the same result after try again, could you please help me to overcome this situation,
Adolf,
I suggest you get a VM with the 16.04 and test it there.
Cheers!