dbatools

Lesson Learned From Multi-Threading with dbatools

Andy Levy

Over the summer, I spent some (a lot of) time working on updates to a script at work which runs multiple processes in parallel. Everything seemed to work OK for a while, but then everything broke. It broke right around the time dbatools 1.1 dropped, so I started thinking that something must have changed there. As it turns out, it was entirely my fault and I hope this post will help you avoid the same trap.

Followup for the Kansas City SQL Server User Group

Andy Levy
I had a great time speaking at the Kansas City SQL Server User Group on Thursday, February 18th. The more I present my Backup Basics with PowerShell and dbatools session, the more I enjoy it. And each time, I’ve learned something new myself. In one of the demos I show how Restore-DbaDatabase selects and restores the most recent backup of a database when pointed at a directory holding several backups of a single database.

Upgrading Ola Hallengren's Maintenance Solution with dbatools

Andy Levy
While presenting Backup Basics with PowerShell and dbatools at ONDT, I mentioned a caveat with the -ReplaceExisting switch for Install-DbaMaintenanceSolution. This switch drops all of the objects installed by the Maintenance Solution, including the CommandLog table. If you use that table to produce evidence that the various maintenance tasks are being performed on a regular basis or use it to track performance of those tasks over time, dropping that table presents a problem.

Slides & Demos for Backup Basics with PowerShell & dbatools

Andy Levy
I had the honor of presenting a new session, Backup Basics with PowerShell and dbatools, at the first Ohio North Database Training meeting this evening. Thank you to the group leaders for the opportunity and to everyone who attended. Because this was both a brand new session and an attempt at a new way of delivering the presentation, I had a couple tech glitches but things went pretty well once they were understood and ironed out.

New-DbatoolsQuestion | Invoke-DbatoolsDiscussion -Platform Github

Andy Levy
Chrissy LeMaire (blog | twitter) pinged me earlier this week to tell me about Github Discussions. It’s a new feature of Github which is similar to Stack Exchange, but much more focused - it’s just for your project/repository! Get help, start discussions, share tips & tricks. She’s enabled this feature for the dbatools repository and it’s open for business. Go check it out and start posting questions, answers, or both!

Restoring Database Users After Copying the Database

Andy Levy
A former colleague emailed me with a question about retaining/fixing database users and permissions after restoring a database. They were copying a database from one instance to another, with different logins, users, and permissions between the two instances. Backup & restore to copy the database is easy enough, but because users & permissions are kept inside the database itself, the destination environment loses all its permissions settings in the process. What to do?

Finding & Downloading Required SQL Server Updates

Andy Levy
A little while back, I offered up a one-liner to scan your SQL Server instances and report which ones are out of date. But what if you need to take the next step, determining which updates need to be downloaded? That’s exactly what Josh asked on the SQL Community Slack recently. Can Test-DbaBuild also bring back the KB number? From reading the docs it looks possible as it does return the compliant version form the .

Checking for SQL Server Updates with dbatools

Andy Levy
It turns out I was doing this all wrong for months. For the longest time, I’ve been checking my SQL Server instances to see what needs patching with Test-DbaBuild from the dbatools PowerShell module. But the result was always the same - it never returned a Service Pack or Cumulative Update target. I glossed over it because I knew what the right answer was already, but recently I decided that wasn’t good enough.