• Replica dei database MySQL

    Sul database server master impostiamo un id server e il log binario e riavviamo il servizio (un reload non è la stessa cosa). La dimensione del log di 100 MB dovrebbe essere sufficiente anche per sistemi molto grandi, ma potrebbe convenire di usare file da 1G. Nota importante: se viene a mancare lo spazio in /var/log/mysql/, il server database cessa a funzionare. Quindi è necessario monitorare il consumo dello spazio e aggiustare eventualmente le dimensioni e il ciclo di backup, che come valore predefinito è di 10 giorni. Per sistemi sempre connessi, è sufficiente un ciclo di 1-3 giorni.
    Codice:
    # /etc/init.d/mysql stop
    # nano /etc/mysql/my.cnf
    [mysqld]
    server-id = 1
    log-bin = /var/log/mysql/mysql-bin.log
    max_binlog_size = 100M
    Accediamo quindi a mysql per impostare un utente replica e bloccare la scrittura a tutte le tabelle. Dato che il processo di impostazione della replica potrebbe richiedere diverso tempo, consigliamo aprire quindi uno screen, che all'eventuale caduta connessione al sistema rimane attiva e quindi può essere ricaricata:
    Codice:
    # screen
    # /etc/init.d/mysql start
    # mysql -uroot -ppassword
    GRANT REPLICATION SLAVE ON *.* TO 'replicauser'@'%' IDENTIFIED BY 'metti-qui-una-password-sicura';
    FLUSH TABLES WITH READ LOCK;
    A questo punto, l'accesso a tutti i database è di sola lettura. Eseguiamo quindi il comando seguente, per ottenere la posizione attuale del log binario:
    Codice:
    SHOW MASTER STATUS;
    Se questa query restituisce una risposta simile a:
    Codice:
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000001 |      746 |              |                  |
    +------------------+----------+--------------+------------------+
    allora tutto è corretto, altrimenti non si ha impostato bene il log binario. Il file mysql-bin.000001 e la posizione 746 in questo esempio ci serve poi nella configurazione delle macchine slave.

    Ora passiamo alle macchine slave per copiare i database nello stato attuale, e senza chiudere la connessione al server master.
    Commenti 1 Commento
    1. L'avatar di Fabioserio
      Fabioserio -
      Grazie di questo articolo. molto interessante