SQL Server

In-depth SQL Server content covering engine internals, Always On Availability Groups, performance tuning, T-SQL Snapshot Backup, SQL Server on Linux, and SQL Server on Kubernetes.

SQL Server on Kubernetes Book Published!

I’m super proud to announce that Ben E. Weissman and I have published SQL Server on Kubernetes – Designing and Building a Modern Data Platform available now at Apress and your favorite online book sellers! Buy the book now…or keep reading below if you need to be more convinced :)

A couple of notes about the book, I saw Kubernetes showcased at a Microsoft event a few years back. I immediately saw the value and dedicated time to learning how Kubernetes and SQL Server on Kubernetes works. (Literally on the flight home I started watching training videos and researching books to read :) Since then, I have been sharing those learnings with the data and Kubernetes communities. This book is the intersection of all of that content. I genuinely believe that this will be how you will be building systems in the near future (or right now)! SQL Server on Kubernetes is the foundation for Big Data Clusters and now Azure Arc-enabled Data Services. I also want to call out my co-author and friend, Ben; you are an incredible writer and thank you for driving this book to completion!

Container Limits and SQL Server

Limits in Containers

Docker gives you the ability to control a container’s access to CPU, Memory, and network and disk IO using resource constraints, sometimes called Limits. You define limits as parameters when creating containers. In its default configuration, a container will have no resource constraints for accessing resources of the host operating system. This post will look at how to configure resource constraints in Docker and look at how SQL Server sees the resources when CPU and Memory resource constraints are in place.

T-SQL Tuesday #140 Wrap up: What have you been up to with containers?

I want to start by saying thank you to all who submitted, and an amazing collection of people submitted some fantastic content. Also, thanks to Steve for asking me to host and being patient with me for mixing up the dates and the hashtag. It’s #tsql2sday and it’s on Tuesday not Wednesday :P

T SQL Tuesday Logo

Now, onto the posts in submission order.

Rob Farley – On containers

T-SQL Tuesday #140: What have you been up to with containers?

In recent years containers have come into the data platform world, exposing new technologies to data professionals. Microsoft put SQL Server in Linux, and shortly after that, SQL Server made its way into containers. SQL Server in Containers has become the foundation for things like Big Data Clusters and Azure Arc-enabled Data Services

My invitation to you for this month’s #tsql2sday is…

I want to invite you to share your experiences using containers and not just SQL Server in containers…

Getting SQL Agent Jobs and Job Steps Configuration

Recently I needed to take a look at all of the SQL Server Agent Jobs and their Jobs Steps for a customer. Specifically, I needed to review all of the Jobs and Job Steps for Ola Hallengren’s Maintenance Solution and look at the Backup, Index Maintenance and Integrity Jobs to ensure they’re configured properly and also account for any customizations and one-offs in the Job definitions. This customer has dozens of SQL Server instances and well, I wasn’t about to click through everything in SSMS…and writing this in TSQL would have been a good candidate for a Ph.D. dissertation. So let’s check out how I solved this problem using dbatools.

Persistent Server Name Metadata When Deploying SQL Server in Kubernetes

In this post, we will explore how a Pod name is generated, Pod Name lifecycle, how it’s used inside a Pod to set the system hostname, and how the system hostname is used by SQL Server to set its server name metadata.

Pod Naming in Deployments

When deploying SQL Server in Kubernetes using a Deployment, the Pod created by the Deployment Controller will have a name with a structure of <DeploymentName>-<PodTemplateHash>-<PodID> for example, mssql-deployment-8cbdc8ddd-9n7jh.

Pre-Conference Workshop and Sessions at PASS Summit

I’m pleased to announce that I will be presenting at PASS Summit. This year I have a pre-conference workshop and a regular session. Let’s dive into each.

Pre-Conference Workshop: The Future of Deployment for Modern Data Platform Applications

Ben Weissman and I teach a pre-conference workshop called “The Future of Deployment for Modern Data Platform Applications” in this workshop. We’re going to cover how you will be deploying data platform applications in the near future. Here’s a listing of the topics we’re going to cover.

Speaking at Data Grillen 2020

I’m proud to announce that I will be speaking at Data Grillen 2020 the conference runs from 28 May 2020 through 29 May 2020.

This is an incredible event packed with fantastic content, speakers, bratwurst and Beer! 

**Check out the amazing schedule (**and when I say check out the amazing schedule, I really mean it. Some of the world’s best Data Platform speakers are going to be there)

On Thursday**, May 28th at 15:00** – I’m presenting “Containers –  Day 2” in the Handschuh room.

Speaking at SQLBits 2020

I’m proud to announce that I will be speaking at SQLBits! I had the absolute pleasure of speaking at SQLBits last year for the first time and saw first hand how great this event is and cannot wait to get back and speak again! And this year, I have two sessions!!! One on building and deploying container based applications in Kubernetes and the other on deploying SQL Server in Kubernetes

If you haven’t been to SQLBits before, what are you waiting for! Sign up now!

Speaking at SQLIntersection Orlando 2020

I’m very pleased to announce that I will be speaking at SQL Intersection April 2020!  This is my first time speaking at SQL Intersection and I’m very excited to be doing so!

<p>
  Speaking at SQL Intersection means so much to me because in 2014 I got my first exposure to the SQL Server community via <a href="https://www.sqlskills.com/">SQLskills</a> and their training. Then to follow up on their training workshops I attended my very first IT conference, SQL Intersection and now I get to come back as a speaker. Let’s just say, I’m a little excited!!!
</p>

<p>
  Now as for the sessions…lots of content here on SQL Server on Linux, Containers and Kubernetes…check them out! <a href="https://www.sqlintersection.com/#!/?track=sql">Click here to register!</a>
</p>

<p>
  <strong>Full Day Workshop</strong>
</p>

<p>
  <a href="https://www.sqlintersection.com/#!/workshop/Kubernetes%20Zero%20to%20Hero:%20Installation,%20Configuration,%20and%20Application%20Deployment/4175"><strong>Kubernetes Zero to Here: Installation, Configuration and Application Deployment</strong></a>
</p>

<blockquote>
  <p>
    Modern application deployment needs to be fast and consistent to keep up with business objectives and Kubernetes is quickly becoming the standard for deploying container-based applications, fast. In this day-long session, we will start with an architectural overview of a Kubernetes cluster and how it manages application state. Then we will learn how to build a production-ready cluster. With our cluster up and running, will learn how to interact with our cluster, common administrative tasks, then wrap up with how to deploy applications and SQL Server. At the end of the session, you will know how to set up a Kubernetes cluster, manage a cluster, deploy applications and databases, and how to keep everything up and running.
  </p>
  
  <p>
    Workshop Objectives:
  </p>
  
  <ul>
    <li>
      Introduce Kuberentes Cluster Components
    </li>
    <li>
      Introduce Kubernetes API Objects and Controllers
    </li>
    <li>
      Installing <span style="background-color: #ffffff;">Kubernetes</span>
    </li>
    <li>
      Interacting with your cluster
    </li>
    <li>
      Storing persistent data in Kubernetes
    </li>
    <li>
      Deploying Applications in Kubernetes
    </li>
    <li>
      Deploying SQL Server in Kubernetes
    </li>
    <li>
      High Availability SQL Server scenarios in Kubernetes
    </li>
  </ul>
</blockquote>

<p>
  <strong>General Sessions</strong>
</p>

<p>
  <a href="https://www.sqlintersection.com/#!/session/Containers%20%E2%80%93%20It's%20Time%20to%20Get%20On%20Board/4365"><strong>Containers &#8211; It’s Time to Get on Board</strong></a>
</p>

<blockquote>
  <p>
    Containers are taking over, changing the way systems are developed and deployed…and that’s not hyperbole. Just imagine if you could deploy SQL Server or even your whole application stack in just minutes? You can do that, leveraging containers! In this session, we’ll get your started on your container journey, learn some common container scenarios and introduce container orchestration with Kubernetes.
  </p>
  
  <p>
    In this session we&#8217;ll look at
  </p>
  
  <ul>
    <li>
      Container Fundamentals
    </li>
    <li>
      Common Container Scenarios
    </li>
    <li>
      Running SQL Server in a Container
    </li>
    <li>
      Container Orchestration with Kubernetes
    </li>
  </ul>
</blockquote>

<p>
  <a href="https://www.sqlintersection.com/#!/session/Containers%20%E2%80%93%20Continued!/4366"><strong>Containers &#8211; Continued!</strong></a>
</p>

<blockquote>
  <p>
    You’ve been working with containers in development for a while, benefiting from the ease and speed of the deployments. Now it&#8217;s time to extend your container-based data platform’s capabilities for your production scenarios.<br />In this session, we’ll look at how to build custom containers, enabling you to craft a container image for your production system’s needs. We’ll also dive deeper into operationalizing your container-based data platform and learn how to provision advanced disk topologies, seed larger databases, implement resource control and understand performance concepts.
  </p>
  
  <p>
    By the end of this session, you will learn what it takes to build containers and make them production ready for your environment.
  </p>
  
  <ul>
    <li>
      Custom container builds with Features
    </li>
    <li>
      Advanced disk configurations
    </li>
    <li>
      Backups/restores
    </li>
    <li>
      Seeding larger databases
    </li>
    <li>
      Backup restore into the container from a mounted volume
    </li>
    <li>
      Resource control
    </li>
    <li>
      Container Restart Policy
    </li>
    <li>
      Container based performance concepts
    </li>
  </ul>
</blockquote>

<p>
  <a href="https://www.sqlintersection.com/#!/session/Linux%20OS%20Fundamentals%20for%20the%20SQL%20Admin/4364"><strong>Linux OS Fundamentals for the SQL Admin</strong></a>
</p>

<blockquote>
  <p>
    Do you manage SQL Server but have developers using Linux? It’s time to take the leap to understand and communicate better with your Linux peers! You might be a Windows / SQL Server Admin but both SQL Server and PowerShell are now available on Linux. You can manage ALL of these technologies more effectively now. Don&#8217;t fear! Linux is just an operating system! While it feels different, it still has all the same components as Windows! In this session, I’ll show you that. We will look at the Linux operating system architecture and show you how to interact with and manage a Linux system. By the end of this session, you&#8217;ll be ready to go back to the office and get started working with Linux with a fundamental understanding of how it works.
  </p>
</blockquote>

<p>
  <a href="https://www.sqlintersection.com/#!/session/Monitoring%20Linux%20Performance%20for%20the%20SQL%20Server%20Admin/4403"><strong>Monitoring Linux Performance for the SQL Server Admin</strong></a>
</p>

<blockquote>
  <p>
    Taking what you learned in our Fundamentals session one step further, we will continue and focus on the performance data you’re used to collecting on Windows! We&#8217;ll dive into SQLPAL and how the Linux architecture / internals enable high performance for your SQL Server. By the end of this session you’ll be ready to go back to the office and have a solid understanding of performance monitoring Linux systems and SQL on Linux. We’ll look at the core system components of CPU, Disk, Memory, and Networking monitoring techniques for each and look some of the new tools available from DMVs to DBFS.
  </p>
  
  <p>
    In this session we’ll cover the following
  </p>
  
  <ul>
    <li>
      System resource management concepts, CPU, disk, memory and networking
    </li>
    <li>
      Introduce SQLPAL architecture and internals and how its design enables high performance for SQL Server on Linux
    </li>
    <li>
      Baselining and benchmarking 
    </li>
  </ul>
</blockquote>

<p>
   
</p>

<p>
  <a href="https://www.sqlintersection.com/#!/?track=sql"><img loading="lazy" style="display: block; margin-left: auto; margin-right: auto;" title="SQLint20_1024x512_NOCENTINO.jpg" src="/images/2020/02/Recording-DeskSQLint20_1024x512_NOCENTINO.jpg" alt="SQLint20 1024x512 NOCENTINO" width="512" height="256" border="0" /></a>
</p>