La replica dei dati è il processo di copia dei dati su più server per migliorare la disponibilità dei dati e migliorare l'affidabilità e le prestazioni di un'applicazione. In MySQL replica, i dati vengono copiati da un database dal server master ad altri nodi in tempo reale per garantire la coerenza dei dati e anche per fornire backup e ridondanza.
In questa guida mostriamo come configurare MySQL (Maestro-Schiavo ) replica in distribuzioni basate su RHEL come CentOS , Fedora , Linux roccioso, e AlmaLinux .
Impostazione replica MySQL
Quindi, ecco il nostro MySQL configurazione del laboratorio di replica.
MySQL Master - 10.128.0.14 MySQL Slave - 10.128.15.211
Iniziamo...
Passaggio 1:installa MySQL su server master e slave
Inizieremo installando MySQL database su entrambi i master e schiavo server.
$ sudo dnf install @mysql
Una volta completata l'installazione, fai in modo di avviare il server del database.
$ sudo systemctl start mysqld
Quindi abilitalo per l'avvio all'avvio del sistema o al riavvio.
$ sudo systemctl enable mysqld
Successivamente, conferma che MySQL il server del database è in esecuzione come mostrato:
$ sudo systemctl status mysqld
Fase 2:proteggi MySQL su server master e slave
Il passaggio successivo è proteggere MySQL database su entrambi i master e schiavo server. Questo perché le impostazioni predefinite non sono sicure e presentano alcune scappatoie che possono essere facilmente sfruttate dagli hacker.
Quindi, per rafforzare MySQL, esegui il comando:
$ sudo mysql_secure_installation
Innanzitutto, ti verrà richiesto di impostare MySQL password di root. Assicurati di fornire una password di root complessa, preferibilmente con più di 8 caratteri che sono un mix di caratteri maiuscoli, minuscoli, speciali e numerici.
Per i restanti prompt, digita 'Y'
per modificare il server di database sulle impostazioni consigliate.
Una volta terminata l'installazione e la protezione avanzata di MySQL sul nodo master e slave, il passo successivo è configurare il nodo master.
Fase 3:Configura il nodo principale (server)
Il passaggio successivo consiste nel configurare il Master nodo e concedi lo slave accesso del nodo ad esso. Innanzitutto, dobbiamo modificare mysql-server.cnf file di configurazione.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Aggiungi le seguenti righe sotto [mysqld]
sezione.
bind-address = 10.128.0.14 server-id = 1 log_bin = mysql-bin
Al termine, salva le modifiche ed esci. Quindi riavvia MySQL server.
$ sudo sysemctl restart mysqld
Quindi, accedi a MySQL guscio.
$ sudo mysql -u root -p
Esegui i seguenti comandi per creare un utente del database che verrà utilizzato per associare il master e lo slave per la replica.
mysql> CREATE USER 'replica'@'10.128.15.211' IDENTIFIED BY '[email protected]'; mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'10.128.15.211';
Applica le modifiche ed esci da MySQL server.
mysql> FLUSH PRIVILEGES; mysql> EXIT;
Verifica lo stato del master.
mysql> SHOW MASTER STATUS\G
Prendi nota del nome del file e della posizione. Ne avrai bisogno in seguito durante la configurazione dello slave per la replica. Nel nostro caso, abbiamo il nome del file come mysql-bin.000001
e Posizione 1232 .
Fase 4:Configura il nodo slave (server)
Ora, torna al nodo Slave. Ancora una volta, modifica mysql-server.cnf file di configurazione.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Come prima, incolla queste righe sotto [mysqld]
sezione. Modificare l'indirizzo IP in modo che corrisponda all'IP dello slave. Inoltre, assegna un diverso ID server . Qui gli abbiamo assegnato il valore di 2 .
bind-address = 10.128.15.211 server-id = 2 log_bin = mysql-bin
Salva le modifiche ed esci dal file. Quindi riavvia il server del database.
$ sudo systemctl restart mysqld
Per configurare lo Slave nodo per replicare dal nodo Master, accedi al server MySQL dello Slave.
$ sudo mysql -u root -p
Innanzitutto, interrompi i thread di replica:
mysql> STOP SLAVE;
Quindi eseguire il comando seguente per configurare il nodo slave per replicare i database dal master.
mysql> CHANGE MASTER TO MASTER_HOST='10.128.0.14' , MASTER_USER='replica' , MASTER_PASSWORD='[email protected]' , MASTER_LOG_FILE='mysql-bin.000001' , MASTER_LOG_POS=1232;
Nota che il MASTER_LOG_FILE e MASTER_LOG_POS i flag corrispondono al file e alla Posizione valori del Master nodo alla fine del passaggio 1.
Il MASTER_HOST , MASTER_USER, e MASTER_PASSWORD corrispondono rispettivamente all'indirizzo IP principale, all'utente di replica e alla password dell'utente di replica.
Quindi avvia i thread di replica slave:
mysql> START SLAVE;
Fase 4:test della replica MySQL Master-Slave
Ora, per verificare se la replica tra il nodo master e quello slave funziona, accedi al server del database MySQL sul nodo master:
$ sudo mysql -u root -p
Crea un database di prova. Qui, il nostro database di test si chiama replication_db .
mysql> CREATE DATABASE replication_db;
Verify the existence of the database.
mysql> SHOW DATABASES;
Ora vai al nodo slave, accedi al server MySQL e conferma che il db_replica la banca dati è presente. Dall'output sottostante, possiamo vedere che il database è presente. Questa è la conferma che la replica è avvenuta dal nodo Master al nodo slave.
mysql> SHOW DATABASES;
E il gioco è fatto, abbiamo dimostrato con successo come configurare un MySQL modello di replica master-slave in grado di replicare i database dal nodo master al nodo slave.