119
votes

Is there any way to stop a SQL Azure DB so that it doesn't charge anything towards our account? I don't want to delete it, just while in testing and it's not being used than we set it to "stopped" like we can do with websites, cloud services, and VMs.

12
Why don't you use serverless?Francesco Mantovani

12 Answers

148
votes

As of 1st September, 2021, The answer is No.

They won't allow it. So the billing will continue for your Azure Database starting the day you create it. There really is no way to pause / stop billing for your Azure SQL Database.

Official Source: feedback.azure.com Please add ability to temporarily turn off/on SQL Azure server to pause billing

Microsoft's official answer appears to be "Yes, you can export your database. Delete the Azure SQL database and that will pause billing. Then when you need it you can create a new database and import your previously expored DB."

I don't believe this is acceptable as an answer for "Allow me to temporarily turn off SQL Server to save on my billing"

enter image description here

27
votes

This is not an option today - the only choice you have is to reduce the size of the Azure SQL Database which will reduce the cost from the next hour of service. If you really don't want to pay for the DB you could backup the DB to blob storage, delete the database and then restore when required. You could orchestrate this using PowerShell or similar.

Update May 2019: There is a new Azure SQL Database "Serverless" tier coming that might meet some of the requirements around reducing costs by not billing when not in use. Official documentation is available to read.

10
votes

The databases get backed up automatically just before a drop. so, you can just drop it when you dont need it and restore it when needed. Restores will take some time depending on the database size and how much log you generated, so it wont be fast for large databases.

Also, there is an expiration policy on how long the backups are retained (depends on the service tier) so just watch out for that.

https://msdn.microsoft.com/en-us/library/azure/jj650016.aspx

10
votes

The Azure SQL Database team is happy to announce that there is now an option that may address your request. We just announced a "serverless" option for Azure SQL DB that will pause your database when it is not in use. You can read more about the feature here: SQL Database Serverless

4
votes

Agree with @Shiva answer. But if you are simply trying out SQL Server on an Azure VM, you would not want to incur charges by accidentally leaving it running over the weekend or weeks. One solution is to use Automatic Shutdown Feature.

enter image description here

3
votes

This is now possible and the preview feature is public. Azure SQL Database serverless

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-serverless

2
votes

Whereas, at this low scale (scale down requirement (pause) rather than scale up), SQL running within a VM might be a better answer for you...

1
votes

As is it is not supported however there are a few work arounds. It really depends upon how long you want to stop it and how immediately you want it and the size of the database. If it is for a couple hours then it may not worth it because the billing is hourly and you may have round off issues. If days then you can drop it and restore when needed. If weeks then exporting the database and importing when needed is another option. Also you may want to check backup strategy for the edition you choose before preferring export / restore. The other thing to note is the immediate need vs planned. If immediate, and the db is big then make sure the SLAs in place works for you

1
votes

You could export the database to Azure storage and Import it when you want to re-enable it, as suggested here:

Temporarily turn off on sql

1
votes

Here's what I did with my Azure database (4/20/19)

I scaled the database DTUs as low as possible while still reserving up to 250GB, which turns out to be 10 DTUs with an estimated cost of 1.50 per DTU (estimated at $15 per month). To me, that's almost as good as turning it off and on. I can scale it up to 100 DTUs when I want to get more processing and scale it down when I don't. Even at 100 DTUs for a whole month, the cost was only $75.93 last month on my test database.

NOTE: I am NOT using a VM to run a database, just the standard SQL server you get when you create a database in Azure.

1
votes

Almost
You cannot get the charge all the way down to zero, but almost...
If you try this SQL Command:

alter DATABASE myDB modify (EDITION = 'Basic') 

or

alter DATABASE myDB modify (EDITION = 'Standard', SERVICE_OBJECTIVE = 'S0', MAXSIZE = 10 gb)

then your cost can go down to something like 5 USD per month (depending on your database size).
When you come back to work on your database, you just need to run

alter DATABASE myDB modify (EDITION = 'Standard', SERVICE_OBJECTIVE = 'S2', MAXSIZE = 10 gb)

and everything will be back to normal, after a few minutes.

Elastic Pool
If you have more than one database you can use the Elastic Pool option to bring your total cost down as well.

Others also mention the option to Drop your database, and rely on restore. That will also work, if you do not leave it deleted for too long...

0
votes

Yes you can, with Azure Serverless SQL Database. While your compute resources will be suspended when the database is not in use, you'll definitely save the costs for compute resources, however the billing will continue for storage resources. You can set the inactive timeout for the database after which the compute resources will be suspended. This timeout can be as low as 1 hour.

Read this: https://azure.microsoft.com/en-in/updates/update-to-azure-sql-database-serverless-providing-even-greater-price-optimization/