Czym jest replikacja synchroniczna i asynchroniczna

W ostatnich latach replikacja strumieniowa była jedną z głównych funkcji wprowadzonych w PostgreSQL. Pomysł polega na wykorzystaniu dziennika transakcji PostgreSQL (WAL) do synchronizacji dowolnej liczby usług i replikacji danych w klastrze. W PostgreSQL replikację można wykonać na dwa sposoby:

  • synchroniczna replikacja
  • asynchroniczna replikacja

Możesz zdecydować, która metoda jest dla Ciebie bardziej korzystną w zależności od potrzeb.

Asynchroniczna replikacja w PostgreSQL

W przypadku porażki i awarii serwera dobrym pomysłem jest mieć kopie zapasowe/repliki głównego serwera w zasięgu. Na szczęście PostgreSQL oferuje środki, umożliwiające osiągnięcie tego dokładnie. Administratorzy mogą łatwo tworzyć repliki tylko do odczytu serwera głównego i używać tych replik do różnych celów, takich jak:

  • Ciągłe kopie zapasowe
  • Automatyczne przełączanie awaryjne
  • Skalowanie obciążeń tylko do odczytu
  • Osiąganie geo-rezerwowań

Asynchroniczna replikacja jest standardowym sposobem replikacji danych w świecie PostgreSQL i oferuje niezawodny i łatwy sposób dystrybucji danych oraz zwiększenia bezpieczeństwa konfiguracji.

Głównymi zaletami replikacji asynchronicznej są niskie koszty ogólne, prostota i niezawodność. W rezultacie replikacja asynchroniczna jest idealnym rozwiązaniem do automatycznego przełączania awaryjnego i redundancji klasy korporacyjnej.

Jak działa replikacja asynchroniczna

Jeśli korzystasz z replikacji asynchronicznej, dane mogą przejść do trybu gotowości PO ZATWIERDZENIU transakcji na serwerze podstawowym. Zwykle występuje niewielkie opóźnienie replikacji, które może spowodować (zwykle) niewielką utratę danych w przypadku awarii.

Synchroniczna i asynchroniczna replikacja

W większości przypadków jest to całkowicie akceptowalne, ponieważ asynchroniczna replikacja obiecuje niewielki narzut i nie spowalnia podstawowej.

Kaskadowa replikacja

W PostgreSQL replikacja jest nie tylko możliwa od podstawowej do pojedynczej kopii zapasowej, można również replikować od jednej podstawowej do wielu kopij zapasowych lub użyć kopii zapasowe do replikacji na jeszcze więcej kopii zapasowych (replikacja kaskadowa). Kaskadowanie jest szczególnie przydatne, jeśli szukasz rozproszonego geograficznie rozwiązania do replikacji PostgreSQL.

Rozważ następujący przykład:

Twój główny serwer bazy danych znajduje się w Nowym Jorku, USA. Chcesz tworzyć repliki we Frankfurcie, Stuttgarcie, Berlinie i Akwizgranie (Niemcy). Jeśli wszystkie repliki są bezpośrednio podłączone do głównego serwera w Nowym Jorku, dane muszą być przesyłane przez Ocean Atlantycki cztery razy. Kaskadowa replikacja jest dobrą alternatywą. Możesz podłączyć serwer we Frankfurcie do głównej w USA i wysyłać dane do Niemiec z serwera we Frankfurcie.

Synchroniczna replikacja w PostgreSQL

Jeśli nie możesz podjąć ryzyka utraty pojedynczego polecenia COMMIT, replikacja synchroniczna może być tym, czego szukasz. W PostgreSQL możesz replikować synchronicznie do dowolnej liczby kopii zapasowych, aby upewnić się, że COMMIT jest ważny tylko wtedy, gdy zostanie potwierdzony przez żądaną liczbę serwerów PostgreSQL.

Synchroniczna replikacja zapewnia najwyższe możliwe bezpieczeństwo transakcji, ponieważ pojedynczy awaria serwera nie może już powodować utraty danych.

Jak działa replikacja synchroniczna

Zapewnia, że żadne dane nie zostaną utracone. Oto jak to działa.

Synchroniczna i asynchroniczna replikacja

Transakcja może zostać zwrócona tylko wtedy, gdy wystarczająca liczba kopii zapasowych potwierdzi zapis.

Zaawansowane funkcje: Kworum COMMIT

Wraz z wprowadzeniem PostgreSQL 10.0 obsługiwane są nawet bardziej wyrafinowane metody COMMIT. Jedną z najbardziej godnych uwagi cech jest możliwość wykonywania „kworum COMMIT”. FIRST num_sync (standby_name [,…]) ANY num_sync (standby_name [,…]) Chodzi o to, aby dać programistom i administratorom bardziej szczegółowy sposób konfiguracji replikacji.

Profesjonalna pomoc

Chcesz wiedzieć więcej na temat replikacji synchronicznej i asynchronicznej?

Skontaktuj się z nami już dziś, aby otrzymać osobistą ofertę od CYBERTEC. Oferujemy terminową dostawę, profesjonalną obsługę i 20-letnie doświadczenie PostgreSQL.

SKONTAKTUJ SIĘ Z NAMI >>