Stopping SQL Azure DB when not in use
Asked Answered
P

13

149

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.

Paleopsychology answered 18/11, 2014 at 3:41 Comment(2)
Why don't you use serverless?Gilberto
@FrancescoMantovani Because it was released five years after this question was asked.Verduzco
M
172

As of July 4th, 2023, 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

Mors answered 6/2, 2017 at 8:28 Comment(9)
As of today, it appears that the best solution is to "pause" the VM that SQL Server is installed on, right?Gpo
No. What if you are just renting a SQL Server instance, and not an entire VM? You can't "Pause" a SQL Server. That's what the connect ticket and this question is for.Mors
Thanks for updating your answer every couple of days!Pectoral
It is a shame. Thanks for your awnser, direct and clear.Behold
Probably worth updating this as of May 2019 you now have an option for this using the 'serverless' tier of Azure SQL DB. Details here: learn.microsoft.com/en-au/azure/sql-database/…Kusin
@SimonW Per your link, they only let you stop the DB, and still charge for disk space. From the Pricing section => Only storage is billed while the database is paused. Whereas OP wants it to not charge for anything if DB is not in use...Mors
Fair enough, but zero cost isn't going to happen. When you stop a VM in Azure you are still paying for storage for the VM disks, and there is no zero cost stop function for Azure App Service (including Websites) as the underlying App Service Plan continues to bill you.Kusin
Serverless exists as an option. When you pause a vm hosting Sql server you still pay for disk space. This matches what serverless does in sql azure.Nasa
Corrected, explicitly mentioning Azure SQL ServerlessMedullary
K
28

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.

Kusin answered 18/11, 2014 at 4:0 Comment(1)
It looks that it is still accurate as of today. I don't see the option anywhere and Google confirms the same.Leilani
N
14

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

Nasa answered 9/5, 2019 at 2:40 Comment(4)
It does not seem that the "Auto Pause" feature works. I have a Serverless Database. The "Enable auto-pause" checkbox is set and the time period is set to 1 hour. I have just got back from the long holidays and noticed that SQL Database consumed the vCores seconds all these days. No requests were made, the app which uses this DB was not active. The chart on the Overview page shows a constant CPU usage ~ 0.007%. I have no idea how to prevent it from consuming CPU while it is idle.Katt
After additional research and this thread: #57910200 I have found out that the problem is on the application level. Sorry for a false alarm.Katt
Be aware that the basic serverless option is more expensive (per second) than the comparable "provisioned" server, and dramatically more than the Standard and Basic options. For instance, the cheapest "serverless" option, were it to run full time, will cost $425/month. If you have a database that only needs to be online for a few minutes a month—as I do—that's fine. If you'd otherwise be using the comparable General Purpose provisioned database, but expect it to run less than 90% of the time on average, that's also fine. In other scenarios, though, it can be quite expensive.Rakia
So, for a development database, the Basic database will cost you $5/month. With the serverless database, you get eight hours for the same price. If you're not actively developing against the database, and only need it on occasion for e.g. testing a hotfix as part of sustained maintenance, that's probably fine. But if you're actively developing against it, it's going to be much more expensive than a Basic database, unless you'd otherwise need a lot of DTUs for your development database.Rakia
E
10

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

Elocution answered 7/5, 2015 at 21:20 Comment(1)
ironic that this article was "archived"Fourinhand
T
3

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

Timeconsuming answered 13/7, 2018 at 1:19 Comment(1)
this is when it is a VM, not when it is a Azure SQL Database.Rosauraroscius
D
3

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

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

Disgust answered 5/7, 2019 at 8:25 Comment(1)
The serverless option provides great flexibility and does not bill unless it is actually getting used. This is great for databases that get low usage over time. The startup time after it goes into standby is a factor to take into account however. For Developmental purposes, this is excellent however.Prostomium
M
2

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...

Melchor answered 25/6, 2017 at 14:25 Comment(0)
H
2

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/

Hedden answered 13/7, 2020 at 17:31 Comment(0)
C
1

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

Cockatiel answered 8/5, 2015 at 5:47 Comment(0)
A
1

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

Activism answered 18/10, 2016 at 11:30 Comment(0)
R
1

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

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...

Rosauraroscius answered 8/3, 2019 at 7:29 Comment(0)
F
1

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.

Friedman answered 21/4, 2019 at 3:38 Comment(0)
C
0

As of 2024, an Azure database can be stopped and of course, you still pay for the storage. However, note that:

  • there is an automatic restart after 7 days (I think this is done for maintenance reasons)
  • if you use a lot of storage, scaling the database down to the cheapest burstable and lowest IOPs will the cost of SKU will be dwarfed by the cost of storage => you might keep it running, just scaling it down as low as possible
Chesna answered 20/3 at 15:26 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.