Delen via


MySQL on-premises of VM-workload (Virtual Machine) migreren naar Azure Database for MySQL - Flexible Server met behulp van Azure Database for MySQL Import CLI

Met Azure Database for MySQL Import voor externe migraties kunt u uw on-premises MySQL- of VM-workload naadloos migreren naar Azure Database for MySQL - Flexible Server. Het maakt gebruik van een door de gebruiker verstrekt fysiek back-upbestand en herstelt de fysieke gegevensbestanden van de bronserver naar de doelserver en biedt een eenvoudig en snel migratiepad. Na het importeren kunt u profiteren van de voordelen van een flexibele server, waaronder betere prijs en prestaties, gedetailleerde controle over databaseconfiguratie en aangepaste onderhoudsvensters.

Op basis van gebruikersinvoer neemt het de verantwoordelijkheid op zich om uw flexibele doelserver in te richten en vervolgens de door de gebruiker verstrekte fysieke back-up te herstellen van de bronserver die is opgeslagen in het Azure Blob Storage-account naar het doelexemplaren van flexibele server.

In deze zelfstudie ziet u hoe u de Azure Database for MySQL Import CLI-opdracht gebruikt voor het migreren van uw On-premises MySQL- of VM-workload (Virtual Machine) naar Azure Database for MySQL - Flexible Server.

Azure Cloud Shell starten

Azure Cloud Shell is een gratis interactieve shell waarmee u de stappen in dit artikel kunt uitvoeren. In deze shell zijn algemene Azure-hulpprogramma's vooraf geïnstalleerd en geconfigureerd voor gebruik met uw account.

Als u Cloud Shell wilt openen, selecteert u Proberen in de rechterbovenhoek van een codeblok. Als u naar https://shell.azure.com/bash gaat, kunt u Cloud Shell ook openen in een afzonderlijk browsertabblad. Selecteer Kopiëren om de codeblokken te kopiëren, plak deze in Cloud Shell en selecteer vervolgens Enter om de code uit te voeren.

Als u de CLI liever lokaal wilt installeren en gebruiken, is voor deze zelfstudie Versie 2.54.0 of hoger van Azure CLI vereist. Voer az --version uit om de versie te zoeken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.

Instellingen

U moet zich aanmelden bij uw account met behulp van de opdracht az sign-in . Noteer de id-eigenschap, die verwijst naar de abonnements-id van uw Azure-account.

az login

Selecteer het specifieke abonnement onder uw account waar u de doel flexible server wilt implementeren met behulp van de opdracht az account set . Noteer de id-waarde uit de az-aanmeldingsuitvoer die moet worden gebruikt als de waarde voor het argument abonnement in de opdracht. U kunt al uw abonnementen ophalen met de opdracht az account list.

az account set --subscription <subscription id>

Vereisten

  • De bronserver moet de volgende parameters hebben:

    • Lower_case_table_names = 1
    • Innodb_file_per_table = AAN
    • De naam van de systeemtabelruimte moet ibdata1 zijn.
    • De grootte van de systeemtabelruimte moet groter zijn dan of gelijk zijn aan 12 MB. (MySQL-standaardinstelling)
    • Innodb_page_size = 16348 (MySQL-standaardinstelling)
    • Alleen DE INNODB-engine wordt ondersteund.
  • Maak een fysieke back-up van uw MySQL-workload met behulp van Percona XtraBackup. Hier volgen de stappen voor het gebruik van Percona XtraBackup om een volledige back-up te maken:

    • Installeer Percona XtraBackup op de on-premises of VM-workload. Voor MySQL-engineversie v5.7 installeert u Percona XtraBackup versie 2.4. Zie Percona XtraBackup 2.4 installeren. Voor MySQL-engineversie v8.0 installeert u Percona XtraBackup versie 8.0. Zie Percona XtraBackup 8.0 installeren.

    • Zie Volledige back-up voor instructies voor het maken van een volledige back-up met Percona XtraBackup 2.4. Zie [Volledige back-up] (Volledige back-up) voor instructies voor het maken van een volledige back-up met Percona XtraBackup 8.0 (https://docs.percona.com/percona-xtrabackup/8.0/create-full-backup.html). Voer tijdens het maken van een volledige back-up de onderstaande opdrachten in volgorde uit:

      • - xtrabackup --backup --host={host} --user={user} --password={password} --target-dir={backup__dir_path}
      • - xtrabackup --prepare --{backup_dir_path} (geef hier hetzelfde back-uppad op als in de vorige opdracht)
    • Overwegingen bij het nemen van de Percona XtraBackup:

      • Zorg ervoor dat u zowel de back-up als de voorbereidingsstap uitvoert.
      • Zorg ervoor dat er geen fouten zijn in de back-up en bereid de stap voor.
      • Bewaar de back-up en bereid staplogboeken voor voor Azure-ondersteuning. Dit is vereist in het geval van fouten.

      Belangrijk

      Als u probeert toegang te krijgen tot beschadigde tabellen die zijn geïmporteerd vanaf een bronserver, kan een flexibele server vastlopen. Als gevolg hiervan is het raadzaam om voordat u een back-up maakt met behulp van het hulpprogramma Percona XtraBackup, een mysqlcheck/Optimize Table-bewerking uit te voeren op de bronserver.

  • Maak een Azure Blob-container en haal het SAS-token (Shared Access Signature) (Azure Portal of Azure CLI) voor de container op. Zorg ervoor dat u Toevoegen, Maken en Schrijven verleent in de vervolgkeuzelijst Machtigingen . Kopieer en plak het Blob SAS-token en de URL-waarden op een veilige locatie. Ze worden slechts eenmaal weergegeven en kunnen niet worden opgehaald zodra het venster is gesloten.

  • Upload het volledige back-upbestand op {backup_dir_path} naar uw Azure Blob-opslag. Volg deze stappen om een bestand te uploaden.

  • Als u een onlinemigratie wilt uitvoeren, moet u de bin-logpositie van het back-upbestand vastleggen en opslaan met behulp van Percona XtraBackup door de opdracht cat xtrabackup_info uit te voeren en de uitvoer van de bin_log pos te kopiëren.

  • Het Azure-opslagaccount moet openbaar toegankelijk zijn met behulp van een SAS-token. Het Azure-opslagaccount met de configuratie van een virtueel netwerk wordt niet ondersteund.

Beperkingen

  • De configuratie van de bronserver wordt niet gemigreerd. U moet de flexibele doelserver op de juiste wijze configureren.
  • Migratie voor versleutelde back-ups wordt niet ondersteund.
  • Gebruikers en bevoegdheden worden niet gemigreerd als onderdeel van Azure Database for MySQL Import. U moet een handmatige dump van gebruikers en bevoegdheden nemen voordat u Azure Database for MySQL Import start om aanmeldingen na het importeren te migreren door ze te herstellen op de flexibele doelserver.
    • user1@localhost kan niet worden gemigreerd omdat het maken van localhost-gebruikers in Flexible Server niet wordt ondersteund.
  • Flexibele servers met hoge beschikbaarheid (HA) worden geretourneerd als met hoge beschikbaarheid uitgeschakelde servers om de snelheid van de migratiebewerking na de importmigratie te verhogen. Schakel ha in voor de flexibele doelserver na de migratie.

Aanbevelingen voor een optimale migratie-ervaring

  • Overweeg om het Azure Blob Storage-account en de flexibele doelserver in dezelfde regio te implementeren voor betere importprestaties.
  • Aanbevolen SKU-configuratie voor azure Database for MySQL Flexibele server -
    • Het instellen van een Burstable SKU voor het doel wordt niet aanbevolen om de migratietijd te optimaliseren bij het uitvoeren van de Azure Database for MySQL-importbewerking. Het is raadzaam om te schalen naar Algemeen gebruik/Bedrijfskritiek voor de importbewerking, post, die u omlaag kunt schalen naar Burstable SKU.

Een Azure Database for MySQL-importbewerking activeren om te migreren van Azure Database for MySQL - Flexible Server

Activeer een Azure Database for MySQL-importbewerking met de az mysql flexible-server import create opdracht. Met de volgende opdracht maakt u een flexibele doelserver en voert u import op exemplaarniveau uit vanuit het back-upbestand naar de doelbestemming met behulp van de lokale context van uw Azure CLI:

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"

Dit zijn de details voor de bovenstaande argumenten:

Instelling Voorbeeldwaarde Beschrijving
gegevensbrontype azure_blob Het type gegevensbron dat fungeert als de bronbestemming voor het activeren van Azure Database for MySQL Import. Geaccepteerde waarden: [azure_blob]. Beschrijving van geaccepteerde waarden- azure_blob: Azure Blob Storage.
gegevensbron {resourceID} De resource-id van de Azure Blob-container.
data-source-backup-dir mysql_percona_backup De map van de Azure Blob Storage-container waarin het back-upbestand is geüpload. Deze waarde is alleen vereist wanneer het back-upbestand niet is opgeslagen in de hoofdmap van de Azure Blob-container.
data-source-sas-token {sas-token} Het SAS-token (Shared Access Signature) dat is gegenereerd voor het verlenen van toegang tot importeren vanuit de Azure Blob Storage-container.
resource-group test-rg De naam van de Azure-resourcegroep van de doel-Azure Database for MySQL Flexible Server.
modus Offline De modus van Het importeren van Azure Database for MySQL. Geaccepteerde waarden: [Offline]; Standaardwaarde: Offline.
locatie westus De Azure-locatie voor de bron azure Database for MySQL Flexibele server.
naam test-flexible-server Voer een unieke naam in voor uw doel-Azure Database for MySQL Flexibele server. De servernaam mag alleen kleine letters, cijfers en het koppelteken (-) bevatten. en moet 3 tot 63 tekens lang zijn. Opmerking: deze server wordt geïmplementeerd in hetzelfde abonnement, dezelfde resourcegroep en dezelfde regio als de bron.
admin-user adminuser De gebruikersnaam voor de aanmelding van de beheerder voor uw doel-Azure Database for MySQL Flexible Server. Deze gebruikersnaam mag niet azure_superuser, admin, administrator, root, guest of public zijn.
admin-password password Het wachtwoord van de beheerder voor uw Azure Database for MySQL Flexible Server. Dit wachtwoord moet tussen 8 en 128 tekens bevatten. Uw wachtwoord moet tekens bevatten uit drie categorieën: Nederlandse hoofdletters, Nederlandse kleine letters, cijfers en niet-alfabetische tekens.
sku-name GP_Gen5_2 Voer de naam in van de prijscategorie en rekenconfiguratie voor uw Azure Database for MySQL Flexibele server. Volgt de verkorte notatie voor conventie {prijscategorie}{compute-generatie}{vCores}. Zie de prijscategorieën voor meer informatie.
tier Met burstfunctie De rekenlaag van de doel-Azure Database for MySQL Flexibele server. Geaccepteerde waarden: Burstable, GeneralPurpose, MemoryOptimized; Standaardwaarde: Burstable.
openbare toegang 0.0.0.0 Bepaalt de openbare toegang voor de Azure Database for MySQL Flexibele server. Voer één of bereik ip-adressen in die moeten worden opgenomen in de lijst met toegestane IP-adressen. IP-adresbereiken moeten worden gescheiden door streepjes en mogen geen spaties bevatten. Als u 0.0.0.0.0 opgeeft, hebt u openbare toegang tot alle resources die in Azure zijn geïmplementeerd, toegang tot uw server. Als u deze instelt op Geen, wordt de server ingesteld in de modus openbare toegang, maar wordt er geen firewallregel gemaakt.
Virtueel netwerk myVnet Naam of id van een nieuw of bestaand virtueel netwerk. Als u een virtueel netwerk uit een andere resourcegroep of een ander abonnement wilt gebruiken, geeft u een resource-id op. De naam moet tussen 2 en 64 tekens zijn. De naam moet beginnen met een letter of cijfer, eindigen op een letter, cijfer of onderstrepingsteken en mag alleen letters, cijfers, onderstrepingstekens, punten of afbreekstreepjes bevatten.
subnet mySubnet Naam of resource-id van een nieuw of bestaand subnet. Als u een subnet van een andere resourcegroep of een ander abonnement wilt gebruiken, geeft u de resource-id op in plaats van de naam. Het subnet is gedelegeerd aan flexibleServers. Na delegering kan dit subnet niet worden gebruikt voor een ander type Azure-resources.
private-dns-zone myserver.private.contoso.com De naam of id van de nieuwe of bestaande privé-DNS-zone. U kunt de privé-DNS-zone van dezelfde resourcegroep, een andere resourcegroep of een ander abonnement gebruiken. Als u een zone uit een andere resourcegroep of een ander abonnement wilt gebruiken, geeft u de resource-id op. CLI maakt een nieuwe privé-DNS-zone binnen dezelfde resourcegroep als het virtuele netwerk als deze niet wordt geleverd door gebruikers.
sleutel sleutel-id van testKey De resource-id van de primaire sleutelkluissleutel voor gegevensversleuteling.
identity testIdentity De naam of resource-id van de door de gebruiker toegewezen identiteit voor gegevensversleuteling.
storage-size 32 De opslagcapaciteit van de azure Database for MySQL Flexibele doelserver. Het minimum is 20 GiB en max is 16 TiB.
tags key=value Geef de naam op van de Azure-resourcegroep.
version 5.7 Primaire serverversie van de doelversie van Azure Database for MySQL Flexible Server.
hoge beschikbaarheid ZoneRedundant Schakel (ZoneRedundant of SameZone) in of schakel de functie voor hoge beschikbaarheid uit voor de Azure Database for MySQL Flexibele server. Geaccepteerde waarden: Uitgeschakeld, SameZone, ZoneRedundant; Standaardwaarde: Uitgeschakeld.
zone 1 Beschikbaarheidszone waarin de resource moet worden ingericht.
stand-byzone 3 De informatie over de beschikbaarheidszone van de stand-byserver wanneer hoge beschikbaarheid is ingeschakeld.
opslag automatisch vergroten Ingeschakeld Automatisch vergroten van opslag in- of uitschakelen voor de Doel-Azure Database for MySQL Flexibele server. De standaardwaarde is ingeschakeld. Geaccepteerde waarden: Uitgeschakeld, Ingeschakeld; Standaardwaarde: ingeschakeld.
iops 500 Het aantal IOPS dat moet worden toegewezen voor de Doel-Azure Database for MySQL Flexibele server. U krijgt een bepaalde hoeveelheid gratis IOPS op basis van reken- en opslaginrichting. De standaardwaarde voor IOPS is gratis IOPS. Raadpleeg IOPS in Azure Database for MySQL Flexible Server voor meer informatie over IOPS op basis van berekening en opslag.

Migreren naar Flexibele server met minimale downtime

Als u een onlinemigratie wilt uitvoeren na het voltooien van de eerste seeding uit het back-upbestand met behulp van azure Database for MySQL-import, kunt u replicatie van inkomende gegevens tussen de bron en het doel configureren door hier de stappen te volgen. U kunt de bin-logpositie gebruiken die is vastgelegd tijdens het maken van het back-upbestand met behulp van Percona XtraBackup om replicatie op basis van bin-logpositie in te stellen.

Hoe lang duurt het importeren van Azure Database for MySQL om mijn MySQL-exemplaar te migreren?

Gebenchmarkeerde prestaties op basis van de opslaggrootte.

Opslaggrootte van back-upbestand Importtijd
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 uur 5 min. 30 sec.

Naarmate de opslaggrootte toeneemt, neemt de tijd die nodig is voor het kopiëren van gegevens ook toe, bijna in een lineaire relatie. Het is echter belangrijk om te weten dat netwerkschommelingen de kopieersnelheid aanzienlijk kunnen beïnvloeden. Daarom moeten de hier verstrekte gegevens alleen als referentie worden beschouwd.

Volgende stap