Korzystam z podwójnej głównej replikacji MySQL i teraz chcę przejść do pojedynczej bazy danych bez replikacji. Jak całkowicie wyłączyć replikację w obu bazach danych?
Korzystam z podwójnej głównej replikacji MySQL i teraz chcę przejść do pojedynczej bazy danych bez replikacji. Jak całkowicie wyłączyć replikację w obu bazach danych?
Odpowiedzi:
Aby całkowicie wyłączyć replikację za pomocą konfiguracji master-master, należy wykonać następujące czynności na każdym slave:
STOP SLAVE;
RESET SLAVE;
(Użyj RESET SLAVE ALL;
dla MySQL 5.5.16 i nowszych)SLAVE STATUS
zapytaniach, nawet po wydaniu RESET SLAVE
polecenia. Ważne informacje na temat narzędzi do monitorowania lub zdalnego zarządzania konfiguracją. Potwierdzone zachowanie w MySQL 5.5.38 na CentOS 6.5.
Wiem, że to stare pytanie, ale stwierdziłem, że muszę zresetować zmienne podrzędne. Jeśli użyjesz słowa „bla”, jak sugerowano, serwer spróbuje przy starcie znaleźć serwer „bla”.
Zmień
MASTER
naMASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='';
Możesz sprawdzić, czy maszyna nie jest już niewolnikiem
SHOW SLAVE STATUS \G;
CHANGE MASTER TO MASTER_HOST=''
teraz powoduje błąd.
Na serwerach podrzędnych:
Nie ma potrzeby restartowania MySQL na urządzeniu nadrzędnym lub podrzędnym. Pełna dokumentacja znajduje się w rozdziale 19 Podręcznika MySQL .
Zalecam pozostawienie pozostałych ustawień replikacji na wypadek, gdybyś zdecydował się przywrócić poprzednią konfigurację. W ten sposób wystarczy przepchnąć dane i zresetować pozycję slave (nie zapomnij usunąć pominięcia start-slave), zamiast odtwarzać całą konfigurację.
Niezależnie od wersji MySQL, najbardziej kompletny sposób to zrobić:
cd /var/lib/mysql
service mysql stop
rm -f master.info relay-*`
service mysql start
Musi to działać w jego najnowszej wersji, ponieważ ustawienia replikacji nadal pozostają w pamięci RAM dla MySQL 5.5.
Właśnie odpowiedziałem na podobne pytanie na ten temat: Jak zmienić poprzednią jednostkę podrzędną MySQL na master i usunąć informacje o statusie jednostki podrzędnej?
Sama edycja pliku my.cnf nie jest wystarczająca, aby wyłączyć replikację. W rzeczywistości nie jest to już zalecany sposób jego włączenia. Wpisy w pliku my.cnf działają tylko przy następnym uruchomieniu i zachowują się, jakbyś wprowadził polecenie do klienta mysql:
mysql> zmień master na master_host = 'blah', master_user = 'blah', master_password = 'blah' ...;
Obie te metody utworzą plik w katalogu danych o nazwie master.info . Tak długo, jak ten plik istnieje, serwer będzie próbował replikować się przy użyciu zawartych w nim szczegółów. „RESETUJ SLAVE;” polecenie wymienione w pierwszej odpowiedzi spowoduje usunięcie pliku master.info (a także pliku relay-log.info ). Jak wspomniano w pierwszej odpowiedzi, należy również upewnić się, że nie ma tych informacji konfiguracyjnych w pliku my.cnf, w przeciwnym razie przy następnym ponownym uruchomieniu serwera rejestrowanie zostanie ponownie włączone.
Jedna odpowiedź jest tutaj:
http://www.oops.net.br/~bac/bam/canopy_repl_setup.htm
* Edytuj plik konfiguracyjny MySQL: /etc/my.cnf i usuń następujące 7 wierszy do sekcji zatytułowanej [mysqld]:
port=3306
log-bin
server-id=1
master-host=10.0.0.2
master-user=server_1_repl
master-password=server_1_passwd
master-port=3306*
Uruchom ponownie MySQL.
Dodaję to do odpowiedzi Harrisona Fiska:
Jeśli użyłeś, RESET SLAVE ALL;
to restart nie jest konieczny.
Ponadto możesz włączyć zdarzenia, które zostały wyłączone w slave:
select * from information_schema.events where status = 'SLAVESIDE_DISABLED';
Dla każdego z nich:
alter event <event_name> enable;