MySQL gir asynkron replikering der en master database server er kopiert til en eller flere slave server. Du kan konfigurere replikering til å omfatte alle eller utvalgte databaser eller kun utvalgte tabeller. Replikering kan du spre arbeidsmengden over flere slaver , utføre sikkerhetskopiering på slavene uten å ødelegge master, utføre analyser på slaver uten å påvirke ytelsen til master og distribuere data på tvers av lange avstander. The Basics
Replication er utført gjennom de binære logger. Disse loggene inneholder alle utsagnene som oppdaterer data, inkludert uttalelser som potensielt kan oppdatere data , men gjør det ikke. Hovedserveren registrerer alle utsagnene , og serveren er konfigurert til å motta en kopi av loggen . Slavene kan konfigureres til å utføre hele loggen eller bare deler av det (som bare hendelser på enkelte databaser) .
Replikering informasjon er lagret i en fil som heter " master.info ", som er opprettet med den "CHANGE MASTER tIL " statement. Denne filen inneholder informasjon om vertsnavn av master , loggfilen navn og posisjon til å leses i loggfilen .
Replication Bruker
slave vil koble til master ved hjelp av en standard MySQL -konto med " Replication SLAVE ' " privilegium. Brukernavnet og passordet for denne kontoen vil bli lagret som en vanlig tekst i " master.info " fil, så det er best å lage en bruker som bare har de replikering privilegier.
konfigurasjonsfiler
mesteren må ha binær logging aktivert for utveksling av data . Det må også være konfigurert med en unik server - id verdi. Disse verdiene er satt gjennom " my.cnf " fil som blir lest når serveren starter . Verdiene er plassert i " [ mysqld ] " seksjon med følgende syntaks : en
[ mysqld ] log - bin = mysql - binserver - id = 1
slave må også konfigureres med en unik "server - id" gjennom " my.cnf " filen . Binær logging trenger ikke å være aktivert , men det kan være nyttig for sikkerhetskopiering av data og gjenoppretting .
Replication
For replikering å starte riktig, først tømme ut mester binære log med " FLUSH BORD mED LES LOCK , " statement. Deretter bruker du " SHOW MASTER STATUS" uttalelse for å fastslå den binære loggfilen navn og offset posisjon.
Lag et øyeblikksbilde av dataene på master databasen med " mysqldump " verktøyet. Fra operativsystemet ledeteksten skriver " mysqldump - all - databaser - lock- alle - tabeller > dbdump.db " . Deretter, fra i mysql klient , skriver de " låse bordet; " statement å slippe lese lås . Kopiere " dbdump.db " fil til hver av slavene med kommandoen " mysql < dbdump.db " utgitt fra operativsystemets ledeteksten .
Slutt sette opp slavene å koble til master med følgende kommando:
ENDRE MASTER tIL 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 ;
Endre variable verdier å reflektere for systemet .