I don’t like to flag problems without providing solutions.
In my last post I wrote about how Azure OSS Databases are poorly managed by Azure portal compared to Azure SQL Database.
Today at least I would like to help you out and offer you some way out in case you are using MySQL, MariaDB or PostgreSQL on Azure.
Backup Azure OSS single database
As said in my previous article all Azure OSS Databases are on the same bucket.
Azure call this thing server but as you cannot manage it from the portal. Let’s say that the scenario is this: you have 3 databases that we will call
Database_3 and you would like to take automated backups of each of them every hour.
You have to:
- Create an Azure Blob Storage Container
- Create a mysqldump script (For MySQL and MariaDB) or pg_dump script (for PostgreSQL) that will backup the database. You probably want to create one per database.
- Use Azure Logic Apps or Azure Data Factory to execute that script each hour and save the backup on the Azure Blob Storage Container, each backup with time and date.
- Instruct DevOps on how to Restore and keep a documentation always at hand
…and for all the rest?
I would say there is no solution apart buying a separate server for each Azure OSS Databases.
Am I serious?
I don’t see any other option. I would suggest you to dedicate a separate server if you want to:
- use the out-of-the-box Azure backups
- scale up or down
- separate consumption and metrics
- setup a different Disaster Recovery for each database
- setup a different replication for each database
- provide single tenant solutions to your customers
- being GDPR compliant and therefore choose a different location
That is the only way out: use the Azure OSS Server like it was a database.
I have contacted Azure support asking why this difference between Azure SQL Database and Azure OSS Databases and they replied:
In Azure SQL server they offer single database, in Azure OSS Databases we offer servers. This is like this by design.
…well, this phrase is pretty clear, they are offering servers, not databases.
[…] I understand your point of view if you are talking on the case of point-in-time restore and geo-restore. These do not allow you to select the database, so you have to restore all of them to the same point in time.
Well, AWS offers the same but at $8.760 per month!
Regarding the “resurrection” of the server, Azure support told me:
[…] As for you last concerns, the server when stopped needs to restart from 7 to 7 days, because it needs to take backups.
I mean, why would you take a backup of something that is turned off?
The bottom line is that with Azure OSS Databases you cannot take an action on one of the databases without taking the same action to all of the databases stored on the same server.
That’s why if you want to manage an Azure OSS Databases separately you have to buy a separate server for each of them.