Come configurare Database di Azure per MySQL - Replica dati out 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. Per eseguire le procedure descritte in questo articolo è necessario avere già esperienza 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.
Creare una nuova istanza di Database di Azure per MySQL server flessibile, ad esempio sourceserver.mysql.database.Azure.com. Vedere Avvio rapido: Creare un'istanza di Database di Azure per MySQL con il portale di Azure. Questo server è il server di origine per la replica di dati in uscita.
Creare account utente duplicati e privilegi corrispondenti.
- Gli account utente non vengono replicati dal server di origine a quello 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.
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 Concetti relativi alla connettività e alla rete per Database di Azure per MySQL - Server flessibile.
Attivare la registrazione binaria
Verificare se la registrazione binaria è stata abilitata sul server di origine eseguendo questo comando:
SHOW VARIABLES LIKE 'log_bin';
Se la variabile log_bin viene restituita con il valore "ON", la registrazione binaria è abilitata nel server.
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 i comandi SQL o uno strumento come MySQL Workbench. Valutare se si prevede di eseguire la replica con SSL, poiché è necessario specificare questa impostazione quando si crea l'utente. Per istruzioni su come aggiungere account utente sul 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 è obbligatorio per tutte le connessioni, quando si crea un utente usare il comando seguente:
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.
Determinare i database e le tabelle da replicare in Database di Azure per MySQL server flessibile ed eseguire il dump dal server di origine. Per eseguire il dump dei database dal server primario è possibile usare mysqldump. Per altri dettagli, visitare Dump e ripristino. Non è necessario eseguire il dump della libreria MySQL e della libreria di test.
Impostare il server di origine sulla modalità di lettura/scrittura.
Dopo il dump del database, modificare l'istanza del server flessibile Database di Azure per MySQL di origine in modalità di lettura/scrittura.
SET GLOBAL read_only = OFF;
UNLOCK TABLES;
- Ripristinare il file dump nel nuovo server. Ripristinare il file di dump nel server creato in Database di Azure per MySQL server flessibile. Per ripristinare un file dump in un'istanza del server flessibile Database di Azure per MySQL, vedere Dump & Restore (Dump e ripristino). 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.
Filtro
Si supponga di configurare la replica dei 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 Database di Azure per MySQL 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.
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
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.
Verificare 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 il ritardo della replica. La replica sta elaborando gli aggiornamenti se il valore non0
è .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 per Database di Azure per MySQL - Server flessibile usando il portale di Azure.
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.