konto usunięte

Temat: Postgresql - datafiles

Witajcie!

Czy jest możliwe przepięcie plików danych jednej instancji bazy do drugiej? Chodzi mi o przypadek dwóch nodów bazy danych - jeden aktywny - drugi pasywny. Pliki byłby na macierzy SAN. W przypadku awarii jednego noda , pasywny podpinałby się do plików bazy, której serwer uległ awarii i przejmował ruch z aplikacji (dociągając jedynie logi WAL). Czy jest to wykonalne w postgresie??
Łukasz Dudek

Łukasz Dudek Database
Administrator

Temat: Postgresql - datafiles

jesli trochę zmodyfikować twój pomysł to tak da się.

Jeśli WAL'e tez będą na tym samym zasobie (lub innym dostępnym mu) to drugi serwer wystartuje (przyjmujemy że pierwszy nie działa , ta sama wersja i architektura, biblioteki i scieżki) , WAL'i nie trzeba (a nawet nie powinno się) dociągać.

Założenie jest takie że działa albo jeden albo drugi, nie da się zrobić oraclowych instancji.

Chociaż lepiej aby to było zrealizowane replikacją (nawet asynchroniczna) wtedy bedziesz mógł wykorzystać i drugi serwer.Łukasz Dudek edytował(a) ten post dnia 08.03.13 o godzinie 18:11

konto usunięte

Temat: Postgresql - datafiles

Ogólnie jest tak, że tylko jedna instancja może używać pliki. Nie można zrobić inaczej.

Ale spokojnie możesz zrobić tak, że jakiś watchdog sobie sprawdza, czy instancja odpowiada, jak nie, to startuje ją (albo też inną). Z tym nie ma problemu.

Ale nie licz na to, że to szybko wstanie. Może to zająć kilka chwil, bo mogą być jakieś dane, które są zapisane do plików WAL, ale nie są w plikach z danymi. Wtedy Postgres podczas wstawania, bedzie reperował bazę. Kilka chwil może tu oznaczać zarówno kilka milisekund, jak też kilkadziesiąt sekund.

Oczywiście mowa o tej samej głównej wersji Postgresa, tej samej architekturze itp.

Jak chcesz, żeby to wstało szybko, to trzeba mieć replikację.Szymon G. edytował(a) ten post dnia 08.03.13 o godzinie 19:52

konto usunięte

Temat: Postgresql - datafiles

Super! Dzięki Wam wielkie. Trzeba zrobić więc małego POC'a ;)
Paweł Skocz

Paweł Skocz Administracja
systemami Linux/Unix

Temat: Postgresql - datafiles

Jak masz do dyspozycji SAN, to zadanie jest dość proste. PGDATA tworzysz na zasobie z macierzy, a na obu serwerach robisz cluster, np. cman i dodajesz wirtualny adres IP, na którym słucha postgres. Do tego dodajesz świadka z SANu (quorum disk) i masz 3 członków. Jak produkcyjna maszyna padnie, cluster przepina się na drugą nogę razem z zasobem dyskowym i adresem IP. Całość niestety zabiera chwilę, tak jak pisał Szymon, ale tego nie unikniesz.
Daniel Podlejski

Daniel Podlejski DBA,
SysAdmin/DevOps,
backend developer

Temat: Postgresql - datafiles

Paweł Skocz:
Jak masz do dyspozycji SAN [...]

Ważny szczegół - SAN z użyciem FC - tak, iSCSI - zapomnij, szkoda czasu.
Scenariusz opisany przez Pawła da się zrealizować też na niektórych DAS.
Tomasz Filipek

Tomasz Filipek Administrator
Systemów, *Bank S.A.

Temat: Postgresql - datafiles

Paweł Skocz:
Jak masz do dyspozycji SAN, to zadanie jest dość proste. PGDATA tworzysz na zasobie z macierzy, a na obu serwerach robisz cluster, np. cman i dodajesz wirtualny adres IP, na którym słucha postgres. Do tego dodajesz świadka z SANu (quorum disk) i masz 3 członków. Jak produkcyjna maszyna padnie, cluster przepina się na drugą nogę razem z zasobem dyskowym i adresem IP. Całość niestety zabiera chwilę, tak jak pisał Szymon, ale tego nie unikniesz.
Kolega Paweł ma rację, ale jak go posłuchasz błagam Cię nie rób tego na Debianie. Jak CMAN to tylko na Red Hat'cie. Na Debianie działa to trochę kulawo i nigdy nie będziesz wiedział kiedy rgmanager stwierdzi, że mu się coś bliżej nieokreślonego przestało podobać.

P.S. Daniel i Paweł ... hmm mały psikus losu - znajomy z poprzedniej firmy odpowiada koledze z obecnej :)

Następna dyskusja:

zapytanie w PostgreSQL




Wyślij zaproszenie do