Simple Guide to Run SQL Server 2017 in Docker (Linux Containers)


SQL Server 2017 is now supported in Windows, Linux and Docker platform

In previous posts, we saw

How to upgrade SQL Server 2017 on Ubuntu Linux to RTM Version

Simple Guide to provision SQL Server 2017 on Linux in Azure VM

In this post, we will see How to download and run SQL Server 2017 in Docker using Linux Containers

Step 1: Verify and Configure Docker Memory Settings, By default Docker is installed with 2 GB as Configured Memory usage, but SQL Server 2017 needs Min 4 GB RAM

capture20171016150708586

Step 2: Open Powershell and run below command to check the current Docker images

docker ps

capture20171016150842105

Currently we don’t have any images

Step 3: Run below command to download SQL Server 2017 Docker image

docker pull microsoft/mssql-server-linux:2017-latest

Depending on the internet speed, the download will take time

capture20171016151010165

You can verify the downloaded images by running below command

docker images

capture20171016152600162

Step 4: Run below command to start the Docker image and configure SQL Server 2017

docker run -e “ACCEPT_EULA=Y” -e “MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>” -p 1401:1433 –name sql1 -d microsoft/mssql-server-linux:2017-latest

Please change the Name, Port and Password as per your requirements, once the container is started, Please run below command to check the status of container

docker ps

We can see the container is up and running

capture20171016155801340

Please launch Management Studio and connect to docker container by using the IP Address:Port, since its local machine, we will be using localhost,1401

capture20171016155652675

Please run below SQL Command to verify the version of SQL Server

SELECT @@VERSION 

capture20171016155825915

Please run below SQL Command to check the Server name and OS Info

SELECT @@SERVERNAME [ServerName],
host_platform,
host_distribution,
host_release,
host_service_pack_level,
host_sku,
os_language_version
FROM   sys.dm_os_host_info 

capture20171016155846732

Please note that Server name will be the Container ID and not the Container name

Hope you find this post helpful !!!

Advertisement

sys.dm_os_host_info–DMV to find Operating System Information in SQL Server 2017


SQL Server 2017 includes a new DMV to find Operating System information

sys.dm_os_host_info

 

SELECT host_platform,
host_distribution,
host_release,
host_service_pack_level,
host_sku,
os_language_version
FROM   sys.dm_os_host_info
 

Output from Windows Server

capture20171016105801406

Output from Ubuntu Linux Server

capture20171016105834926

This DMV will come in handy when writing maintenance scripts based on Operating System ex. Backup Script to get custom backup path based on OS

DECLARE @BackupPath VARCHAR(500)
DECLARE @OSInfo NVARCHAR(256)

SELECT @OSInfo = host_platform
FROM   sys.dm_os_host_info

IF @OSInfo = ‘Windows’
BEGIN
SET @BackupPath = ‘E:\SQLBackup\’
END
ELSE IF @OSInfo = ‘Linux’
BEGIN
SET @BackupPath = ‘/var/opt/BACKUP/’
END

SELECT @BackupPath [Backup Path] 

 

Output from Windows Server

capture20171016111911787

 

Output from Ubuntu Linux Server             

capture20171016111923741

Hope you find this post helpful !!!

 

Simple Guide to provision SQL Server 2017 on Linux in Azure Virtual Machine


Hi Everyone, In this article, we will see how to provision SQL Server 2017 on Linux in Azure Virtual Machine

Step 1: Please login to azure portal and go to Virtual Machine blade

capture20171006153829221

Step 2: Please search for SQL Server 2017

capture20171006153917048

Step 3: Please select SQL Server 2017 Developer on Ubuntu Server, I have used Ubuntu linux for this demo but you can use Red Hat or Suse Linux as well

capture20171006153950231

Step 4: Please review the legal terms, select deployment model, I prefer to use Resource Manager, so that management and cleanup is easier, Please also copy the highlighted command which will be helpful for configuring the sa password for SQL Server later

capture20171006154030026

Step 5: Please provide the name of the VM, select Disk type, provide user name and select Authentication Type, in this case I am using Password

Please select the Azure Subscription

For Resource group, I am creating a new one named “SQLLinux” and using Azure data center location as “East US”, please change this according to your region

capture20171006155312325

Step 6: In this step, we need to select the Size of our Linux VM, I am using B2S Standard, which has 2 vCPUs and 4 GB RAM, which is good for our testing, but you can choose the size based on your requirement, after selecting the size, Please click “Select” to proceed

capture20171006155634830

Step 7: In this step, we will review some of the important settings

Virtual Network – For this demo, I am creating a new Virtual Network, but if you already have other VMs running in Azure and you need this SQL Server VM to be accessible for them, Please use the existing Virtual Network

Public IP Address – I have enabled Public IP Address for this demo, but this is optional, Please don’t enable this, if you are planning to use this server only within Azure, so that it will reduce the exposure

Network Security Group (Firewall) – We will see in next step, How to configure firewall to allow external access

Auto Shutdown – This is an useful optional setting for demo or test servers, so that you can configure it to shutdown automatically based on a timing, this will reduce billing of your VM

Time Zone – Please select the time zone based on your region

capture20171006155902614

Step 8: Additional Settings Please enable Monitoring for both Boot diagnostics and Guest OS diagnostics, This will help you see the Boot log for any error or messages, after making required Settings changes, Click “Ok” to proceed

capture20171006155918920

Step 9:  To allow external access to SQL Server,  we need to change Network Firewall setting by adding Inbound and Outbound security rules for MSSQL Service

Note: You can do this change after creating the Virtual machine

capture20171006161838234

capture20171006161922839

Step 10: Review the selection options and click “Purchase” to buy and create the virtual machine

capture20171006160025569

Step 11: You can review the Virtual Machine deployment progress in the screen

capture20171006160058057

If you closed it, you can see from the Top right corner Notifications area

capture20171006160124574

You can also see the status under Virtual Machines blade as well

capture20171006160259721

Once Virtual machine is provisioned and ready, you should see the status as “Running”, see below screenshot

capture20171006160508333

Step 12:  Please click on the Virtual Machine to see the settings and also to monitor the CPU/Network/Disk usage

capture20171006160608869

Step 13: Configuring SQL Server in Azure Linux VM

Please connect to Azure Linux VM using any preferred SSH client, In this demo, I am using Bash Shell on Windows, since its built in Windows 10 now

Command to connect, Please type “Yes” to accept the authenticity of the host

ssh username@serveripaddress

capture20171006160654951

Step 14: After logging in to VM, Please run the below command to check the status of SQL Server

sudo systemctl status mssql-server

Since we haven’t configured SA password, SQL Server is not running, so you seeing the status as “Inactive”

capture20171006160938531

Step 15: Please run below command to configure SA password

sudo /opt/mssql/bin/mssql-conf setup

Please select your preferred edition of SQL Server, in this demo, we will use Developer edition, in next prompt, Please specify the SA password and press enter

capture20171006161516727

Once password is setup, SQL Server 2017 will automatically run, Please run the status command again to review the SQL Server status

sudo systemctl status mssql-server

capture20171006161118193

Step 16: Please run “SELECT @@VERSION” using SQLCMD utility to connect to the server to verify we are able to connect and see SQL Server version

capture20171006161645028

Step 17: Now we can use SQL Server Management Studio to connect using the Public IP Address and SA password provisioned

capture20171006162510369

Once connected, Please create your required databases and database objects and use as needed

capture20171006162600552

capture20171006162708830

SQL Server 2017 Developer Edition is up and running Azure Linux VM now in under 5 minutes

I believe you will find this post useful !!!

XE Profiler / Extended Events Profiler – New SQL Server Management Studio Feature


SQL Server Management Studio v 17.3 introduces new feature called “XE Profiler” or “Extended Events Profiler”, This will be the obvious replacement for SQL Server Profiler which was part of SQL Server Tools since SQL Server 7.0

Out of the box, XE Profiler supports the following options

capture20171011111042838

TSQL template provide simple details such as Event Sequence, Name of the Event, Query Text, Session ID, Time Event occurred

capture20171011111119585

Standard Template provide more details such as Client Application Name, User Name, CPU Time, Logical Reads, Writes, Duration

capture20171011111514648

You can Pause and Resume profiling using these options

capture20171011111834646

Clear Data option is enabled only when profiling is on and running, I wish this should be enabled in stopped state as well to cleanup

One of my personal favorite feature is Bookmarks

capture20171011112054442

We can setup Bookmarks on statements which you want to review later using “Toggle Bookmark” option from Toolbar or Context menu, we can navigate between Bookmarks using “Previous Bookmark” and “Next Bookmark” options, We can clear the Bookmarks using “Clear All Bookmarks” option, it would be nice to have a warning when we use this option, so that accidental cleanup of all bookmarks can be avoided

Find” is a handy option to search for specify details such as query text

capture20171011112751489

We can also customize the Search for specific column by changing the Look In

capture20171011112956258

Also we have option to customize the list of columns we want to see as well

capture20171011113059525

We also have option to create Merged columns by combining up to 5 columns

capture20171011113242153

We can save the changes made to display settings and reuse the previously saved settings as well

capture20171011113544245

Filters option enables us to run the profiler to target specific database or application or by specific username

capture20171011113748783

We can also setup Time based filter and Fields supported in filter are as follows

capture20171011114012086

capture20171011114031275

Hope you find this article helpful !!!

Import Flat File Wizard–New Feature in SQL Server Management Studio v 17.3


SQL Server Management Studio v 17.3 is released and available for download now, it packs lot of new features and updates

One of the most interesting features is “Import Flat File” Feature which can help novice to experienced users to load Flat file to SQL Server

capture20171010153301560

“Import Flat File” option is available at Database level under Tasks Context menu

capture20171010151258718

In this article, I am using FDA’ Orange Book Data product files for loading, as you can see this file is separated by ~

FDA Orange Book Data Files

capture20171010151446560

Please click “Next” to start the Import Flat File  process

capture20171010151620937

Please select the Input file, The tool is smart and it uses the File name as Target table name

capture20171010151714495

But if we prefer, we can change the Target table according to our needs or naming convention

capture20171010151751094

Click “Next” to proceed to “Preview Data” screen, In “Preview Data” screen we can see the sample records

capture20171010151752654

After previewing the data, Please click “Next” to proceed to “Modify Columns” screen, based on sampled rows, it automatically suggests the data types, but we can change the Data Type based on our input source specification, in this case, I have changed the “Applicant_Full_Name” to NVARCHAR(500) from NVARCHAR(100) and also we can specify Primary Key, which I have selected “Appl_No” and “Product_No” as Combined Primary Key

capture20171010152124723

After making required changes to Column definition, Please click to proceed, depending on the size of the data, the Import operation will run and complete

capture20171010152556076

You can click on the “Success” hyperlink in Result to view the Completed message, once reviewed, Please click “Close” to continue

capture20171010152600380

Now let us review the data imported, We can see the new table is created

capture20171010152614195

We are running a simple Select Query to see all records loaded, We can see 2499 rows are loaded

capture20171010152715115

This tools is really simple and easy to use, I believe you will find this article helpful

%d bloggers like this: