AWS RDS MySQL migration to Azure Database for MySQL

%3CLINGO-SUB%20id%3D%22lingo-sub-766861%22%20slang%3D%22en-US%22%3EAWS%20RDS%20MySQL%20migration%20to%20Azure%20Database%20for%20MySQL%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-766861%22%20slang%3D%22en-US%22%3E%3CP%3EHi%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EThe%20current%20setup%20of%20MySQL%20on%20AWS%20uses%20the%20following%20features%2Fservices%2C%20what%20are%20the%20possible%20ways%20to%20address%20the%20following%20requirements%20without%20third-party%20tools%2Fservices%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3COL%3E%3CLI%3E%3CSPAN%3EA%20way%20to%20execute%20backup%20and%20restore%20%3CSPAN%3Eprocess%2C%20%3C%2FSPAN%3Ethe%20relevant%20backups%20in%20Azure%20Database%20(SaaS)%20via%20automated%26nbsp%3Brestoration%20script.%3C%2FSPAN%3E%3C%2FLI%3E%3CLI%3E%3CSPAN%3EA%20copy%20of%20the%20online%20database%20backup%20to%20be%20exported%20for%20on-premise%20restoration.%3C%2FSPAN%3E%3C%2FLI%3E%3CLI%3E%3CSPAN%3EThe%20database%20connectivity%20be%20able%20to%20Allow%2FBlock%20port%20and%20IP.%3C%2FSPAN%3E%3C%2FLI%3E%3C%2FOL%3E%3CP%3E%3CSPAN%3EThank%20you.%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-772653%22%20slang%3D%22en-US%22%3ERe%3A%20AWS%20RDS%20MySQL%20migration%20to%20Azure%20Database%20for%20MySQL%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-772653%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F44002%22%20target%3D%22_blank%22%3E%40Trevine%20Cooray%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EAzure%20DB%20for%20MySQL%20service%20performs%20automatic%20backups%20and%20allows%20point%20in%20time%20restore.%20There%20is%20no%20option%20for%20end%20user%20to%20trigger%20automatic%20backups%20but%20you%20can%20trigger%20a%20restore%20to%20a%20new%20server%20at%20any%20time%20to%20restore%20a%20backup%20as%20of%20specified%20time.%20You%20can%20do%20this%20through%20ARM%20templates%20or%20REST%20APIs.%20If%20you%20want%2C%20you%20can%20also%20take%20mysqldump%20and%20perform%20mysql%20restore%20using%20bash%20script%20when%20you%20want.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E2.%20To%20perform%20on-premise%20restoration%2C%20mysqldump%2Frestore%20is%20again%20your%20best%20option.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E3.%26nbsp%3B%20To%20whitelist%20IP%20addresses%20in%20server%20firewall%20to%20connect%20to%20server%2C%20you%20can%20refer%20following%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fmysql%2Fconcepts-firewall-rules%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fmysql%2Fconcepts-firewall-rules%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-830895%22%20slang%3D%22en-US%22%3ERe%3A%20AWS%20RDS%20MySQL%20migration%20to%20Azure%20Database%20for%20MySQL%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-830895%22%20slang%3D%22en-US%22%3E%3CUL%3E%0A%3CLI%3E%3CP%3EEnsure%20that%20the%20source%20MySQL%20server%20is%20running%20a%20supported%20MySQL%20community%20edition.%20To%20determine%20the%20version%20of%20your%20MySQL%20instance%2C%20in%20the%20mysql%20utility%20or%20MySQL%20Workbench%2C%20run%20the%3C%2FP%3E%0A%3CP%3EFor%20more%20information%2C%20see%20the%20article%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fmysql%2Fconcepts-supported-versions%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3ESupported%20Azure%20Database%20for%20MySQL%20versions%3C%2FA%3E.%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%3E%3CP%3EDownload%20and%20install%20the%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fdev.mysql.com%2Fdoc%2Femployee%2Fen%2Femployees-installation.html%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3EMySQL%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CSTRONG%3EEmployees%3C%2FSTRONG%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Esample%20database%3C%2FA%3E.%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%3E%3CP%3ECreate%20an%20instance%20of%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fmysql%2Fquickstart-create-mysql-server-database-using-azure-portal%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EAzure%20Database%20for%20MySQL%3C%2FA%3E.%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%3E%3CP%3ECreate%20an%20Azure%20Virtual%20Network%20(VNet)%20for%20Azure%20Database%20Migration%20Service%20by%20using%20the%20Azure%20Resource%20Manager%20deployment%20model%2C%20which%20provides%20site-to-site%20connectivity%20to%20your%20on-premises%20source%20servers%20by%20using%20either%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fexpressroute%2Fexpressroute-introduction%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EExpressRoute%3C%2FA%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Eor%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fvpn-gateway%2Fvpn-gateway-about-vpngateways%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EVPN%3C%2FA%3E.%20For%20more%20information%20about%20creating%20a%20VNet%2C%20see%20the%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fvirtual-network%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EVirtual%20Network%20Documentation%3C%2FA%3E%2C%20and%20especially%20the%20quickstart%20articles%20with%20step-by-step%20details.%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%3E%3CP%3EEnsure%20that%20your%20VNet%20Network%20Security%20Group%20rules%20don't%20block%20the%20following%20inbound%20communication%20ports%20to%20Azure%20Database%20Migration%20Service%3A%20443%2C%2053%2C%209354%2C%20445%2C%20and%2012000.%20For%20more%20detail%20on%20Azure%20VNet%20NSG%20traffic%20filtering%2C%20see%20the%20article%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fvirtual-network%2Fvirtual-networks-nsg%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EFilter%20network%20traffic%20with%20network%20security%20groups%3C%2FA%3E.%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%3E%3CP%3EConfigure%20your%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fsql%2Fdatabase-engine%2Fconfigure-windows%2Fconfigure-a-windows-firewall-for-database-engine-access%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EWindows%20Firewall%3C%2FA%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E(or%20your%20Linux%20firewall)%20to%20allow%20for%20database%20engine%20access.%20For%20MySQL%20server%2C%20allow%20port%203306%20for%20connectivity.%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%3E%3CP%3EOpen%20your%20Windows%20firewall%20to%20allow%20Azure%20Database%20Migration%20Service%20to%20access%20the%20source%20MySQL%20server%20(the%20default%20TCP%20port%20is%203306).%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%3E%3CP%3EWhen%20using%20a%20firewall%20appliance%20in%20front%20of%20your%20source%20database(s)%2C%20you%20may%20need%20to%20add%20firewall%20rules%20to%20allow%20the%20Azure%20Database%20Migration%20Service%20to%20access%20the%20source%20database(s)%20for%20migration.%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%3E%3CP%3ECreate%20a%20server-level%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsql-database%2Fsql-database-firewall-configure%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Efirewall%20rule%3C%2FA%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Efor%20the%20Azure%20Database%20for%20MySQL%20server%20to%20allow%20Azure%20Database%20Migration%20Service%20access%20to%20the%20target%20databases.%20Provide%20the%20subnet%20range%20of%20the%20VNet%20used%20for%20Azure%20Database%20Migration%20Service.%26nbsp%3B%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%3C%2FLINGO-BODY%3E
Regular Visitor

Hi,

 

The current setup of MySQL on AWS uses the following features/services, what are the possible ways to address the following requirements without third-party tools/services;

 

  1. A way to execute backup and restore process, the relevant backups in Azure Database (SaaS) via automated restoration script.
  2. A copy of the online database backup to be exported for on-premise restoration.
  3. The database connectivity be able to Allow/Block port and IP.

Thank you.

2 Replies

@Trevine Cooray 

 

Azure DB for MySQL service performs automatic backups and allows point in time restore. There is no option for end user to trigger automatic backups but you can trigger a restore to a new server at any time to restore a backup as of specified time. You can do this through ARM templates or REST APIs. If you want, you can also take mysqldump and perform mysql restore using bash script when you want.

 

2. To perform on-premise restoration, mysqldump/restore is again your best option.

 

3.  To whitelist IP addresses in server firewall to connect to server, you can refer following

https://docs.microsoft.com/en-us/azure/mysql/concepts-firewall-rules

 

 

  • Ensure that the source MySQL server is running a supported MySQL community edition. To determine the version of your MySQL instance, in the mysql utility or MySQL Workbench, run the

    For more information, see the article Supported Azure Database for MySQL versions.

  • Download and install the MySQL Employees sample database.

  • Create an instance of Azure Database for MySQL.

  • Create an Azure Virtual Network (VNet) for Azure Database Migration Service by using the Azure Resource Manager deployment model, which provides site-to-site connectivity to your on-premises source servers by using either ExpressRoute or VPN. For more information about creating a VNet, see the Virtual Network Documentation, and especially the quickstart articles with step-by-step details.

  • Ensure that your VNet Network Security Group rules don't block the following inbound communication ports to Azure Database Migration Service: 443, 53, 9354, 445, and 12000. For more detail on Azure VNet NSG traffic filtering, see the article Filter network traffic with network security groups.

  • Configure your Windows Firewall (or your Linux firewall) to allow for database engine access. For MySQL server, allow port 3306 for connectivity.

  • Open your Windows firewall to allow Azure Database Migration Service to access the source MySQL server (the default TCP port is 3306).

  • When using a firewall appliance in front of your source database(s), you may need to add firewall rules to allow the Azure Database Migration Service to access the source database(s) for migration.

  • Create a server-level firewall rule for the Azure Database for MySQL server to allow Azure Database Migration Service access to the target databases. Provide the subnet range of the VNet used for Azure Database Migration Service.