Spring Boot skopiowanie bazy danych na Heroku za pomocą kodu Javy

Spring Boot skopiowanie bazy danych na Heroku za pomocą kodu Javy
SS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

Nie znalazłem nigdzie odpowiedzi na ten problem. Chcę wykonać kopię bazy danych jednej aplikacji do innej aplikacji na Heroku (Chcę aby obydwie aplikacje miały o określonej porze jednakowe dane). Wykonywać by się to miało powiedzmy raz - dwa razy w miesiącu (użyję do tego celu adnotacji @Scheduled). Chcę żeby to było wykonane w kodzie Javy. Czy to możliwe? Jeśli tak to bardzo prosiłbym o przykład i przedstawienie tego w prosty sposób krok po kroku.

Dziękuję z góry!

99xmarcin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2420
3

Chyba od złej strony podchodzisz.

Na każdej porządnej bazie typu PostgreSQL można ustawić replikację wtedy dane z jednej bazy są automatycznie transferowane on-line (czyli na bieżąco) do drugiej. Oczywiście ta druga baza jest wtedy tak zwaną read-only repliką. W sytuacji gdy pierwsza baza ulegnie awarii ta druga replika może zacząć obsługiwać cały ruch, wtedy gdy pierwsza baza odzyska zdolność operacyjną to ona stanie się "followerem" czyli bazą read-only.

Jeżeli nie chcesz tego tak skonfigurować to radzę to zrobić cronem, robisz eksport/import toolem command line'owym który uruchamia się na jakiś czas. Uwaga taka operacja trwa i może znacznie obciążać bazę danych (CPU, IO).

Ostatnia opcja to użycie istniejących backupów (masz takie co nie?), bierzesz ostatni backup i robisz restore na docelowej bazie. Również polecam tutaj cron + command line'owe odtwarzanie backup. Baza najprawdopodobniej nie będzie dostępna w czasie przywracania danych. Przy okazji masz testy backup'ów za darmochę.

Warto jeszcze zapytać czy w tych bazach może dojść do zmiany schematu, czy chodzi tylko o pompowanie samych danych.

Charles_Ray
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1912
1

Dziwne podejście, dlaczego nie chcesz tego przerzucać jakimś backupem 1/miesiąc?

Poza tym dlaczego 2 różne aplikacje maja mieć dokładnie takie same dane co do struktury?

W0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3759
0

@solid_snake: to jest jak najbardziej możliwe, tylko tak jak już tutaj zauważono - nie wiadomo, czy powinieneś tak robić.

Napisz kluczowe informacje:

  • ile tych danych jest?
  • czy te dwie aplikacje mają taki sam model bazy danych (takie same tabele)?
  • czy ty po prostu próbujesz zreplikować bazę danych w całości?
.andy
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1524
0

@solid_snake: jeżęli to PostgreSQL, to można wykorzystać aplikację pg_dump. Wrzucasz ją w crona i włola.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.