How to fix Error 3063 on Windows Server 2025 / Windows 11

Troubleshooting Guide: SQL Server Error 3063 – Backup Block Blob Device Limit Reached

Why This Error Happens

This error occurs because Azure Blob Storage enforces a hard limit of 50,000 blocks per block blob, and SQL Server backups to URL destinations use this block structure to write data. When a database backup is large enough (typically multi-terabyte databases with default MAXTRANSFERSIZE settings), SQL Server exhausts the available blocks before the backup operation completes. This is almost always caused by an undersized MAXTRANSFERSIZE value relative to the database size, rather than a permissions or corruption issue.

Step-by-Step Resolution Guide

Step 1: Calculate the Required MAXTRANSFERSIZE Value

  • Determine your database size in bytes (e.g., use sp_spaceused or check the .mdf/.ndf file sizes).
  • Divide the total backup size by 50,000 (the block limit) to find the minimum required block size.
  • Round up to the nearest valid MAXTRANSFERSIZE value — SQL Server accepts values from 65536 (64 KB) up to 4194304 (4 MB) in multiples of 64 KB.

Step 2: Re-run the Backup with an Increased MAXTRANSFERSIZE

  • Open SQL Server Management Studio (SSMS) or a query window connected to your SQL Server 2025 instance.
  • Execute a backup command with the adjusted parameter, for example:
  BACKUP DATABASE [YourDatabase]
  TO URL = 'https://yourstorageaccount.blob.core.windows.net/yourcontainer/backupfile.bak'
  WITH MAXTRANSFERSIZE = 4194304, COMPRESSION, STATS = 10;
  • If 4 MB (4194304) still isn’t sufficient for extremely large databases, split the backup across multiple URLs (striped backup) to distribute blocks.

Step 3: Implement a Striped Backup for Very Large Databases

  • If a single blob cannot hold the backup even at maximum MAXTRANSFERSIZE, configure multiple backup URLs to stripe the backup across several blobs:
  BACKUP DATABASE [YourDatabase]
  TO URL = 'https://yourstorageaccount.blob.core.windows.net/yourcontainer/backup1.bak',
  URL = 'https://yourstorageaccount.blob.core.windows.net/yourcontainer/backup2.bak'
  WITH MAXTRANSFERSIZE = 4194304, COMPRESSION;
  • Ensure your Shared Access Signature (SAS) credential on the SQL Server instance has write permissions to the container for all target blobs.

Step 4: Verify Storage Account Tier and Credential Configuration

  • Confirm the Azure Storage account is using a Standard tier (Premium block blob storage has different block count behaviors).
  • Re-validate the SQL Server credential tied to the storage container using:
  SELECT * FROM sys.credentials WHERE name LIKE '%yourstorageaccount%';
  • Drop and recreate the credential if the SAS token has expired or lacks sufficient permissions (Read, Write, List, Create).

Alternative or Verification Steps

  • To verify the fix, run the backup again and monitor completion via msdb.dbo.backupset to confirm the backup_size matches expectations without error 3063 reappearing.
  • As an alternative for extremely large databases, consider using the native Azure Backup for SQL Server integration or backing up to local disk/Azure File Share (SMB) instead of block blob storage, which bypasses the 50,000-block limitation entirely.