Share via


Come configurare Database di Azure per MySQL - Replica dati out server flessibile

SI APPLICA A: Database di Azure per MySQL - Server flessibile

Questo articolo descrive come configurare la replica dei dati in Database di Azure per MySQL server flessibile configurando i server di origine e di replica. Questo articolo presuppone che si disponga di un'esperienza precedente con i server e i database MySQL.

Per la replica dei dati, l'origine è sempre Database di Azure per MySQL server flessibile. La replica può essere qualsiasi server MySQL esterno in altri provider di servizi cloud, locali o macchine virtuali. Esaminare le limitazioni e i requisiti della replica di dataout prima di eseguire i passaggi descritti in questo articolo.

Nota

Questo articolo fa riferimento al termine slave, un termine che Microsoft non usa più. Quando il termine verrà rimosso dal software, verrà rimosso anche dall'articolo.

Creare un'istanza del server flessibile Database di Azure per MySQL da usare come origine.

  1. Creare una nuova istanza di Database di Azure per MySQL server flessibile, ad esempio sourceserver.mysql.database.Azure.com. Fare riferimento a Creare un'istanza del server flessibile Database di Azure per MySQL usando il portale di Azure per la creazione del server. Questo server è il server di origine per la replica di dati in uscita.

  2. Creare account utente duplicati e privilegi corrispondenti.

    1. Gli account utente non vengono replicati dal server di origine al server di replica. Si supponga di pianificare l'accesso degli utenti al server di replica. In tal caso, è necessario creare manualmente tutti gli account e i privilegi corrispondenti per questa nuova istanza del server flessibile Database di Azure per MySQL creata.

Configurare il server MySQL di origine

I passaggi seguenti preparano e configurano l'istanza del server flessibile Database di Azure per MySQL che funge da origine.

  1. Requisiti di rete

    Assicurarsi che le impostazioni di rete siano stabilite in modo che il server di origine e di replica possa comunicare senza problemi.
    Se il server di origine è in accesso pubblico, assicurarsi che le regole del firewall consentano l'indirizzo IP del server di replica. Se il server di replica è ospitato in Azure, assicurarsi di selezionare l'opzione per consentire l'accesso pubblico da qualsiasi servizio di Azure dalla pagina di rete nel portale di Azure. Se il server di origine è in accesso privato, assicurarsi che il server di replica possa connettersi all'origine tramite peering reti virtuali o una connessione gateway VPN da rete virtuale a rete virtuale.

    Nota

    Per altre informazioni, vedere Panoramica della rete- Database di Azure per MySQL server flessibile.

  2. Attivare la registrazione binaria

    Verificare se la registrazione binaria è stata abilitata nell'origine eseguendo il comando seguente:

    SHOW VARIABLES LIKE 'log_bin';
    

    Se la variabile log_bin viene restituita con il valore "ON", la registrazione binaria è abilitata nel server.

  3. Creare un nuovo ruolo di replica e configurare l'autorizzazione

    Creare un account utente nel server di origine configurato con privilegi di replica. Questa operazione può essere eseguita tramite comandi SQL o uno strumento come MySQL Workbench. Valutare se si prevede di eseguire la replica con SSL, perché sarà necessario specificarlo durante la creazione dell'utente. Per informazioni su come aggiungere account utente nel server di origine, vedere la documentazione di MySQL.

    Nei comandi seguenti il nuovo ruolo di replica può accedere all'origine da qualsiasi computer, non solo da quello che ospita l'origine stessa. Questa operazione viene eseguita specificando "syncuser@'%'" nel comando per la creazione dell'utente. Per altre informazioni sull'impostazione dei nomi degli account, vedere la documentazione di MySQL.

    Sono disponibili alcuni strumenti che è possibile usare per impostare i nomi degli account. Selezionare quella più adatta all'ambiente.

Replica con SSL

Se SSL deve essere obbligatorio per tutte le connessioni utente, quando si crea un utente usare il comando seguente:

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

Replica senza SSL

Se SSL non è necessario per tutte le connessioni, usare il comando seguente per creare un utente:

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

Eseguire il dump e ripristinare il server di origine.

Ignorare questa sezione se si tratta di un server di origine appena creato senza dati esistenti di cui eseguire la migrazione alla replica. A questo punto è possibile sbloccare le tabelle:

SET GLOBAL read_only = OFF;
UNLOCK TABLES;

Seguire questa procedura se il server di origine dispone di dati esistenti per eseguire la migrazione alla replica.

  1. Determinare i database e le tabelle da replicare in Database di Azure per MySQL server flessibile ed eseguire il dump dal server di origine. È possibile usare mysqldump per eseguire il dump dei database dal server primario. Per altri dettagli, visitare Dump e ripristino. Non è necessario eseguire il dump della libreria MySQL e della libreria di test.

  2. Impostare il server di origine sulla modalità di lettura/scrittura.

Dopo il dump del database, modificare il Database di Azure per MySQL'istanza del server flessibile in modalità di lettura/scrittura.

SET GLOBAL read_only = OFF;
UNLOCK TABLES;
  1. Ripristinare il file dump nel nuovo server. Ripristinare il file dump nel server creato in Database di Azure per MySQL server flessibile. Fare riferimento a Dump e ripristino per ripristinare un file dump in un'istanza del server flessibile Database di Azure per MySQL. Se il file di dump ha grandi dimensioni, caricarlo in una macchina virtuale in Azure nella stessa area del server di replica. Ripristinarlo nell'istanza del server flessibile Database di Azure per MySQL dalla macchina virtuale.

Nota

Se si vuole evitare di impostare il database in sola lettura quando si esegue il dump e il ripristino, è possibile usare mydumper/myloader.

Configurare il server di replica per avviare la replica dei dati.

  1. Filtro

    Si supponga di configurare la replica di dati tra Database di Azure per MySQL server flessibile e mySQL esterno in altri provider di servizi cloud o in locale. In tal caso, è necessario usare il filtro di replica per filtrare le tabelle personalizzate di Azure nel server di replica. A tale scopo, è possibile impostare Replicate_Wild_Ignore_Table = "mysql.__%" per filtrare le tabelle interne del server flessibile mysql Database di Azure per MySQL. Fare riferimento a MySQL :: MySQL 5.7 Reference Manual :: 13.4.2.2 CHANGE REPLICATION FILTER Statement (Manuale di riferimento di MySQL 5.7: 13.4.2.2 CHANGE REPLICATION FILTER Statement ) per altre informazioni sulla modifica di questo parametro del server.

  2. Impostare il server di replica connettendosi e aprendo la shell MySQL nel server di replica. Dal prompt eseguire l'operazione seguente, che configura diverse impostazioni di replica MySQL contemporaneamente:

    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: nome host del server di origine (ad esempio : 'source.mysql.database.Azure.com')
    • master_user: nome utente per il server di origine (ad esempio - 'syncuser'@'%')
    • master_password: password per il server di origine
    • master_log_file: nome file di log binario dall'esecuzione dello stato master
    • master_log_pos: posizione del log binario dall'esecuzione dello stato master

    Nota

    Per usare SSL per la connessione, aggiungere l'attributo SOURCE_SSL=1 al comando. Per altre informazioni sull'uso di SSL in un contesto di replica, vedere - https://dev.mysql.com/doc/refman/8.0/en/change-replication-source-to.html

  3. Attivare il server di replica usando il comando seguente.

    START REPLICA;
    

    A questo punto, l'istanza di replica inizia a replicare le modifiche apportate al database del server di origine. È possibile testarlo creando una tabella di esempio nel database di origine e verificando se viene replicata correttamente.

  4. Controllare lo stato della replica.

    Chiamare il comando show slave status\G nel server di replica per visualizzare lo stato della replica.

     show slave status;
    

    Se lo stato di Slave_IO_Running e Slave_SQL_Running sono yes e il valore di Seconds_Behind_Master è 0, la replica funziona correttamente. Seconds_Behind_Master indica la ritardo della replica. La replica sta elaborando gli aggiornamenti se il valore non 0è .

    Se il server di replica è ospitato in una macchina virtuale di Azure, impostare Consenti l'accesso ai servizi di Azure su ON nell'origine per consentire ai server di origine e di replica di comunicare. Questa impostazione può essere modificata dalle opzioni di sicurezza della connessione. Per altre informazioni, vedere Gestire le regole del firewall tramite il portale.

    Se è stato usato mydumper/myloader per eseguire il dump del database, è possibile ottenere il master_log_file e master_log_pos dal file /backup/metadata.

Passaggio successivo