PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Przełączanie awaryjne i powrót po awarii dla PostgreSQL na Microsoft Azure

Często używa się chmury do przechowywania danych lub jako opcję przełączania awaryjnego w przypadku awarii urządzenia głównego. Istnieje kilku dostawców usług w chmurze, którzy umożliwiają przechowywanie, zarządzanie, pobieranie i manipulowanie danymi za pośrednictwem platformy w chmurze; dostępne przez internet. Każdy dostawca usług w chmurze ma własną ofertę produktów i unikalne funkcje, z których każdy ma inny model kosztów.

Microsoft Azure jest jednym z takich dostawców. W tym blogu przyjrzymy się, jakie funkcje oferuje Microsoft Azure dla podstawowej pamięci masowej, jako witryny odzyskiwania po awarii, a konkretnie przyjrzymy się, jak obsługuje mieszane środowisko bazy danych PostgreSQL.

Wdrażanie instancji bazy danych PostgreSQL na Microsoft Azure

Przed wykonaniem tego zadania musisz zdecydować, w jaki sposób będziesz korzystać z tego wystąpienia i który produkt platformy Azure jest dla Ciebie najlepszy. Istnieją dwa podstawowe sposoby wdrożenia instancji PostgreSQL na Microsoft Azure.

  1. Baza danych Azure dla PostgreSQL :to zarządzana usługa, której można używać do uruchamiania, zarządzania i skalowania wysoce dostępnych baz danych PostgreSQL w chmurze. Jest dostępny w dwóch opcjach wdrażania:pojedynczy serwer i hiperskalowanie.
  2. Maszyna wirtualna :Zapewnia bezpieczną, zwirtualizowaną infrastrukturę na żądanie na dużą skalę. Obsługuje Ubuntu Server, RedHat Enterprise Linux, SUSE Linux Enterprise Server, CentOS, Debian i Windows Server i pozwala na tworzenie, testowanie, uruchamianie aplikacji i rozbudowę centrum danych w zaledwie kilka sekund.

W tym blogu przyjrzymy się, jak możemy utworzyć bazę danych Azure dla PostgreSQL i jak korzystać z maszyny wirtualnej Azure z portalu Microsoft Azure.

Wdrażanie bazy danych Azure dla PostgreSQL

Jeśli przejdziesz do Azure Portal -> Utwórz zasób -> Bazy danych -> Azure Database for PostgreSQL, będziesz mógł wybrać między pojedynczym serwerem a hiperskalowaniem. W tym blogu użyjemy pojedynczego serwera, ponieważ opcja hiperskalowania jest dostępna w wersji zapoznawczej i nie oferuje jeszcze umowy SLA.

Tutaj musisz dodać informacje o nowej instancji PostgreSQL; takie jak subskrypcja, nazwa serwera, poświadczenia użytkownika i lokalizacja. Możesz także wybrać wersję PostgreSQL, której chcesz użyć (aktualnie dostępne są wersje 9.5, 9.6, 10 lub 11) oraz sprzęt wirtualny do jego uruchomienia (Compute + Storage).

Po określeniu sprzętu zobaczysz szacunkową cenę w -czas. Jest to naprawdę przydatne, aby uniknąć wielkiej niespodzianki w przyszłym miesiącu. Po tym kroku wystarczy potwierdzić konfigurację zasobów i poczekać kilka minut, aż platforma Azure zakończy zadanie tworzenia.

Po utworzeniu nowego zasobu możesz przejść do Wszystkich zasobów, aby zobaczyć dostępne opcje zasobów.

W opcjach utworzonych zasobów możesz przejść do opcji Replikacja, aby ją włączyć i replikować z serwera głównego do maksymalnie pięciu replik. Należy również sprawdzić sekcję Bezpieczeństwo połączenia, aby włączyć lub wyłączyć dostęp z zewnątrz. Aby poznać informacje o dostępie, musisz odwiedzić sekcję zasobów ogólnych.

$ psql -h pg1blog.postgres.database.azure.com -U [email protected] postgres

Password for user [email protected]:

psql (11.5, server 11.4)

SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)

Type "help" for help.

postgres=>

Przełączanie awaryjne w bazie danych Azure dla PostgreSQL

Niestety automatyczne przełączanie awaryjne między serwerami głównymi i replikami nie jest dostępne. Jeśli jednak usuniesz instancję główną, platforma Azure wykona proces przełączania awaryjnego, aby automatycznie promować replikę.

Istnieje opcja ręcznego wykonania tego zadania awaryjnego, co wymaga zatrzymaj replikę i skonfiguruj nowy punkt końcowy w swojej aplikacji, aby wskazywał nowy master. Replika zostanie wypromowana i usunięta z mastera. Nie ma możliwości ponownego połączenia tej repliki z masterem.

Wdrażanie PostgreSQL na maszynie wirtualnej Azure

Jeśli przejdziesz do portalu Azure -> Utwórz zasób -> Obliczenia -> Maszyna wirtualna, otworzysz sekcję Utwórz maszynę wirtualną, w której możesz określić różne konfiguracje nowej maszyny wirtualnej platformy Azure .

Na karcie podstawowej należy określić subskrypcję platformy Azure, region, dostępność opcje, system operacyjny, rozmiar serwera, poświadczenia dostępu (nazwa użytkownika/hasło lub klucz SSH) i reguły zapory przychodzącej.

Na karcie dysk należy określić miejsce przechowywania (typ i rozmiar) dla nowej maszyny wirtualnej. Typ dysku może być Standardowy HDD, Standardowy SSD lub Premium SSD. Ten ostatni jest zalecany w przypadku dużych obciążeń IOPS.

Na karcie sieci można określić sieć wirtualną, publiczny adres IP i dozwolone porty przychodzące. Możesz również dodać tę nową maszynę wirtualną za wychodzącym rozwiązaniem równoważenia obciążenia platformy Azure.

W następnej zakładce mamy kilka opcji zarządzania, takich jak monitorowanie i tworzenie kopii zapasowych .

I na koniec w zakładce zaawansowane możemy dodawać rozszerzenia, init lub grupy hostów.

Po zapoznaniu się z poprzednią opcją i jej potwierdzeniu utworzysz nową maszynę wirtualną i będziesz mieć do niej dostęp z portalu Azure. W sekcji Zasób -> Przegląd można zobaczyć informacje o dostępie do maszyny wirtualnej (publiczny/prywatny adres IP).

Teraz możesz uzyskać do niej dostęp przez SSH i zainstalować bazę danych PostgreSQL za pomocą ClusterControl .

$ ssh 23.102.177.27

Last login: Mon Sep 23 21:33:27 2019

[[email protected] ~]$

Możesz sprawdzić ten link, aby zobaczyć, jak wykonać wdrożenie PostgreSQL za pomocą ClusterControl.

Przełączanie awaryjne PostgreSQL w maszynie wirtualnej Azure

Odzyskiwanie po awarii to funkcja maszyny wirtualnej w sekcji Operacje, która umożliwia replikowanie środowiska w innym regionie platformy Azure. Aby go włączyć, musisz wybrać region docelowy. W zakładce Zaawansowane możesz modyfikować szczegółowe dane celu; takich jak sieć wirtualna, ustawienia przechowywania i ustawienia replikacji.

Po włączeniu odzyskiwania po awarii będziesz mógł sprawdzić status replikacji, przetestuj proces przełączania awaryjnego lub ręcznie przełączaj się na niego.

Włączenie tej opcji umożliwia korzystanie z opcji przełączania awaryjnego w przypadku awarii. Będzie to jednak przełączenie awaryjne całego środowiska, a nie tylko usługi bazy danych.

Ulepszony proces przełączania awaryjnego PostgreSQL dla Microsoft Azure

Ponieważ masz dostęp SSH, możesz usprawnić ten proces przełączania awaryjnego, importując maszynę wirtualną (lub nawet wdrażając bazę danych PostgreSQL) za pomocą ClusterControl.

Jeśli zarządzasz węzłami bazy danych za pomocą ClusterControl (i jeśli opcja „Automatyczne odzyskiwanie” jest WŁĄCZONA) w przypadku awarii urządzenia głównego, ClusterControl będzie promować najbardziej zaawansowane urządzenie podrzędne (jeśli nie znajduje się na czarnej liście ) do opanowania i powiadomienia o problemie. Automatycznie przełącza się również na resztę urządzeń podrzędnych w celu replikacji z nowego urządzenia głównego.

Dzięki ClusterControl można nawet wdrożyć środowisko mieszane z niektórymi węzłami w chmurze i innymi węzłami w środowisku lokalnym. Możesz również dodać systemy równoważenia obciążenia do swojej topologii, aby ulepszyć nasze środowisko wysokiej dostępności. Więcej informacji na ten temat znajdziesz tutaj.

Wnioski

Azure oferuje wiele funkcji i produktów, które oferują rozwiązanie na poziomie przedsiębiorstwa. Jednak podczas tych testów głównym problemem, jaki znalazłem, było to, że czas do utworzenia i przełączenia awaryjnego był zbyt długi dla większości aplikacji.

Jeśli potrzebujesz szybkiego przełączania awaryjnego i odzyskiwania, powinieneś poprawić dostępność środowiska, używając modułu równoważenia obciążenia lub systemu zewnętrznego, takiego jak ClusterControl, aby skrócić czas przestoju. Aby uzyskać bardziej szczegółowe informacje na temat uruchamiania PostgreSQL na Microsoft Azure, zajrzyj do naszego głębokiego bloga.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak tworzyć i usuwać bazy danych i tabele w PostgreSQL

  2. Jak mogę wstawić obiekt JSON do Postgresa za pomocą przygotowanego Javy?

  3. Oblicz Max of Sum pola z adnotacjami w pogrupowanym zapytaniu w Django ORM?

  4. Funkcja GREATEST() w PostgreSQL

  5. Kolejka zadań jako tabela SQL z wieloma konsumentami (PostgreSQL)