Release notes for SQL Server 2017 on Linux

The following release notes apply to SQL Server 2017 running on Linux. The topic below is broken into sections for each release. The GA release has detailed supportability and known issues listed. Each Cumulative Update (CU) release has a link to a support topic describing the CU changes as well as links to the Linux package downloads.

Supported platforms

Platform File System Installation Guide
Red Hat Enterprise Linux 7.3 or 7.4 Workstation, Server, and Desktop XFS or EXT4 Installation guide
SUSE Enterprise Linux Server v12 SP2 EXT4 Installation guide
Ubuntu 16.04LTS EXT4 Installation guide
Docker Engine 1.8+ on Windows, Mac, or Linux N/A Installation guide

Tip

Review the system requirements for SQL Server on Linux.

Supported client tools

Tool Minimum version
SQL Server Management Studio (SSMS) for Windows 17.0
SQL Server Data Tools for Visual Studio 17.0
Visual Studio Code with the mssql extension Latest

Release history

The following table lists the release history for SQL Server 2017.

Release Version Release date
CU1 14.0.3006.16 10-2017
GA 14.0.1000.169 10-2017

Cumulative Update 1 (October 2017)

This is the Cumulative Update 1 (CU1) release of SQL Server 2017. The SQL Server engine version for this release is 14.0.3006.16. For information about the fixes and improvements in this release, see https://support.microsoft.com/help/4038634.

Installation

If you have configured the Cumulative Update repository, then you will get the latest cumulative update of SQL Server packages when you perform new installations. The Cumulative Update repository is the default for all package installation articles for SQL Server on Linux. For more information about repository configuration, see Source repositories.

If you are updating existing SQL Server packages, run the appropriate update command for each package to get the latest cumulative update. For specific update instructions for each package, see the following installation guides:

Package details

For manual or offline package installations, you can download the RPM and Debian packages with the information in the following table:

Package Package version Downloads
Red Hat RPM package 14.0.3006.16-3 Engine RPM package
High Availability RPM package
Full-text Search RPM package
SQL Server Agent RPM package
SSIS package
SLES RPM package 14.0.3006.16-3 mssql-server Engine RPM package
High Availability RPM package
Full-text Search RPM package
SQL Server Agent RPM package
Ubuntu 16.04 Debian package 14.0.3006.16-3 Engine Debian package
High Availability Debian package
Full-text Search Debian package
SQL Server Agent Debian package
SSIS package

GA (October 2017)

This is the General Availability (GA) release of SQL Server 2017. The SQL Server engine version for this release is 14.0.1000.169.

Package details

Package details and download locations for the RPM and Debian packages are listed in the following table. Note that you do not need to download these packages directly if you use the steps in the following installation guides:

Package Package version Downloads
Red Hat RPM package 14.0.1000.169-2 Engine RPM package
High Availability RPM package
Full-text Search RPM package
SQL Server Agent RPM package
SSIS package
SLES RPM package 14.0.1000.169-2 mssql-server Engine RPM package
High Availability RPM package
Full-text Search RPM package
SQL Server Agent RPM package
Ubuntu 16.04 Debian package 14.0.1000.169-2 Engine Debian package
High Availability Debian package
Full-text Search Debian package
SQL Server Agent Debian package
SSIS package

Unsupported features and services

The following features and services are not available on Linux at this time. The support of these features will be increasingly enabled over time.

Area Unsupported feature or service
Database engine Transactional replication
  Merge replication
  Stretch DB
  Polybase
  Distributed query with 3rd-party connections
  System extended stored procedures (XP_CMDSHELL, etc.)
  Filetable, FILESTREAM
  CLR assemblies with the EXTERNAL_ACCESS or UNSAFE permission set
  Buffer Pool Extension
SQL Server Agent Subsystems: CmdExec, PowerShell, Queue Reader, SSIS, SSAS, SSRS
  Alerts
  Log Reader Agent
  Change Data Capture
  Managed Backup
High Availability Database mirroring
Security Extensible Key Management
  AD Authentication for Linked Servers
  AD Authentication for Availability Groups (AGs)
  3rd party AD tools (Centrify, Vintela, Powerbroker)
Services SQL Server Browser
  SQL Server R services
  StreamInsight
  Analysis Services
  Reporting Services
  Data Quality Services
  Master Data Services

Known issues

The following sections describe known issues with the Genera Availability (GA) release of SQL Server 2017 on Linux.

General

  • Upgrades to the GA release of SQL Server 2017 are supported only from CTP 2.1 or higher.

  • The length of the hostname where SQL Server is installed needs to be 15 characters or less.

    • Resolution: Change the name in /etc/hostname to something 15 characters long or less.
  • Manually setting the system time backwards in time will cause SQL Server to stop updating the internal system time within SQL Server.

    • Resolution: Restart SQL Server.
  • Only single instance installations are supported.

    • Resolution: If you want to have more than one instance on a given host, consider using VMs or Docker containers.
  • SQL Server Configuration Manager can’t connect to SQL Server on Linux.

  • The default language of the sa login is English.

    • Resolution: Change the language of the sa login with the ALTER LOGIN statement.

Databases

  • The master database cannot be moved with the mssql-conf utility. Other system databases can be moved with mssql-conf.

  • When restoring a database that was backed up on SQL Server on Windows, you must use the WITH MOVE clause in the Transact-SQL statement.

  • Distributed transactions requiring the Microsoft Distributed Transaction Coordinator service are not supported on SQL Server running on Linux. SQL Server to SQL Server distributed transactions are supported.

  • Certain algorithms (cipher suites) for Transport Layer Security (TLS) do not work properly with SQL Server on Linux. This results in connection failures when attempting to connect to SQL Server, as well as problems establishing connections between replicas in high availability groups.

    • Resolution: Modify the mssql.conf configuration script for SQL Server on Linux to disable problematic cipher suites, by doing the following:

      1. Add the following to /var/opt/mssql/mssql.conf.

        [network]
        tlsciphers= AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!ECDHE-RSA-AES128-GCM-SHA256:!ECDHE-RSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES128-GCM-SHA256:!ECDHE-ECDSA-AES256-SHA384:!ECDHE-ECDSA-AES128-SHA256:!ECDHE-ECDSA-AES256-SHA:!ECDHE-ECDSA-AES128-SHA:!ECDHE-RSA-AES256-SHA384:!ECDHE-RSA-AES128-SHA256:!ECDHE-RSA-AES256-SHA:!ECDHE-RSA-AES128-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-DSS-AES256-SHA256:!DHE-DSS-AES128-SHA256:!DHE-DSS-AES256-SHA:!DHE-DSS-AES128-SHA:!DHE-DSS-DES-CBC3-SHA:!NULL-SHA256:!NULL-SHA
        

        Note

        In the preceding code, ! negates the expression. This tells OpenSSL to not use the following cipher suite.

      2. Restart SQL Server with the following command.

        sudo systemctl restart mssql-server
        
  • SQL Server 2014 databases on Windows that use In-memory OLTP cannot be restored on SQL Server 2017 on Linux. To restore a SQL Server 2014 database that uses in-memory OLTP, first upgrade the databases to SQL Server 2016 or SQL Server 2017 on Windows before moving them to SQL Server on Linux via backup/restore or detach/attach.

  • User permission ADMINISTER BULK OPERATIONS is not supported on Linux at this time.

Networking

Features that involve outbound TCP connections from the sqlservr process, such as linked servers or Availability Groups, might not work if both the following conditions are met:

  1. The target server is specified as a hostname and not an IP address.

  2. The source instance has IPv6 disabled in the kernel. To verify if your system has IPv6 enabled in the kernel, all the following tests must pass:

    • cat /proc/cmdline will print the boot cmdline of the current kernel. The output must not contain ipv6.disable=1.
    • The /proc/sys/net/ipv6/ directory must exist.
    • A C program that calls socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) should succeed - the syscall must return an fd != -1 and not fail with EAFNOSUPPORT.

The exact error depends on the feature. For linked servers, this manifests as a login timeout error. For Availability Groups, the ALTER AVAILABILITY GROUP JOIN DDL on the secondary will fail after 5 minutes with a download configuration timeout error.

To work around this issue, do one of the following:

  1. Use IPs instead of hostnames to specify the target of the TCP connection.

  2. Enable IPv6 in the kernel by removing ipv6.disable=1 from the boot cmdline. The way to do this depends on the Linux distribution and the bootloader, such as grub. If you do want IPv6 to be disabled, you can still disable it by setting net.ipv6.conf.all.disable_ipv6 = 1 in the sysctl configuration (eg /etc/sysctl.conf). This will still prevent the system's network adapter from getting an IPv6 address, but allow the sqlservr features to work.

Network File System (NFS)

If you use Network File System (NFS) remote shares in production, note 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.

Localization

  • If your locale is not English (en_us) during setup, you must use UTF-8 encoding in your bash session/terminal. If you use ASCII encoding, you might see an error similar to the following:

    UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 8: ordinal not in range(128)
    

    If you cannot use UTF-8 encoding, run setup using the MSSQL_LCID environment variable to specify your language choice.

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • When running mssql-conf setup, and performing a non-English installation of SQL Server, incorrect extended characters are displayed after the localized text, "Configuring SQL Server...". Or, for non-Latin based installations, the sentence might be missing completely. The missing sentence should display the following localized string: "The licensing PID was successfully processed. The new edition is [<Name> edition]”. This string is output for information purposes only, and the next SQL Server Cumulative Update will address this for all languages. This does not affect the successful installation of SQL Server in any way.

SQL Server Integration Services (SSIS)

  • The mssql-server-is package is not supported on SUSE in this release. It is currently supported on Ubuntu and on Red Hat Enterprise Linux (RHEL).

  • With SSIS on Linux CTP 2.1 Refresh and later, SSIS packages can use ODBC connections on Linux. This functionality has been tested with the SQL Server and the MySQL ODBC drivers, but is also expected to work with any Unicode ODBC driver that observes the ODBC specification. At design time, you can provide either a DSN or a connection string to connect to the ODBC data; you can also use Windows authentication. For more info, see the blog post announcing ODBC support on Linux.

  • The following features are not supported in this release when you run SSIS packages on Linux:

    • SSIS Catalog database
    • Scheduled package execution by SQL Agent
    • Windows Authentication
    • Third-party components
    • Change Data Capture (CDC)
    • SSIS Scale Out
    • Azure Feature Pack for SSIS
    • Hadoop and HDFS support
    • Microsoft Connector for SAP BW

For a list of built-in SSIS components that are not currently supported, or that are supported with limitations, see Limitations and known issues for SSIS on Linux.

For more info about SSIS on Linux, see the following articles:

SQL Server Management Studio (SSMS)

The following limitations apply to SSMS on Windows connected to SQL Server on Linux.

  • Maintenance plans are not supported.

  • Management Data Warehouse (MDW) and the data collector in SSMS are not supported.

  • SSMS UI components that have Windows Authentication or Windows event log options do not work with Linux. You can still use these features with other options, such as SQL logins.

  • Number of log files to retain cannot be modified.

Next steps

To get started, see the following quick start tutorials: