User Tools

Site Tools


doc:appunti:linux:sa:mysql_replica_master_master

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:mysql_replica_master_master [2011/09/08 12:51] – [MySQL replica master-master] niccolodoc:appunti:linux:sa:mysql_replica_master_master [2025/03/12 15:03] (current) – [Verifica dello stato SLAVE] niccolo
Line 6: Line 6:
   * **[[http://www.howtoforge.com/mysql_master_master_replication|MySQL Master Master Replication]]**   * **[[http://www.howtoforge.com/mysql_master_master_replication|MySQL Master Master Replication]]**
  
-===== Configurare la replica master-master (su un solo database) =====+===== Configurare la replica master-master ===== 
 + 
 +Con questa configurazione si tiene replicato **un solo database**.
  
 <code> <code>
Line 47: Line 49:
 /etc/init.d/mysql restart /etc/init.d/mysql restart
 </code> </code>
 +
 +Per vedere se si sono assegnati i permessi di replica:
 +
 +<code>
 +SHOW GRANTS FOR 'slave2_user'@'%';
 +</code>
 +
 +Ovviamente è opportuno concedere i grant non dall'indirizzo IP wildcard **%%%%%**, ma al singolo utente/indirizzo, del tipo **%%'replication'@'116.213.177.13'%%**.
 +===== Sincronizzare il db =====
 +
 +<code>
 +-- Su server1
 +USE exampledb;
 +FLUSH TABLES WITH READ LOCK;
 +SHOW MASTER STATUS;
 +-- Prendere nota dello status.
 +-- Fare un dump e copiarlo sull'altro host.
 +UNLOCK TABLES;
 +
 +-- Su server2
 +-- mysqladmin --user=root --password stop-slave
 +CREATE DATABASE exampledb;
 +-- mysql -u root -p exampledb < exampledb.sql
 +USE exampledb;
 +FLUSH TABLES WITH READ LOCK;
 +SHOW MASTER STATUS;
 +-- Prendere nota dello status.
 +UNLOCK TABLES;
 +CHANGE MASTER TO MASTER_HOST='192.168.3.71', MASTER_USER='slave2_user',
 +    MASTER_PASSWORD='slave2_password', MASTER_LOG_FILE='mysql-bin.000001',
 +    MASTER_LOG_POS=106;
 +START SLAVE;
 +SHOW SLAVE STATUS;
 +
 +-- Su server1
 +STOP SLAVE;
 +CHANGE MASTER TO MASTER_HOST='192.168.3.73', MASTER_USER='slave1_user',
 +    MASTER_PASSWORD='slave1_password', MASTER_LOG_FILE='mysql-bin.000001',
 +    MASTER_LOG_POS=2359;
 +START SLAVE;
 +SHOW SLAVE STATUS;
 +</code>
 +===== Verifica dello stato SLAVE =====
 +
 +Come utente Unix root ci si collega al database MASTER/SLAVE:
 +
 +<code>
 +mysql dbname
 +</code>
 +
 +Per vedere lo stato di slave:
 +
 +<code sql>
 +SHOW STATUS LIKE 'Slave_running';
 +</code>
 +
 +<code>
 ++---------------+-------+
 +| Variable_name | Value |
 ++---------------+-------+
 +| Slave_running | ON    |
 ++---------------+-------+
 +</code>
 +
 +Per verificare lo stato di slave e in particolare il numero di log in corso di replica (**Relay_Master_Log_File**):
 +
 +<code sql>
 +SHOW SLAVE STATUS\G;
 +</code>
 +
 +<code>
 +MariaDB [dbname]> SHOW SLAVE STATUS\G;
 +*************************** 1. row ***************************
 +               Slave_IO_State: Waiting for master to send event
 +                  Master_Host: 172.16.2.163
 +                  Master_User: replication
 +                  Master_Port: 3306
 +                Connect_Retry: 60
 +              Master_Log_File: mariadb-bin.004356
 +          Read_Master_Log_Pos: 845159197
 +               Relay_Log_File: relay-bin.012490
 +                Relay_Log_Pos: 819964666
 +        Relay_Master_Log_File: mariadb-bin.004300
 +             Slave_IO_Running: Yes
 +            Slave_SQL_Running: Yes
 +              Replicate_Do_DB: 
 +          Replicate_Ignore_DB: 
 +           Replicate_Do_Table: 
 +       Replicate_Ignore_Table: 
 +      Replicate_Wild_Do_Table: 
 +  Replicate_Wild_Ignore_Table: 
 +                   Last_Errno: 0
 +                   Last_Error: 
 +                 Skip_Counter: 0
 +          Exec_Master_Log_Pos: 819964380
 +              Relay_Log_Space: 61048049539
 +              Until_Condition: None
 +               Until_Log_File: 
 +                Until_Log_Pos: 0
 +           Master_SSL_Allowed: No
 +           Master_SSL_CA_File: 
 +           Master_SSL_CA_Path: 
 +              Master_SSL_Cert: 
 +            Master_SSL_Cipher: 
 +               Master_SSL_Key: 
 +        Seconds_Behind_Master: 6789
 +Master_SSL_Verify_Server_Cert: No
 +                Last_IO_Errno: 0
 +                Last_IO_Error: 
 +               Last_SQL_Errno: 0
 +               Last_SQL_Error: 
 +  Replicate_Ignore_Server_Ids: 
 +             Master_Server_Id: 2
 +</code>
 +
 +Se **durante la sincronizzazione uno statement fallisce** si vede l'errore. È possibile far ripartire la sincronizzazione saltando un singolo statement con i comandi:
 +
 +<code sql>
 +STOP SLAVE;
 +SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
 +START SLAVE;
 +</code>
 +
 ===== Crash test ===== ===== Crash test =====
  
doc/appunti/linux/sa/mysql_replica_master_master.1315479105.txt.gz · Last modified: 2011/09/08 12:51 by niccolo