Database Administration Portfolio Project

SQL Server Enterprise DBA
End-to-End Project

A hands-on portfolio project simulating the real-world responsibilities of an enterprise SQL Server DBA. Starting from a deliberately unoptimized database built on real NOAA climate data, I worked through performance tuning, backup & recovery, security, auditing & compliance, automation, high availability with Always On Availability Groups, and monitoring — eleven phases end to end, on SQL Server 2025.

SQL Server 2025 Performance Tuning Always On AG Backup & Recovery Security (TDE / RLS) Monitoring & XE NOAA Climate Data
SQL Server Enterprise DBA project

What This Project Demonstrates

The Goal

This is the follow-up to my PostgreSQL → SQL Server migration project, reusing the same SQLDBA-Primary VM as the foundation. Where that project was about moving a database from one engine to another, this one is about everything a DBA does after the database exists: tuning it, protecting it, securing it, automating it, making it highly available, and watching it. I wanted a single project that covers that full scope honestly — including the parts that didn't go smoothly the first time.

The Dataset

I sourced NOAA's Global Historical Climatology Network Daily (GHCN-Daily) dataset — the same data used in peer-reviewed climate research, distributed under a CC0 public domain license. Three years of daily observations (2021–2023, ~3.8GB raw) plus station metadata, loaded into a deliberately unoptimized schema as a real "before" state to diagnose and improve in later phases.

113.5M
Observation Rows Loaded
132.5K
Weather Stations
2
Always On AG Replicas
11
Project Phases

Eleven Phases, One Complete Project

Phase 00 — Foundations
Repo & Folder Structure

Set up the local and remote repository, git workflow conventions, and folder skeleton before any hands-on database work began.

View Phase
Phase 01 — Baseline
New Database: Sourcing, Schema & Baseline

Sourced NOAA's public climate dataset, designed a deliberately unoptimized schema, bulk-loaded 113.5M rows, and captured real baseline query performance.

View Phase
Phase 02 — Configuration
Installation & Configuration

Audited and tuned server-level configuration — memory limits, MAXDOP, cost threshold for parallelism, and TempDB layout — against enterprise best practices.

View Phase
Phase 03 — Maintenance
Storage & Database Maintenance

Designed the filegroup and file layout, planned capacity for a 20GB+ database, and scripted ongoing maintenance including DBCC CHECKDB and statistics updates.

View Phase
Phase 04 — Tuning
Performance Tuning

Diagnosed the Phase 1 baseline's worst queries, added a targeted composite clustered index, and documented real before/after execution plans and timings.

View Phase
Phase 05 — Recovery
Backup & Recovery

Built a full/differential/log backup strategy and proved it with a real point-in-time restore drill, verifying the restored data matched exactly.

View Phase
Phase 06 — Security
Security

Implemented least-privilege roles and logins, enabled Transparent Data Encryption, applied Row-Level Security, and masked sensitive columns.

View Phase
Phase 07 — Compliance
Auditing & Compliance

Configured SQL Server Audit at the server and database level, captured real login and data-modification events, and implemented change tracking.

View Phase
Phase 08 — Automation
SQL Server Agent & Automation

Automated backups and maintenance via SQL Server Agent jobs, and deliberately failed a job to verify real failure notification and logging.

View Phase
Phase 09 — High Availability
Always On Availability Groups

Built a two-replica Always On AG across workgroup VMs with certificate-based endpoint authentication, and tested manual failover — including recovering from a real split-brain incident.

View Phase
Phase 10 — Observability
Monitoring

Built DMV-based session/query/wait monitoring and an Extended Events session, proven by capturing a real long-running query and a real deliberately-induced deadlock.

View Phase

What the Project Actually Shows

113.5M
Loaded and queried 113,522,932 real NOAA climate observations across three years, on a deliberately unoptimized schema first, so every later optimization had a genuine "before" number to improve against.
1.71s
Extended Events reliably caught real events, not staged ones. A cold-cache full scan captured at 1.71 seconds, and a deliberately induced deadlock caught twice independently — proof the monitoring works, not just that it was configured.
Split-brain
Hit a genuine split-brain incident during Always On AG failover testing in a non-domain workgroup environment, then recovered by rebuilding the AG from scratch — documented honestly as exactly why production deployments need a real WSFC.
No email
Database Mail was never configured — no real SMTP server exists in this lab — so job failure detection and monitoring both work, but automated email alerting doesn't. Documented as a real constraint, not silently patched over.

Built on SQL Server 2025

SQL Server 2025Core database engine
SSMSPrimary query tool
Always On AGHigh availability
Extended EventsDeadlock & query monitoring
TDEEncryption at rest
Row-Level SecurityData visibility control
SQL Server AgentJobs & automation
Hyper-VVM & replica hosting
PowerShellCLI & automation
Git & GitHubVersion control

Two Ways In