Debian na serwerze baz danych: Konfiguracja replikacji i backupu baz danych (PostgreSQL, MySQL/MariaDB)
Linux

Debian na serwerze baz danych: Konfiguracja replikacji i backupu baz danych (PostgreSQL, MySQL/MariaDB)

Debian na serwerze baz danych: Konfiguracja replikacji i backupu baz danych (PostgreSQL, MySQL/MariaDB)

Debian jest jednym z najczęściej wykorzystywanych systemów operacyjnych w środowiskach serwerowych. Jego stabilność, bezpieczeństwo i otwartość sprawiają, że jest idealnym wyborem do hostowania serwerów baz danych. W tym artykule przedstawimy, jak skonfigurować i zarządzać replikacją oraz backupem baz danych w systemie Debian dla popularnych systemów zarządzania bazami danych: PostgreSQL oraz MySQL/MariaDB. Odpowiednia konfiguracja replikacji i backupu jest kluczowa dla zapewnienia integralności danych, dostępności systemu oraz wydajności.

Dlaczego replikacja i backup są kluczowe?

Zarządzanie bazami danych w dużych środowiskach produkcyjnych wymaga zapewnienia ciągłej dostępności, ochrony danych oraz wysokiej wydajności. Replikacja i backup są niezbędne do osiągnięcia tych celów:

  1. Replikacja: Dzięki replikacji danych, można tworzyć kopie baz danych na innych serwerach. W przypadku awarii jednego z serwerów, druga kopia bazy danych może przejąć obciążenie, zapewniając ciągłość działania aplikacji.
  2. Backup: Regularne kopie zapasowe pozwalają na szybkie przywrócenie danych po awarii, błędach użytkownika, usunięciu danych lub atakach cybernetycznych.
Debian na serwerze baz danych: Konfiguracja replikacji i backupu baz danych (PostgreSQL, MySQL/MariaDB)
Debian na serwerze baz danych: Konfiguracja replikacji i backupu baz danych (PostgreSQL, MySQL/MariaDB)

Konfiguracja replikacji w PostgreSQL na Debianie

1. Instalacja PostgreSQL

Aby rozpocząć konfigurację replikacji, należy najpierw zainstalować PostgreSQL na serwerze Debian. Można to zrobić za pomocą menedżera pakietów apt.

sudo apt update
sudo apt install postgresql postgresql-contrib

2. Konfiguracja serwera master

Replikacja w PostgreSQL polega na synchronizacji danych z serwera głównego (master) na serwery podrzędne (standby). Pierwszym krokiem jest skonfigurowanie serwera master:

  1. Otwórz plik konfiguracyjny PostgreSQL:
    sudo nano /etc/postgresql/12/main/postgresql.conf
    
  2. Włącz replikację, zmieniając następujące ustawienia:
    listen_addresses = '*'
    wal_level = replica
    max_wal_senders = 3
    wal_keep_segments = 64
    hot_standby = on
    
  3. Zezwól na połączenia z serwera replikacyjnego, edytując plik pg_hba.conf:
    sudo nano /etc/postgresql/12/main/pg_hba.conf
    
  4. Dodaj poniższą linię, aby zezwolić na połączenia replikacyjne:
    host    replication     all             192.168.0.2/32           md5
    

    Zamień 192.168.0.2 na adres IP serwera replikacyjnego.

  5. Zrestartuj serwis PostgreSQL:
    sudo systemctl restart postgresql
    

3. Przygotowanie serwera podrzędnego

Na serwerze podrzędnym zainstaluj PostgreSQL, a następnie skonfiguruj go do synchronizacji z serwerem master.

  1. Zatrzymaj serwis PostgreSQL:
    sudo systemctl stop postgresql
    
  2. Zrób kopię bazy danych z serwera master:
    sudo -u postgres pg_basebackup -h 192.168.0.1 -D /var/lib/postgresql/12/main -U repl_user -P --wal-method=stream
    

    Zamień 192.168.0.1 na adres IP serwera master. Użytkownik repl_user to użytkownik replikacji na serwerze master.

  3. Skonfiguruj plik recovery.conf:
    sudo nano /var/lib/postgresql/12/main/recovery.conf
    
  4. Dodaj następujące linie:
    standby_mode = on
    primary_conninfo = 'host=192.168.0.1 port=5432 user=repl_user password=repl_password'
    trigger_file = '/tmp/postgresql.trigger.5432'
    
  5. Uruchom serwis PostgreSQL na serwerze podrzędnym:
    sudo systemctl start postgresql
    

Replikacja powinna teraz działać. Możesz sprawdzić status replikacji na serwerze master:

sudo -u postgres psql -c "SELECT * FROM pg_stat_replication;"

Konfiguracja replikacji w MySQL/MariaDB na Debianie

1. Instalacja MySQL/MariaDB

Replikacja w MySQL/MariaDB działa w sposób podobny do PostgreSQL, ale z innymi mechanizmami. Na początku należy zainstalować MySQL lub MariaDB:

sudo apt update
sudo apt install mysql-server

2. Konfiguracja serwera master

  1. Edytuj plik konfiguracyjny MySQL:
    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    
  2. W sekcji [mysqld] dodaj następujące linie:
    server-id = 1
    log_bin = /var/log/mysql/mysql-bin.log
    bind-address = 0.0.0.0
    
  3. Zrestartuj MySQL:
    sudo systemctl restart mysql
    
  4. Utwórz użytkownika replikacji:
    sudo mysql -u root -p
    

    W konsoli MySQL wykonaj:

    CREATE USER 'repl_user'@'%' IDENTIFIED BY 'repl_password';
    GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
    FLUSH PRIVILEGES;
    

3. Przygotowanie serwera podrzędnego

Na serwerze podrzędnym wykonaj podobne kroki jak w przypadku PostgreSQL:

  1. Zainstaluj MySQL/MariaDB.
  2. Zatrzymaj serwis MySQL:
    sudo systemctl stop mysql
    
  3. Zrób kopię danych z serwera master:
    sudo mysqldump -u root -p --all-databases --master-data > all_databases.sql
    
  4. Skopiuj plik dumpa na serwer podrzędny i załaduj go:
    sudo mysql -u root -p < all_databases.sql
    
  5. Skonfiguruj replikację:

    Na serwerze podrzędnym uruchom MySQL i wykonaj poniższe polecenia:

    CHANGE MASTER TO MASTER_HOST='192.168.0.1', MASTER_USER='repl_user', MASTER_PASSWORD='repl_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;
    START SLAVE;
    

Backup baz danych

1. Backup w PostgreSQL

PostgreSQL oferuje kilka metod wykonywania kopii zapasowych:

  • pg_dump – dla pojedynczych baz danych:
    sudo -u postgres pg_dump db_name > backup.sql
    
  • pg_basebackup – do tworzenia pełnych kopii zapasowych serwera:
    sudo -u postgres pg_basebackup -D /path/to/backup -Ft -z -P
    

2. Backup w MySQL/MariaDB

Dla MySQL i MariaDB używa się narzędzia mysqldump do wykonywania kopii zapasowych:

  • Kopia zapasowa wszystkich baz danych:
    sudo mysqldump -u root -p --all-databases > all_databases.sql
    
  • Kopia zapasowa jednej bazy danych:
    sudo mysqldump -u root -p db_name > db_name_backup.sql
    

3. Backup z użyciem narzędzi do automatyzacji

Aby zautomatyzować proces backupu, warto używać narzędzi takich jak cron, które umożliwiają harmonogramowanie regularnych kopii zapasowych.

Podsumowanie

Konfiguracja replikacji i backupu baz danych w systemie Debian jest kluczowym elementem utrzymania dostępności i bezpieczeństwa danych. Zarówno w przypadku PostgreSQL, jak i MySQL/MariaDB, poprawna konfiguracja replikacji zapewnia redundancję i wysoką dostępność, a regularne tworzenie kopii zapasowych daje pewność, że dane będą bezpieczne w razie awarii. Pamiętaj, aby testować procesy replikacji i backupu, aby mieć pewność, że będą one działały w sytuacjach kryzysowych.

Więcej o Linux możesz poczytać tu: Linux podstawy

Polecane wpisy
Cockpit: graficzne zarządzanie systemem Linux przez przeglądarkę – instalacja i konfiguracja
Cockpit: graficzne zarządzanie systemem Linux przez przeglądarkę – instalacja i konfiguracja

🖥️ Cockpit: graficzne zarządzanie systemem Linux przez przeglądarkę – instalacja i konfiguracja Cockpit to nowoczesne, lekkie narzędzie webowe do zarządzania Czytaj dalej

Sandboxed Linux Apps – jak działa izolacja Flatpak, Snap i AppImage pod kątem bezpieczeństwa
Sandboxed Linux Apps – jak działa izolacja Flatpak, Snap i AppImage pod kątem bezpieczeństwa

Sandboxed Linux Apps – jak działa izolacja Flatpak, Snap i AppImage pod kątem bezpieczeństwa Aplikacje sandboxowane w Linuksie stają się Czytaj dalej

Czytaj  Instalacja oraz konfiguracja serwera SSH na Debian
Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.