I have been using SQL Backup to URL to backup databases in the range of 100-400 GBs on SQL Server 2012 SP3. Intermittent failures have become increasingly common that I am now experiencing a failure more often than not. The error message is
Msg 3202, Level 16, State 1, Line 1 Write on "https://StorageAccount.blob.core.windows.net/container/databasebackup.bak" failed: Backup to URL received an exception from the remote endpoint. Exception Message: ParallelUpload Failed with timeout = 00:03:00
Msg 3271, Level 16, State 1, Line 1 A nonrecoverable I/O error occurred on file "https://StorageAccount.blob.core.windows.net/container/databasebackup.bak:" Error could not be gathered from Remote Endpoint.
Msg 3013, Level 16, State 1, Line 1 BACKUP DATABASE is terminating abnormally.
This matches closely the issue described in the Microsoft docs regarding Proxy Errors. However, this is an Azure virtual machine and storage account both hosted in an Azure east coast data center. There is no proxy connection and the latency to the storage account should be very low. The initial few minutes of the backup is quite fast (800Mbps) and then the speed abruptly drops to near zero and a timeout occurs 3 minutes after the speed drop. Backups of smaller databases succeed without issue using the same parameters.
Perhaps I need to limit the number of parallel threads that Backup to URL is using. Is this possible? There are no errors logged on the Azure storage. Since this is a 2012 server, I am using storage account key in the SQL credential which limits me to page blobs. Is there any way to use block blobs on a 2012 server?
Any other places I should be looking to find out what might be causing the connection to be lost?