There is a lot to be excited about in SQL Server 2025! When thinking about features that may not get as much attention as others, yet will make a real difference in the lives of DBAs, I have selected my top 5 enhancements for SQL Server 2025. These improvements may not make the headlines, but they address pain points we’ve all experienced as DBAs. Please let me know if I’ve left any of your favorites off the list.
Category: Availability Groups
Database Snapshots in SQL Server High-Availability Setups
A database snapshot in SQL Server provides an instant, read-only view of your data at a specific point in time without blocking the live workload. This post explores how snapshots interact with high-availability technologies—Always On Availability Groups, log shipping, and transactional replication—highlighting that creating a snapshot is always safe but restoring it severs existing sync mechanisms. You’ll learn the steps required to roll back to a snapshot, including AG reseeding, log-shipping reinitialization, or replication re-initialization, and why planning for these operations is essential. The post also covers practical tips on monitoring sparse-file growth and choosing between snapshots and full backups for longer-term retention.
How to Set Up a SQL Server Always On Environment Using Docker Containers
Deploy a high availability SQL Server Always On environment using Docker containers. This step-by-step guide covers Dockerfile configuration, Docker Compose orchestration, and T-SQL scripts for enterprise DBAs and BI developers to ensure seamless CDC and database performance.
SQL Server Always On Health Check and Lease Timeout Monitoring
SQL Server Always On Availability Groups are a robust solution for achieving high availability and disaster recovery for SQL Server databases. However, simply configuring them is not enough—you also need a solid monitoring strategy to ensure data integrity and system reliability. One key aspect of this monitoring process is keeping an eye on lease timeouts, which can signal larger issues and help prevent potentially catastrophic split-brain scenarios. In this post, we’ll walk through the various health checks available for Always On Availability Groups, discuss how lease timeouts work, and explore practical methods for monitoring and troubleshooting.
Understanding Worker Threads vs. CPU Utilization in SQL Server
When managing SQL Server performance, it’s important to understand the relationship—and the distinction—between worker threads and CPU utilization. These are two separate metrics that can behave independently. For instance, you might experience high CPU utilization while still having available worker threads, or you could have all worker threads occupied even when CPU utilization is low. This post takes a look at SQL Server worker threads and CPU utilization.
Saving Time with SQL Server Migrations Using Always On Availability Groups and Log Shipping
Migrating databases to a newer version of SQL Server is a critical task that often comes with challenges, especially when aiming to minimize downtime. Leveraging SQL Server’s Always On Availability Groups and log shipping features allows you to perform most of the migration work in advance, ensuring a seamless transition with minimal impact on your operations. This blog provides a step-by-step approach to migrating from SQL Server 2017 to SQL Server 2022, focusing on efficiency and continuity.
Automating Database Restoration Between SQL Server Availability Groups Using PowerShell
In this post, I’ll walk you through a PowerShell script that automates the restoration of a database from one AG to another. The script handles everything—from performing a COPY-ONLY backup on the source AG to restoring the database on the target AG’s primary and secondary replicas, applying transaction logs, and rejoining the database to the new AG seamlessly.
Manually Synchronizing a Lagging Secondary Replica in SQL Server Always On Availability Groups
In high-availability environments, SQL Server Always On Availability Groups (AG) are essential for minimizing downtime and preventing data loss. However, situations can arise where a secondary replica lags behind the primary, disrupting synchronization and risking potential data inconsistencies. This blog provides instructions on how to manually catch up a lagging secondary replica using transaction log backups.
Combining Always On Availability Groups with Peer-to-Peer Replication
Starting with SQL Server 2019 CU13, databases participating in a peer-to-peer replication configuration can now be part of an Always On availability group. This integration is flexible—you are not required to have all members of the replication configuration within an AG. You can mix and match AG and non-AG databases within your replication setup, significantly improving the availability and scalability of your configurations.
Managing IDENTITY and SEQUENCE Behavior in SQL Server Always On Availability Groups
In SQL Server Always On Availability Groups, maintaining data consistency during failovers is necessary for high availability and reliability. However, certain aspects of database behavior, such as the generation of values by IDENTITY columns and SEQUENCE objects, can lead to unexpected gaps or jumps after a failover or server restart. This can affect the continuity of sequential values, which is often important in business applications. In this post, we’ll look into how SQL Server handles IDENTITY columns and SEQUENCE objects in an Always On environment, explain the role of caching, and offer strategies to manage or prevent gaps in your sequences during failovers.