Dela via


Migrera din MariaDB-databas till Azure Database for MariaDB med hjälp av dumpning och återställning

Viktigt!

Azure Database for MariaDB är på väg att dras tillbaka. Vi rekommenderar starkt att du migrerar till Azure Database for MySQL. Mer information om hur du migrerar till Azure Database for MySQL finns i Vad händer med Azure Database for MariaDB?.

Den här artikeln beskriver två vanliga sätt att säkerhetskopiera och återställa databaser i azure-databasen för MariaDB:

  • Dumpa och återställa med hjälp av ett kommandoradsverktyg (med mysqldump).
  • Dumpa och återställa med phpMyAdmin.

Förutsättningar

Innan du börjar migrera databasen gör du följande:

Använda vanliga verktyg

Använd vanliga verktyg och verktyg som MySQL Workbench eller mysqldump för att fjärransluta och återställa data till din Azure-databas för MariaDB. Använd dessa verktyg på klientdatorn med en Internetanslutning för att ansluta till Azure Database for MariaDB. Använd en SSL-krypterad anslutning som bästa säkerhetspraxis. Mer information finns i Konfigurera SSL-anslutning i Azure Database for MariaDB. Du behöver inte flytta dumpfilerna till någon särskild molnplats när du migrerar data till din Azure-databas för MariaDB.

Vanliga användningsområden för dumpning och återställning

Du kan använda MySQL-verktyg som mysqldump och mysqlpump för att dumpa och läsa in databaser i en Azure-databas för MariaDB-server i flera vanliga scenarier.

  • Använd databasdumpar när du migrerar en hel databas. Den här rekommendationen gäller när du flyttar en stor mängd data, eller när du vill minimera tjänstavbrott för livewebbplatser eller program.

  • Kontrollera att alla tabeller i databasen använder InnoDB-lagringsmotorn när du läser in data i Din Azure-databas för MariaDB. Azure Database for MariaDB stöder endast InnoDB-lagringsmotorn och inga andra lagringsmotorer. Om dina tabeller har konfigurerats med andra lagringsmotorer konverterar du dem till InnoDB-motorformatet innan du migrerar dem till Din Azure-databas för MariaDB.

    Om du till exempel har en WordPress-app eller en webbapp som använder MyISAM-tabeller konverterar du först dessa tabeller genom att migrera dem till InnoDB-format innan du återställer dem till din Azure-databas för MariaDB. Använd -satsen ENGINE=InnoDB för att ange motorn som ska användas för att skapa en ny tabell och sedan överföra data till den kompatibla tabellen innan du återställer den.

    INSERT INTO innodb_table SELECT * FROM myisam_table ORDER BY primary_key_columns
    
  • Om du vill undvika kompatibilitetsproblem när du dumpar databaser kontrollerar du att du använder samma version av MariaDB i käll- och målsystemen. Om din befintliga MariaDB-server till exempel är version 10.2 bör du migrera till din Azure-databas för MariaDB som har konfigurerats för att köra version 10.2. Kommandot mysql_upgrade fungerar inte i en Azure Database for MariaDB-server och stöds inte. Om du behöver uppgradera mellan MariaDB-versioner dumpar eller exporterar du först din tidigare version av databasen till en senare version av MariaDB i din egen miljö. Du kan sedan köra mysql_upgrade innan du försöker migrera till azure-databasen för MariaDB.

Prestandaöverväganden

För att optimera prestanda när du dumpar stora databaser bör du tänka på följande:

  • Använd alternativet exclude-triggers i mysqldump. Undanta utlösare från dumpfiler för att undvika att utlösarkommandona utlöses under dataåterställningen.
  • Använd alternativet single-transaction för att ange transaktionsisoleringsläget till REPEATABLE READ och skicka en START TRANSACTION SQL-instruktion till servern innan data dumpas. Om du dumpar många tabeller i en enda transaktion kan du använda lite extra lagringsutrymme under återställningen. Alternativet single-transaction och alternativet lock-tables är ömsesidigt uteslutande. Det beror på att LOCK TABLES gör att väntande transaktioner checkas in implicit. Om du vill dumpa stora tabeller kombinerar du single-transaction alternativet med alternativet quick .
  • Använd syntaxen extended-insert för flera rader som innehåller flera VÄRDE-listor. Den här metoden resulterar i en mindre dumpfil och påskyndar infogningar när filen laddas om.
  • Använd alternativet order-by-primary i mysqldump när du dumpar databaser, så att data skrivs i primärnyckelordning.
  • Använd alternativet disable-keys i mysqldump när du dumpar data för att inaktivera begränsningar för sekundärnyckel före belastningen. Om du inaktiverar sekundärnyckelkontroller kan du förbättra prestandan. Aktivera begränsningarna och verifiera data efter inläsningen för att säkerställa referensintegritet.
  • Använd partitionerade tabeller när det är lämpligt.
  • Läs in data parallellt. Undvik för mycket parallellitet, vilket kan leda till att du når en resursgräns och övervaka resurser med hjälp av de mått som är tillgängliga i Azure-portalen.
  • Använd alternativet defer-table-indexes i mysqlpump när du dumpar databaser, så att indexskapande sker när tabelldata har lästs in.
  • Kopiera säkerhetskopieringsfilerna till ett Azure Blob Store och utför återställningen därifrån. Den här metoden bör vara mycket snabbare än att utföra återställningen över internet.

Skapa en säkerhetskopia

Om du vill säkerhetskopiera en befintlig MariaDB-databas på den lokala servern eller på en virtuell dator kör du följande kommando med mysqldump:

mysqldump --opt -u <uname> -p<pass> <dbname> > <backupfile.sql>

Parametrarna som ska anges är:

  • <uname>: Ditt databasanvändarnamn
  • <pass>: Lösenordet för databasen (observera att det inte finns något utrymme mellan -p och lösenordet)
  • <dbname>: Namnet på databasen
  • <backupfile.sql>: Filnamnet för databassäkerhetskopian
  • <--opt>: Mysqldump-alternativet

Om du till exempel vill säkerhetskopiera en databas med namnet testdb på MariaDB-servern med användarnamnets testuser och utan lösenord till en fil testdb_backup.sql använder du följande kommando. Kommandot säkerhetskopierar testdb databasen till en fil med namnet testdb_backup.sql, som innehåller alla SQL-instruktioner som behövs för att återskapa databasen.

mysqldump -u root -p testdb > testdb_backup.sql

Om du vill välja specifika tabeller som ska säkerhetskopieras i databasen listar du tabellnamnen, avgränsade med blanksteg. Om du till exempel bara vill säkerhetskopiera table1- och table2-tabeller från testdb följer du det här exemplet:

mysqldump -u root -p testdb table1 table2 > testdb_tables_backup.sql

Om du vill säkerhetskopiera mer än en databas samtidigt använder du växeln --database och listar databasnamnen avgränsade med blanksteg.

mysqldump -u root -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql

Skapa en databas på målservern

Skapa en tom databas på Azure Database for MariaDB-målservern där du vill migrera data. Använd ett verktyg som MySQL Workbench för att skapa databasen. Databasen kan ha samma namn som databasen som innehåller de dumpade data, eller så kan du skapa en databas med ett annat namn.

Om du vill ansluta letar du upp anslutningsinformationen i fönstret Översikt i Din Azure-databas för MariaDB.

Screenshot of the Overview pane for an Azure database for MariaDB server in the Azure portal.

Lägg till anslutningsinformationen i MySQL Workbench.

Screenshot of the MySQL Connections pane in MySQL Workbench.

Återställa MariaDB-databasen

När du har skapat måldatabasen kan du använda mysql-kommandot eller MySQL Workbench för att återställa data till den nyligen skapade databasen från dumpfilen.

mysql -h <hostname> -u <uname> -p<pass> <db_to_restore> < <backupfile.sql>

I det här exemplet återställer du data till den nyligen skapade databasen på Azure Database for MariaDB-målservern.

mysql -h mydemoserver.mariadb.database.azure.com -u myadmin@mydemoserver -p testdb < testdb_backup.sql

Exportera din MariaDB-databas med hjälp av phpMyAdmin

Om du vill exportera kan du använda det vanliga verktyget phpMyAdmin, som kanske redan är installerat lokalt i din miljö. Gör följande för att exportera MariaDB-databasen:

  1. Öppna phpMyAdmin.
  2. Välj databasen i den vänstra rutan och välj sedan länken Exportera . En ny sida visas för att visa databasdumpningen.
  3. I området Exportera väljer du länken Välj alla för att välja tabellerna i databasen.
  4. I området SQL-alternativ väljer du lämpliga alternativ.
  5. Välj alternativet Spara som fil och motsvarande komprimeringsalternativ och välj sedan Gå. Spara filen lokalt i kommandotolken.

Importera databasen med hjälp av phpMyAdmin

Importprocessen liknar exportprocessen. Gör följande:

  1. Öppna phpMyAdmin.
  2. På sidan phpMyAdmin-konfiguration väljer du Lägg till för att lägga till din Azure Database for MariaDB-server.
  3. Ange anslutningsinformation och inloggningsinformation.
  4. Skapa en databas med lämpligt namn och välj den sedan i det vänstra fönstret. Om du vill skriva om den befintliga databasen markerar du databasnamnet, markerar alla kryssrutor bredvid tabellnamnen och väljer Släpp för att ta bort de befintliga tabellerna.
  5. Välj SQL-länken för att visa sidan där du kan ange SQL-kommandon eller ladda upp SQL-filen.
  6. Välj bläddra-knappen för att hitta databasfilen.
  7. Välj knappen Gå för att exportera säkerhetskopian, köra SQL-kommandona och återskapa databasen.

Nästa steg