Eseguire la migrazione del carico di lavoro MySQL locale o macchina virtuale a Database di Azure per MySQL con l'interfaccia della riga di comando di importazione Database di Azure per MySQL
L'importazione di Database MySQL di Azure per le migrazioni esterne consente di eseguire facilmente la migrazione del carico di lavoro del database MySQL locale o della macchina virtuale (VM) al server flessibile di Database MySQL di Azure. Usa un file di backup fisico fornito dall'utente e ripristina i file di dati fisici del server di origine nel server di destinazione, offrendo un percorso di migrazione semplice e rapido. Dopo l'importazione, è possibile sfruttare i vantaggi di un server flessibile, che include prezzi e prestazioni migliori, un controllo granulare sulla configurazione del database e finestre di manutenzione personalizzate.
In base agli input utente, assume la responsabilità di effettuare il provisioning del server flessibile di destinazione e quindi di ripristinare il backup fisico fornito dall'utente del server di origine archiviato nell'account di archiviazione BLOB di Azure nell'istanza del server flessibile di destinazione.
Questa esercitazione spiega come usare il comando dell'interfaccia della riga di comando di importazione di Database MySQL di Azure per eseguire la migrazione del carico di lavoro del database MySQL locale o dalla macchina virtuale (VM) al server flessibile di Database MySQL di Azure.
Avviare Azure Cloud Shell
Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo. Include strumenti comuni di Azure preinstallati e configurati per l'uso con l'account.
Per aprire Cloud Shell, selezionare Prova nell'angolo superiore destro di un blocco di codice. È anche possibile aprire Cloud Shell in una scheda separata del browser visitando https://shell.azure.com/bash. Selezionare Copia per copiare i blocchi di codice, incollarli in Cloud Shell e premere INVIO per eseguirli.
Se si preferisce installare e usare l'interfaccia della riga di comando in locale, per questa esercitazione è richiesta l'interfaccia della riga di comando di Azure versione 2.54.0 o successiva. Per trovare la versione, eseguire az --version
. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
Attrezzaggio
È necessario accedere all'account usando il comando az sign-in. Prendere nota dell’ID proprietà che fa riferimento all'ID sottoscrizione dell'account Azure.
az login
Selezionare la sottoscrizione specifica nell'account in cui si vuole distribuire il server flessibile di destinazione tramite il comando az account set. Prendere nota del valore dell’ID dell'output di az login da usare come valore per l'argomento subscription nel comando. Per ottenere tutte le sottoscrizioni, usare az account list.
az account set --subscription <subscription id>
Prerequisiti
Il server di origine deve avere i parametri seguenti:
- Lower_case_table_names = 1
- Innodb_file_per_table = ON
- Il nome dello spazio di tabella di sistema deve essere ibdata1.
- Le dimensioni dello spazio di tabella di sistema devono essere maggiori o uguali a 12 MB (impostazione predefinita di MySQL).
- Innodb_page_size = 16348 (MySQL Default)
- È supportato solo il motore INNODB.
Eseguire un backup fisico del carico di lavoro di MySQL tramite Percona XtraBackup. Di seguito sono riportati i passaggi per l'uso di Percona XtraBackup per eseguire un backup completo:
Installare Percona XtraBackup nel carico di lavoro locale o della macchina virtuale. Per la versione 5.7 del motore MySQL, installare Percona XtraBackup versione 2.4; vedere Installazione di Percona XtraBackup 2.4. Per la versione 8.0 del motore MySQL, installare Percona XtraBackup versione 8.0; vedere Installazione di Percona XtraBackup 8.0.
Per istruzioni su come eseguire un backup completo con Percona XtraBackup 2.4, vedere Backup completo. Per istruzioni su come eseguire un backup completo con Percona XtraBackup 8.0, vedere [Backup completo] (https://docs.percona.com/percona-xtrabackup/8.0/create-full-backup.html). Durante l'esecuzione del backup completo, eseguire i comandi seguenti nell'ordine seguente:
- ** xtrabackup --backup --host={host} --user={user} --password={password} --target-dir={backup__dir_path}**
- ** xtrabackup --prepare --{backup_dir_path}** (specificare lo stesso percorso di backup qui come nel comando precedente)
Considerazioni di cui tenere conto durante l'uso di Percona XtraBackup:
- Assicurarsi di eseguire sia il passaggio di backup che quello di preparazione.
- Assicurarsi che non si verifichino errori durante i passaggi di backup e preparazione.
- Conservare i log dei passaggi di backup e preparazione per il supporto tecnico di Azure, che è necessario in caso di errori.
Importante
Il tentativo di accedere a tabelle danneggiate importate da un server di origine può causare l'arresto anomalo di un server flessibile. Di conseguenza, prima di eseguire un backup usando l'utilità Percona XtraBackup, è consigliabile eseguire un'operazione "mysqlcheck/Optimize Table" nel server di origine.
Creare un contenitore BLOB di Azure e ottenere il token di firma di accesso condiviso (SAS) (portale di Azure o l'interfaccia della riga di comando di Azure) per il contenitore. Assicurarsi di concedere le autorizzazioni Aggiungi, Crea e Scrivi nell'elenco a discesa Autorizzazioni. Copiare e incollare i valori dell'URL e del token di firma di accesso condiviso del BLOB in una posizione sicura. Verranno visualizzate una sola volta e non potranno essere recuperate dopo la chiusura della finestra.
Caricare il file di backup completo in {backup_dir_path} nell'archivio BLOB di Azure. Seguire questa procedura per caricare un file.
Per eseguire una migrazione online, acquisire e archiviare la posizione bin-log del file di backup eseguito tramite Percona XtraBackup eseguendo il comando cat xtrabackup_info e copiando l'output della posizione di bin_log.
L'account di archiviazione di Azure deve essere accessibile pubblicamente tramite il token di firma di accesso condiviso. L'account di archiviazione di Azure con una configurazione di rete virtuale non è supportato.
Limiti
- La configurazione del server di origine non viene inclusa nella migrazione. È necessario configurare il server flessibile di destinazione in modo appropriato.
- La migrazione dei backup crittografati non è supportata.
- Gli utenti e i privilegi non vengono migrati nell’ambito dell'importazione di Database MySQL di Azure. È necessario eseguire un dump manuale di utenti e privilegi prima di avviare l'importazione di Database MySQL di Azure per eseguire la migrazione degli account di accesso dopo l'operazione di importazione ripristinandoli nel server flessibile di destinazione.
- user1@localhost non può essere incluso nella migrazione perché la creazione di utenti localhost nel server flessibile non è supportata.
- I server flessibili abilitati per la disponibilità elevata vengono restituiti come server con disponibilità elevata disabilitati per aumentare la velocità dell'operazione di migrazione dopo la migrazione dell'importazione. Abilitare la disponibilità elevata per il server flessibile di destinazione dopo la migrazione.
Suggerimenti per un'esperienza di migrazione ottimale
- È consigliabile mantenere l'account di archiviazione BLOB di Azure e il server flessibile di destinazione da distribuire nella stessa area per migliorare le prestazioni dell’importazione.
- Configurazione SKU consigliata per il server flessibile di Database MySQL di Azure di destinazione:
- L'impostazione di uno SKU con possibilità di burst per la destinazione non è consigliata per ottimizzare il tempo di migrazione quando si esegue l’importazione di Database MySQL di Azure. È consigliabile passare a Utilizzo generico/Business Critical per la durata dell'operazione di importazione, che è quindi possibile ridurre fino allo SKU con possibilità di burst per l’operazione successiva all’importazione.
Attivare un'operazione di importazione di Database MySQL di Azure per eseguire la migrazione dal server flessibile di Database MySQL di Azure
Attivare un'operazione di importazione di Database MySQL di Azure con il comando az mysql flexible-server import create
. Il comando seguente crea un server flessibile di destinazione ed esegue l'importazione a livello di istanza dal file di backup alla destinazione usando il contesto locale dell'interfaccia della riga di comando di Azure:
az mysql flexible-server import create --data-source-type
--data-source
--data-source-sas-token
--resource-group
--name
--sku-name
--tier
--version
--location
[--data-source-backup-dir]
[--storage-size]
[--mode]
[--admin-password]
[--admin-user]
[--auto-scale-iops {Disabled, Enabled}]
[--backup-identity]
[--backup-key]
[--backup-retention]
[--database-name]
[--geo-redundant-backup {Disabled, Enabled}]
[--high-availability {Disabled, SameZone, ZoneRedundant}]
[--identity]
[--iops]
[--key]
[--private-dns-zone]
[--public-access]
[--resource-group]
[--standby-zone]
[--storage-auto-grow {Disabled, Enabled}]
[--subnet]
[--subnet-prefixes]
[--tags]
[--vnet]
[--zone]
The following example takes in the data source information for your source MySQL server's backup file and target Flexible Server information, creates a target Flexible Server named `test-flexible-server` in the `westus` location and performs an import from backup file to target.
azurecli-interactive
az mysql flexible-server import create --data-source-type "azure_blob" --data-source "https://onprembackup.blob.core.windows.net/onprembackup" --data-source-backup-dir "mysql_backup_percona" –-data-source-token "{sas-token}" --resource-group "test-rg" --name "test-flexible-server" –-sku-name Standard_D2ds_v4 --tier GeneralPurpose –-version 5.7 -–location "westus"
Ecco i dettagli per gli argomenti indicati in precedenza:
Eseguire la migrazione a un server flessibile con tempi di inattività minimi
Per eseguire una migrazione online dopo aver completato il seeding iniziale dal file di backup tramite l'importazione di Database MySQL di Azure, è possibile configurare la replica dei dati tra l'origine e la destinazione seguendo questa procedura. È possibile usare la posizione bin-log acquisita durante la creazione del file di backup usando Percona XtraBackup per configurare la replica basata sulla posizione log bin.
Quanto tempo impiega l'importazione di Database MySQL di Azure per eseguire la migrazione dell'istanza di MySQL?
Prestazioni con benchmark in base alle dimensioni dello spazio di archiviazione.
Dimensioni di archiviazione del file di backup | Durata dell’importazione |
---|---|
1 GiB | 0 min 23 sec |
10 GiB | 4 min e 24 sec |
100 GiB | 10 min 29 sec |
500 GiB | 13 min 15 sec |
1 TB | 22 min e 56 sec |
10 TB | 2 ore 5 min 30 sec |
Con l'aumentare delle dimensioni dell’archivio, aumenta anche il tempo necessario per copiare i dati, quasi in una relazione lineare. Tuttavia, è importante notare che le fluttuazioni di rete possono influire significativamente sulla velocità di copia. Pertanto, i dati vengono forniti qui solo a titolo di riferimento.