Author: Peter Whyte
-
SQL Server Transaction Log Full
🚨Part of the SQL Server Errors series, the exact messages and what actually causes them. Msg 9002 · Level 17 · State 2 The transaction log for database ‘YourDb’ is full due to ‘LOG_BACKUP’. Msg 9002, Level 17, State 2 ⚡Check log_reuse_wait_desc first: it names the actual blocker out of about a dozen possibilities, and…
Written by
-
SQL Server: The Database Is in Single User Mode (Fix)
You try to connect to a database and get: Or you attempt to switch it back to multi-user and receive: This usually happens after maintenance, a restore, or when someone has set the database to SINGLE_USER and not switched it back. In single-user mode, only one connection is allowed at a time. If anything else…
Written by
-
SQL Server Recovery Models Explained
Understanding SQL Server Recovery Models is fundamental to backup strategy, restore capability, and transaction log management. A recovery model determines two things: Get it wrong and you either lose restore precision or end up chasing log growth incidents. Every database runs under one of three models: Start by checking what you’re running: What Recovery Model…
Written by
-
SQL Server Builds: Complete Version List and Support Lifecycle
🔖 Living reference Every build number, KB and support date on this page comes from Microsoft’s official build and lifecycle pages, and the page is regenerated after each patch release. ✓ Data checked: 15 August 2026 Filed under Server & Configuration This is the reference I keep open for every SQL Server environment I touch.…
Written by
-
How to Check if Query Store Is Enabled in SQL Server
Query Store is one of the most useful features for troubleshooting query performance in SQL Server, but it is not always enabled or usable in the way people expect. In practice, Query Store might be: This post walks through how to check whether Query Store is enabled, how to see its current state, and how…
Written by
-
Hidden Log Performance Problem
VLF count is one of those checks that doesn’t appear in most performance reviews, doesn’t generate an alert, and doesn’t slow down any single query you can point to. It just makes everything involving the transaction log slower than it should be: backups, restores, recovery after a crash, AG synchronisation lag. I’ve seen databases with…
Written by
-
Forcing Encrypted Connections in SQL Server Using Certificates
In the previous post, we looked at how to verify what protocol and encryption SQL Server is actually using at runtime. That answers the question: What is happening on the wire right now? This post answers a different one: How do I make sure every TCP connection is encrypted, every time? Forcing encryption in SQL…
Written by
-
Difference Between DELETE and TRUNCATE in SQL Server
When someone asks: “What’s the difference between DELETE and TRUNCATE?” Most answers stop at: That is technically correct. It is also not enough. In production environments, choosing between DELETE and TRUNCATE is not about syntax. It is about: This post focuses on the production impact, not the textbook answer. Quick Technical Comparison Feature DELETE TRUNCATE…
Written by
-
Backing Up a SQL Server Database with Encryption
Encrypted backups are no longer optional in most environments. If backups leave the server, land on shared storage, or are retained long-term, unencrypted backups are a data leak waiting to happen. SQL Server has supported native backup encryption since SQL Server 2012, but the mechanics still catch DBAs out. usually during a restore, not a…
Written by
-
Troubleshooting Database Mirroring Issues in SQL Server
Database Mirroring is deprecated, but you will still see it in many production environments. It was officially marked deprecated in SQL Server 2012 and has remained in that state for well over a decade. In my own career as a DBA, it has been “deprecated” the entire time, yet still widely deployed and fully supported.…
Written by
Start Here
- DBA Scripts: The Complete Guide
- Run a Full Health Check
- DBA Scripts & Tools
- SSMS: The Complete Guide
- SQL Server Errors: The Complete Guide
- Wait Types Library
The Pillars
Blog Categories
- Backups & Recovery (16)
- DBA Scripts (151)
- High Availability (HA) (12)
- Installation & Configuration (38)
- Maintenance (24)
- Migration & Upgrades (14)
- Monitoring (6)
- Performance Tuning (35)
- Security (Encryption & Permissions) (20)
- Storage & Capacity (14)
- T-SQL Fundamentals (11)
- Troubleshooting (54)
- Wait Types (235)
Latest Posts
- SQL Server Login Migration: What Gets Silently Left Behind
- CREATE USER WITHOUT LOGIN vs Contained Database Users
- The sqldba MCP Server: Give Your AI Assistant a Verified SQL Server Reference
- Cannot Resolve the Collation Conflict (Error 468)
- Logical Consistency-Based I/O Error in SQL Server (Errors 823 and 824)
- Cannot Recover the Master Database (Error 3417) and What the Log Actually Says
Blog Tags
Access (4) Always On Availability Groups (4) Auditing (7) Backups (6) Blocking (4) Blocking Locking (6) Collectors (7) Database Backups & Recovery (8) Database Backups and Recovery (5) Database Maintenance (7) DBA Tools (24) Disk Space (5) Error Log (3) Extended Events (8) Features (6) High Availability (6) Indexes (7) Installation (7) Inventory (8) Maintenance (6) Migration (14) Monitoring (27) Performance (21) Performance Troubleshooting (9) PowerShell (4) Query Behaviour (5) Security (10) SQL Agent (5) SQL Scripts (17) SQL Server Administration (10) SQL Server Configuration (7) SQL Server Errors (5) SQL Server High Availability (4) SQL Server Internals (3) SQL Server Management Studio (SSMS) (6) SQL Server Monitoring (7) SQL Server Networking (9) SQL Server Security (7) Storage and Capacity (7) T-SQL (10) Temp DB (3) Tracing (7) Transaction Logs (4) Troubleshooting (24) Windows Server (4)