Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak ponownie zsynchronizować bazę danych Mysql, jeśli Master i Slave mają inną bazę danych w przypadku replikacji Mysql?

To jest pełna, krok po kroku procedura ponownej synchronizacji replikacji master-slave od zera:

U mistrza:

RESET MASTER;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

I skopiuj wartości wyniku ostatniego polecenia gdzieś.

Bez zamykania połączenia z klientem (ponieważ zwolniłoby to blokadę odczytu) wydaj polecenie, aby uzyskać zrzut mastera:

mysqldump -u root -p --all-databases > /a/path/mysqldump.sql

Teraz możesz zwolnić blokadę, nawet jeśli zrzut jeszcze się nie zakończył. Aby to zrobić, wykonaj następujące polecenie w kliencie MySQL:

UNLOCK TABLES;

Teraz skopiuj plik zrzutu do urządzenia podrzędnego za pomocą scp lub preferowanego narzędzia.

U niewolnika:

Otwórz połączenie z mysql i wpisz:

STOP SLAVE;

Załaduj zrzut danych mastera za pomocą tego polecenia konsoli:

mysql -uroot -p < mysqldump.sql

Synchronizuj logi slave i master:

RESET SLAVE;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=98;

Gdzie wartości powyższych pól są tymi, które skopiowałeś wcześniej.

Na koniec wpisz:

START SLAVE;

Aby sprawdzić, czy wszystko działa ponownie, po wpisaniu:

SHOW SLAVE STATUS;

powinieneś zobaczyć:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Otóż ​​to!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wydajność operatora MySQL IN na (dużej?) liczbie wartości

  2. Czy mogę na ślepo zastąpić wszystkie funkcje mysql_ mysqli_?

  3. Bezpieczeństwo baz danych 101:Bezpieczeństwo w bazach danych typu open source

  4. Jak usunąć ograniczenie niezerowe w MySQL?

  5. Wyjątek w głównym wątku java.sql.SQLException:Odmowa dostępu dla użytkownika „@”localhost” (przy użyciu hasła:NIE)