🢂MySQL Replikacja ‑ Cheatsheet (ściąga)

Replikacja w MySQL to mechanizm umożliwiający automatyczne kopiowanie danych z jednej bazy danych (master) do jednej lub wielu baz danych (slave).

Oto ściąga obejmująca konfigurację replikacji Master-Slave i Master-Master w MySQL, z uwzględnieniem wysokiej dostępności:

Konfiguracja Master-Slave

Na serwerze Master:

  1. Edytuj plik konfiguracyjny my.cnf lub my.ini:
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
  1. Restart MySQL, a następnie utwórz użytkownika replikacyjnego:
CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
  1. Sprawdź pozycję binloga:
SHOW MASTER STATUS;

Na serwerze Slave:

  1. Skonfiguruj my.cnf z unikalnym ID:
[mysqld]
server-id = 2
relay-log = /var/log/mysql/mysql-relay-bin.log
  1. Podłącz do Mastera, używając danych z SHOW MASTER STATUS:
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='nazwa_binloga',
MASTER_LOG_POS=pozycja;
  1. Uruchom replikację i sprawdź status:
START SLAVE;
SHOW SLAVE STATUS\G

Konfiguracja Master-Master

Konfiguracja Master-Master wymaga ustawienia obu serwerów zarówno jako Master, jak i Slave.

Na każdym serwerze:

  1. Skonfiguruj my.cnf z unikalnym server-id i włączonym log_bin:
[mysqld]
server-id = 1 # Ustaw na 2 dla drugiego serwera
log_bin = /var/log/mysql/mysql-bin.log
auto_increment_increment = 2
auto_increment_offset = 1 # Ustaw na 2 dla drugiego serwera
  1. Stwórz użytkownika replikacyjnego i podłącz serwery wzajemnie tak, jak w konfiguracji Master-Slave.

Wysoka dostępność

Dla wysokiej dostępności możesz użyć rozwiązań takich jak MySQL Cluster, Percona XtraDB Cluster, czy MariaDB Galera Cluster, które oferują automatyczną replikację, failover i odzyskiwanie.

  1. MySQL Cluster:

    • Konfiguracja MySQL Cluster wymaga zdefiniowania węzłów zarządzających, danych i SQL Node.
    • Dokumentacja MySQL zawiera szczegółowe instrukcje konfiguracji.
  2. Percona XtraDB Cluster:

  • Instalacja na każdym węźle:
sudo apt-get install percona-xtradb-cluster-57
  • Konfiguracja obejmuje ustawienie wsrep_cluster_address w my.cnf oraz inicjalizację pierwszego węzła.
  1. MariaDB Galera Cluster:
  • Podobnie, instalujesz MariaDB, a następnie konfigurujesz galera.cnf z informacjami o klastrze.

Replikacja i wysoka dostępność wymagają starannej konfiguracji i regularnego monitorowania, aby zapewnić ciągłość działania usług. Upewnij się, że regularnie testujesz procedury awaryjne i backupy.