SQL Saturday 686–Upgrade your SQL Server like a Ninja

There is a plethora of Data Platform subject matter experts who will be descending at Portland this weekend to mingle with data professionals. What’s more a number of them will be surfacing a week later at the SQL PASS Summit as well.  I am eagerly looking forward to the data drive conversations. I have always been a big proponent of sharing the knowledge with the community and SQL Saturday is great way to do that.

There are multiple tracks which will be running on the same day. There are a number of sessions from various known community subject matter experts on various subjects on the tracks listed above and also from the Microsoft SQL Server Tiger team. I am really looking forward to this event! This will be an awesome prelude to PASS!

I will be presenting a session on upgrading your SQL Server and how we have helped Enterprises upgrade their SQL Server instances through various automations that are available using recent tools that Microsoft has shipped.

Session name: Upgrade your SQL Server like a Ninja

Duration: 70 minutes

Date: 28th Oct, 2017

Timing: 10.10am – 11.20am

Session Abstract

Are you thinking about upgrading your SQL Server environment to the latest and greatest that your data platform has to offer? If yes, then let us show you how you can perform risk-free and automated upgrades for SQL Server. In this session, you will see the new experiences Microsoft is building for performing Tier-1 SQL Server upgrades at scale through automated assessments, robust performance validation and using product features to minimize downtime.

Hope to see you at the event!

Book on Azure and SQL Server

image

My last contribution to a book was in 2012. With the advent of the cloud and my continuing work with SQL Server, I jumped at the opportunity when my friends and colleagues, Pranab Mazumdar [t] and Sourabh Agarwal [t], talked to me about contributing to a book on running SQL Server on Azure.

The book “Pro SQL Server on Microsoft Azure” attempts to teach the basics of Microsoft Azure and see how SQL Server on Azure VMs (Infrastructure-as-a-Service) and Azure SQL Databases (Platform-as-a-Service) work. This book will show you how to deploy, operate, and maintain your data using any one or more combinations of these offerings along with your on-premise environments. You will also find some architecture details which are very important for an end user to know in order to run operations using Azure.

The book is available on Apress and Amazon.

We would love to hear any feedback about the book. It could be good, bad or ugly. You will find the resources available for download on the site.

Configuring the Azure VM for SQL Server connectivity

In the last SQL Bangalore UG meeting, I had talked about how to use the Custom Scripting component in Azure to run the post configuration operations on an Azure VM which was hosting a SQL Server instance. The post configuration options that I am going to talk about in this post are necessary for you to be able to connect to your SQL Server instance on an Azure VM from a Management Studio running on your on-premise machine.

Before you can connect to the instance of SQL Server from the Internet, the following tasks must be completed:

  • Configure SQL Server to listen on the TCP protocol and restart the Database Engine.
  • Open TCP ports in the Windows firewall.
  • Configure SQL Server for mixed mode authentication.
  • Create a SQL Server authentication login.
  • Create a TCP endpoint for the virtual machine. This would normally be done while providing the endpoint configuration if you are using the Azure Management Portal wizard.

If you had used an Image from the Image gallery, then you will get a default database engine installed with the TCP/IP port configured as 1433. I had written a post earlier which walks through an Azure VM creation using a SQL Server image from the image gallery.

Here I am going to talk about how to automate the bulleted points mentioned above using PowerShell and the Custom Script extension that the Azure provides. This is going to be a long read… So I suggest you get a coffee before you start reading further!

Continue reading

Azure SQL Database–Firewall

In my last post, I talked about how to create an Azure SQL database. In this post, I am going to talk about how to connect to the same. You have multiple options to connect to the database:

1. Through the Management Portal using the link: https://<Azure SQL Database Server Name>.database.windows.net/

2. SQL Server Management tools like Management Studio, SQL Server Data Tools

3. Through programmatic means using .NET or other languages

But before you start connecting to your database, you will first need to setup the list of allowed IP Addresses. This post will talk about how to configure the firewall for your Azure SQL Database.

Continue reading

SQL Server is hung!

In the recent past, I had to work on a SQL Server 2000 instance which became unresponsive after a short period of time the service was restarted. Since this was SQL Server 2000, I didn’t have the opportunity to use a Dedicated Administrator Connection (DAC) to log into the SQL Server instance to see if a DAC connection succeeded. And if it did, could I figure out what was happening on the SQL Server engine that it was not accepting a new connection.

Post the SQL Server service restart, the ERRORLOG very happily indicated no issues and if you weren’t already ready to tear your hair out due to the lack of error messages, the connection failure reported the most generic of errors messages:

Server: Msg 11, Level 16, State 1
[Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]General network error. Check your network documentation.

I did the basic due diligence to check if the network protocols were enabled and if the port on which the SQL Server instance was supposed to listen on was actually open. I did happen to check the netstat output to check the activity on the port and found a large number of connections on the SQL Server port. I did a quick check of the count of the number of connections showing up to determine if this was a TCP port exhaustion issue. But that was not the case either! The Errorlog didn’t even report a Deadlocked Schedulers condition for me to know that there was an issue.

Continue reading