GNU/Linux >> Linux Esercitazione >  >> Linux

Configura la replica della replica sorgente di MySQL

La replica dei dati della replica di origine consente di copiare i dati replicati su più computer per il backup e l'analisi da parte di più parti. È necessario inviare le modifiche necessarie identificate da un membro del gruppo al primario designato del nodo. Questo è diverso da source-sourcereplication, in cui qualsiasi collaboratore autorizzato del gruppo può aggiornare i dati.

Questo articolo fornisce i passaggi per configurare la replica del database MySQL® della replica sorgente tra due server cloud. Il sistema operativo utilizzato per gli esempi nell'articolo è CentOS® 6, costruito da un'immagine di base di Rackspace CloudServers.

Prima di iniziare

I passaggi in questo articolo utilizzano due server cloud, db01 e db02 I server .Cloud hanno due indirizzi IP (uno pubblico, uno privato). Gli esempi mostrano la configurazione della replica sull'interfaccia IP privata in modo che non vengano addebitati costi di larghezza di banda. Per la durata dell'articolo, db01 è considerata la fonte Server MySQL (in esecuzione in modalità lettura-scrittura) e db02 è considerata la replica server (in esecuzione in modalità di sola lettura).

Se si dispone già di un database MySQL in esecuzione sul nodo di origine, è necessario eseguire il dump e il ripristino nel nodo di replica prima di configurare la replica tra di essi. Usa mysqldump comando per eseguire il dump di un database in un file, quindi trasferirlo e ripristinarlo nella replica. Dopo aver eseguito la configurazione necessaria, la replica non ha effetto. Per ulteriori informazioni, vedere la sezione Configura replica.

Crea i Cloud Server

Crea due server cloud Linux®, utilizzando l'immagine di base di Centos 6. Utilizzare i seguenti passaggi per creare ciascun server separatamente.

  1. Accedi al pannello di controllo del cloud.
  2. Nella barra di navigazione in alto, fai clic su Seleziona un prodotto quindi Rackspace Cloud .
  3. Seleziona Server quindi Server cloud .
  4. Fai clic su Crea server .
  5. Assegna un nome ai server in modo da poterli identificare facilmente durante l'installazione.
  6. Seleziona l'immagine di base di Centos 6.
  7. Seleziona la configurazione RAM (flavor) appropriata per i requisiti del tuo database.
  8. Fai clic su Crea server .

I comandi descritti nelle sezioni seguenti devono essere eseguiti da un utente root o sudo con privilegi. Eventuali stringhe o valori specificati tra parentesi devono essere sostituiti con dati specifici per la tua configurazione.

Installa MySQL

Devi installare il mysql-server pacchetto su entrambi i server cloud CentOS.

  1. Prima di installare MySQL, verifica che il database del pacchetto sia aggiornato eseguendo il comando seguente:

    #yum update
    
  2. Installa MySQL e abilitalo all'esecuzione automatica all'avvio:

     #yum install mysql-server
    #chkconfig mysqld on
    
  3. Avvia mysqld servizio:

    #service mysqld start
    
  4. Dopo mysqld il servizio è stato avviato, imposta la tua password MySQL serverroot utilizzando i seguenti comandi:

    /usr/bin/mysqladmin -u root password 'new-password'
    /usr/bin/mysqladmin -u root -h web01 password 'new-password'
    

    Nota :In alternativa, puoi eseguire lo script di installazione sicura incluso nell'installazione di MySQL:

    # /usr/bin/mysql_secure_installation
    Enter current password for root (enter for none):
    ...
    Set root password? [Y/n] Y
    ...
    Remove anonymous users? [Y/n] Y
    ...
    Disallow root login remotely? [Y/n] Y
    ...
    Remove test database and access to it? [Y/n] Y
    ...
    Reload privilege tables now? [Y/n] Y
    
  5. Per consentire le connessioni sulla porta 3306 (il mysqld porta predefinita), aggiungere una regola della porta TCP 3306 con un inserto all'ultimo numero di riga in RH-Firewall-1-INPUT catena (in questo caso, riga 10):

    # iptables -I RH-Firewall-1-INPUT 10 -p tcp --dport 3306 -j ACCEPT
    
  6. Salva la configurazione del firewall:

    # service iptables save
    

Completa la sezione seguente per apportare le modifiche rilevanti alla configurazione per consentire la replica.

Configura replica

Un utente MySQL è richiesto sul server di origine (db01 ) da utilizzare per la replica.

  1. Esegui i seguenti comandi per configurare l'utente MySQL, aggiornando le voci tra parentesi con stringhe o valori che prevedi di utilizzare con la tua configurazione:

    Nota: Potrebbe non essere necessario creare l'utente nel codice seguente.

    # mysql -u root -p
    mysql> create user [replication_username]@'[private IP of db02]' identified by '[some password]';
    mysql> grant replication slave on *.* TO [replication_username]@'[private IP of db02]';
    mysql> flush privileges;
    mysql> quit
    
  2. Modifica il /etc/my.cnf file e aggiungi le seguenti voci:

    bind-address = 0.0.0.0
    server-id = 1
    log-bin = mysql-bin
    binlog-ignore-db = "mysql"
    
  3. Dopo aver terminato l'aggiornamento di /etc/my.cnf file, riavvia mysqld servizio.

    #service mysqld restart
    

    Prima di avviare la replica, i dati sui server di origine e di replica devono essere gli stessi. Per eseguire questa duplicazione, scarica i dati dalla sorgente (db01 ) e aggiungerlo alla replica (db02 ) server.

  4. Utilizzare il comando seguente per assicurarsi che nulla possa scrivere nel database di origine durante un dump del database. Nota anche il nome del file e la posizione del log binario perché sono necessari questi valori per completare la configurazione della replica su db02:

    # mysql -u root -p
    mysql> FLUSH TABLES WITH READ LOCK;
    mysql> SHOW MASTER STATUS;
    
    +------------------+--------------------------+------------------+
    | File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+--------------------------+------------------+
    | mysql-bin.000010 |        10 |              | mysql            |
    +------------------+--------------------------+------------------+
    1 row in set (0.00 sec)
    

    Nota 1: Registra il nome del file e la posizione del log binario perché hai bisogno di questi valori per completare la configurazione della replica su db02 .

    Nota 2: Tieni aperta questa sessione, chiudendola si sgancia il lucchetto!

  5. Esegui un dump del database usando mysqldump come segue:

    # mysqldump -u root -p --databases [database-1] [database-2] ...  > /root/db_dump.sql
    
  6. Al termine del dump del database, rimuovere il blocco di lettura dal codice sorgente(db01 ) digitando quanto segue o uscendo dalla sessione aperta:

    mysql> UNLOCK TABLES;
    
  7. Copiare il file di dump del database nel server di replica in modo che possa essere ripristinato utilizzando il comando seguente:

    scp /root/db_dump.sql [private-IP-of-db02]:/root/
    
  8. Su db02 , modifica /etc/my.cnf file e aggiungi le seguenti voci:

    bind-address = 0.0.0.0
    server-id = 2
    master-host =  [private-IP-of-db01]
    master-user = [replication-username]
    master-password = [replication-password]
    master-connect-retry = 60
    
  9. Importa db_dump.sql file copiato in precedenza e riavviare il servizio MySQL.

    # mysql -u root -p < /root/db_dump.sql
    # service mysqld restart
    
  10. Completa i passaggi di replica della replica:

    # mysql -u root -p
    mysql> SLAVE STOP;
    mysql> CHANGE MASTER TO MASTER_HOST='[private-IP-of-db01]',
    MASTER_USER='[replication-username]',
    MASTER_PASSWORD='[replication-password]',
    MASTER_LOG_FILE='[file-listed-on-master-status]',
    MASTER_LOG_POS=[log-position-listed-on-master-status];
    mysql> START SLAVE;
    mysql> SHOW SLAVE STATUS\G
    

    Nota: Lo Stato_Slave_IO_ il campo dovrebbe mostrare "In attesa dell'evento principale per l'invio". Se mostra "Connessione al Master", controlla il tuo file di registro MySQL. Per impostazione predefinita, è /var/log/mysqld.log , ma potrebbe essere configurato in modo diverso sul tuo sistema. Sempre, /etc/my.cnf definisce la posizione del file di registro.

Test replica

Per testare l'impostazione della replica, crea un nuovo database e una tabella associata su db01 e inserisci i dati per confermare che le modifiche siano rispecchiate su db02 . Nell'esempio seguente, il nuovo database è denominatotesting e la nuova tabella si chiama users :

# mysql -u root -p
mysql> create database testing;
mysql> use testing
mysql> create table users(id int not null auto_increment, primary key(id), username varchar(30) not null);
mysql> insert into users (username) values ('foo');
mysql> insert into users (username) values ('bar');
mysql> exit

Dovresti vedere le modifiche su db02 immediatamente.


Linux
  1. Come configurare la replica MySQL su CentOS

  2. Come configurare MySQL Cluster su Ubuntu

  3. Configura la replica della replica sorgente di MySQL

  4. Configura la replica sorgente-origine MySQL

  5. Qual è lo scopo di "utente di sistema" in MySQL Replication

Come configurare la replica MySQL Master-Slave su Ubuntu 18.04

Come configurare la replica MySQL Master-Slave su CentOS 7

Replica MySQL 8 Master-Slave su Ubuntu 20.04

Come configurare l'accesso MySQL remoto su cPanel?

Come configurare la replica Master-Slave MariaDB su CentOS 7

Come impostare la replica MySQL Master-Slave su RHEL 7?