Dela via


Så här konfigurerar du Azure Database for MySQL – replikering av flexibel server med datautdata

GÄLLER FÖR: Azure Database for MySQL – flexibel server

I den här artikeln beskrivs hur du konfigurerar datareplikering i Azure Database for MySQL – flexibel server genom att konfigurera käll- och replikservrarna. Den här artikeln förutsätter att du har viss tidigare erfarenhet av MySQL-servrar och -databaser.

För datautdatareplikering är källan alltid Azure Database for MySQL – flexibel server. Repliken kan vara valfri extern MySQL-server på andra molnleverantörer, lokala eller virtuella datorer. Granska begränsningarna och kraven för Data-out-replikering innan du utför stegen i den här artikeln.

Kommentar

Den här artikeln refererar till termen slave, en term som Microsoft inte längre använder. När termen tas bort från programvaran tar vi bort den från den här artikeln.

Skapa en Azure Database for MySQL – flexibel serverinstans som ska användas som källa.

  1. Skapa en ny instans av Azure Database for MySQL – flexibel server (till exempel sourceserver.mysql.database.Azure.com). Se Skapa en Azure Database for MySQL– flexibel serverinstans med hjälp av Azure Portal för att skapa servern. Den här servern är "källservern" för Data-out-replikering.

  2. Skapa duplicerade användarkonton och motsvarande behörigheter.

    1. Användarkonton replikeras inte från källservern till replikservern. Anta att du planerar att ge användarna åtkomst till replikservern. I så fall måste du manuellt skapa alla konton och motsvarande behörigheter för den här nyligen skapade Azure Database for MySQL Flexible Server-instansen.

Konfigurera MySQL-källservern

Följande steg förbereder och konfigurerar Azure Database for MySQL – flexibel serverinstans som fungerar som källa.

  1. Nätverkskrav

    Se till att nätverksinställningarna har upprättats så att käll- och replikservern kan kommunicera sömlöst.
    Om källservern har offentlig åtkomst kontrollerar du att brandväggsreglerna tillåter replikserverns IP-adress. Om replikservern finns i Azure kontrollerar du att du väljer alternativet att tillåta offentlig åtkomst från valfri Azure-tjänst från nätverkssidan i Azure Portal. Om källservern har privat åtkomst kontrollerar du att replikservern kan ansluta till källan via Vnet-peering eller en VPN-gatewayanslutning mellan virtuella nätverk.

  2. Aktivera binär loggning

    Kontrollera om binär loggning har aktiverats på källan genom att köra följande kommando:

    SHOW VARIABLES LIKE 'log_bin';
    

    Om variabeln log_bin returneras med värdet "PÅ" aktiveras binär loggning på servern.

  3. Skapa en ny replikeringsroll och konfigurera behörighet

    Skapa ett användarkonto på den konfigurerade källservern med replikeringsbehörighet. Detta kan göras via SQL-kommandon eller ett verktyg som MySQL Workbench. Överväg om du planerar att replikera med SSL, eftersom detta måste anges när du skapar användaren. Mer information om hur du lägger till användarkonton på källservern finns i MySQL-dokumentationen.

    I följande kommandon kan den nya replikeringsrollen komma åt källan från valfri dator, inte bara den som är värd för själva källan. Detta görs genom att ange "syncuser@'%'" i kommandot skapa användare. Mer information om hur du anger kontonamn finns i MySQL-dokumentationen.

    Det finns några verktyg som du kan använda för att ange kontonamn. Välj den som passar bäst för din miljö.

Replikering med SSL

Om du vill kräva SSL för alla användaranslutningar använder du följande kommando för att skapa en användare:

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

Replikering utan SSL

Om SSL inte krävs för alla anslutningar använder du följande kommando för att skapa en användare:

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

Dumpa och återställa källservern.

Hoppa över det här avsnittet om det är en nyskapade källserver utan befintliga data att migrera till repliken. Nu kan du låsa upp tabellerna:

SET GLOBAL read_only = OFF;
UNLOCK TABLES;

Följ stegen nedan om källservern har befintliga data att migrera till repliken.

  1. Ta reda på vilka databaser och tabeller du vill replikera till Azure Database for MySQL – flexibel server och utför dumpen från källservern. Du kan använda mysqldump för att dumpa databaser från din primära server. Mer information finns i Dumpa och återställa. Det är onödigt att dumpa MySQL-biblioteket och testbiblioteket.

  2. Ställ in källservern i läs-/skrivläge.

När databasen har dumpats ändrar du azure database for MySQL-instansen för flexibel server till läs-/skrivläge.

SET GLOBAL read_only = OFF;
UNLOCK TABLES;
  1. Återställ dumpfilen till den nya servern. Återställ dumpfilen till den server som skapats i Azure Database for MySQL – flexibel server. Se Dump & Restore för att återställa en dumpfil till en Azure Database for MySQL – flexibel serverinstans. Om dumpfilen är stor laddar du upp den till en virtuell dator i Azure inom samma region som replikservern. Återställ den till Azure Database for MySQL – flexibel server-instans från den virtuella datorn.

Kommentar

Om du vill undvika att ställa in databasen på skrivskyddad när du dumpar och återställer kan du använda mydumper/myloader.

Konfigurera replikservern så att datareplikeringen startas.

  1. Filtrering

    Anta att datautdatareplikering konfigureras mellan Azure Database for MySQL – flexibel server och en extern MySQL på andra molnleverantörer eller lokalt. I så fall måste du använda replikeringsfiltret för att filtrera bort anpassade Azure-tabeller på replikservern. Detta kan uppnås genom att ange Replicate_Wild_Ignore_Table = "mysql.__%" för att filtrera de interna tabellerna i Azure Database for MySQL – flexibel server. Se Referenshandbok för MySQL :: MySQL 5.7 :: 13.4.2.2 ÄNDRA REPLIKERingsFILTER-instruktion för mer information om hur du ändrar den här serverparametern.

  2. Ange replikservern genom att ansluta till den och öppna MySQL-gränssnittet på replikservern. Kör följande åtgärd från prompten, som konfigurerar flera MySQL-replikeringsinställningar samtidigt:

    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: källserverns värdnamn (till exempel source.mysql.database.Azure.com)
    • master_user: användarnamn för källservern (exempel – "syncuser"@'%')
    • master_password: lösenord för källservern
    • master_log_file: namn på binär loggfil från visning av huvudstatus
    • master_log_pos: binär loggposition från körning av visningshuvudstatus

    Kommentar

    Om du vill använda SSL för anslutningen lägger du till attributet SOURCE_SSL=1 i kommandot . Mer information om hur du använder SSL i en replikeringskontext finns i - https://dev.mysql.com/doc/refman/8.0/en/change-replication-source-to.html

  3. Aktivera replikservern med hjälp av följande kommando.

    START REPLICA;
    

    Nu börjar replikinstansen replikera alla ändringar som gjorts i källserverdatabasen. Du kan testa detta genom att skapa en exempeltabell i källdatabasen och kontrollera om den replikeras korrekt.

  4. Kontrollera replikeringsstatus.

    Anropa kommandot show slave status\G på replikservern för att visa replikeringsstatusen.

     show slave status;
    

    Om tillståndet för Slave_IO_Running och Slave_SQL_Running är yes och värdet för Seconds_Behind_Master är 0fungerar replikeringen bra. Seconds_Behind_Master anger hur sent repliken är. Repliken bearbetar uppdateringar om värdet inte 0är .

    Om replikservern finns på en virtuell Azure-dator anger du Tillåt åtkomst till Azure-tjänster till på källan så att käll- och replikservrarna kan kommunicera. Den här inställningen kan ändras från alternativen för anslutningssäkerhet. Mer information finns i Hantera brandväggsregler med hjälp av portalen.

    Om du använde mydumper/myloader för att dumpa databasen kan du hämta master_log_file och master_log_pos från filen /backup/metadata.

Gå vidare