May 112017

As you all have heard, Microsoft is supporting Linux as a supported operating system for the next version of SQL Server (recently announced to be version 2017).

What?? Why??

Didn’t Steve Ballmer call Linux a “cancer” a while back?

Times change. Companies change. Technologies change. It’s how I named my company.

(People rarely change, but that’s a different story…)

Today’s Microsoft is a new Microsoft. Ballmer is not in charge. Satya Nadella is now CEO of Microsoft, and he’s letting the technology drive the company. And drive it is. They are listening to the world with an openness to non-Microsoft technologies in a way that I’ve never imagined.

It is helping me bring back some of my system administration roots. I was such a geek in grade school that I was compiling Slackware Linux kernels when I was in middle school. It wasn’t until high school that I started exploring Windows server administration. This announcement is bringing back some great memories while exploring the possibilities of this new platform for my DMBS of choice.

Microsoft has listened to the technical communities around the world, and the world wants cross-platform. The world wants choice.

And they’re making it happen.

First and foremost (IMHO), Microsoft wants to appeal to developers. They want their development stack to run anywhere there are developers. Notably, Microsoft just released Visual Studio 2017 for Mac on May 10th! Many developers out there run on non-Microsoft workstations, notably Apple computers. Apple’s OSX operating system is originally derived from the FreeBSD operating system. FreeBSD and other *BSD operating systems share much in common with Linux. So, if you can make SQL Server work on the Apple, you’ve probably made it work on Linux. Arguably, covering these two platforms nails just about every widely adopted development platform out there.

Microsoft also wants to appeal to a broader customer base, which means exploring the other environments that software runs on. An exceptionally high number of the world’s servers are powered by Linux. It’s lean, mean, stable, and powerful. Lots of shops refuse to run a Windows-based server because of a number of reasons, including that their in-house IT staff only have Linux knowledge. These same shops are most likely pressured to run a SQL Server for various applications. I know a number of third-party vended application that require a SQL Server, and previously if an organization dictated no Windows-based servers, that meant that this application would never be adopted in the organization, no matter how well it would function.

By appealing to these customer bases, they can now facilitate greater opportunities to migrate other DBMS workloads to SQL Server, and largely Oracle. Organizations can now migrate from these DBMS systems to SQL Server but keep the operating system the same (or at least similar). It’s another jab at Oracle. You can run Oracle on Windows. Now you can run SQL Server on Linux!

Another bonus benefit of having native Linux support is that it can now run in a container. Containers are in some ways the next generation of virtualization. Containers allow you to package an application and all its dependencies into a bundle that can be easily transported. You no longer have to worry about the operating system itself, and it makes your application a lot smaller and even more portable.

Finally, Linux is a fantastic cloud platform. The footprint of the Linux kernel and it’s runtime dependencies is absolutely tiny compared to other operating systems. The performance overhead is minimal, and the space consumed is small. For hosting environments or larger scale-out SQL Server farms, the resource consumption savings could be significant.

This list is in no way exhaustive, and I could ramble on with more ways that fit this list, but I don’t want to bore anyone.

The target audiences are quite diverse as well.

Software developers are a no-brainer with this. Small businesses trying to keep their software licensing costs to a minimum are sure to be attracted to this offering. New startup software businesses with Linux-oriented development platforms can leverage SQL Server. Enterprises and hosting providers can save on Microsoft Windows licensing.

Microsoft is so committed to this strategy that they are now a Platinum member of the Linux Foundation. Microsoft has released the open source .NET Core. Ubuntu now runs on Windows. HDInsight was recently released with Linux support. R Server can run on Linux. PowerShell is open sourced and on Linux!

As you can tell, I’m excited. You might not be running out to replace your servers today, but what this new release provides is monumental.

It provides choice.

I cannot possibly convey here how elated I am at this complete shift in Microsoft’s direction. I think (I hope!) this is not the last time we’ll see this platform expansion for other Microsoft products.

Stay tuned for more SQL Server on Linux topics, such as how they did it, operating system selection, supportability, command line basics, OS similarities and differences, SQL Server installation, and then moving on to more advanced topics such as how to configure multiple disks to spread out your SQL Server storage workload footprint and back up to the usual network share. Meanwhile you can also check out this review of SiteGround by Bit Pak.

 Posted by at 1:52 pm  Tagged with:
May 082017

Starting this week, I’m introducing a new series of blog posts for the SQL Server DBA on how to properly set up and administer a production SQL Server on the Linux operating system.

As you know, Microsoft is shipping SQL Server 2017 (currently at CTP 2.0) with support for the Linux operating system. You might not think you’ll ever use this in your organization, but you might be quite surprised at the adoption rate I’m already experiencing in the wild. You should prepare yourself as a SQL Server administrator for some key similarities and differences with this new platform for tasks such as server build and construction, operating system basics, installation and patching, backups and recovery, availability, etc.

This blog post series is designed to help ramp you up on these tasks and answer common questions for scenarios that SQL Server DBAs will encounter while running SQL Server on Linux. Stay tuned!

 Posted by at 3:12 pm  Tagged with:
May 052017

This past week, I presented a preconference session and regular session at this year’s SQL Nexus conference in Copenhagen, Denmark. I highly recommend this conference!

The preconference session called “The Complete Primer to SQL Server Virtualization was well received! The attendees were well prepared for deep discussions on SQL Server virtualization, infrastructure, and cloud XaaS topics, and the questions were wonderful.

The SQL Server on Linux session was also solid and well attended, as we discussed common administration tasks around tasks that are necessary when making the transition to SQL Server on Linux, such as backing up databases and logs to a file share, and how to configure and mount additional disks for objects such as tempdb, database data, and database log files.

The slides for the SQL Server on Linux session are available for you to download here.

SQL Nexus, thank you for a great time! We really enjoyed our discussions and deep-dives with attendees and other speakers, and would be very happy to return next year to this conference!


(@sqlreeves getting into American food in Europe)

More @sqlreeves just chillin’ with the ‘Hoff

Apr 022017

If you are attending this year’s SQL Nexus conference in Copenhagen, Denmark, from May 1st to 3rd this year, I urge you to attend my preconference training session – “The Complete Primer to SQL Server Virtualization“. The architecture of the infrastructure underneath your mission-critical SQL Servers is vital to the well-being of your databases, and if any little component underneath is not running at its peak potential, your SQL Servers are artificially bottlenecked and your performance suffers.

Session Details
Microsoft MVP and VMware vExpert David Klee leads this full-day introduction to enabling and managing a virtualized SQL Server environment. The focus of the course is to help those new to virtualization and/or infrastructure concepts to become familiar with the concept and purposes of virtualization and how it can benefit them as data professionals. Participants will gain exposure to all layers of virtualization underneath SQL Server, from storage to hypervisor to the SQL Server instance, and will learn how to construct the entire stack with a strong emphasis on SQL Server performance.

Intended Audience. The intended audience of this course is information workers (both business and IT-centric) involved with architecting a virtualization strategy for SQL Server, or managing business-critical SQL Servers that have already been virtualized.

Course Topics
The following topics will be addressed during the course:

  • The Physical Infrastructure Underneath the VM
  • Virtualization and Infrastructure Fundamentals
  • The SQL Server Virtual Machine
  • Networking, Support, and Licensing
  • Performance Investigation and Tuning of the Entire Stack
  • Similarities and Differences with Cloud versus On-Prem

Course Objectives
Upon completion of this course, attendees will be able to:

  • Understand key virtualization and cloud concepts
  • Determine the optimal infrastructure configuration for best performance
  • Construct a SQL Server VPS Server virtual machine template with best practices for agility and performance
  • Understand how and what stack metrics to benchmark and baseline to ensure proper objective performance measurement
  • Identify and remediate common virtualized SQL Server performance killers
  • Understand proper virtualized capacity management techniques for long term management

Attendees with the following experiences will benefit the most from this course:

  • Basic familiarity with the core components of a server
  • SQL Server installation and configuration
  • Exposure to SQL Server performance metric measurement and identification

A working set of the screens and configuration settings referenced in the session, together with the reference slides and documentation, will be provided to attendees, for strategic reference in working with virtualized SQL Server in your own environments.

I look forward to seeing you all there! Register today, as seats are limited!

Mar 292017

Watch your memory configuration! You can’t just throw RAM in a physical server and expect it to work right. Depending on your DIMM configuration, you might have accidentally slowed down your memory speed, which will surely slow down your application servers. This speed decrease is virtually undetectable from the OS. Anything that leverages lots of RAM to function, including a database server, can take a substantial performance hit on performance.

An example of this is if you wish to configure 384GB of RAM on a new server. The server has 24 memory slots. You could populate each of the memory slots with 16GB sticks of memory to get to the 384GB total. Or, you could spend a bit more money to buy 32GB sticks of memory and only fill up half of the memory slots. Your outcome is the same amount of RAM. Your price tag on the memory is slightly higher than the relatively cheaper smaller sticks.

In this configuration, your 16GB DIMM configuration runs the memory 22% slower than if you buy the higher density sticks. Check out page 63 of the server build guide for an HPE Proliant DL380 Gen9 server. The fully populated 16GB stick configuration runs the memory at 1866 MHz. If you only fill in the 32GB sticks on half the slots, the memory runs at 2400 MHz.

Database servers, both physical and virtual, use memory as an I/O cache, improving the performance of the database engine by reducing the dependency on slower storage and leveraging the speed of RAM to boost performance. If the memory is slower, your databases will perform worse. Validate your memory speed on your servers, both now and for upcoming hardware purchases. Ensure that your memory configuration yields the fastest possible performance. Your applications will thank you!

Mar 232017

I am proud to announce that we contributed to the latest revision of the Microsoft SQL Server on VMware best practices guide, freely available at this address. This document outlines some of the common VM-level tweaks and adjustments that are made when running enterprise SQL Server VMs on VMware platforms. This guide is considered a must-read if you manage these sorts of SQL Servers, which cannot be treated as general purpose virtual machines.

This guide was recently updated for vSphere 6.5, and we consider it an absolute must for your enterprise management library!

Special thanks go to Niran Even-chen for his efforts in making this guide continuously current, plus Allan Hirt and Deji Akomolafe for their incredible contributions as well.