Share via


Eseguire la migrazione del carico di lavoro MySQL locale o macchina virtuale (VM) a Database di Azure per MySQL - Server flessibile tramite l'interfaccia della riga di comando di importazione Database di Azure per MySQL (anteprima pubblica)

Database di Azure per MySQL l'importazione per le migrazioni esterne (anteprima pubblica) consente di eseguire facilmente la migrazione del carico di lavoro MySQL locale o macchina virtuale (VM) a Database di Azure per MySQL - Server flessibile. 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 del server flessibile, tra cui prezzi e prestazioni migliori, 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 illustra come usare il comando dell'interfaccia della riga di comando di importazione Database di Azure per MySQL per eseguire la migrazione del carico di lavoro MySQL locale o macchina virtuale (VM) per Database di Azure per MySQL - Server flessibile.

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, questa esercitazione richiede l'interfaccia della riga di comando di Azure versione 2.54.0 o successiva. Eseguire az --version per trovare la versione. 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 della proprietà id, 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 usando il comando az account set . Si noti il valore id dell'output az login da usare come valore per l'argomento della sottoscrizione 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 tabella di sistema devono essere maggiori o uguali a 12 MB. (Impostazione predefinita di MySQL)
    • Innodb_page_size = 16348 (impostazione predefinita di MySQL)
    • È supportato solo il motore INNODB.
  • Eseguire un backup fisico del carico di lavoro MySQL usando 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 vm. Per la versione 5.7 del motore MySQL, installare Percona XtraBackup versione 2.4, vedere Installazione di Percona XtraBackup 2.4. Per la versione del motore MySQL v8.0, 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 durante l'esecuzione di Percona XtraBackup:
      • Assicurarsi di eseguire sia il passaggio di backup che quello di preparazione.
      • Assicurarsi che non siano presenti errori nel passaggio di backup e preparazione.
      • Mantenere i log dei passaggi di backup e preparazione per il supporto tecnico di Azure necessario in caso di errori.
  • Creare un contenitore BLOB di Azure e ottenere il token di firma di accesso condiviso (portale di Azure o l'interfaccia della riga di comando di Azure) per il contenitore. Assicurarsi di concedere 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. Vengono visualizzati una sola volta e non possono essere recuperati una volta chiusa la finestra.
  • Caricare il file di backup completo in {backup_dir_path} nell'archivio BLOB di Azure. Seguire i passaggi qui.
  • Per eseguire una migrazione online, acquisire e archiviare la posizione bin-log del file di backup eseguito usando Percona XtraBackup eseguendo il comando cat xtrabackup_info e copiando l'output bin_log pos.

Limiti

  • La configurazione del server di origine non viene migrata. È necessario configurare il server flessibile di destinazione in modo appropriato.
  • La migrazione per i backup crittografati non è supportata.
  • Gli utenti e i privilegi non vengono migrati come parte di Database di Azure per MySQL Importazione. È necessario eseguire un dump manuale di utenti e privilegi prima di avviare Database di Azure per MySQL Importa per eseguire la migrazione degli account di accesso dopo l'operazione di importazione ripristinandoli nel server flessibile di destinazione.
    • user1@localhost non è possibile eseguire la migrazione perché non è supportata la creazione di utenti localhost nel server flessibile.
  • 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.

Consigli 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 di importazione.
  • Configurazione dello SKU consigliata per il server flessibile Database di Azure per MySQL di destinazione:
    • L'impostazione dello SKU burstable per la destinazione non è consigliata per ottimizzare il tempo di migrazione quando si esegue l'operazione di importazione Database di Azure per MySQL. È consigliabile passare a Utilizzo generico/Business Critical per il corso dell'operazione di importazione, post, che è possibile ridurre fino allo SKU burstable.

Attivare un'operazione di importazione Database di Azure per MySQL per eseguire la migrazione da Database di Azure per MySQL server flessibile

Attivare un'operazione di importazione Database di Azure per MySQL con il az mysql flexible-server import create comando . 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 precedenti:

Impostazione Valore di esempio Descrizione
data-source-type azure_blob Tipo di origine dati che funge da destinazione di origine per l'attivazione di Database di Azure per MySQL Importazione. Valori accettati: [azure_blob]. Descrizione dei valori accettati- azure_blob: Archiviazione BLOB di Azure.
origine dati {resourceID} ID risorsa del contenitore BLOB di Azure.
data-source-backup-dir mysql_percona_backup Directory del contenitore di archiviazione BLOB di Azure in cui è stato caricato il file di backup. Questo valore è obbligatorio solo quando il file di backup non è archiviato nella cartella radice del contenitore BLOB di Azure.
data-source-sas-token {sas-token} Token di firma di accesso condiviso generato per concedere l'accesso all'importazione dal contenitore di archiviazione BLOB di Azure.
resource-group test-rg Nome del gruppo di risorse di Azure del server flessibile Database di Azure per MySQL di destinazione.
mode Offline Modalità di importazione di Database di Azure per MySQL. Valori accettati: [Offline]; Valore predefinito: offline.
location westus Percorso di Azure per il server flessibile Database di Azure per MySQL di origine.
name test-flexible-server Immettere un nome univoco per il server flessibile Database di Azure per MySQL di destinazione. Il nome del server può contenere solo lettere minuscole, numeri e il segno meno (-) e deve avere una lunghezza compresa tra 3 e 63 caratteri. Nota: questo server viene distribuito nella stessa sottoscrizione, gruppo di risorse e area dell'origine.
admin-user adminuser Nome utente per l'accesso dell'amministratore per il server flessibile Database di Azure per MySQL di destinazione. Non può essere azure_superuser, admin, administrator, root, guest o public.
admin-password password Password dell'utente amministratore per il server flessibile Database di Azure per MySQL di destinazione. Deve contenere tra 8 e 128 caratteri. La password deve contenere caratteri di tre categorie: lettere maiuscole, lettere minuscole, numeri e caratteri non alfanumerici.
sku-name GP_Gen5_2 Immettere il nome del piano tariffario e della configurazione di calcolo per il server flessibile Database di Azure per MySQL di destinazione. Segue la convenzione {piano tariffario}{generazione di calcolo}{Vcore} in sintassi abbreviata. Per altre informazioni, vedere i piani tariffari.
livello Con possibilità di burst Livello di calcolo del server flessibile Database di Azure per MySQL di destinazione. Valori accettati: Burstable, GeneralPurpose, MemoryOptimized; Valore predefinito: burstable.
public-access 0.0.0.0 Determina l'accesso pubblico per il server flessibile Database di Azure per MySQL di destinazione. Immettere un singolo o intervallo di indirizzi IP da includere nell'elenco degli indirizzi IP consentiti. Gli intervalli di indirizzi IP devono essere separati da trattini e non contenere spazi. Specificando 0.0.0.0.0, l'accesso pubblico da qualsiasi risorsa distribuita in Azure può accedere al server. Impostandolo su "Nessuno" imposta il server in modalità di accesso pubblico, ma non crea una regola del firewall.
rete virtuale myVnet Nome o ID di una rete virtuale nuova o esistente. Se si vuole usare una rete virtuale da un gruppo di risorse o una sottoscrizione diversa, specificare un ID risorsa. Il nome deve essere compreso tra 2 e 64 caratteri. Il nome deve iniziare con una lettera o un numero, terminare con una lettera, un numero o un carattere di sottolineatura e può contenere solo lettere, numeri, caratteri di sottolineatura, punti o trattini.
Subnet mySubnet Nome o ID risorsa di una subnet nuova o esistente. Se si vuole usare una subnet da un gruppo di risorse o una sottoscrizione diversa, specificare l'ID risorsa anziché il nome. La subnet viene delegata a flexibleServers. Dopo la delega, questa subnet non può essere usata per altri tipi di risorse di Azure.
private-dns-zone myserver.private.contoso.com Nome o ID della zona DNS privata nuova o esistente. È possibile usare la zona DNS privata dallo stesso gruppo di risorse, da un gruppo di risorse diverso o da una sottoscrizione diversa. Se si vuole usare una zona da un gruppo di risorse o una sottoscrizione diversa, specificare l'ID risorsa. L'interfaccia della riga di comando crea una nuova zona DNS privata all'interno dello stesso gruppo di risorse della rete virtuale, se non fornita dagli utenti.
key identificatore di chiave di testKey ID risorsa della chiave primaria dell'insieme di credenziali delle chiavi per la crittografia dei dati.
identity testIdentity Nome o ID risorsa dell'identità assegnata dall'utente per la crittografia dei dati.
storage-size 32 Capacità di archiviazione del server flessibile Database di Azure per MySQL di destinazione. Il minimo è 20 GiB e max è 16 TiB.
tag key=value Specificare il nome del gruppo di risorse di Azure.
versione 5.7 Versione principale del server del server di destinazione Database di Azure per MySQL server flessibile.
disponibilità elevata ZoneRedundant Abilitare (ZoneRedundant o SameZone) o disabilitare la funzionalità di disponibilità elevata per il server flessibile Database di Azure per MySQL di destinazione. Valori accettati: Disabled, SameZone, ZoneRedundant; Valore predefinito: Disabilitato.
zona 1 Zona di disponibilità in cui effettuare il provisioning della risorsa.
standby-zone 3 Informazioni sulla zona di disponibilità del server standby quando è abilitata la disponibilità elevata.
aumento automatico dell'archiviazione Attivata Abilitare o disabilitare l'aumento automatico dello spazio di archiviazione per il server flessibile Database di Azure per MySQL di destinazione. Il valore predefinito è Enabled. Valori accettati: Disabled, Enabled; Valore predefinito: Abilitato.
iops 500 Numero di operazioni di I/O al secondo da allocare per il server flessibile Database di Azure per MySQL di destinazione. Si ottiene una determinata quantità di operazioni di I/O al secondo gratuite in base alle risorse di calcolo e all'archiviazione di cui è stato effettuato il provisioning. Il valore predefinito per le operazioni di I/O al secondo è gratuito. Per altre informazioni sulle operazioni di I/O al secondo in base al calcolo e all'archiviazione, vedere IOPS in Database di Azure per MySQL server flessibile.

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 usando Database di Azure per MySQL importazione, è possibile configurare la replica dei dati tra l'origine e la destinazione seguendo questa procedura. È possibile usare la posizione bin-log acquisita durante l'esecuzione del file di backup usando Percona XtraBackup per configurare la replica basata sulla posizione del log bin.

Quanto tempo richiede Database di Azure per MySQL Importa per eseguire la migrazione dell'istanza di MySQL?

Prestazioni con benchmark in base alle dimensioni di archiviazione.

Dimensioni Archiviazione file di backup Tempo di importazione
1 GiB 0 min 23 sec
10 GiB 4 min 24 sec
100 GiB 10 min 29 sec
500 GiB 13 min 15 sec
1 TB 22 min 56 sec
10 TB 2 ore 5 min 30 sec

Con l'aumentare delle dimensioni di archiviazione, aumenta anche il tempo necessario per la copia dei dati, quasi in una relazione lineare. Tuttavia, è importante notare che la velocità di copia può essere significativamente influenzata dalle fluttuazioni di rete. Pertanto, i dati forniti qui devono essere considerati solo come riferimento.

Passaggi successivi