We've been hearing of a few people getting errors from the latest Undercover Catalogue, Powershell interrogation script. The issue seems to be happening when the scripts tries downloading automatic updates and online module definitions when running the script with older versions of Powershell. A new version of the script has now been uploaded to our... Continue Reading →
Are Your Secondary Availability Group Read Only Replicas Falling Behind? Are You Seeing PARALLEL_REDO_TRAN_TURN Waits?
Are you struggling with a laggy redo and a build up in the redo queue on your readonly secondaries? Are you suffering with high PARALLEL_REDO_TRAN_TURN waits? Then this magic remedy could cure your ailments. There is a slight misconception with readonly AG replicas that the data should be 100% up to date with what's on... Continue Reading →
Query Store Keeps Switching Itself Off, Getting it Moving Again
I recently received a complaint that Query Store for a particular database was turned off, which was strange as that particular database has seen quite a few performance issues and I know that I'd ensured Query Store was enabled in the past. No problem, I flicked the switch and Query Store was enabled again. Half... Continue Reading →
Export Extended Event Results to CSV or Table
This is something that I've seen pop up a couple of times on various forums recently, how can we export the results of an XEvent session. So I thought I'd answer the question here. It's actually a very simple thing to do in SSMS, although the option is not always easy to spot. When we... Continue Reading →
Undercover Catalogue 0.4.4 Released – Database Last Accessed Time and NEW Snapshot Module
Full documentation on the Undercover Catalogue can be found HERE It's been a while since the Undercover Catalogue last received an update but having had a few of those moments recently when I thought to myself 'I really wish I was capturing that data', so I decided to roll a few changes into the Catalogue.... Continue Reading →
When was my SQL Server Database Last Accessed?
Your boss walks up to you one morning and says, "Hey, I wanna list of all of our databases and when they were last accessed". If you've got some sort of auditing switched on or a trace or xevent catching this sort of info you might be ok, but I'm betting you don't have any... Continue Reading →
sp_snapshot – The easy way to take database snapshots of one or more databases – Version 2.0
This post refers to an older version of this procedure. Please see HERE for the latest version. Presenting you with an updated version of our sp_snapshot procedure, to easily create database snapshots. This new version adds more flexibility to the procedure, allowing you to specify the snapshot's suffix, add a timestamp and alter the path... Continue Reading →
Write to backup block blob device failed. Device has reached its limit of allowed blocks.
Picture this, you're happily backing up your database to a Azure blob storage until suddenly it starts mysteriously failing with the error... Write to backup block blob device https://****** failed. Device has reached its limit of allowed blocks. What's going on, nothing's changed?! Well, it has, the database has grown and the issue that you're... Continue Reading →
Penetration Testing your SQL Server, Part 1 – The Recon Mission
Since witnessing a rather nasty cyber attack around a year ago, I've been thinking quite a bit about security. Do we really know how secure our SQL Servers are? Penetration testing is a great way to find out where our weaknesses and vulnerabilities are. Ideally you probably want to be getting regular pen tests conducted... Continue Reading →
Finding a History of Database Snapshots, Taken and Restored
All code in this post can be found in our GitHub repo https://github.com/SQLUndercover/UndercoverToolbox This is a question that's come up twice this morning, firstly where can we find a history of database snapshots and secondly where can we find a history of restores from snapshot? Frustratingly, SQL doesn't make this at all easy for us... Continue Reading →
