Delen via


Azure Database for MySQL - Flexible Server-gegevensuitvalreplicatie configureren

VAN TOEPASSING OP: Azure Database for MySQL - Flexibele server

In dit artikel wordt beschreven hoe u replicatie van gegevens in Azure Database for MySQL flexibele server instelt door de bron- en replicaservers te configureren. In dit artikel wordt ervan uitgegaan dat u enige ervaring hebt met MySQL-servers en -databases.

Voor replicatie van gegevens is de bron altijd Azure Database for MySQL Flexibele server. De replica kan elke externe MySQL-server zijn op andere cloudproviders, on-premises of virtuele machines. Bekijk de beperkingen en vereisten van gegevens-outreplicatie voordat u de stappen in dit artikel uitvoert.

Notitie

Dit artikel verwijst naar de term slaaf, een term die Microsoft niet meer gebruikt. Zodra de term uit de software wordt verwijderd, verwijderen we deze uit dit artikel.

Maak een exemplaar van een flexibele Azure Database for MySQL-server om te gebruiken als bron.

  1. Maak een nieuw exemplaar van een flexibele Azure Database for MySQL-server (bijvoorbeeld sourceserver.mysql.database.Azure.com). Raadpleeg Een exemplaar van een flexibele Azure Database for MySQL-server maken met behulp van Azure Portal voor het maken van een server. Deze server is de bronserver voor replicatie van gegevens.

  2. Maak dubbele gebruikersaccounts en bijbehorende bevoegdheden.

    1. Gebruikersaccounts worden niet van de bronserver naar de replicaserver gerepliceerd. Stel dat u van plan bent gebruikers toegang te geven tot de replicaserver. In dat geval moet u handmatig alle accounts en bijbehorende bevoegdheden maken voor dit zojuist gemaakte exemplaar van flexibele Azure Database for MySQL-server.

De MySQL-bronserver configureren

Met de volgende stappen bereidt en configureert u het exemplaar van de flexibele Azure Database for MySQL-server die fungeert als de bron.

  1. Netwerkvereisten

    Zorg ervoor dat uw netwerkinstellingen tot stand zijn gebracht, zodat de bron- en replicaserver naadloos kunnen communiceren.
    Als de bronserver openbare toegang heeft, moet u ervoor zorgen dat firewallregels het IP-adres van de replicaserver toestaan. Als de replicaserver wordt gehost in Azure, moet u ervoor zorgen dat u de optie selecteert om openbare toegang vanuit elke Azure-service toe te staan vanaf de netwerkpagina in Azure Portal. Als de bronserver privétoegang heeft, moet u ervoor zorgen dat de replicaserver verbinding kan maken met de bron via Vnet-peering of een VPN-gatewayverbinding van VNet naar VNet.

  2. Binaire logboekregistratie inschakelen

    Controleer of binaire logboekregistratie is ingeschakeld voor de bron door de volgende opdracht uit te voeren:

    SHOW VARIABLES LIKE 'log_bin';
    

    Als de variabele log_bin wordt geretourneerd met de waarde AAN, wordt binaire logboekregistratie ingeschakeld op uw server.

  3. Een nieuwe replicatierol maken en machtiging instellen

    Maak een gebruikersaccount op de geconfigureerde bronserver met replicatiebevoegdheden. Dit kan worden gedaan via SQL-opdrachten of een hulpprogramma zoals MySQL Workbench. Overweeg of u van plan bent om te repliceren met SSL, omdat dit moet worden opgegeven bij het maken van de gebruiker. Raadpleeg de MySQL-documentatie voor meer informatie over het toevoegen van gebruikersaccounts op uw bronserver.

    In de volgende opdrachten heeft de nieuwe replicatierol toegang tot de bron vanaf elke computer, niet alleen de bron die als host fungeert voor de bron zelf. Dit wordt gedaan door 'syncuser@'%' op te geven in de opdracht gebruiker maken. Zie de MySQL-documentatie voor meer informatie over het instellen van accountnamen.

    Er zijn enkele hulpprogramma's die u kunt gebruiken om accountnamen in te stellen. Selecteer de optie die het beste bij uw omgeving past.

Replicatie met SSL

Als u SSL wilt vereisen voor alle gebruikersverbindingen, gebruikt u de volgende opdracht om een gebruiker te maken:

CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword';
GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%' REQUIRE SSL;

Replicatie zonder SSL

Als SSL niet vereist is voor alle verbindingen, gebruikt u de volgende opdracht om een gebruiker te maken:

CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword';
GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%';

Dump en herstel de bronserver.

Sla deze sectie over als het een zojuist gemaakte bronserver is zonder bestaande gegevens om naar de replica te migreren. U kunt op dit moment de tabellen ontgrendelen:

SET GLOBAL read_only = OFF;
UNLOCK TABLES;

Volg de onderstaande stappen als de bronserver bestaande gegevens bevat om naar de replica te migreren.

  1. Bepaal welke databases en tabellen u wilt repliceren naar een flexibele Azure Database for MySQL-server en voer de dump uit vanaf de bronserver. U kunt mysqldump gebruiken om databases van uw primaire server te dumpen. Ga naar Dump & Restore voor meer informatie. Het is niet nodig om de MySQL-bibliotheek en testbibliotheek te dumpen.

  2. Stel de bronserver in op de lees-/schrijfmodus.

Nadat u de database hebt gedumpt, wijzigt u het bronexemplaren van Azure Database for MySQL flexibele server in de lees-/schrijfmodus.

SET GLOBAL read_only = OFF;
UNLOCK TABLES;
  1. Herstel het dumpbestand naar de nieuwe server. Herstel het dumpbestand naar de server die is gemaakt in Azure Database for MySQL Flexibele server. Raadpleeg Dump & Restore voor het herstellen van een dumpbestand naar een exemplaar van een flexibele Azure Database for MySQL-server. Als het dumpbestand groot is, uploadt u het naar een virtuele machine in Azure binnen dezelfde regio als uw replicaserver. Herstel deze vanaf de virtuele machine naar het exemplaar van de flexibele Azure Database for MySQL-server.

Notitie

Als u wilt voorkomen dat de database wordt ingesteld op alleen-lezen wanneer u dumpt en herstelt, kunt u mydumper/myloader gebruiken.

Configureer de replicaserver om de replicatie van gegevens uit te starten.

  1. Filteren

    Stel dat gegevens-outreplicatie wordt ingesteld tussen azure Database for MySQL flexibele server en een externe MySQL op andere cloudproviders of on-premises. In dat geval moet u het replicatiefilter gebruiken om aangepaste Azure-tabellen op de replicaserver uit te filteren. Dit kan worden bereikt door Replicate_Wild_Ignore_Table = "mysql.__%" in te stellen om de interne mysql-tabellen van de flexibele Azure Database for MySQL-server te filteren. Raadpleeg MySQL :: MySQL 5.7 Reference Manual :: 13.4.2.2 CHANGE REPLICATION FILTER Statement voor meer informatie over het wijzigen van deze serverparameter.

  2. Stel de replicaserver in door er verbinding mee te maken en de MySQL-shell op de replicaserver te openen. Voer vanaf de prompt de volgende bewerking uit, waarmee verschillende MySQL-replicatie-instellingen tegelijk worden geconfigureerd:

    CHANGE THE REPLICATION SOURCE TO
    SOURCE_HOST='<master_host>',
    SOURCE_USER='<master_user>',
    SOURCE_PASSWORD='<master_password>',
    SOURCE_LOG_FILE='<master_log_file>',
    SOURCE_LOG_POS=<master_log_pos>
    
    • master_host: hostnaam van de bronserver (bijvoorbeeld ' source.mysql.database.Azure.com')
    • master_user: gebruikersnaam voor de bronserver (bijvoorbeeld : 'syncuser'@'%')
    • master_password: wachtwoord voor de bronserver
    • master_log_file: de naam van het binaire logboekbestand van het uitvoeren van de masterstatus weergeven
    • master_log_pos: binaire logboekpositie van het uitvoeren van de masterstatus weergeven

    Notitie

    Als u SSL wilt gebruiken voor de verbinding, voegt u het kenmerk SOURCE_SSL=1 toe aan de opdracht. Ga voor meer informatie over het gebruik van SSL in een replicatiecontext naar - https://dev.mysql.com/doc/refman/8.0/en/change-replication-source-to.html

  3. Activeer de replicaserver met behulp van de volgende opdracht.

    START REPLICA;
    

    Op dit moment begint het replica-exemplaar met het repliceren van wijzigingen die zijn aangebracht in de bronserverdatabase. U kunt dit testen door een voorbeeldtabel te maken in uw brondatabase en te controleren of deze is gerepliceerd.

  4. Controleer de replicatiestatus.

    Roep de opdracht slaafstatus weergeven\G op de replicaserver aan om de replicatiestatus weer te geven.

     show slave status;
    

    Als de status van Slave_IO_Running en Slave_SQL_Running en yes de waarde van Seconds_Behind_Master is 0, werkt replicatie goed. Seconds_Behind_Master geeft aan hoe laat de replica is. De replica verwerkt updates als de waarde niet 0is.

    Als de replicaserver wordt gehost op een Virtuele Azure-machine, stelt u Toegang tot Azure-servicesop AAN op de bron zodat de bron- en replicaservers kunnen communiceren. Deze instelling kan worden gewijzigd vanuit de verbindingsbeveiligingsopties. Ga naar Firewallregels beheren met behulp van de portal voor meer informatie.

    Als u mydumper/myloader hebt gebruikt om de database te dumpen, kunt u de master_log_file en master_log_pos ophalen uit het bestand /backup/metadata.

Volgende stap