Learn more about SQL Server tools

mssqltips logo
 

Tutorials          DBA          Dev          BI          Career          Categories          Webcasts          Scripts          Today's Tip          Join

Tutorials      DBA      Dev      BI      Categories      Webcasts

DBA    Dev    BI    Categories

 

How to enable and disable SQL Server traceflags globally for Linux Instances


By:   |   Last Updated: 2017-04-06   |   Comments   |   Related Tips: More > SQL Server on Linux

Problem

Microsoft has recently released SQL Server to run on Linux servers. Sometimes we need to enable a trace flag globally on SQL Server and in this tip I will demonstrate how to enable a SQL Server trace flag globally on Linux.

Solution

In SQL Server on Windows, if we want to enable a trace flag globally we can do it using one of two ways:

  • DBCC Traceon (traceflag, -1)
  • SQL Server Configuration Manager

In this tip we will see how to enable or disable trace flags in SQL Server running on Linux to use it globally.

To enable or disable a SQL Server trace flag on SQL Server on Linux, we need to use the SQL Server configuration manager utility called mssql-conf.

mssql-conf is a configuration script that installs with SQL Server vNext CTP 1.3 for Red Hat Enterprise Linux, SUSE Linux Enterprise Server and Ubuntu.

Enable a SQL Server Trace Flag Globally on Linux

First let's connect to SQL Server with sqlcmd and get all enabled trace flag information using DBCC tracestatus(-1).

SQL Server trace flag

To enable a trace flag on Linux we need to use the following command:

sudo /opt/mssql/bin/mssql-conf traceflag on

Suppose we want to enable traceflag 1222 to run globally to capture deadlocks.

sudo /opt/mssql/bin/mssql-conf traceflag 1222 on

SQL Server trace flag

Now we need to restart the mssql service.

systemctl restart mssql-server.service

SQL Server trace flag

Now let's check the trace flag again to see if traceflag 1222 is enabled.

SQL Server trace flag

We can see here that the traceflag 1222 is enabled globally.

Enable Multiple SQL Server Trace Flags in Linux

Suppose we want to enable multiple trace flags i.e. 1204, 3205 at once.  We can do so as shown in this script:

sudo /opt/mssql/bin/mssql-conf traceflag 1204 3205 on

SQL Server trace flag

Now let's check the trace flags again to see if these traceflags are enabled.

SQL Server trace flag

Disable SQL Server Trace Flags Globally in Linux

Suppose we want to disable a trace flag.  We need to use the below command.

sudo /opt/mssql/bin/mssql-conf traceflag Off

If we want to disable trace flag 3205, run the command as:

sudo /opt/mssql/bin/mssql-conf traceflag 3205 Off

SQL Server trace flag

Once we have restarted the SQL Server service, verify the trace flag is disabled. We cannot see the disabled trace flag 3205 here since it has been disabled.

SQL Server trace flag
Next Steps
  • Enable and disable a traceflag as per your requirements, but do not perform these steps directly on production systems without proper testing.
  • Read more about SQL Server on Linux Tips.


Last Updated: 2017-04-06


get scripts

next tip button



About the author
MSSQLTips author Rajendra Gupta Rajendra is a Consultant DBA with 9+ years of extensive experience in database administration including large critical OLAP, OLTP, Reporting and SharePoint databases.

View all my tips
Related Resources




Post a comment or let the author know this tip helped.

All comments are reviewed, so stay on subject or we may delete your comment. Note: your email address is not published. Required fields are marked with an asterisk (*).

*Name    *Email    Email me updates 


Signup for our newsletter
 I agree by submitting my data to receive communications, account updates and/or special offers about SQL Server from MSSQLTips and/or its Sponsors. I have read the privacy statement and understand I may unsubscribe at any time.



    



Learn more about SQL Server tools