Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak przeprowadzić migrację samodzielnego Moodle do skalowalnej konfiguracji klastrowej bazy danych

Dzisiejsza nauka online szybko zyskuje na popularności od czasu pandemii COVID-19. Większość instytucji edukacyjnych musi tworzyć platformy do nauki online, a prawie wszyscy uczniowie muszą uzyskać dostęp do platformy do nauki i interakcji z nauczycielami. Moodle to jeden z systemów zarządzania nauką typu open source do nauki online, 

Wysoka dostępność platformy Moodle jest koniecznością dla instytucji, w przeciwnym razie zakłóci i zatrzyma proces uczenia się online. Ponieważ wielu studentów korzysta z platformy w tym samym czasie, ważna jest dostępność i skalowalność. W tym momencie instytucje edukacyjne muszą mieć wiedzę i zaprojektować platformę o wysokiej dostępności i skalowalności Moodle. Jeśli chcesz dowiedzieć się więcej o tym, jak przeprowadzić migrację samodzielnego Moodle do skalowalnej bazy danych w klastrach, możesz skorzystać z tej wskazówki.

Moodle w trybie „Single Point of Failure”

Samodzielna platforma Moodle składa się z jednego serwera i wszystkiego, co jest na nim zainstalowane (serwer bazy danych i aplikacji w jednym miejscu). Lub masz 2 serwery, które są przeznaczone dla serwera aplikacji i serwera bazy danych, jak opisano na poniższym obrazku:

Obu architekturom brakuje dostępności i skalowalności usługi. Z perspektywy dostępności możesz sobie wyobrazić, że jeśli serwer ulegnie awarii, nie masz na nim uruchomionych usług. W przypadku awarii serwera aplikacji lub awarii bazy danych usługa przestaje działać.

Z drugiej strony ważna jest również skalowalność, więcej użytkowników oznacza większy ruch i więcej połączeń z bazą danych. Skalowalność można osiągnąć, dodając więcej zasobów na serwerach lub dodając więcej serwerów, aby ruch mógł być rozłożony na węzły, w przeciwnym razie ucierpi wydajność.

Konwersja z samodzielnej bazy danych do klastrowanej bazy danych

Migracja węzła autonomicznego do bazy danych w klastrze może zająć trochę czasu i nie jest operacją wolną od ryzyka. Poniżej znajdują się kroki, które musimy podjąć:

  1. Musisz wykonać kopię zapasową (użyj mysqldump lub xtrabackup).
  2. Zainstaluj bazę danych we wszystkich węzłach bazy danych replik.
  3. Przywróć kopię zapasową w węzłach replik.
  4. Podłącz węzeł repliki do mastera.
  5. Skonfiguruj ProxySQL i utrzymuj aktywność przed węzłami bazy danych
  6. Skonfiguruj równoważniki obciążenia ProxySQL (np. utwórz grupy hostów, serwery, użytkowników).
  7. Wskaż konfigurację Moodle na nowy wirtualny adres IP.

Jak ClusterControl może pomóc

ClusterControl to oprogramowanie do zarządzania bazą danych, które pomaga wdrażać, monitorować i zarządzać bazą danych typu open source. Spróbujemy przeprowadzić migrację z samodzielnej architektury Moodle, jak pokazano poniżej:

Do klastrowej architektury bazy danych opartej na replikacji:

Potrzebne będą co najmniej dwa serwery dla bazy danych i dwa dla bazy danych proxy (będziemy używać ProxySQL jako modułu równoważenia obciążenia) i utrzymywaną usługę do obsługi wirtualnego adresu IP.

Zakładając, że mamy uruchomioną samodzielną bazę danych MySQL:

Dodawanie kolejnych węzłów bazy danych w ClusterControl jest naprawdę proste, możesz przejść do Menu klastra po prawej stronie klastra i Dodaj urządzenie podrzędne replikacji.

Pojawi się nowe okno dialogowe dodawania nowego niewolnika, wystarczy wypełnić adres IP, a następnie kliknij przycisk Dodaj nowe urządzenie podrzędne, jak pokazano poniżej:

Jak widać na zrzucie ekranu możliwe jest seedowanie niewolnika z danymi z istniejącej kopii zapasowej. Ma to na celu uniknięcie przesyłania strumieniowego wszystkich danych z działającej bazy danych master. Gdy baza danych slave zostanie wdrożona, zostanie ona wypełniona danymi głównymi, a ClusterControl upewni się, że slave synchronizuje się z bazą danych master.

Możesz powtórzyć ten krok, aby dodać kolejny węzeł repliki.

Nowa architektura będzie taka, jak pokazano poniżej:

Kolejnym krokiem jest dodanie load balancera przed bazą danych. Load Balancer, taki jak ProxySQL, jest przydatny, ponieważ może przekierowywać żądania zapisu do urządzenia głównego i żądania odczytu do urządzeń podrzędnych. W ten sposób dystrybuujesz ruch Moodle. Zauważ, że możliwe jest również wykonanie konfiguracji master-master w oparciu o Galera Cluster for MySQL lub MariaDB.

W celu zapewnienia wysokiej dostępności użyjemy dwóch systemów równoważenia obciążenia. Możesz przejść do Zarządzaj -> Systemy równoważenia obciążenia w klastrze.

Musisz wypełnić pewne informacje, takie jak adres serwera, hasło administratora i monitora, dodaj użytkownika moodle do ProxySQL, a następnie kliknij opcję Wdróż ProxySQL. To uruchomi nową pracę. Powtórz wdrożenie w innym węźle modułu równoważenia obciążenia.

Ostatnią rzeczą jest skonfigurowanie keepalive dla systemów równoważenia obciążenia. Przejdź do Zarządzaj -> Systemy równoważenia obciążenia, jest zakładka dla Keepalive

Wystarczy wybrać typ modułu równoważenia obciążenia i dodać go do keepalive . Wypełnij wirtualny adres IP i interfejs sieciowy. Kliknij przycisk Wdróż Keepalved.

Ostateczna architektura naszej klastrowanej bazy danych Moodle o wysokiej dostępności będzie taka, jak pokazano poniżej:

Wystarczy zmienić konfigurację połączenia w config.php wskazując na dbhost na wirtualny adres IP, który skonfigurowaliśmy.

Po zakończeniu migracji do Clustered Database, możesz chcieć umieścić monitoring w swojej bazie danych Moodle, zgodnie z tymi wskazówkami.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuwanie wierszy za pomocą MySQL LEFT JOIN

  2. Migracja MySQL do PostgreSQL na AWS RDS, część 4

  3. Przekształć wynik bazy danych w tablicę

  4. Różnica między LIKE i =w MYSQL?

  5. Jak usunąć początkowe i końcowe białe znaki w polu MySQL?