|
1.Replikacja w środowisku MySQL
Replikacja w środowisku MySQL działa w oparciu o schemat master-slave.
Srever master udostępnia dane zapisując je do pliku logowania binarnego.
Server slave pobiera dane i zapisuje je w replice. W pliku logowania
binarnego zapisane są jawnie polecenia SQL, które zostały wykonane na serwerze master.
Do replikacji wykorzystałem serwer MySQL w wersji 5.1. Pierwszą czynnością będzie instalacja dwóch kopii tych
serwerów na dwóch stanowiskach komputerowych w sieci lokalnej.
2.Konfiguracja serwera master
Na serwerze master należy włączyć logowanie binarne. Aby tego dokonać
należy dodać w pliku my.ini w sekcji [mysqld] następującą linię:
log-bin=mysql-bin
W tej samej sekcji dodajemy linię, która ustawia unikalny identyfikator serwera:
server-id=1
i restartujemy serwer. Następnie na serwerze master wykonujemy polecenie, które pokazuje
aktualną nazwę pliku logowania binarnego i bieżącą pozycję w tym pliku:
show master status;
Zapisujemy parametry File i Position. Będą one potrzebne do konfiguracji serwera slave.
Dodatkowo na serwerze master należy utworzyć użytkownika z uprawnieniami do pracy w
charakterze serwera slave. Za pomocą tego użytkownika serwer slave będzie łączyć się
z serwerem master.
GRANT REPLICATION SLAVE ON *.* to 'user_repl'@'%'IDENTIFIED BY 'repl_pwd' ;
3.Konfiguracja serwera slave
W sekcji [mysqld] dodajemy linię, która ustawia unikalny identyfikator dla serwera slave:
server-id=2
Następnie należy wykonać polecenie:
CHANGE MASTER TO
MASTER_HOST='ip_mastera',
MASTER_USER='user_repl',
MASTER_PASSWORD='repl_pwd',
MASTER_LOG_FILE='file',
MASTER_LOG_POS=position;
ip_mastera - to adres IP serwera master
user_repl - nazwa użytkownika utworzonego w punkcie 2
repl_pwd - hasło użytkownika utworzonego w punkcie 2
file - parametr File odczytany w punkcie 2
position - parametr Position odczytany wpunkcie 2
Aby rozpocząć replikację wykonujemy polecenie:
START SLAVE;
4.Dodatkowe opcje replikacji
Jeśli nie określimy inaczej replikowane będą wszystkie bazy danych. Aby wymusić replikację tylko wybranej bazy danych należy
na serwerze slave umieścić w pliku my.ini w sekcji [mysqld] następującą opcję:
-replicate-do-db=nazwa_bazy
Aby replikować wszystkie bazy z wyjątkiem jednej należy użyć opcji:
-replicate-ignore-db=nazwa_bazy
Aby replikować tylko wybraną tabelę można użyć następującej opcji na serwerze slave:
-replicate-do-table=nazwa_bazy.nazwa_tabeli
Aby replikować wszystkie tabele z wyjątkiem wybranej należy użyć następującej opcji na serwerze slave:
-replicate-ignore-table=nazwa_bazy.nazwa_tabeli
|
|
|