MySQL ger asynkron replikering i vilken en master databasserver replikeras till en eller flera slav -server. Du kan konfigurera replikering till att omfatta alla eller välj databaser eller bara markera tabeller . Replikering kan du sprida arbetsbelastningen över flera slavar , utföra säkerhetskopiering på slavarna utan korrumperande befälhavaren , utföra analyser på slavar utan att påverka prestandan av befälhavaren och distribuera data över långa avstånd . Grunderna
replikering sker via binära loggar . Dessa loggar innehåller alla de uppgifter som uppdateringar data, inklusive uttalanden som skulle kunna uppdatera data, men inte gör det . Befälhavaren server registrerar alla påståenden , och servern är konfigurerad för att ta emot en kopia av loggen . Slavarna kan konfigureras för att exekvera hela loggen eller bara delar av det ( t.ex. bara händelser på vissa databaser ) . Replikation information lagras i en fil som heter " master.info , " som är skapad med
"Change MASTER TO " uttalande . Denna fil innehåller information om värden befälhavarens namn , loggfilen namn och den ståndpunkt som skall läsas i loggfilen .
Replication Användare
slav kommer att ansluta till befälhavaren med en vanlig MySQL -konto med " REPLICATION SLAVE ' " privilegium . Användarnamnet och lösenordet för detta konto kommer att lagras som en vanlig textinmatning i " master.info " fil , så det är bäst att skapa en användare som endast har replikering privilegier . <
br > konfigurationsfiler
befälhavaren måste ha binär loggning aktiverad för utbyte av data. Det måste också konfigureras med en unik server - ID-värde . Dessa värden ställs in genom " my.cnf " fil som läses när servern startas . Värdena är placerade i " [ mysqld ] " avsnittet med följande syntax :
[ mysqld ] log - bin = mysql - binserver - id = 1
Slaven måste också konfigureras med en unik " server - id " genom " my.cnf " filen . Binary loggning behöver inte vara aktiverat , men det kan vara bra för säkerhetskopiering av data och återställning .
Replication
för replikering för att starta korrekt , först rensa ut Master binär logg med "flush tabeller med READ LOCK , " uttalande . Använd sedan " SHOW MASTER STATUS " uttalande att avgöra den binära namnet loggfilen och förskjutet läge .
Skapa en ögonblicksbild av data på master databasen med " mysqldump " utility . Från operativsystemet kommandotolken , skriv " mysqldump - all - databaser - lock - all -tables > dbdump.db " . Sedan , inifrån mysql klient , skriver på "Lås TABELLER , " uttalande att frigöra läslåset . Kopiera " dbdump.db " filen till var och en av slavarna med kommandot " mysql < dbdump.db " utfärdas från operativsystemets kommandotolken .
Slutligen inrätta slavarna att ansluta till befälhavaren med följande kommando:
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 ;
Ändra variabelvärden att spegla informationen för ditt system .