Share via


SQL Server and SSIS : Installation on Ubuntu

  

                         https://msdnshared.blob.core.windows.net/media/2016/05/0640_NinjaAwardTinyGold.png Gold Award  Winner 

System Requirements

SQL Server 2017 has the following system requirements for Linux:

Resource Value
 2 GB
XFS or EXT4 (other file systems, such as BTRFS, are unsupported)
6 GB
2 GHz
2 cores
x64-compatible only

If we use Network File System (NFS) remote shares in production, note to the following support requirements:

  • Use NFS version 4.2 or higher. Older versions of NFS do not support required features, such as fallocate and sparse file creation, common to modern file systems.
  • Locate only the /var/opt/mssql directories on the NFS mount. Other files, such as the SQL Server system binaries, are not supported.
  • Ensure that NFS clients use the 'nolock' option when mounting the remote share.

Check OS

We should execute the following command to Check the OS (Operating System)

$ cat /etc/os-release


NAME="Ubuntu"
VERSION="16.04.5 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.5 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

 

Public Repository GPG Keys

With the following command we are able to get the GPG keys.

$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add 
 
$ sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"
 
$ sudo apt-get update

ASC files can contain textual representations of binary information, they may be larger in size than the original pre-encoded file.

 

Note

wget utility which retrieves files from World Wide Web (WWW) using widely used protocols like HTTP, HTTPS and FTP

Installing mssql using bash command

Apt-get is so easy because it not only keeps track of what packages are installed, but also what other packages are available. It will even download them from the Internet for you (if properly configured).

$ sudo apt-get install -y mssql-server


Hit:1 http://us.archive.ubuntu.com/ubuntu xenial InRelease
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]
Get:3 https://packages.microsoft.com/ubuntu/16.04/mssql-server-2017 xenial InRelease [3,218 B]
Get:4 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
Get:5 https://packages.microsoft.com/ubuntu/16.04/mssql-server-2017 xenial/main md64 Packages [9,545 B]
Get:6 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [589kB]
Get:7 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Get:8 http://security.ubuntu.com/ubuntu xenial-security/main i386 Packages [502kB]
Get:9 http://security.ubuntu.com/ubuntu xenial-security/main Translation-en [245kB]
Get:10 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [408 kB]
Get:11 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [892 kB]
Get:12 http://security.ubuntu.com/ubuntu xenial-security/universe i386 Packages[354 kB]
Get:13 http://security.ubuntu.com/ubuntu xenial-security/universe Translation-en [159 kB]
Get:14 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packag es [3,724 B]
Get:15 http://security.ubuntu.com/ubuntu xenial-security/multiverse i386 Packages [3,888 B]
Get:16 http://security.ubuntu.com/ubuntu xenial-security/multiverse Translation- en [1,844 B]
Get:17 http://us.archive.ubuntu.com/ubuntu xenial-updates/main i386 Packages [79 0 kB]
Get:18 http://us.archive.ubuntu.com/ubuntu xenial-updates/main Translation-en [361 kB]
Get:19 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Package s [715 kB]
Get:20 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe i386 Packages [655 kB]
Get:21 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe Translation-e n [292 kB]
Get:22 http://us.archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [16.6 kB]
Get:23 http://us.archive.ubuntu.com/ubuntu xenial-updates/multiverse i386 Packag es [15.7 kB]
Get:24 http://us.archive.ubuntu.com/ubuntu xenial-updates/multiverse Translation-en [8,440 B]
Get:25 http://us.archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages[7,288 B]
Get:26 http://us.archive.ubuntu.com/ubuntu xenial-backports/main i386 Packages [ 7,292 B]
Get:27 http://us.archive.ubuntu.com/ubuntu xenial-backports/main Translation-en [4,456 B]
Get:28 http://us.archive.ubuntu.com/ubuntu xenial-backports/universe amd64ges [7,804 B]
Get:29 http://us.archive.ubuntu.com/ubuntu xenial-backports/universe i386 Packages [7,488 B]
Get:30 http://us.archive.ubuntu.com/ubuntu xenial-backports/universe Ten [4,184 B]
Fetched 6,388 kB in 9s (672 kB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
 gcc-5-base gdb gdbserver libbabeltrace-ctf1 libbabeltrace1 libc++1 libc6-dbg
 libcc1-0 libjemalloc1 libpython-stdlib libpython2.7-minimal
 libpython2.7-stdlib libsasl2-modules libsasl2-modules-gssapi-mit
 libsss-nss-idmap0 libstdc++6 libunwind8 python python-minimal python2.7
 python2.7-minimal
Suggested packages:
 gdb-doc clang libsasl2-modules-otp libsasl2-modules-ldap
 libsasl2-modules-sql python-doc python-tk python2.7-doc binutils
 binfmt-support
The following NEW packages will be installed:
 gdb gdbserver libbabeltrace-ctf1 libbabeltrace1 libc++1 libc6-dbg libcc1-0
 libjemalloc1 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib
 libsasl2-modules-gssapi-mit libsss-nss-idmap0 libunwind8 mssql-server python
 python-minimal python2.7 python2.7-minimal
The following packages will be upgraded:
 gcc-5-base libsasl2-modules libstdc++6
3 upgraded, 19 newly installed, 0  to remove and 88 not upgraded.
Need to get 188 MB of  archives.
After this operation, 983 MB of additional disk space will be used.
Get:1 https://packages.microsoft.com/ubuntu/16.04/mssql-server-2017 xenial/main amd64 mssql-server amd6414.0.3048.4-1 [176 MB]
Get:2 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython2.7-minimal amd64 2.7.12-1ubuntu0~16.04.4 [339 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 python2.7-minimal amd64 2.7.12-1ubuntu0~16.04.4 [1,261 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 python-minimal amd64 2.7.12-1~16.04[28.1 kB]
Get:5 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython2.7-stdlib amd64 2.7.12-1ubuntu0~16.04.4 [1,880 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 python2.7 am d64 2.7.12-1ubuntu0~16.04.4 [224 kB]
Get:7 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython-st dlib amd64 2.7.12-1~16.04[7,768 B]
Get:8 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 python amd64 2.7.12-1~16.04 [137 kB]
Get:9 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 gcc-5-base a md64 5.4.0-6ubuntu1~16.04.11 [17.3 kB]
Get:10 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libstdc++6 amd64 5.4.0-6ubuntu1~16.04.11 [393 kB]
Get:11 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libsasl2-modules amd64 2.1.26.dfsg1-14ubuntu0.1 [47.5 kB]
Get:12 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libbabeltrace1 amd64 1.3.2-1 [34.7 kB]
Get:13 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libbabeltrace-ctf1 amd64 1.3.2-1 [88.3 kB]
Get:14 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 gdb amd64 7.11.1-0ubuntu1~16.5 [2,526 kB]
Get:15 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 gdbserver amd64 7.11.1-0ubuntu1~16.5 [172 kB]
Get:16 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcc1-0 amd64 5.4.0-6ubuntu1~16.04.11 [38.8 kB]
Get:17 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libsasl2-modules-gssapi-mit amd642.1.26.dfsg1-14ubuntu0.1 [34.3 kB]
Get:18 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libunwind8 amd64 1.1-4.1 [46.5 kB]
Get:19 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 libc++1amd64 3.7.0-1ubuntu0.1[225 kB]
Get:20 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libc6-dbg amd64 2.23-0ubuntu10 [3,683kB]
Get:21 http://us.archive.ubuntu.com/ubuntu xenial/universe amd64 libjemalloc1 amd64 3.6.0-9ubuntu1 [78.9kB]
Get:22 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libsss-nss-idmap0 amd64 1.131ubuntu1.12 [12.2 kB]
Fetched 188 MB in 19s (9,599 kB/s)
Preconfiguring packages ...
Selecting previously unselected package libpython2.7-minimal:amd64.
(Reading database ... 59897 files and directories currently installed.)
Preparing to unpack .../libpython2.7-minimal_2.7.12-1ubuntu0~16.04.4_amd64.deb . 
Unpacking libpython2.7-minimal:amd64 (2.7.12-1ubuntu0~16.04.4) ...
Selecting previously unselected package python2.7-minimal.
Preparing to unpack .../python2.7-minimal_2.7.12-1ubuntu0~16.04.4_amd64.deb ...
Unpacking python2.7-minimal (2.7.12-1ubuntu0~16.04.4) ...
Selecting previously unselected package python-minimal.
Preparing to unpack .../python-minimal_2.7.12-1~16.04_amd64.deb ...
Unpacking python-minimal (2.7.12-1~16.04) ...
Selecting previously unselected package libpython2.7-stdlib:amd64.
Preparing to unpack .../libpython2.7-stdlib_2.7.12-1ubuntu0~16.04.4_amd64.deb .. 
Unpacking libpython2.7-stdlib:amd64 (2.7.12-1ubuntu0~16.04.4) ...
Selecting previously unselected package python2.7.
Preparing to unpack .../python2.7_2.7.12-1ubuntu0~16.04.4_amd64.deb ...
Unpacking python2.7 (2.7.12-1ubuntu0~16.04.4) ...
Selecting previously unselected package libpython-stdlib:amd64.
Preparing to unpack .../libpython-stdlib_2.7.12-1~16.04_amd64.deb ...
Unpacking libpython-stdlib:amd64 (2.7.12-1~16.04) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for mime-support (3.59ubuntu1) ...
Setting up libpython2.7-minimal:amd64 (2.7.12-1ubuntu0~16.04.4) ...
Setting up python2.7-minimal (2.7.12-1ubuntu0~16.04.4) ...
Linking and byte-compiling packages for runtime python2.7...
Setting up python-minimal (2.7.12-1~16.04) ...
Selecting previously unselected package python.
(Reading database ... 60643 files and directories currently installed.)
Preparing to unpack .../python_2.7.12-1~16.04_amd64.deb ...
Unpacking python (2.7.12-1~16.04) ...
Preparing to unpack .../gcc-5-base_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking gcc-5-base:amd64 (5.4.0-6ubuntu1~16.04.11) over (5.4.0-6ubuntu1~16.04.10) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up gcc-5-base:amd64 (5.4.0-6ubuntu1~16.04.11) ...
(Reading database ... 60698 files and directories currently installed.)
Preparing to unpack .../libstdc++6_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking libstdc++6:amd64 (5.4.0-6ubuntu1~16.04.11) over (5.4.0-6ubuntu1~16.04.10) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
Setting up libstdc++6:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
(Reading database ... 60698 files and directories currently installed.)
Preparing to unpack .../libsasl2-modules_2.1.26.dfsg1-14ubuntu0.1_amd64.deb ...
Unpacking libsasl2-modules:amd64 (2.1.26.dfsg1-14ubuntu0.1) over (2.1.26.dfsg1-14build1) ...
Selecting previously unselected package libbabeltrace1:amd64.
Preparing to unpack .../libbabeltrace1_1.3.2-1_amd64.deb ...
Unpacking libbabeltrace1:amd64 (1.3.2-1) ...
Selecting previously unselected package libbabeltrace-ctf1:amd64.
Preparing to unpack .../libbabeltrace-ctf1_1.3.2-1_amd64.deb ...
Unpacking libbabeltrace-ctf1:amd64 (1.3.2-1) ...
Selecting previously unselected package gdb.
Preparing to unpack .../gdb_7.11.1-0ubuntu1~16.5_amd64.deb ...
Unpacking gdb (7.11.1-0ubuntu1~16.5) ...
Selecting previously unselected package gdbserver.
Preparing to unpack .../gdbserver_7.11.1-0ubuntu1~16.5_amd64.deb ...
Unpacking gdbserver (7.11.1-0ubuntu1~16.5) ...
Selecting previously unselected package libcc1-0:amd64.
Preparing to unpack .../libcc1-0_5.4.0-6ubuntu1~16.04.11_amd64.deb ...
Unpacking libcc1-0:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Selecting previously unselected package libsasl2-modules-gssapi-mit:amd64.
Preparing to unpack .../libsasl2-modules-gssapi-mit_2.1.26.dfsg1-14ubuntu0.1_amd 64.deb ...
Unpacking libsasl2-modules-gssapi-mit:amd64 (2.1.26.dfsg1-14ubuntu0.1) ...
Selecting previously unselected package libunwind8.
Preparing to unpack .../libunwind8_1.1-4.1_amd64.deb ...
Unpacking libunwind8 (1.1-4.1) ...
Selecting previously unselected package libc++1:amd64.
Preparing to unpack .../libc++1_3.7.0-1ubuntu0.1_amd64.deb ...
Unpacking libc++1:amd64 (3.7.0-1ubuntu0.1) ...
Selecting previously unselected package libc6-dbg:amd64.
Preparing to unpack .../libc6-dbg_2.23-0ubuntu10_amd64.deb ...
Unpacking libc6-dbg:amd64 (2.23-0ubuntu10) ...
Selecting previously unselected package libjemalloc1.
Preparing to unpack .../libjemalloc1_3.6.0-9ubuntu1_amd64.deb ...
Unpacking libjemalloc1 (3.6.0-9ubuntu1) ...
Selecting previously unselected package libsss-nss-idmap0.
Preparing to unpack .../libsss-nss-idmap0_1.13.4-1ubuntu1.12_amd64.deb ...
Unpacking libsss-nss-idmap0 (1.13.4-1ubuntu1.12) ...
Selecting previously unselected package mssql-server.
Preparing to unpack .../mssql-server_14.0.3048.4-1_amd64.deb ...
Unpacking mssql-server (14.0.3048.4-1) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up libpython2.7-stdlib:amd64 (2.7.12-1ubuntu0~16.04.4) ...
Setting up python2.7 (2.7.12-1ubuntu0~16.04.4) ...
Setting up libpython-stdlib:amd64 (2.7.12-1~16.04) ...
Setting up python (2.7.12-1~16.04) ...
Setting up libsasl2-modules:amd64 (2.1.26.dfsg1-14ubuntu0.1) ...
Setting up libbabeltrace1:amd64 (1.3.2-1) ...
Setting up libbabeltrace-ctf1:amd64 (1.3.2-1) ...
Setting up gdb (7.11.1-0ubuntu1~16.5) ...
Setting up gdbserver (7.11.1-0ubuntu1~16.5) ...
Setting up libcc1-0:amd64 (5.4.0-6ubuntu1~16.04.11) ...
Setting up libsasl2-modules-gssapi-mit:amd64 (2.1.26.dfsg1-14ubuntu0.1) ...
Setting up libunwind8 (1.1-4.1) ...
Setting up libc++1:amd64 (3.7.0-1ubuntu0.1) ...
Setting up libc6-dbg:amd64 (2.23-0ubuntu10) ...
Setting up libjemalloc1 (3.6.0-9ubuntu1) ...
Setting up libsss-nss-idmap0 (1.13.4-1ubuntu1.12) ...
Setting up mssql-server (14.0.3048.4-1) ...
 +--------------------------------------------------------------+
Please run 'sudo /opt/mssql/bin/mssql-conf setup'
to complete the setup of Microsoft SQL Server
+--------------------------------------------------------------+
 SQL Server needs to be restarted in order to apply this setting. Please run
'systemctl restart mssql-server.service'.
Processing triggers for libc-bin (2.23-0ubuntu10) ...

 

Note

Standard edition require **983 MB ** 

Check mssql service status

#systemctl restart mssql-server.service

Change mssql sa password and configuration

Choose an edition of SQL Server:
 1) Evaluation (free, no production use rights, 180-day limit)
 2) Developer (free, no production use rights)
 3) Express (free)
 4) Web (PAID)
 5) Standard (PAID)
 6) Enterprise (PAID)
 7) Enterprise Core (PAID)
 8) I bought a license through a retail sales channel and have a proenter.
 Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x409
 
Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.
 
Enter your edition(1-8):5 The license terms for this product can be found in/usr/share/doc/mssql-server or downloaded from:https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x409The privacy statement can be viewed at:https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409Do you accept the license terms? [Yes/No]:yesEnter the SQL Server system administrator password:******Confirm the SQL Server system administrator password:******Configuring SQL Server...The licensing PID was successfully processed. The new edition is [Standard Edition].ForceFlush is enabled for this instance.ForceFlush feature is enabled for log durability.Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.se  rvice to /lib/systemd/system/mssql-server.service.Setup has completed successfully.  SQL Server is now starting.

update repository

curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list

Note

CURL command can be used to download multiple files as the same time

Installation command with the unixODBC developer package.


$  sudo apt-get update
$  sudo apt-get install mssql-tools unixodbc-dev

 

Mssql-tools run the following commands

$  sudo apt-get update
$  sudo apt-get install mssql-tools

 

We can access mssql tools from any location like link.

$  sudo ls /opt/mssql-tools/bin/sqlcmd*
 
$  sudo ln -sfn /opt/mssql-tools/bin/sqlcmd /usr/bin/sqlcmd

Login mssql using sqlcmd command

$  sqlcmd -S 192.168.1.35 -U sa -P 'sqldba@1'


1> select @@version
2> go
Microsoft SQL Server 2017 (RTM-CU13) (KB4466404) - 14.0.3048.4 (X64)
 Nov 30 2018 12:57:58
 Copyright (C) 2017 Microsoft Corporation
 Standard Edition (64-bit) on Linux (Ubuntu 16.04.5 LTS)    

How to uninstall SQL Server

$ sudo apt-get remove mssql-server

 Removing the package does not delete the generated database files. If you want to delete the database files, use the following command:

$ sudo rm -rf /var/opt/mssql/

Note: Make sure that you have kept backup of user database which are useful.

 

Install SSIS

Make sure copy microsoft.asc then install configuration IS and set configuration path step by step.

1. Import the public repository GPG keys.

$ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -


  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current load   Total   Spent    Left  Speed
100   983  100   983    0     0   1003      0 --:--:-- --:--:-- --:--:--  1003
OK

 

2. Register the Microsoft SQL Server Ubuntu repository.

$ sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"


  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    
100    91  100    91    0     0     96      0 --:--:-- --:--:-- --:--:--    96

 

3. Run the following commands to install SQL Server Integration Services.

$ sudo apt-get update
$ sudo apt-get install -y mssql-server-is



Hit:1 http://us.archive.ubuntu.com/ubuntu xenial InRelease
Hit:2 https://packages.microsoft.com/ubuntu/16.04/mssql-server-2017 xenial InRelease
Hit:3 https://packages.microsoft.com/ubuntu/16.04/prod xenial InRelease
Get:4 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]
Get:5 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Fetched 323 kB in 1s (176 kB/s)
Reading package lists... Done

4. Installing Integration Services

$  sudo /opt/ssis/bin/ssis-conf setup


Reading package lists... Done

5. Configuration is done, set the path.

$ export PATH=/opt/ssis/bin:$PATH

 

See Also