• Skip to main content
  • Skip to primary sidebar

DallasDBAs.com

SQL Server Database Consulting

  • Services
    • SQL Server Health Check
    • Fractional DBA
  • Pocket DBA®
  • Blog
    • Speaking
  • Testimonials
  • Contact
  • About

EntryLevel

Server Review Essentials for Accidental and Junior DBAs—Client Onboarding (Part 1)

February 3, 2021 by SQLandMTB Leave a Comment

Welcome back to my ongoing series about how we perform regular server reviews here at Dallas DBAs, and the tips and tricks I’ve picked up in my first 1.5 years of work as a DBA. If you’re new to the series, go back and check out the Setting Up Part 1 and Part 2 posts where I step through the most basic beginnings from setting up your work environment to getting your script library in order.

Today, we’re moving forward with getting familiar with your client, their servers, and their specific needs. Keep in mind that this is all written from an outside consultant’s point of view. If you work in-house as a DBA for a company or corporation, some of what you read here will be different than your experience. I challenge you to take what you read and see if you can apply it to your work environment and become a more efficient DBA.

Create a Client Bio

I’ll admit from the beginning of this post that much of what you’ll read below may not apply to you if you work on-prem. For those of us who jump from client to client throughout the day, getting a baseline of information at the beginning can save you from many headaches in the future.

Here at Dallas DBAs, we have set up client bio documents in Microsoft Teams for each client we serve. This is a very convenient way for us to not only access all of a client’s vital information, but we can also share and edit the information for our entire team quickly and easily.

We feel like the best approach to writing a client bio is to think about what another DBA would need to know in order to do your job in case you’re unavailable. How can you continue to provide your clients the best service possible in the event you have a car accident or get sick and are unable to work for a while? How can you best help a backup DBA cover for you effectively?

With that in mind, here’s a rundown of what we collect for our client bios.

Sample Client Bio
Sample Client Bio

Contact Information

Be sure to collect the various names, email addresses, and phone numbers of relevant team members from your client. To whom do you send daily/weekly server reports? Who do you contact if you discover an issue on a server? How do you contact them? Who will contact you in an emergency?

Connectivity Information

How do you connect to the client’s servers? What VPN client is used and where can it be downloaded? Are there any special notes or connectivity quirks another DBA needs to know about? Do they connect to a jumpbox or directly to production servers?

Put together a list of VPN URLs and RDP IP addresses as necessary.

What about credentials? Can the backup DBA share your credentials, or do they need their own? What is your client’s policy on that score? Does your backup have all the permissions they need to get the job done? Make sure your backup has all the credentials and clearances they need in your absence.

This is especially important if your client uses some sort of two-factor authentication. If you haven’t gotten your backup set up ahead of time, they’re going to need to jump through extra hoops to get the work done.

Environment Features

Make note of things like whether the servers are on-prem or VMs or a mix of the two. Is the client using any of SQL Server’s “special features” such as replication, log shipping, or availability groups?

What about third party monitoring tools such as Manage Engine, DPA, SQL Sentry, or Redgate SQL Monitor, etc? Does your backup even need to bother with checking these? If yes, then what are you looking for and what are the reporting procedures? (For instance, one of our clients likes to see screengrabs of some of the graphs on a weekly basis.) Also if yes, make sure your backup has the credentials they need to access these additional tools.

Task List

What, specifically, needs to be checked on the servers and how often? Write up a list of tasks that should be performed and their frequency. Depending on your SLA, some clients may get daily checks while others will only receive weekly checks. How often are deeper health checks performed and when?

Detailed Procedures

Once you’ve got the task list put together, be sure to create a detailed explanation of procedures for your client’s server check. It may seem sort of pedantic to type up a list of what scripts need to be run and how the results should be reported, but this is actually the most vital portion of your job when it comes to performing regular server checks. This is how are able to discover and remedy potential problems before they become serious issues.

And remember, you’re writing this as if your backup knows nothing about the client’s environment. Which scripts need to be executed? Where are the scripts located? Against which servers? How frequently should the scripts be run?

This is where you will likely want to create a repository of scripts and other files you use for your client. Create an archive of your custom scripts that are particular to your client. If you’re using password management software, add the master file to this archive. Are you using Remote Desktop Connection Manager for this client? If yes, have you provided an RDG file? What about a REGSRVR file for the Registered Servers list in SSMS?

Think about gathering everything you need to get stuff done, not only for your backup, but yourself. Imagine some strange scenario where you couldn’t access your work computer during a client emergency? Could you borrow a laptop from someone and get your work done?

But wait! There’s More

There are a few more things you should consider including in your client bio such as a server inventory, maintenance job list, and backup frequency chart. I’ll cover these in the next few posts.

You’ll find that gathering all this information is extremely helpful not only for your potential backup, but for yourself as well. I can’t tell you how many times something weird has happened on my end that prompts me open up the client bio and find the information I need. Yes, write the bio as if your backup needs to start from a position of complete ignorance of the client, but also write it in such a way to help yourself remember what to do for your client and how to get it accomplished.

I’ve found that the greatest challenge is keeping client bios updated. Very often I find myself in the situation where things have slowly changed in tiny increments over time, so it’s easy to make personal adjustments as necessary without updating the bio. Eventually all these changes add up and I’ll discover that my client bios are very out of date and it takes some time to update everything.

In fact, as I write this, I see that I’ve got some work to do on my own client bios…

If you’d like to know more about SQL Server Maintenance, check out Kevin’s Getting Started with SQL Server Maintenance course at Pluralsight.

Follow me on Twitter at @SQLandMTB, and if you’re into mountain bikes come over and check out my site NTX Trails.

Follow @Dallas_DBAs

Filed Under: Accidental DBA, Beginner, Career, EntryLevel Tagged With: syndicated

Server Review Essentials for Accidental and Junior DBAs—Setting Up (Part 2)

January 27, 2021 by SQLandMTB Leave a Comment

Welcome back to my Server Review Essentials for Accidental and Junior DBAs series. Last week, we took a closer look at the first steps of getting your environment set up, including an overview of password management and VPN clients. This week we’ll address RDP issues, SSMS installation, building a script library, and more.

Let’s get started.

RDP Clients and Jumpboxes

I’m not going to go very deep into how to remote into another computer via RDP. In short, depending on your environment, you’ll need to have RDP set up on your computer (which is already part of the Windows operating system) and possibly need to also set up the Remote Desktop Connection Manager or the Universal Remote Desktop Client.

The most common workflow as a consultant is to connect to your client’s specific VPN, then RDP into your client’s server.

Once you’ve got your remote access client all set up, hopefully you’ll be connecting from your local machine to a jumpbox rather than directly to a production server. What’s a jumpbox, aka terminal server or Citrix server? Simply put, it’s a computer (either bare metal or VM) that servers as an intermediary between your local hardware and the servers you’re administrating.

It’s typically a bad idea to connect directly to a production server because…well…accidents and mistakes happen to the best of us. It’s somewhat safer to make mistakes on a jumpbox instead of a prod machine. One of the most common mistakes you can make is accidentally clicking “Shut Down” instead of “Sign Out” or “Disconnect” when you’re logging out of a server. At least if you shut down a jumpbox, you’re not taking down production.

Jumpboxes also serve as the perfect place to keep all your client-specific scripts and tools. Some clients may choose to set up the box that runs their monitoring software as the jumpbox. This is a cost-effective solution.

A best practice is to log into a jumpbox and use SSMS on that box to connect to the servers you administer. Yes, it’s still possible to mess up production, but as a junior DBA you’re likely logging in to run basic check script. Here at Dallas DBAs, if I’m doing something beyond running daily checks or periodic HealthChecks, Kevin is looking over my shoulder virtually via Zoom to make sure I don’t miss anything.

Even so, it’s still best to be careful and pay attention to what you’re doing. Depending on what you’re digging into with SSMS, it’s easy to let your mouse or attention slip and click the wrong thing. If you’re not paying attention, you could find yourself disabling a mission-critical job or worse!

If you’re in an environment that doesn’t use jumpboxes, see if you can push for one to get implemented. Your company/client may not want to spend the extra expense of spinning up a VM, but I can assure you the costs of accidentally taking down production is much higher.

Keep in mind that there may still be valid reasons to log directly into a particular production server, but we should aim to minimize our direct footprint in production as much as possible.

VM Environments

There’s not a lot to say about using virtual machines other than—if your work remotely like I do—you’ll likely be logging into a VM on a regular basis. Even if you’re administrating on-prem servers, a jumpbox in a VM is the safest approach.

Note from Kevin: On-prem folks will typically work with SSMS on their laptop—which is effectively their jumpbox—unless they have multiple internal domains.

For most usages, a VM isn’t all that different from physical hardware from an operational standpoint, but it wouldn’t be a bad idea to familiarize yourself with the basics of dealing with VMs. You never know when you’ll need to troubleshoot an issue unique to a VM.

Another consideration is to set up your own personal VM as a backup jumpbox of sorts. This allows you to have emergency access to your tools when you need them. Imagine being away from your office or work machine that has all your logins and tools—hopefully, a rare occurrence. If you have access to a computer with a secure internet connection you can get logged into your VM and jump from there to your client’s servers. If you’ve set up your VM to have all the login credentials and scripts you need to serve your clients, you’re (hopefully) good to go.

Note from Kevin: This doesn’t work in all situations. Some VPNs will kick you out of your VM when you fire them up.

Another scenario I’ve personally encountered is one that forces me to use a VM as a jumpbox. We have one particular client that uses both VMWare and another cloud provider for their environments. I have zero issues connecting to the VMWare boxes via RDP, but when I attempt to RDP into the cloud provider’s boxes I just get a black square on my screen. My workaround is to fire up my VM and connect via RDP from there. It’s a few extra steps, but necessary since I haven’t yet found a solution for my laptop.

SSMS Setup

SQL Server Management Studio (SSMS) is the main tool you’ll be using for the foreseeable future as a database administrator. Yes, Azure Data Studio (ADS) has come a long way recently, and the concept of using Jupyter Notebooks for running daily scripts is highly intriguing and something we plan to look into very soon, but there are enough missing pieces in ADS that keep it from being the defacto admin tool.

Note that, beginning with SSMS 18.7, Azure Data Studio is included in the install. Many of us aren’t too happy with that decision by Microsoft, and hopefully, they’ll listen to their user base and reverse that decision.

At one time, SSMS was part of the installation of a SQL Server instance, but beginning with SQL Server 2016, SSMS became a separate install. This post isn’t going to go through the ins-and-outs of installing or using SSMS.

Depending on your company or client’s policies, you may not have much say in how you get SSMS set up. You’ll need to discover for yourself how much freedom you have. Some policies will dictate the specific version of SSMS you’re allowed to use, others won’t care what you use as long as you don’t break their servers and get your work done.

Granted, I currently have less than two years of experience at this point, but my personal recommendation is to install the latest version of SSMS when allowed. SSMS is backward compatible with older versions of SQL Server, and newer versions of SSMS give you access to new and updated tools that help you get your work done. There’s really no reason to not use the latest version of SSMS unless you’re on hardware that simply can’t handle it for some reason.

Script Library

As we work our way through this series on server reviews, I’ll share several different scripts we use to check various things on client servers and show you how we use them. I’ve learned that it’s important to not only build your own library of useful scripts on your local machine, but to also create individual folders of scripts for each client.

Why? Because over time you’ll customize some of these scripts for the specific needs and quirks of your client’s servers. Having a backup of those specific customizations is going to be a lifesaver. As I stated above, you’ll hopefully have scripts available on individual client jumpboxes for your daily use, but keeping a local copy that you periodically update is a best practice.

I learned this the hard way a few months ago. One of our clients has a habit of quietly decommissioning servers without warning. We often don’t find out the server is gone until we’re running daily checks against all the boxes in a Registered Servers list and get a connection error of some sort. When we inform the client that the server is unavailable, they’ll often respond, “Oh, we don’t use that box anymore so we decommissioned it.”

One of the boxes it seems they had decided to dump was the jumpbox we use. Suddenly, I could no longer use the jumpbox to check their servers and was forced to log directly into a production machine to get my work done. I learned—to my frustration—that I had to spend a couple of hours rebuilding my tools and customized scripts. That’s on me since I hadn’t bothered to create a local copy of those resources.

A few days after we inquired about the decommissioned jumpbox—after receiving no response about the issue from the client—the jumpbox magically reappeared, complete with all our custom scripts and tools. I immediately pulled copies of everything possible in case the box disappeared again, and now have backup copies of every clients’ custom stuff. All of this is backed up to the cloud, and I’m also working on building a library of these files in our company Teams environment.

We’re DBAs. We should know how to back up our own stuff. Just get it done.

What should your script library look like? That’s up to you unless your employer has a specific protocol for such things. I know some folks like to have an application to manage their scripts and code snippets, while others use a private GitHub repository or Jupyter Notebooks. So far, simply organizing my scripts into folders and subfolders on my local drive—synced to OneDrive—has been sufficient for my needs.

Bonus: Slack

I can’t emphasize enough how much we use Slack on a daily basis. I’m not going to spend time selling it to you or talking about how to use it. Just check it out and see how you can best implement Slack usage in your team’s environment. You’ll be glad you did.

If you’d like to know more about SQL Server Maintenance, check out Kevin’s Getting Started with SQL Server Maintenance course at Pluralsight.

Follow me on Twitter at @SQLandMTB, and if you’re into mountain bikes come over and check out my site NTX Trails.

Follow @Dallas_DBAs

Filed Under: Accidental DBA, Beginner, Career, EntryLevel Tagged With: syndicated

Server Review Essentials for Accidental and Junior DBAs—Setting Up (Part 1)

January 19, 2021 by SQLandMTB Leave a Comment

Welcome to a new year, and a new look at what I’ve learned in my time as a beginner and junior DBA.

So, I’ve been in this DBA gig for just over 1.5 years, and it’s been quite a fun and interesting ride. Many readers have read my Ironic DBA Files posts where I regularly talked about what I was learning as a new DBA, and then my four-part series on reviewing my first full year. If you haven’t read them, you can go back and see everything I’ve written so far.

One of the things I mentioned in my four-part series was how I had begun working daily in Production, checking out some of our client’s servers on a daily basis. I shared a super-basic overview of what I looked for each day, and how I reported my findings to Kevin and/or our clients.

I thought 2021 was a great time to revisit these ideas in greater detail. There may be accidental or junior DBAs out there who could benefit from seeing how I go about my daily tasks, so I whipped up a series of posts to share the basics of performing server reviews. Along the way, Kevin will chime in with separate comments and posts using his 20+ years of knowledge and experience to take us to a deeper level in some of these issues.

Welcome to the party. Let’s get started.

Environment Setup

Keep in mind during these first two posts—and likely many others—that the specifics of your environment will vary depending upon your personal workflow and the policies/procedures of your employer. Some of you are working from home like me, and will find a lot of what I’m sharing practical to implement, while others who are working in an office environment may need to alter what you read to fit your specific environment.

To get started performing server reviews, you’ll need to get five basic sets of tools set up in your environment:

  • Password management software
  • VPN clients
  • RDP clients and Jumpboxes
  • SQL Server Management Studio (SSMS)
  • Script library

This week we’ll take a closer look at the first two: password management and VPN clients.

Password Management

Again, depending upon the requirements of your employer and/or circumstances, what you use to accomplish some things will vary. For instance, here at Dallas DBAs we use KeePass for our password management. Simply put, it does everything we need it to do flawlessly and allows us to share credential files with one another (when clients approve this). As long as we know the master password, we’re ready to connect to any client at any time.

Whatever you do, get something to manage your login credentials. Don’t try to memorize all your different passwords—that’s actually less secure than using a password manager.

VPN Considerations

If you work in an office environment, you may not need to use a VPN since it’s likely your local machine is connected to the same network as your servers, but this isn’t always the case. Sure, it’s probably a fair bet that anyone who’s been working in any sort of IT for any amount of time has used a VPN, so I’m not going to go into a lot of detail. My main purpose here is to simply share some of our experiences.

First up, if you have to opportunity to be a consultant, you’re going to run into half a dozen or more VPN clients, and you’ll need to learn the quirks of each one. Some of the VPNs we see most often include Cisco AnyConnect, Citrix Workspace and Citrix Storefront, Pulse Secure, Barracuda Network Access Client, and SecureLink. You’ll have to learn how to deal with and troubleshoot each one you use.

For instance, there’s a 50/50 chance that any given Citrix update will take away my ability to copy/paste directly out of a VPN window into a local text document. Thankfully, there’s a way to fix this, but I had to put on my search engine hat to find it—and sometimes this fix doesn’t work when Citrix pushes out a new update. No, it’s not hard, but it means I can’t just be a lazy DBA.

We also run into connection quirks with VPNs. Sometimes we’ve found ourselves unable to connect to a VPN if another VPN’s software is still running in the background. Pulse often had trouble connecting unless we killed off both Cisco and Citrix clients—even though they were not actively connected. Kevin had an issue for a while where he could not send or receive email while connected to a particular VPN client. A frustrating limitation when you’re trying to troubleshoot a problem while communicating with a client.

One odd quirk I have with the Barracuda client is that I have to unplug my ethernet cable to make a connection—the client only works over wifi. It took several minutes of troubleshooting the first time I used this client to get going. Now, when I have VPN client trouble, one of the first things I try is unplugging my ethernet.

Lastly, Kevin and I sometimes have to use shared VPN login credentials (not optimal!), and we’ve learned that there can be trouble connecting to a VPN if the other user was recently connected. We’re not absolutely sure of the cause, but we suspect that it has something to do with IP addresses since we live in different locations. The VPN seems to possibly reject an IP address if the other user had been connected (again, when clients give us a shared account to use). It can sometimes take several attempts and computer restarts before the VPN will accept a new connection.

Come back next week and we’ll cover RDP client issues, VM environments, and script libraries.

If you’d like to know more about SQL Server Maintenance, check out Kevin’s Getting Started with SQL Server Maintenance course at Pluralsight.

Follow me on Twitter at @SQLandMTB, and if you’re into mountain bikes come over and check out my site NTX Trails.

Follow @Dallas_DBAs

Filed Under: Accidental DBA, Beginner, Career, EntryLevel Tagged With: syndicated

The Ironic DBA—My First Year as a DBA [Part 3]

July 14, 2020 by SQLandMTB Leave a Comment

T-SQL Tuesday is a monthly blog party for the SQL Server community. It is the brainchild of Adam Machanic (b|t) and this month’s edition is hosted by Kerry Tyler (b|t), who  has asked us to write about “Learning From Others“.

I thought I’d join the party this month and throw my latest post into the mix since my entire journey over the last year has been learning from others in the SQL community.

Junior DBA

On September 17, 2019, I was given a promotion from Apprentice to Junior DBA. By this point, I had three daily check clients and one weekly check client in my portfolio. Despite the promotion, I was (and remain to this day) very much in training mode. The primary reason for the change in status was the fact that I was starting to interact directly with some of my clients.

Until this point I had been performing my daily server checks and sending my reports to Kevin. From there, Kevin would let the clients know of problems critical enough to warrant their attention. Once I became a Junior, I began to send my own reports to one client and interject in emails to others.

Honestly, this was a bit nerve-wracking at first. While I’m no stranger to emailing clients for work or business, sending emails of a highly-technical nature—especially within a field where I am still quite green—was completely outside my wheelhouse. Kevin has corrected me privately or clarified terms for clients when something I’ve written isn’t completely accurate. I’m okay with this because it not only aids our clients in getting the most accurate information, but it also helps solidify terms and concepts in my mind.

Since promotion day, I’ve added three more daily clients to my routine. Each new client brings another level of complexity and new experiences—including one client using replication, and another using Availability Groups.

Impostor Syndrome

Being so new and inexperienced in a job is something I haven’t had to deal with for a long time. To be honest, it’s a very strange feeling to be a middle-aged man about a year into a third career.

I was just getting settled into feeling comfortable calling myself a graphic designer after about five years of experience. When our design clients started drying up and I began learning about photography in the hopes of starting a photography business, I ventured onto shaky ground again. Thankfully, I discovered I was a natural at photography and became rather good at it in a short period of time. Despite all that, the business never got of the ground because I underestimated just how saturated the local market was, so it was a non-starter as a business (and why I don’t count it as yet another career).

Now that I’m a little over a year into the SQL Server world, I’m starting to find balance again. For a long while, whenever I met someone who asked me what I do for a living, I had felt like an impostor saying, “I’m a DBA.” I would sort of waffle and respond with something like, “Well, I used to be…and then I…but now I’m learning to be a DBA.” It’s only recently that I’ve felt confident enough to just flat out declare, “I’m a DBA.”

Comparison is a losing game, especially when you’re comparing yourself to those who’ve been in the game for 20+ years. In my months of dedicated training, I’ve spent a lot of virtual time around DBAs who have been in the business for a long time. It’s easy to fall into the trap of comparing myself to them, but I constantly remind myself that I’m still new and haven’t discovered my area of specialization yet. The people I’m learning from typically have both experience and specialization in their toolbox.

Certification?

The biggest challenge over the last few months has been preparing for the 70-764 Administering a SQL Database Infrastructure exam. About the time Kevin laid this challenge out for me, we discovered that Microsoft was retiring most of the role-based certifications in favor of a new framework.

To be fair, Kevin never required me to take the certification exam. He only wanted me to study and learn the material as the next step in my DBA training. Knowing myself, however, I asked him to set me a goal for taking the exam, which helps me keep my focus and move forward toward a specific goal. In the wake of the COVID-19 pandemic, Microsoft has decided to keep the pre-existing certifications and exams through January of 2021. Our goal is for me to take the 70-764 exam by the end of September 2020.

I’ve been studying long enough now that I’m starting to find and take some free online practice tests for the exam. I have access to the official practice exam which I’ll probably attempt in August 2020 to find my weak areas before scheduling the official exam. I’ve also found several flash card decks on the Quizlet website that were created by previous exam-takers. I’m spending some time each day reviewing and quizzing myself using these decks.

I fully expect to not pass the exam, and I’m okay with that fact—I’ll still give it my best effort. Again, Kevin’s goal has been for me to learn and grow as a DBA through both study and experience, not collect certifications. As I work through the practice tests I’ve found so far, my biggest takeaway is that there’s no replacement for experience. Several times I’ve been completely stumped by an exam question that would likely not cause a problem for a DBA with several more years of experience. But each time I’m stumped by a question, I go research it and learn the answer, thereby increasing my own knowledge.

Maybe, just maybe, I’ll have enough knowledge internalized by exam time to pass, but I’m not going to be terribly disappointed if I don’t. This is just another step on the journey to becoming a better DBA.

Follow me on Twitter at @SQLandMTB, and if you’re into mountain bikes come over and check out my site NTX Trails.

Follow @Dallas_DBAs

Filed Under: Career, EntryLevel Tagged With: career, syndicated

The Ironic DBA—My First Year as a DBA [Part 2]

July 7, 2020 by SQLandMTB Leave a Comment

Welcome to part 2 of my series reviewing my first year as a DBA. If you missed the first post, you can read it here.

Moar Training!

Reflecting back to the earliest days (via re-reading my Dallas DBAs Slack channels from the beginning), it’s very easy to see just how far I’ve come in the last 12+ months. It’s already getting hard to remember the days when I was a Mac-only guy and trying to relearn my way around the Windows OS. I still get tripped up from time to time, but I’m a confident-enough Windows user that now my keyboard shortcut muscle memory defaults to Windows commands, which causes momentary confusion when I try to operate my iMac.

I ran my VM through it’s paces in those days, taking a bare install and getting SQL Server Developer Edition on there as fast as I could. I ran through installs, patching, instance creation, database creation, and a whole lot more. Doing all of this over and over again really helped solidify the basics and give me confidence to move on to more critical issues such as backups, restores, and integrity checks.

Those days were also something of a juggling act since, while the design business was steadily waning, there was often enough to keep me busy for several hours throughout a week. Also, when I wasn’t working on graphics or learning more about SQL Server, I was learning my way around Power BI. I’ve since pretty much dropped Power BI off my radar for now, but will likely take it back up again in the future when it makes sense.

One of the biggest frustrations I’ve had in self-guided learning is discovering that there’s a ton of simply erroneous information out there related to SQL Server. I can’t tell you how many times I’ve read a blog post or article to eventually find it was just wrong. I don’t know if these authors are just newbies like me, or if they wrote one-off posts from an “it worked on my machine” standpoint. Either way, winnowing out faulty sources was frustrating as an apprentice.

And don’t get me started on technical information that’s just grossly out of date…

Stay tuned for the last post in this new series where I’ll share my favorite and recommended SQL Server training resources.

Working in Prod

It was mid-July of 2019 that I got my first real taste of client production servers. We started out small, with me observing daily checks being performed. From there I began to RDP into client servers from home while Kevin watched over my shoulder virtually using Zoom screen sharing. (We were using Zoom before it was quarantine cool!) After about a week of this per client, Kevin felt secure in letting me fly solo, and before the end of the month I had two clients for whom I performed daily checks.

Not bad for an apprentice DBA with less than two months of experience.

Now granted, there have been very few critical discoveries during my time on these clients, and no major emergencies that I can recall. Most days it’s pretty basic and somewhat tedious stuff. My daily reports often look something like this:


Manage Engine:
No issues found.

DPA:
No significant waits or blocks.

Jobs:
No new job failures.

Backups:
All backups are current.

Errorlogs
Login failures for 'sa' are still ongoing (known issue).
4 deadlocks in the last four days.
No new errors found.

And while such reports seem boring, they’re a product of something very important. Most of the time, Kevin has whipped a client’s servers into shape before handing them over to me for daily checks. That means we have clients with SQL Server instances that are by-and-large humming along without any problems. This means I’m now on the front lines in detecting issues before they become major problems.

Keeping a daily record of simple things like hard drive space, waits and blocks, job failures, and error log output helps us know when things just aren’t running like they should. Like a canary in the coal mine, we can often give our clients a heads up long before an issue with their servers becomes painful.

Honestly, serving our clients and helping ensure their data is safe so that they can concentrate on operating their business successfully is extremely gratifying.

Follow me on Twitter at @SQLandMTB, and if you’re into mountain bikes come over and check out my site NTX Trails.

Follow @Dallas_DBAs

Filed Under: Career, EntryLevel

The Ironic DBA—Don’t Be Afraid of the Climb

October 14, 2019 by SQLandMTB Leave a Comment

Welcome back to The Ironic DBA Files, a series where the newbie DBA on staff at Dallas DBAs chronicles the ups and downs of fast-tracking a new career as a DBA.

Yes, my blogging pace has slowed somewhat, but I’m back with something to share. Last time I wrote about getting back to basics and reinforcing my knowledge of introductory SQL Server concepts. This week I want to go in the opposite direction and share why I think you should regularly push yourself out of your comfort zone.

The view from the top is worth the climb.

Climbing Sucks

I’ve mentioned before that I love mountain biking—I’m not great at it, but I love getting out on the trails. Unfortunately, I also have very low heat tolerance, and so I was almost completely off my bike for the majority of the Texas summer—about 2.5 months. I did sneak one ride in before the worst heat abated about 3.5 weeks ago, but it didn’t end well.

I’ve been able to get back out and do three or four trail rides a week for the last three weeks. The trail I’ve frequented is one of the closest to my house, though it’s not a favorite. There’s not a lot of elevation at this trail, but after so long off the bike even gentle slopes were tough to climb at first. To make matters worse, I’m overweight, have some significant balance issues, and absolutely suck at climbing.

Fast forward to just last night where I went out and rode a different trail—the same one that hadn’t gone well 3.5 weeks ago. This trail is not the longest or hardest in the area, nor does it have the most climbing, but it’s been my nemesis since the first time I put down tires on its dirt. I have a less than 50% completion record at this particular trail, so I’m determined to conquer it.

Last night’s ride was pretty good. I completed the entire trail for the first time in months, and set some personal records on a few segments along the way. But here’s the coolest thing about the ride. At one point I made it to the top of climb that’s typically pretty tough for me and took a quick water break. I immediately noticed that the climb had felt easier than expected, but I figured that was due to intentionally choosing easier gears than usual. I was pleasantly surprised to look down at my gears and realize that I was 9th gear when I thought I was probably in 6th or 7th. (For those who don’t ride bikes, the lower the gear number the “easier” the gear.)

The time I’ve been spending getting back to trail riding regularly is already beginning to pay off. I’m back to feeling comfortable on the bike, my fitness level is increasing again, and my ability to ride harder, longer, steeper trails is gradually improving.

Climbing is Awesome

Tim Chapman presenting “Troubleshoot SQL Server Like a Microsoft Engineer”

“That’s great,” you say. “Good for you. But what does this have to do with SQL Server stuff?” I’m glad you asked!

I recently attended a fantastic one-day workshop that was made possible by my local PASS group, the North Texas SQL Server User Group. After the huge success of this year’s SQL Saturday Dallas, and in particular the response attendees had from Brent Ozar’s (b|t) performance tuning pre-con, the group decided to bring in Tim Chapman (t) in for a one-day workshop entitled “Troubleshoot SQL Server Like a Microsoft Engineer.”

I was looking forward to attending even though I knew the vast majority of the class was probably going to be over my head. I’ve advanced fairly rapidly in my SQL Server knowledge since beginning this journey a little over four months ago, but the reality is I’ve only got four months of experience. That’s actually far too little time and experience to make the most of a class at this level. So why bother attending?

Learning is a climb, sometimes a very arduous climb. Just like some of my trail rides, there are moments when I can’t reach my learning goals and have to take a step back and start over. Some days the learning is smooth and the climbing is easy, boosting my confidence and my progress. Some days, the climb is hard, but not as hard as expected due to the work I’ve put in previously.

It’s for this very reason that I wanted to attend this workshop, and the same reason I’m currently working my way through Brent Ozar’s Senior DBA Class. Both are way over my head and deal with issues I won’t have to worry about being directly responsible for any time soon. But the classes make me climb and reach for a goal. Such classes make me dig deep and recall everything I’ve learned so far and apply it as best I can. Such classes expose holes in my current knowledge set and help flesh out a trail map for what I need to learn moving forward to become the best DBA I can be.

Sometimes the climb sucks, but getting to the top is awesome. Onward to the next peak!

Troubleshoot SQL Server Like a Microsoft Engineer—A Review

As for Tim Chapman’s class itself, let me give you a quick review and share my thoughts and takeaways from the day.

First up, I didn’t know what to expect walking into the class. Still being somewhat new to all this, I sort of expected the class to rapidly accelerate to light speed and beyond to leave me grasping for whatever small tidbits I could glean. That never happened.

Tim is an excellent presenter, but beyond that he’s an excellent teacher. So many technical people who are very smart, know their stuff, and have years of experience often don’t realize just how far beyond the average newbie they really are. But not once did I feel like the class was moving too fast for me to keep up, and a great deal of this is due to how Tim broke everything down logically, built concepts upon one another, and didn’t make assumptions that everyone in the room knew more than they really did.

Having said that, there definitely was a certain level of foundational knowledge required in order to make the most of the class, and thankfully my studies thus far proved to be enough. There were a few concepts and pieces in SQL Server that I’d never heard of before (namely triggers and forced query plans), but by and large I was familiar enough with SQL Server, relational databases, nomenclature, and SSMS to never get completely lost.

In a nutshell, here’s what Tim covered in roughly seven-hours-worth of sessions:

  • An Overview of Troubleshooting
  • Queries and Waits
  • Extended Events
  • Query Store
  • Most Common Problems

One of the most encouraging things Tim shared as a new DBA was this concept: “Often, there are 5 or fewer things to look at for a server to solve problems. Like the Pareto Principal: 20% causes 80% of the issues. Today’s Goal: Identify and master the 20%.”

This is why so much of the class was understandable and relate-able. The truth is, to know how you fix the other 80% of problems possible in SQL Server means you’ve either gained years and years of experience, know how to ask Google and StackOverflow the right questions, or both. Stay in the DBA field long enough and you’re sure to run into something rare, an edge-case that very few people have seen. But beyond those edge cases, the vast majority of the problems we see are repeated regularly. Getting a grasp on these underlying issues that regularly rear their head will help me be a solid DBA while giving me the foundation to troubleshoot those rare issues.

Big thanks to Tim for helping me put together a more direct path to follow on my self-guided learning. If any of you reading this ever have the chance to take this class from Tim in the future, I highly recommend it. I’d like to sit through it again myself sometime in the future when I’ve got more knowledge and experience in my tool kit.

Also thanks to NTSSUG for investing in your members and bringing Tim in to teach us. I’m looking forward to more opportunities in the future.

That’s all for this post. Join me next time for the next episode in The Ironic DBA Files.

Follow me on Twitter at @SQLandMTB, and if you’re into mountain bikes come over and check out my site NTX Trails.

The Ironic DBA Files

    • Prequel: The Ironic DBA—Starting a New and Unexpected Career
    • Episode 1: You Back That Up?
    • Episode 2: Attack of the Corruption
    • Episode 3: Revenge of the Index
    • Episode 4: A New Primary Key
    • Episode 5: The Maintenance Plan Strikes Back
    • Episode 6: Return of the TSQL
    • Episode 7: The Backup Awakens
    • Episode 8: The Last Rebuild
    • Episode 9: Rise of the Clients
    • Review One: A SQL Story
    • It’s Hip to Be Square
    • Rock Around the Clock
    • Failure is Always an Option
    • Back to Basics

Follow @Dallas_DBAs

Filed Under: Accidental DBA, Apprentice, Career, Cycling, EntryLevel, Personal, Troubleshooting

  • « Go to Previous Page
  • Go to page 1
  • Go to page 2
  • Go to page 3
  • Go to page 4
  • Interim pages omitted …
  • Go to page 9
  • Go to Next Page »

Primary Sidebar

Search

Sign up for blogs, DBA availability and more!

Home Blog About Privacy Policy
  • Home-draft
  • Blog
  • About Us

Copyright © 2025 · WordPress · Log in

 

Loading Comments...