Hi Marc Hedgley,
Thanks for reaching out to Microsoft Q&A.
Given that azure database for mariadb is set to retire in 2025, you're right to consider alternatives like azure database for mysql. Mysql and mariadb share a common ancestry, making azure database for mysql a strong candidate for hosting your mariadb database, with some caveats to consider regarding compatibility and performance.
Recommended hosting options on azure:
- Azure database for mysql:
compatibility: mariadb and mysql are largely compatible, but there are some differences in specific features and optimizations. Ensure that your application doesn't rely on mariadb-specific features that are not supported by mysql.
Performance: azure database for mysql offers flexible scaling options, high availability, and built-in security features, which would be beneficial for a production workload.
Maintenance: fully managed service, meaning less overhead for database administration tasks such as backups and patching.
- Azure virtual machines (VM) hosting mariadb:
if you require full control over the mariadb version or need specific features not available in mysql, deploying mariadb on an azure vm could be an option. This, however, would require managing your own backups, updates, and high-availability setups.
This approach is more complex than a fully managed service but may give you the flexibility to customize the database environment.
- Azure kubernetes service (aks) with mariadb:
if you're already using containerized workloads, deploying mariadb in aks could be an option. This would allow for scalability, high availability, and integration with other containerized services. However, this approach involves more operational complexity.
Migration methods:
- Azure database migration service (DMS):
DMS supports migrations from mariadb to mysql and provides an easy way to migrate databases while minimizing downtime. It supports both online and offline migrations, which can help depending on your business needs for uptime.
- Manual migration using dump and restore:
Use mysqldump (or mariadb-dump) to export the data and import it into azure database for mysql. This method is simple but may involve longer downtime compared to other methods.
- Replication-based migration:
Set up replication from your aws-hosted mariadb to an azure database for mysql or vm-hosted mariadb instance. This minimizes downtime and ensures that the data is synchronized until you're ready to cut over to azure.
- Using third-party tools:
Tools like Percona Xtrabackup or Galera cluster can facilitate replication and data migration between mariadb and mysql.
Key considerations:
Test compatibility: Before committing to azure database for mysql, ensure your application is compatible with the features and performance of mysql. Run tests to catch any incompatibilities or performance bottlenecks.
Downtime planning: Choose a migration strategy that meets your organization's downtime tolerance. Online migrations with minimal downtime can be achieved through dms or replication-based methods.
Security: Leverage azure’s built-in security features, such as vnet integration, private endpoints, and managed identities, to secure your database post-migration.
Please 'Upvote'(Thumbs-up) and 'Accept' as an answer if the reply was helpful. This will benefit other community members who face the same issue.