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.

Speaking at SQLSaturday Atlanta – 733

Speaking at SQLSaturday Atlanta!

  I’m proud to announce that I will be speaking at <a href="https://www.sqlsaturday.com/733">SQL Saturday Atlanta</a> on May 17th 2018! This one won’t let you down! <a href="https://www.sqlsaturday.com/733/Sessions/Schedule.aspx">Check out the amazing schedule</a>!

  If you don’t know what SQLSaturday is, it’s a whole day of free SQL Server training available to you at no cost!

  If you haven’t been to a SQLSaturday, what are you waiting for! <a href="https://www.sqlsaturday.com/733/registernow.aspx">Sign up now</a>!

  My presentation is **“<a href="http://www.sqlsaturday.com/733/Sessions/Details.aspx?sid=71960">Monitoring Linux Performance for the SQL Server Admin</a>” **

  <img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.sqlsaturday.com/images/sqlsat733_header.png" alt="SQLSaturday #733 - Atlanta 2018" />

  Here’s the abstract for the talk

<blockquote>

    So you’re a SQL Server administrator and you just installed SQL Server on Linux. It’s a whole new world. Don’t fear, it’s just an operating system. It has all the same components Windows has and in this session we’ll show you that. We will look at the Linux operating system architecture and show you where to look for the performance data you’re used to! Further we'll dive into SQLPAL and how it architecture and internals enables 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 including new DMVs and DBFS.Prerequisites: Operating system fundamentals, process, memory and disk concepts.

</blockquote>

Attempting to Run SQL on Linux Inside Windows Subsystem for Linux

Update - head on over to Andrew Pruski’s blog to find out how to get this to work!

Shawn Melton MVP and dbatools contributor last week had an issue running SQL Server on Linux inside of Windows Subsystem for Linux.

I didn’t want to leave a brother hanging so I spent this morning digging into this a little bit.

A Novel Idea for High Availability in SQL Server on Linux

Over the past year we’ve learned about how SQL Server on Linux is implemented, leveraging SQLPAL and the team is pretty confident in their architectural decisions as indicated in this post here.

Now that there is this wrapper around SQL Server, this really opens up some interesting opportunities…perhaps we can leverage SQLPAL to facilitate some new high availability techniques.

When I was in graduate school, I worked on a research project, that became my master’s thesis. In this work, I developed a technique that synchronized the process address space of a virtual machine on two separate physical hypervisors.The technique involved an initial copy of all pages between the two systems and then selectively copying the virtual machine’s pages as they became dirty. Using this technique, the process address space of the virtual machine is synchronized between the two hypervisors. This allows for a significant reduction in the amount of information that had to be replicated between the hypervisors but more importantly…the virtual machines memory in sync which meant if hypervisor hosting the virtual machine crashed we could theoretically start the virtual machine on the second hypervisor.

I’m Presenting Two Linux Sessions on One Day!

On 12/13 I’m presenting two, back to back, sessions on SQL Server on Linux online. So you can attend from anywhere!

Let’s go through both!

First, on 12/13 at 1PM Central, I’m presenting for the PASS Database Administration Virtual Group here’s my session details:

Topic: Linux OS Fundamentals for the SQL Admin

Registration: You must register if you want to attend. You can register at http://dba.pass.org/. When you register, you will receive a link to the meeting. All attendees will be entered into a raffle for a $25 gift card.

Top 5 Reasons Why I think SQL Server on Linux is Legit

Here are my top 5 reasons why I thing SQL Server on Linux is Legit!

  1. **SQL Server on Linux is Fast** – Earlier this year SQL Server on Linux posted the fasted 1TB TPC-H benchmark in the world and at the end of October posted the a 10TB result! Check out the results here and some info on how they did it here and here.
  2. It’s tunable – From and OS standpoint, I think the “tunability" of the operating system is more well documented and well known on Linux. Check out Microsoft’s recommendations <a href="https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-performance-best-practices">here</a> and also Redhat’s <a href="https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Performance_Tuning_Guide/">here</a>.
  3. Features – If you’re a developer in the Linux ecosphere, this is the reason why you’re evaluating using SQL Server on Linux…there’s likely a feature you want…that you can now have. Check them out <a href="https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-editions-and-components-2017">here</a>!
  4. Enterprise Support – I like cruising around in forums just like anybody else, but sometimes you have to <a href="https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-overview">call</a> support to bring in the people that actually wrote the software.
  5. Availability Solutions – SQL Server has a proven track record for availability, those same concepts and techniques apply to SQL Server on Linux. Backups, Availability Groups, and Failover Clusters <a href="https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-business-continuity-dr">check it out</a>.

Launching SQL Server on Linux in Single User Mode

There was a question this morning on the SQL Server Community Slack channel from SvenLowry about how to launch SQL Server on Linux in Single User Mode. Well you’ve heard everyone say, it’s just SQL Server…and that’s certainly true and this is another example of that idea.

The command line parameters from the sqlservr binary are passed through into the SQLPAL managed Win32 SQL Process. So let’s check out how to do this together…

New Pluralsight Course – SQL Server on Linux Administration Fundamentals

New Pluralsight Course – SQL Server on Linux Administration Fundamentals

  My new course **“SQL Server on Linux Administration Fundamentals”** in now available on Pluralsight <a href="https://www.pluralsight.com/courses/sql-linux-administration-fundamentals">here</a>! If you want to learn about the course, check out the trailer <a href="https://www.pluralsight.com/player?name=a0d5ed59-1d43-4233-ae90-b5b391e8d43d&mode=live&clip=0&course=sql-linux-administration-fundamentals">here</a> or if you want to dive right in check it out <a href="https://www.pluralsight.com/courses/sql-linux-administration-fundamentals">here</a>!

  This course targets DBAs that design and maintain SQL Server on Linux systems (or those evaluating the technology). This course can be used by both the seasoned DBA to learn foundational Linux skills and also what’s new and different when running SQL Server on Linux.

  **Course Description**

  SQL Server is available on Linux, and management wants you to leverage this shift in technology to more effectively manage your data platform. In this course, SQL Server on Linux Administration Fundamentals, you’ll delve into SQL on Linux in order for you to become an effective DBA.  First, you'll explore an overview of its architecture, installation, and configuration. Next, you'll learn how to administer SQL Server on Linux. Finally, you'll discover high availability and disaster recovery options available to you for keeping your SQL Server online. By the end of this course, you'll have a solid foundation necessary to utilize SQL Server on Linux in production.

  The modules of the course are:

<ul>
  <li>
    **Introduction and SQL Server Architecture** – Introduce the viewer into world of SQL Server on Linux. Why did Microsoft do this? What’s the strategy? Introduce the SQL Server Ecosphere, such as the database engine, SQL Server Agent and SSIS.
  </li>
  <li>
    **Installing and Configuring SQL Server on Linux** – We’ll look at our installation and configuration options for SQL Server on Linux, introducing Linux package managers and repositories and install SQL Server on Linux and it’s components.
  </li>
  <li>
    **Administering Linux for DBAs** – We’ll look at managing services with systemd and how to query journald’s log files for information about SQL Server.  Also dive into file ownership, disk partitioning concepts and mounting file systems and remote file systems.
  </li>
  <li>
    **Managing SQL Server on Linux: Administration and Tools** – Now that the viewer knows where things are in this new operating system, let’s move up the stack and look at the tooling available for SQL Server on Linux. We’ll cover VS Code, SSMS, SQLCMD and DBFS.
  </li>
  <li>
    **High Availability and Disaster Recovery with SQL Server on Linux** – Dive into the High Availability and Disaster Recovery options available to SQL Server on Linux<br />
  </li>
</ul>

  <a href="https://www.pluralsight.com/courses/sql-linux-administration-fundamentals"><img loading="lazy" style="display: block; margin-left: auto; margin-right: auto;" title="pluralsight_logo_new_blck.jpg" src="/images/2016/04/pluralsight_logo_new_blck-1.jpg" alt="Pluralsight Redhat Linux" width="225" height="18" border="0" /></a>

  Check out the course at <a href="https://www.pluralsight.com/courses/sql-linux-administration-fundamentals">Pluralsight</a>!

Exit Codes, systemd and SQL Server on Linux

In this blog post we’re going to cover systemd, process exit codes and highlight how systemd reacts in certain exit conditions from SQL Server on Linux. My friend and SQL Server guru Argenis Fernandez – @dbargenis asked about this behavior on Twitter and I’ve been meaning to write this post, so here you go! Also, there’s a Connect item filed by Argenis on this here. Vote!

systemd Basics

Systemd is an initialization daemon, it’s job is to bring the system to usable state. Meaning, it’s responsible for the orderly starting of services on a Linux system. It does much more than that, in fact, one of it’s other core components is journald. Journald stores logging information from systemd units.

SQL Server on Linux Content at PASS Summit

PASS Summit is right around the corner and I’ll be there speaking on Monitoring Linux Performance for the SQL Server Admin!

There’s a fantastic amount of SQL Server on Linux content available at Summit. I encourage you to attend one of these sessions. You’ll likely find me at all of these!

Wednesday – 11/1

Thursday – 11/2

Friday – 11/3

NewImageSummit2017 275x50

SQL Server on Linux – External Memory Pressure

In this blog post we’re going to explore how SQL Server on Linux responds to external memory pressure. On Windows based SQL Server systems we’ve become accustomed to the OS signaling to SQL Server that there’s a memory shortage. When signaled, SQL Server will kindly start shrinking it’s memory caches, including the buffer pool, to maintain overall system stability and usability. We’ll that story is a little different in SQL Server on Linux…let’s look and see how SQL Server on Linux responds to external memory pressure