In SQL Server, latches are lightweight synchronization mechanisms that keep in-memory data structures consistent and safe. They are key to managing access when multiple threads are working with these structures at the same time. SQL Server uses two main types of latches: buffer latches and non-buffer latches. While buffer latches protect pages in the buffer pool, non-buffer latches are for other internal memory structures. This post focuses on non-buffer latches, explaining what they are, why they’re important, and what excessive non-buffer latch waits might mean.
Understanding Quorum Loss in a Windows Failover Cluster with SQL Server Always On Availability Groups
This article provides an in-depth exploration of quorum loss in Windows Failover Clusters and its impact on SQL Server Always On Availability Groups. It explains how nodes communicate using heartbeat packets, the process of handling failed heartbeats, and the rejoining of nodes to the cluster. The post also outlines various quorum voting configurations and their implications for cluster stability and data integrity. Additionally, it discusses the importance of maintaining quorum for high availability and disaster recovery in SQL Server environments.
Configuring Your SQL Server Instance via PowerShell
Managing a SQL Server instance can involve various tasks, including setting configuration options to optimize performance and resource usage. Using PowerShell to configure SQL Server instances can provide significant advantages, such as automation, consistency, and the ability to easily script and repeat tasks across multiple servers. This guide will walk you through a PowerShell script that connects to a local SQL Server instance, retrieves current configuration settings, updates these settings, and applies the changes.
GO for it with SQLCMD: Introducing the Modern SQLcmd
Learn how Go-SQLcmd enhances SQLCMD by providing a lightweight and efficient way to manage SQL Server environments using Docker containers. This guide covers the capabilities of Go-SQLcmd, including container creation and database restoration. Follow detailed installation steps and practical usage examples to streamline your SQL Server development and testing workflows. Ideal for developers and database administrators looking for cross-platform solutions.”
Creating SQL Server AGs on Linux: Part 3 – Pacemaker Resources and Constraints
Welcome to the third part of our series on setting up SQL Server availability groups on Linux. In the previous post, we focused on enabling High Availability Disaster Recovery (HADR) on SQL Server and setting up the availability group. This post will guide you through configuring Pacemaker resources and constraints to manage the availability group effectively.
Strategies for Optimizing Version Ghost Record Cleanup in SQL Server
This blog explores the challenges and strategies for managing version ghost records in SQL Server. It discusses issues like single-threaded cleanup tasks, long-running transactions, and locking levels that impact the cleanup process. The post provides actionable strategies such as updating SQL Server, utilizing trace flags, and regular index maintenance to improve ghost record cleanup efficiency.
Creating SQL Server AGs on Linux: Part 2 – Enabling HADR on SQL Server
This is part of a series on setting up SQL Server availability groups on Linux. It details how to enable High Availability Disaster Recovery (HADR) on SQL Server, including creating master keys, certificates, and availability groups. Clear instructions are provided for configuring SQL Server and Pacemaker to ensure data redundancy and high availability. Follow these steps to enhance the reliability of your SQL Server instances on Ubuntu 20.04.
The Application Role: Implementing Application Roles with SQL Server
A straightforward guide to implementing application roles in SQL Server, focusing on enhancing security and managing database permissions for applications. This guide covers the creation, activation, and management of application roles, ensuring applications have the necessary access while minimizing the risk of unauthorized actions. Learn about key concepts such as role activation, permission assignment, and reverting security contexts. Follow best practices to effectively use application roles and improve the overall security and manageability of your SQL Server databases.
Creating SQL Server AGs on Linux: Part 1 – Installing and Configuring Pacemaker
This post is the first part of a series on setting up SQL Server availability groups on Linux. It covers the installation and configuration of Pacemaker on Ubuntu 20.04, creating the Pacemaker cluster, and configuring essential cluster properties. Designed for SQL Server DBAs with limited Linux experience, this guide lays the foundation for a robust high availability environment.
SQL Server AG Readonly Secondaries and their Associated Overhead
In SQL Server Always On Availability Groups, configuring read-access for one or more secondary replicas introduces additional overhead to the primary databases. This overhead, specifically a 14-byte addition to modified, inserted, or deleted data rows, is essential for the row versioning feature that ensures data consistency across replicas. Row versioning allows secondary replicas to perform read operations without being affected by ongoing changes on the primary replica, ensuring a consistent view of the data. Understanding this overhead and its impact on storage and performance is crucial for optimizing SQL Server environments.