MySQL giver asynkron replikering i hvilken en master databaseserver replikeres til en eller flere slave -serveren . Du kan konfigurere replikering til at omfatte alle , eller vælg databaser eller kun vælge tabeller. Replication giver mulighed for at sprede arbejdsbyrden på tværs af flere slaver , udføre backups på slaverne uden korrumperende skibsføreren, udføre analyse på slaver uden at påvirke ydeevnen af master og distribuere data på tværs lange afstande. Grundlæggende
Replication er udført gennem de binære logs. Disse logfiler indeholder alle de udsagn, der opdatere data , herunder udtalelser , der potentielt kan opdatere data, men ikke gør det. Master serveren registrerer alle de udtalelser , og serveren er konfigureret til at modtage en kopi af loggen. Slaverne kan konfigureres til at udføre hele journalen eller kun dele af det ( f.eks kun begivenheder på bestemte databaser) .
Replikation oplysninger gemmes i en fil kaldet " master.info ", som er skabt med "Skift MASTER TO" erklæring. Denne fil indeholder oplysninger om værtsnavnet af master , logfilen navn og position til at blive læst i logfilen.
Replication Bruger
slave vil forbinde til master hjælp af en standard MySQL -konto med " REPLICATION SLAVE " " privilegium. Brugernavnet og adgangskoden til denne konto vil blive gemt som en almindelig tekst indtastning i " master.info " fil , så det er bedst at oprette en bruger , der kun har de replikation privilegier.
< br > Indstillingsfiler
føreren skal have binær logning aktiveret for udveksling af data. Det skal også være konfigureret med en unik server - id værdi. Disse værdier er sat gennem " my.cnf " fil , der læses når serveren starter . Værdierne er placeret i " [ mysqld ] " sektionen med følgende syntaks : Hej
[ mysqld ] log- bin = mysql- binserver - id = 1
Slaven skal også konfigureres med en unik "server - id" gennem " my.cnf " fil . Binary skovhugst behøver ikke at være aktiveret , men det kan være nyttigt for data backups og disaster recovery .
Replication
replikering til at starte korrekt , først rydde ud i master binær log med " FLUSH tabeller med READ LOCK , " erklæring . Brug derefter " SHOW MASTER STATUS " erklæring til at bestemme den binære logfil navn og offset position.
Opret et øjebliksbillede af data på master -databasen med " mysqldump " nytte . Fra operativsystemet kommandoprompten skrive " mysqldump - all - databaser - lock- alle - borde > dbdump.db " . Så inde fra mysql klient skrive "lås bordet; " erklæring for at udløse read lås. Kopier " dbdump.db " fil til hver af de slaver med kommandoen " mysql < dbdump.db " udstedt fra operativsystemets kommandoprompten.
Sidst oprette slaverne til at forbinde til master med følgende kommando : Hej
CHANGE 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 ,
Ændre variable værdier at afspejle oplysninger om dit system.