Migrare i database MySQL in AzureMigrate MySQL databases to Azure

Questo articolo illustra come la società fittizia Contoso ha pianificato ed eseguito la migrazione della piattaforma di database open source MySQL locale in Azure.This article demonstrates how the fictional company Contoso planned and migrated its on-premises MySQL open-source database platform to Azure.

Driver di businessBusiness drivers

Il team di leadership IT ha collaborato con i partner aziendali per capire cosa vogliono ottenere con questa migrazione.The IT leadership team has worked closely with business partners to understand what they want to achieve with this migration. Desidera:They want to:

  • Aumentare la disponibilità.Increase availability. Contoso ha riscontrato problemi di disponibilità con l'ambiente MySQL locale.Contoso has had availability issues with its MySQL on-premises environment. Per l'azienda è necessario che le applicazioni che utilizzano questo archivio dati siano più affidabili.The business requires the applications that use this data store to be more reliable.
  • Aumentare l'efficienza.Increase efficiency. Contoso deve rimuovere le procedure non necessarie e semplificare i processi per sviluppatori e utenti.Contoso needs to remove unnecessary procedures and streamline processes for developers and users. L'azienda deve essere veloce e non sprecare tempo o denaro per offrire più rapidamente i requisiti dei clienti.The business needs IT to be fast and not waste time or money to deliver faster on customer requirements.
  • Aumenta l'agilità.Increase agility. il settore IT di Contoso deve essere più reattivo alle esigenze dell'azienda.Contoso IT needs to be more responsive to the needs of the business. L'IT deve rispondere più rapidamente rispetto alle modifiche nel Marketplace per consentire un successo in un'economia globale.It must react faster than the changes in the marketplace to enable success in a global economy. Non deve diventare un blocco aziendale.It mustn't become a business blocker.
  • Scala.Scale. Man mano che l'azienda cresce correttamente, Contoso deve fornire sistemi che crescano allo stesso ritmo.As the business grows successfully, Contoso IT must provide systems that grow at the same pace.

Obiettivi della migrazioneMigration goals

Il team di cloud di Contoso ha fissato alcuni obiettivi per la migrazione.The Contoso cloud team has pinned down goals for this migration. Questi obiettivi consentono di determinare il metodo di migrazione ideale.These goals were used to determine the best migration method.

RequisitiRequirements DettagliDetails
DisponibilitàAvailability Attualmente il personale interno è in difficoltà con l'ambiente host per l'istanza di MySQL.Currently internal staff are having a hard time with the hosting environment for the MySQL instance. Contoso vuole avere una disponibilità di circa il 99,99% per il livello di database.Contoso wants to have close to 99.99 percent availability for the database layer.
ScalabilitàScalability L'host del database locale sta esaurendo rapidamente la capacità.The on-premises database host is quickly running out of capacity. Contoso necessita di un modo per ridimensionare le istanze oltre le limitazioni correnti oppure ridurle se l'ambiente aziendale cambia per risparmiare sui costi.Contoso needs a way to scale its instances past current limitations or scale down if the business environment changes to save on costs.
PrestazioniPerformance Il reparto risorse umane Contoso (HR) esegue vari report ogni giorno, ogni settimana e ogni mese.The Contoso human resources (HR) department runs various reports daily, weekly, and monthly. Quando esegue questi report, si verificano notevoli problemi di prestazioni con l'applicazione per i dipendenti.When it runs these reports, it experiences significant performance issues with the employee-facing application. Deve eseguire i report senza influire sulle prestazioni dell'applicazione.It needs to run the reports without affecting application performance.
SicurezzaSecurity Contoso deve tenere presente che il database è accessibile solo alle applicazioni interne e non è visibile né accessibile tramite Internet.Contoso needs to know that the database is accessible only to its internal applications and isn't visible or accessible via the internet.
MonitoraggioMonitoring Contoso usa attualmente gli strumenti per monitorare le metriche del server di database MySQL e fornisce notifiche in caso di problemi di CPU, memoria o archiviazione.Contoso currently uses tools to monitor the metrics of the MySQL database server and provide notifications when CPU, memory, or storage have issues. La società vuole avere questa stessa funzionalità in Azure.The company wants to have this same capability in Azure.
Continuità aziendaleBusiness continuity L'archivio dati HR è una parte importante delle operazioni giornaliere di contoso.The HR data store is an important part of Contoso's daily operations. Se è stato danneggiato o è necessario ripristinarlo, la società vuole ridurre al minimo il tempo di inattività possibile.If it became corrupted or needed to be restored, the company wants to minimize downtime as much as possible.
AzureAzure Contoso desidera spostare l'applicazione in Azure senza eseguirla nelle macchine virtuali.Contoso wants to move the application to Azure without running it on VMs. Contoso vuole usare i servizi della piattaforma distribuita come servizio (PaaS) di Azure per il livello dati.Contoso wants to use Azure platform as a service (PaaS) services for the data tier.

Progettazione della soluzioneSolution design

Dopo l'aggiunta di obiettivi e requisiti, contoso progetta e esamina una soluzione di distribuzione e identifica il processo di migrazione.After pinning down goals and requirements, Contoso designs and reviews a deployment solution and identifies the migration process. Vengono inoltre identificati gli strumenti e i servizi che verranno utilizzati per la migrazione.The tools and services that it will use for migration are also identified.

Applicazione correnteCurrent application

Il database MySQL archivia i dati dei dipendenti usati per tutti gli aspetti del reparto HR della società.The MySQL database stores employee data that's used for all aspects of the company's HR department. Un'applicazione basata su Lamp viene usata come front-end per gestire le richieste HR dei dipendenti.A LAMP-based application is used as the front end to handle employee HR requests. Contoso ha 100.000 dipendenti in tutto il mondo, quindi il tempo di ingrandimento è importante.Contoso has 100,000 employees worldwide, so uptime is important.

Soluzione propostaProposed solution

Usare il servizio migrazione del database di Azure per eseguire la migrazione del database a un'istanza di database di Azure per MySQL.Use Azure Database Migration Service to migrate the database to an Azure Database for MySQL instance. Modificare tutte le applicazioni e i processi per usare la nuova istanza di database di Azure per MySQL.Modify all applications and processes to use the new Azure Database for MySQL instance.

Considerazioni sul databaseDatabase considerations

Come parte del processo di progettazione della soluzione, Contoso ha esaminato le funzionalità di Azure per l'hosting dei dati MySQL.As part of the solution design process, Contoso reviewed the features in Azure for hosting its MySQL data. Le considerazioni seguenti hanno permesso all'azienda di decidere di usare Azure:The following considerations helped the company decide to use Azure:

  • Analogamente al database SQL di Azure, database di Azure per MySQL consente le regole del firewall.Similar to Azure SQL Database, Azure Database for MySQL allows for firewall rules.
  • È possibile usare database di Azure per MySQL con rete virtuale di Azure per impedire che l'istanza sia accessibile pubblicamente.Azure Database for MySQL can be used with Azure Virtual Network to prevent the instance from being publicly accessible.
  • Database di Azure per MySQL presenta le certificazioni di conformità e privacy richieste che Contoso deve soddisfare per i suoi revisori.Azure Database for MySQL has the required compliance and privacy certifications that Contoso must meet for its auditors.
  • Le prestazioni di elaborazione di report e applicazioni verranno migliorate tramite le repliche di lettura.Report and application processing performance will be enhanced by using read replicas.
  • Possibilità di esporre il servizio solo al traffico di rete interno (nessun accesso pubblico) tramite il collegamento privato di Azure.Ability to expose the service to internal network traffic only (no public access) by using Azure Private Link.
  • Contoso ha scelto di non passare al database di Azure per MySQL perché sta cercando potenzialmente di usare il modello di database columnstore MariaDB e Graph DBMS in futuro.Contoso chose not to move to Azure Database for MySQL because it's looking at potentially using the MariaDB ColumnStore and Graph DBMS database model in the future.
  • A parte le funzionalità di MySQL, Contoso è uno dei fautori di veri progetti open source e sceglie di non usare MySQL.Aside from MySQL features, Contoso is a proponent of true open-source projects and chose not to use MySQL.
  • La larghezza di banda e la latenza dell'applicazione al database saranno sufficienti in base al gateway scelto (Azure EXPRESSROUTE o VPN da sito a sito).The bandwidth and latency from the application to the database will be sufficient enough based on the chosen gateway (either Azure ExpressRoute or site-to-site VPN).

Revisione della soluzioneSolution review

Contoso valuta la progettazione proposta elaborando un elenco di vantaggi e svantaggi.Contoso evaluates the proposed design by putting together a pros and cons list.

ConsiderazioniConsideration DettagliDetails
VantaggiPros Database di Azure per MySQL offre un contratto di servizio con supporto finanziario del 99,99% per la disponibilità elevata.Azure Database for MySQL offers a 99.99 percent financially backed service-level agreement (SLA) for high availability.

Azure offre la possibilità di aumentare o ridurre le prestazioni durante i periodi di picco del carico ogni trimestre.Azure offers the ability to scale up or down during peak load times each quarter. Contoso può risparmiare ancora di più acquistando la capacità riservata.Contoso can save even more by purchasing reserved capacity.

Azure fornisce funzionalità per il ripristino temporizzato e il ripristino geografico per database di Azure per MySQL.Azure provides point-in-time restore and geo-restore capabilities for Azure Database for MySQL.

SvantaggiCons Contoso è limitato alle versioni di rilascio di MySQL supportate in Azure, attualmente 10,2 e 10,3.Contoso is limited to the MySQL release versions that are supported in Azure, which are currently 10.2 and 10.3.

Il database di Azure per MySQL presenta alcune limitazioni, ad esempio il ridimensionamento dell'archiviazione.Azure Database for MySQL has some limitations, such as scaling down storage.

Architettura propostaProposed architecture

Il diagramma mostra l'architettura dello scenario. Figura 1: architettura dello scenario.Diagram shows the scenario architecture. Figure 1: Scenario architecture.

Processo di migrazioneMigration process

PreparazionePreparation

Prima di poter eseguire la migrazione dei database MySQL, è necessario assicurarsi che tali istanze soddisfino tutti i prerequisiti di Azure per una migrazione corretta.Before you can migrate your MySQL databases, you need to ensure that those instances meet all the Azure prerequisites for a successful migration.

Versioni supportateSupported versions

MySQL usa lo schema di controllo delle versioni X. Y. Z.MySQL uses the X.Y.Z versioning scheme. Ad esempio, X è la versione principale, Y è la versione secondaria e Z è la versione della patch.For example, X is the major version, Y is the minor version, and Z is the patch version.

Azure attualmente supporta 10.2.25 e 10.3.16.Azure currently supports 10.2.25 and 10.3.16.

Azure gestisce automaticamente gli aggiornamenti per gli aggiornamenti delle patch.Azure automatically manages upgrades for patch updates. Gli esempi sono 10.2.21 in 10.2.23.Examples are 10.2.21 to 10.2.23. Gli aggiornamenti della versione secondaria e principale non sono supportati.Minor and major version upgrades aren't supported. Ad esempio, l'aggiornamento da MySQL 10,2 a MySQL 10,3 non è supportato.For example, upgrading from MySQL 10.2 to MySQL 10.3 isn't supported. Se si desidera eseguire l'aggiornamento da 10,2 a 10,3, eseguire un dump e ripristinarlo in un server creato con la nuova versione del motore.If you want to upgrade from 10.2 to 10.3, take a dump and restore it to a server created with the new engine version.

ReteNetwork

Contoso deve configurare una connessione del gateway di rete virtuale dall'ambiente locale alla rete virtuale in cui si trova il database MySQL.Contoso needs to set up a virtual network gateway connection from its on-premises environment to the virtual network where its MySQL database is located. Questa connessione consente all'applicazione locale di accedere al database tramite il gateway quando vengono aggiornate le stringhe di connessione.This connection allows the on-premises application to access the database over the gateway when the connection strings are updated.

Il diagramma mostra il processo di migrazione. Figura 2: processo di migrazione.Diagram shows the migration process. Figure 2: The migration process.

MigrazioneMigration

Gli amministratori di Contoso migrano il database usando il servizio migrazione del database di Azure e seguendo l' esercitazione dettagliata sulla migrazione.Contoso admins migrate the database by using Azure Database Migration Service and following the step-by-step migration tutorial. Possono eseguire migrazioni online, offline e ibride (anteprima) usando MySQL 5,6 o 5,7.They can perform online, offline, and hybrid (preview) migrations by using MySQL 5.6 or 5.7.

Nota

MySQL 8,0 è supportato nel database di Azure per MySQL.MySQL 8.0 is supported in Azure Database for MySQL. Lo strumento del servizio migrazione del database non supporta ancora tale versione.The Database Migration Service tool doesn't yet support that version.

Come riepilogo, è necessario eseguire le attività seguenti:As a summary, they must do the following tasks:

  • Verificare che siano soddisfatti tutti i prerequisiti di migrazione:Ensure all migration prerequisites are met:

    • L'origine del server di database MySQL deve corrispondere alla versione supportata da database di Azure per MySQL.The MySQL database server source must match the version that Azure Database for MySQL supports. Database di Azure per MySQL supporta MySQL Community Edition, il motore di archiviazione InnoDB e la migrazione tra l'origine e la destinazione con le stesse versioni.Azure Database for MySQL supports MySQL Community Edition, the InnoDB storage engine, and migration across source and target with the same versions.
    • Abilitare la registrazione binaria in my.ini (Windows) o my.cnf (Unix).Enable binary logging in my.ini (Windows) or my.cnf (Unix). La mancata abilitazione della registrazione binaria causa l'errore seguente nella migrazione guidata: "errore nella registrazione binaria.Failure to enable binary logging causes the following error in the Migration wizard: "Error in binary logging. Il valore della variabile binlog_row_image è' minimal .'Variable binlog_row_image has value 'minimal.' Modificarlo in "full". Per ulteriori informazioni, vedere il sito web MySQL.Please change it to 'full'." For more information, see this MySQL website.
    • L'utente deve disporre del ReplicationAdmin ruolo.User must have the ReplicationAdmin role.
    • Eseguire la migrazione degli schemi di database senza chiavi esterne e trigger.Migrate the database schemas without foreign keys and triggers.
  • Creare una rete virtuale che si connette tramite ExpressRoute o una VPN alla rete locale.Create a virtual network that connects via ExpressRoute or a VPN to your on-premises network.

  • Creare un'istanza del servizio migrazione del database di Azure con uno Premium SKU connesso alla rete virtuale.Create an Azure Database Migration Service instance with a Premium SKU that's connected to the virtual network.

  • Verificare che l'istanza possa accedere al database MySQL tramite la rete virtuale.Ensure that the instance can access the MySQL database via the virtual network. Assicurarsi che tutte le porte in ingresso siano consentite da Azure a MySQL a livello di rete virtuale, VPN di rete e computer che ospita MySQL.Make sure that all incoming ports are allowed from Azure to MySQL at the virtual network level, the network VPN, and the machine that hosts MySQL.

  • Creare un nuovo progetto di servizio migrazione del database:Create a new Database Migration Service project:

    Screenshot mostra come creare un nuovo progetto di servizio migrazione del database Figura 3: un progetto di servizio migrazione del database di Azure.Screenshot shows how to create a new Database Migration Service project Figure 3: An Azure Database Migration Service project.

Migrazione tramite strumenti nativiMigration by using native tools

In alternativa all'uso del servizio migrazione del database di Azure, Contoso può usare utilità e strumenti comuni, ad esempio MySQL Workbench, mysqldump, Toad o Navicat per connettersi ed eseguire la migrazione dei dati al database di Azure per MySQL.As an alternative to using Azure Database Migration Service, Contoso can use common utilities and tools such as MySQL Workbench, mysqldump, Toad, or Navicat to connect to and migrate data to Azure Database for MySQL.

  • Dump e ripristino con mysqldump:Dump and restore with mysqldump:
    • Usare l'opzione exclude-Triggers in mysqldump per impedire l'esecuzione di trigger durante l'importazione e migliorare le prestazioni.Use the exclude-triggers option in mysqldump to prevent triggers from executing during import and improve performance.
    • Utilizzare l'opzione singola transazione per impostare la modalità di isolamento della traduzione su REPEATABLE READ e inviare un' START TRANSACTION istruzione SQL prima di eseguire il dump dei dati.Use the single-transaction option to set the translation isolation mode to REPEATABLE READ, and send a START TRANSACTION SQL statement before you dump data.
    • Usare l'opzione Disable-Keys in mysqldump per disabilitare i vincoli di chiave esterna prima del caricamento.Use the disable-keys option in mysqldump to disable foreign key constraints before load. La rimozione di vincoli garantisce un miglioramento delle prestazioni.Removing constraints provides performance gains.
    • Usare l'archiviazione BLOB di Azure per archiviare i file di backup ed eseguire il ripristino da questa posizione per un ripristino più rapido.Use Azure Blob storage to store the backup files and perform the restore from there for faster restore.
    • Aggiornare le stringhe di connessione dell'applicazione.Update application connection strings.
    • Dopo la migrazione del database, Contoso deve aggiornare le stringhe di connessione in modo che puntino al nuovo database di Azure per MySQL.After the database is migrated, Contoso must update the connection strings to point to the new Azure Database for MySQL.

Eseguire la pulizia dopo la migrazioneClean up after migration

Dopo la migrazione, Contoso deve eseguire il backup del database locale per finalità di conservazione e ritirare il server di database MySQL locale.After migration, Contoso needs to back up the on-premises database for retention purposes and retire the on-premises MySQL database server.

Esaminare la distribuzioneReview the deployment

Al termine della migrazione delle risorse in Azure, Contoso deve rendere pienamente operativa la nuova infrastruttura e proteggerla.With the migrated resources in Azure, Contoso needs to fully operationalize and secure its new infrastructure.

SicurezzaSecurity

Contoso deve:Contoso needs to:

  • Assicurarsi che la nuova istanza e i database di database di Azure per MySQL siano protetti.Ensure that its new Azure Database for MySQL instance and databases are secure. Per altre informazioni, vedere sicurezza in database di Azure per MySQL.For more information, see Security in Azure Database for MySQL.
  • Esaminare le configurazioni del firewall e della rete virtuale.Review the firewall and virtual network configurations.
  • Configurare il collegamento privato in modo che tutto il traffico del database venga mantenuto in Azure e nella rete locale.Set up Private Link so that all database traffic is kept inside Azure and the on-premises network.
  • Abilitare Azure Advanced Threat Protection.Enable Azure Advanced Threat Protection.

BackupBackups

Assicurarsi che venga eseguito il backup delle istanze di database di Azure per MySQL usando il ripristino geografico.Ensure that the Azure Databases for MySQL instances are backed up by using geo-restore. In questo modo, i backup possono essere usati in un'area abbinata se si verifica un'interruzione a livello di area.In this way, backups can be used in a paired region if a regional outage occurs.

Importante

Assicurarsi che la risorsa database di Azure per MySQL disponga di un blocco di risorsa per impedirne l'eliminazione.Ensure that the Azure Database for MySQL resource has a resource lock to prevent it from being deleted. Non è possibile ripristinare i server eliminati.Deleted servers can't be restored.

Licenze e ottimizzazione dei costiLicensing and cost optimization

  • È possibile aumentare o ridurre il database di Azure per MySQL.Azure Database for MySQL can be scaled up or down. Il monitoraggio delle prestazioni del server e dei database è importante per garantire che vengano soddisfatti i requisiti, riducendo al contempo i costi.Monitoring the performance of the server and databases is important to ensure your requirements are met while minimizing costs.
  • Sia la CPU che l'archiviazione hanno costi associati.Both CPU and storage have costs associated. Sono disponibili diversi piani tariffari.Several pricing tiers are available. Assicurarsi che sia selezionato il piano tariffario appropriato per ogni carico di lavoro dei dati.Be sure the appropriate pricing plan is selected for each data workload.
  • Ogni replica di lettura viene fatturata in base alle risorse di calcolo e di archiviazione selezionate.Each read replica is billed based on the compute and storage selected.
  • Usare la capacità riservata per risparmiare sui costi.Use reserved capacity to save on costs.

ConclusioniConclusion

In questo articolo Contoso ha migrato i database MySQL in un'istanza di database di Azure per MySQL.In this article, Contoso migrated its MySQL databases to an Azure Database for MySQL instance.