RSSAmplifier

Blog

Anthony Nocentino's Blog

Recent content on Anthony Nocentino's Blog

nocentino.comRSS feed ↗238 posts

Latest posts

EightKB 2026: Registration is Open!

It’s that time of year again! EightKB is back on August 20th at 13:00 UTC , and registration is open right now. It’s completely free. No catch, just a full day of the deepest SQL Server content you’ll find anywhere on the internet. 
 Mark, Andrew, and I have been putting this event on since 2020, and this year’s lineup might be the best one yet. All sessions are…

Using Claude Code as a Database SRE Agent with the Everpure Fusion MCP Server

Here’s the scenario: one of my SQL Server instances migrated to the DR array. The VM moved, the old volumes were destroyed, and nobody created a Protection Group on the destination. There were no alerts. Nothing failed. The DR environment just quietly had no data protection. No snapshots, no replication. We’d have had no idea until we needed to recover. Ok, well this was in my lab, but…

Microsoft MVP 2026: Ten Years on the Data Platform

I’m honored to announce that I’ve been renewed as a Microsoft MVP for the tenth consecutive year , recognized in the Azure SQL and SQL Server technical areas under Data Platform. Ten years. I honestly didn’t see that coming when I set a five-year goal back in 2016. 
 
 
 Ten Years 
 I want to stop and acknowledge that milestone for a moment. When I first earned…

Crash-Consistent MongoDB Snapshot and Restore with Everpure Fusion

I’ve been working on a project that combines two things I spend a lot of time with: MongoDB sharded clusters and Everpure FlashArrays. The goal is a production-grade backup and restore solution that avoids mongodump , doesn’t require fsyncLock , and scales across as many arrays as your cluster needs without any code changes. In this post I’m walking through the complete workflow…

Giving AI Agents Visibility Into SQL Server with MCP

I’ve been thinking a lot lately about what it actually takes to make an AI agent genuinely useful for database work, both for administration and for application access to the data tier. Writing the T-SQL code is the easy part. A coding assistant can do that out of the box. The hard part is giving it visibility into a running SQL Server: which sessions are blocked right now, where the wait…

Crash-Consistent Snapshot Cloning - Hyper-V Edition

If you’ve been following my T-SQL Snapshot Backup series , most of what I’ve covered requires SQL Server to participate in the snapshot: the write IO freeze, the metadata backup, the coordinated workflow. This post covers the other side of that coin: crash-consistent cloning. No write freeze. No backup. No point-in-time recovery. Just a raw volume clone that SQL Server recovers from…

Using T-SQL Snapshot Backup - Hyper-V Edition

If you’ve been following my T-SQL Snapshot Backup series , you’ve seen this technique work on bare-metal and standard VM deployments where database files live on volumes directly presented to the SQL Server OS. In this post, I’m bringing T-SQL Snapshot Backup into a Hyper-V cluster environment, with database files on VHDXs backed by a Pure Storage FlashArray Cluster Shared Volume…

Designing a Storage Load Test for SQL Server

I’ve been doing storage load tests for SQL Server for a long time, both as a consultant and now in my work at Everpure, and I see the same patterns over and over. Someone spins up a VM with two vCPUs, points it at a storage subsystem (cloud or on-prem), runs a thousand threads at it, and then concludes that the storage stinks. Or the opposite, where they buy a 64 gigabit HBA, plug it into…

Walking Through an Unplanned Failover: SQL Server Availability Groups on Kubernetes

In my planned failover walkthrough , I showed what happens when you deliberately move the primary role to another replica. That’s the easy case. Now I want to show what happens when the primary pod just disappears unexpectedly, like during a node failure or a container crash. No graceful shutdown, no demotion, just gone. 
 I ran two test scenarios, each cycling the primary role across…

Walking Through a Planned Failover: SQL Server Always On Availability Groups on Kubernetes

When building the sql-on-k8s-operator , I wanted to make sure it could handle both planned and unplanned failovers. The easy case is a planned failover, where you deliberately move the primary role to another replica. The harder case is an unplanned failover, where the primary pod just disappears. The operator needs to handle both. 
 I recently ran a full planned failover rotation on a…

Reading SQL Server File Headers with DBCC FILEHEADER

I’ve been doing a deep dive into SQL Server on-disk structures lately, and one of my favorite rabbit holes is revisiting Paul Randal’s series on file header pages . If you haven’t read it, go do that now. It covers what file header pages are, what they contain, and what happens when they corrupt. This post takes that concept and runs with it. I’ll use DBCC FILEHEADER to…

Introducing the SQL Server on Kubernetes Operator

Are you considering replatforming your SQL Server workload due to recent vendor changes, but still need high availability and disaster recovery? You’re not alone. One of the challenges with running SQL Server on Kubernetes is that there’s no Kubernetes operator available. That means no automated lifecycle management, no automatic failover, and no standard way to bootstrap an Always On…

SQL Server 2025 CU1 Fixes the Docker Desktop AVX Issue on macOS

Good news for anyone who’s been working around the AVX issue I wrote about in my previous post . Microsoft has fixed it in Cumulative Update 1 (CU1) for SQL Server 2025. 
 What Changed 
 Back in November when SQL Server 2025 RTM was released and I upgraded to macOS 26, I ran into an AVX instruction issue that prevented the container from starting on Docker Desktop using Rosetta on…

NVMe vs PVSCSI: Real-World Performance Testing for SQL Server Workloads on VMware

If you’re like me, you’ve probably been following Microsoft’s announcement about native NVMe support in Windows Server 2025 with great interest. While it’s limited to local drives, how about we break that rule and leverage our virtualization layer extend NVMe benefits throughout the entire storage stack, even to remote storage like a FlashArray? I decided to test that…

Getting SQL Server 2025 RTM Running in Containers on macOS


 Update (February 2, 2026): Microsoft has fixed this issue in SQL Server 2025 CU1. The container now runs successfully on Docker Desktop for macOS without needing OrbStack. See my follow-up post for details. 
 SQL Server 2025 RTM is here , and if you’re running Docker on macOS Tahoe 26, you might have hit a wall trying to get it running. Here’s what happened when I tried…

App-Consistent MongoDB Snapshots Across Multiple Pure Storage FlashArrays

Introduction 
 When you’re running MongoDB at scale with data distributed across multiple Pure Storage FlashArrays, achieving truly consistent backups becomes a critical and interesting technical challenge. In this post, I’m walking through an automated snapshot and recovery solution for a sharded MongoDB cluster running across two separate FlashArrays. While this demonstration…

Build a Snapshot Backup Catalog in Pure Storage - The SQL Server 2022 Edition

In my previous post , I showed you how to build a snapshot backup catalog using SQL Server 2025’s new native REST API integration. But what if you’re still running SQL Server 2022? Should you miss out on this powerful capability that SQL Server and Pure Storage provide? Absolutely not. 
 In this post, I’m going to show you how to build the same snapshot backup catalog…

Setting up SQL Server S3 Object Storage Integration using MinIO with Docker Compose (Updated for SQL Server 2025)


 Update for SQL Server 2025: 
This post and the GitHub repo have been updated for SQL Server 2025 RC1 and Ubuntu 24.04. 
 New in SQL Server 2025: You no longer need to install the PolyBase service to interact with Parquet files in S3. Previously, with SQL Server 2022, you had to build a custom container or manually install PolyBase. Now, S3 object integration and Parquet support work…

Scaling SQL Server 2025 Vector Search with Load-Balanced Ollama Embeddings

SQL Server 2025 introduces native support for vector data types and external AI models. This opens up new scenarios for semantic search and AI-driven experiences directly in the database. But as with any external service integration, performance and scalability are immediate concerns, especially when generating embeddings at scale. 
 https://github.com/nocentino/ollama-lb-sql 
 Problem:…

Automated SQL Server Benchmarking with HammerDB and Docker: A Complete Testing Framework

I’m excited to announce the release of a new open-source project that fully automates HammerDB benchmarking for SQL Server using Docker. If you’ve ever needed to run TPC-C or TPC-H benchmarks multiple times, you know how time-consuming the manual setup can be. This project removes the hassle and gets you up and running a single command: ./loadtest.sh . 
 Why I Built This 
 In…

Managing Enterprise Storage with Pure Storage Fusion in PowerShell - Building Storage Tiers

In modern IT environments, not all workloads require the same level of storage performance, protection, or cost. Some applications need high performance with aggressive data protection, while others are perfectly fine with lower performance in exchange for cost savings. This tiered approach to storage service delivery is fundamental to efficient infrastructure management. 
 In my previous post…

Getting Started with Vector Search in SQL Server 2025 Using Ollama

Ollama SQL FastStart streamlines the deployment of SQL Server 2025 with integrated AI capabilities through a comprehensive Docker-based solution. This project delivers a production-ready environment combining SQL Server 2025, Ollama’s large language model services, and NGINX with full SSL support—all preconfigured to work together seamlessly. 
 I built this project to eliminate the…

Managing Enterprise Storage with Pure Storage Fusion in PowerShell

When managing storage infrastructure at scale, one of the most powerful approaches is treating related storage resources as cohesive Workloads rather than individual components. This becomes especially important when dealing with applications like SQL Server that have specific storage patterns and requirements and are often deployed at scale in a datacenter or cloud. 
 In this post, I’ll…

Microsoft MVP 2025: Continuing the Data Platform Journey

I am honored to announce that I have been renewed as a Microsoft MVP for the ninth consecutive year, recognized in the Azure SQL and SQL Server technical areas under Data Platform. Thanks for this incredible journey that began in 2017. 
 Thank You 
 I want to thank Microsoft for this continued recognition. The MVP program has provided me with numerous opportunities to connect with…

Build a Snapshot Backup Catalog in Pure Storage with SQL Server 2025’s Native REST API

I’m really excited to share some new functionality in SQL Server 2025 combined with some innovations in FlashArray’s REST API. 
 In this post, I’m going to show you how to build a snapshot backup catalog using FlashArray Protection Group Tags and orchestrating the work using SQL Server 2025’s new native REST integration. 
 With this solution, you will have the…

Monitoring SQL Server Performance with the Pure Storage FlashArray OpenMetrics Exporter

I’m excited to share a new open-source project I’ve been working on that combines two of my favorite areas: SQL Server and Pure Storage FlashArray performance monitoring. If you’ve been following my blog, you know I am passionate about creating tools that bridge the gap between database platforms and storage infrastructure. 
 SQL Server performance troubleshooting has always…

SQL Server 2025: Using ZSTD Compression for SQL Server Backups

SQL Server 2025 introduces a new compression algorithm called ZSTD (Zstandard) , which can enhance database backup performance. Using ZSTD allows for greater control over backup performance, particularly concerning CPU usage and backup duration. I recently conducted some preliminary benchmarks comparing ZSTD at its three compression levels with the existing MS_XPRESS algorithm. The results are…

T-SQL REST API Integration in SQL Server 2025: Streamlining T-SQL Snapshot Backups

In this post, I’ll walk you through a T-SQL script that creates application-consistent snapshots on Pure Storage FlashArray, all from within SQL Server, no external tooling. SQL Server 2025 introduces a powerful new feature: the sp_invoke_external_rest_endpoint stored procedure. This enhancement makes calling REST APIs directly from T-SQL easier than ever. Combining this new capability with Pure…

SQL Server 2025: Enterprise AI Without the Learning Curve

With the release of SQL Server 2025, Microsoft is firmly positioning its flagship database platform as an enterprise-ready AI solution. Having spent time with the preview builds and working with the feature set, I believe this release represents a significant opportunity for organizations to leverage AI capabilities and their existing investments in SQL Server infrastructure, skills, and…

Using a Local Large Language Model (LLM): Interacting with Local LLMs Using PowerShell

As AI continues to evolve, many of us are looking for ways to leverage large language models (LLMs) without relying on cloud services. As we learned in my previous post “Using a Local Large Language Model (LLM): Running Ollama on Your Laptop” , running models locally gives you complete control over your data, eliminates API costs, and can be integrated seamlessly into your existing…

Using a Local Large Language Model (LLM): Running Ollama on Your Laptop

You can now run powerful LLMs like Llama 3.1 directly on your laptop using Ollama . There is no cloud, and there is no cost. Just install, pull a model, and start chatting, all in a local shell. 
 Large Language Models (LLMs) have revolutionized how we interact with data and systems, but many assume you need significant cloud resources or specialized hardware to run them. Today, I want to walk…

Using T-SQL Snapshot Backup - Seeding Availability Groups

In this post, the fifth in our series , I want to illustrate an example of using the T-SQL Snapshot Backup feature in SQL Server 2022 to seed Availability Groups (AGs) with storage-based snapshots. Efficiently seeding an Availability Group is essential for maintaining high availability and ensuring effective disaster recovery. With the introduction of T-SQL Snapshot Backup in SQL Server 2022,…

Monitoring with the Pure Storage FlashArray OpenMetrics Exporter


 Update (February 2026): This post has been updated to reflect the current best practices for monitoring FlashArray using OpenMetrics. Starting with Purity//FA 6.7.x, FlashArray includes a native OpenMetrics exporter, eliminating the need for a separate exporter service/container. The configuration examples below now demonstrate direct-to-array scraping. 
 This post introduces you to…

Using T-SQL Snapshot Backup - Multi-Array Database Snapshots

In this post, the fourth in our series , I want to share an example demonstrating SQL Server 2022’s T-SQL Snapshot Backup feature in a scenario where a database spans multiple storage arrays. If you’re dealing with multi-array environments, you’ll appreciate how this technique freezes database write I/O to take coordinated snapshots across volumes on two FlashArrays. In this post, I’ll walk…

Introducing SQL Server 2025 - Enterprise Ready AI

SQL Server 2025 is an upcoming release focused on AI, analytics, and modern database development, backed by innovations in mission-critical engine features for security, performance, and high availability. 
 Let’s dive into what this means for your AI and data-driven applications. We’ll walk through some of the new features announced by Azure Data Principal Architect Bob Ward in…

Talks

I’ve migrated all presentations content over to GitHub…check it out here !

Using T-SQL Snapshot Backup - Point in Time Recovery - Azure Edition

In this post, the third in our series on using T-SQL Snapshot Backup , I will guide you through using the new T-SQL Snapshot Backup feature in SQL Server 2022 to take a snapshot backup and then perform point-in-time database restores using that snapshot backup as the base, but this time using an Azure Virtual Machine . We will explore how to manage Azure storage-level operations, such as taking…

Using T-SQL Snapshot Backup - Point in Time Recovery

In this post, the second in our series , I will guide you through using the new T-SQL Snapshot Backup feature in SQL Server 2022 to take a snapshot backup and perform point-in-time database restores using a snapshot backup as the base of the restore. We will explore how to manage storage-level operations, such as cloning snapshots and executing an instantaneous point-in-time restore of a database…

Using T-SQL Snapshot Backup - Are Snapshots Backups?

Traditional SQL Server backups can struggle with large databases, resulting in longer backup times and resource contention. T-SQL Snapshot Backup , a new feature in SQL Server 2022, addresses these challenges by allowing storage-based snapshots to be coordinated through T-SQL. This feature delivers faster, more efficient backups, especially for large-scale environments with the most aggressive of…

Using the Pure Storage PowerShellSDK2 - Part 5 - Checking Replication Status

Welcome back to the fifth installment of our blog series on using the Pure Storage PowerShell SDK2 . In this post, we’re diving into a hands-on demonstration of using the Pure Storage FlashArray API to track replication performance between two arrays. This is especially useful for DBAs and storage admins, who must ensure their data replication processes run smoothly and efficiently. A typical…

New Pluralsight Course - Certified Kubernetes Administrator - Performing Cluster Version Upgrades

We’re working through the major refresh of my Certified Kubernetes Administrator series at Pluralsight! 
 The next course “Certified Kubernetes Administrator: Performing Cluster Version Upgrades” in the updated series is now available on Pluralsight here ! If you want to learn about the course, check out the trailer here , or if you’re going to dive right in, check it…

Installing and Configuring containerd as a Kubernetes Container Runtime

This post shows you how to install containerd as the container runtime in a Kubernetes cluster. I will also cover setting the cgroup driver for containerd to systemd, which is the preferred cgroup driver for Kubernetes. 
 In Kubernetes version 1.20 Docker was deprecated as a container runtime in a Kubernetes cluster and support was removed in 1.22. Kubernetes 1.26 requires that you use a…

New Pluralsight Course - Certified Kubernetes Administrator - Working With Your Cluster

We’re working through the major refresh of my Certified Kubernetes Administrator series at Pluralsight! 
 The next course “Certified Kubernetes Administrator: Working With Your Cluster” in the updated series is now available on Pluralsight here ! If you want to learn about the course, check out the trailer here , or if you’re going to dive right in, check it out here !…

New Pluralsight Course - Certified Kubernetes Administrator - Using kubeadm to Install a Basic Cluster

We’re kicking off a major refresh of my Certified Kubernetes Administrator series at Pluralsight! 
 The second course “Certified Kubernetes Administrator: Using kubeadm to Install a Basic Cluster” in the updated series is now available on Pluralsight here ! If you want to learn about the course, check out the trailer here , or if you’re going to dive right in, check it…

New Pluralsight Course - Certified Kubernetes Administrator - Kubernetes Foundations

We’re kicking off a major refresh of my Certified Kubernetes Administrator series at Pluralsight! 
 The first course “Certified Kubernetes Administrator: Kubernetes Foundations” in the updated series is now available on Pluralsight here ! If you want to learn about the course, check out the trailer here , or if you’re going to dive right in, check it out here ! This…

Using the Pure Storage PowerShellSDK2 - Part 4 - Classifying Workloads With FlashArray Tags

Welcome back to the fourth installment of our blog series on using the Pure Storage PowerShell SDK2 . In this post, you’ll learn how to use Purity Tags to classify workloads, giving you the ability to search and manage resources in FlashArray and Cloud Block Store based on the types of workloads you’re running. Using the techniques in this post, combined with those learned in our last…

Understanding I/O Freeze in SQL Server 2022's TSQL Snapshot Backups

SQL Server 2022 introduces a new feature to enable application-consistent snapshot backups. TSQL Snapshot Backups enable the SQL Server to control the database quiesce without external tools. Using TSQL Snapshot backups enables instantaneous restores, independent of the size of data, for a database, group, or server backups, including point-in-time recovery. 
 When you use this feature, it…

Using the Pure Storage PowerShellSDK2 - Part 3 - Getting Performance Data from FlashArray

Welcome back to the third installment of our blog series on using the Pure Storage PowerShell SDK2 . In this post, we’ll learn how to retrieve performance data from FlashArray and Cloud Block Store. Here, you’ll uncover the intricacies of extracting performance data across several object types, including Volumes and Hosts. We will dig into the object model that exposes crucial…

Using the Pure Storage PowerShellSDK2 - Part 2 - Working With Data

Welcome back to the second installment of our series on using the Pure Storage PowerShell SDK2 . In this post, we’ll dive into working with object data using Pure Storage PowerShell SDK2. 
 When it comes to manipulating data in PowerShell, the ability to effortlessly pipe objects and their associated data between cmdlets is a game-changer. However, when it comes to Pure Storage…

Using the Pure Storage PowerShellSDK2 - Part 1 - Connecting to FlashArray

Welcome to our blog series on using the Pure Storage PowerShell SDK2 . In this series, we will provide you with practical insights and examples on how to harness the power of the Pure Storage PowerShell SDK2 to enhance your storage management capabilities. 
 Throughout this series, we will cover a wide range of topics, including performance data gathering, snapshot management, performance…