MySQL fornisce la replica asincrona in cui un server di database master viene replicata in uno o più server slave . È possibile configurare la replica di includere tutto o selezionare i database o solo su alcuni tavoli . La replica consente di ripartire il carico di lavoro su più schiavi , eseguire backup della schiavi senza corrompere il maestro , esegue analisi su schiavi senza compromettere le prestazioni del master e distribuire i dati su lunghe distanze . The Basics
replica viene eseguita attraverso i log binari . Questi registri contengono tutte le istruzioni che dati di aggiornamento , comprese le dichiarazioni che potrebbero aggiornare i dati , ma non lo fanno. Il server master registra tutte le dichiarazioni , e il server è configurato per ricevere una copia del registro . Gli schiavi possono essere configurati per eseguire l'intero registro o solo alcune parti di esso (come solo gli eventi su determinate basi di dati ) .
Informazioni di replica è memorizzato all'interno di un file chiamato " master.info ", che viene creato con il "CHANGE MASTER TO" dichiarazione. Questo file contiene informazioni sul nome host del maestro , il nome del file di log e la posizione da leggere all'interno del file di log .
La replica degli utenti
Lo schiavo si collega al master utilizzando un account MySQL standard con il "Replica SLAVE ' " privilegio . Il nome utente e la password per questo account verranno memorizzati come una voce di testo nel file " master.info " , quindi è meglio creare un utente che abbia i privilegi di replica .
File di configurazione
il master deve avere binario registrazione attivata per lo scambio di dati . Si deve anche essere configurato con un valore del server -id univoco. Questi valori vengono impostati tramite il file " my.cnf " che viene letto all'avvio del server . I valori vengono inseriti nella sezione " [ mysqld ] ", con la seguente sintassi :
[ mysqld ] log-bin = mysql - binserver - id = 1
Lo slave deve essere configurato con un unico "server - id" attraverso il file " my.cnf " . Registrazione binaria non deve essere abilitato , ma può essere utile per i backup dei dati e disaster recovery .
Replica
Per la replica di iniziare correttamente , prima cancellare la maestro log binario con le "tavole a filo con READ LOCK; " dichiarazione. Quindi utilizzare l'istruzione "SHOW MASTER STATUS " per determinare il nome del file di log binario e la posizione di offset .
Creare uno snapshot dei dati sul database master con l'utility " mysqldump " . Dal comando del sistema operativo , digitare " mysqldump - all -databases - lock- tutte - le tabelle > dbdump.db " . Poi , dall'interno del client MySQL , digitare le "Tabelle sbloccarsi, " dichiarazione per rilasciare il blocco di lettura . Copiare il file " dbdump.db " per ognuno degli slave con il comando " mysql < dbdump.db " rilasciato dal prompt dei comandi del sistema operativo .
Infine , impostare gli schiavi per la connessione al master con il seguente comando:
CHANGE MASTER TO MASTER_HOST = ' master_host_name ' , MASTER_USER = ' replication_user_name ' , MASTER_PASSWORD = ' replication_password ' , MASTER_LOG_FILE = ' recorded_log_file_name ' , MASTER_LOG_POS = recorded_log_position ;
Cambiare i valori delle variabili per riflettere le informazioni per il vostro sistema .