Przenoszenie bazy danych PostgreSQL na tym samym komputerze
Przenoszenie bazy danych Syteca On-Premises (PostgreSQL) na tym samym komputerze
Aby przenieść bazę danych PostgreSQL z dysku C na inny dysk w tym samym komputerze, wykonaj następujące czynności:
-
Zatrzymaj usługę EkranServer.
-
Otwórz services.msc, znajdź usługę postgresql-xxx, a następnie sprawdź konto, pod którym działa usługa (np. Network Service, jak pokazano na poniższym zrzucie ekranu).
-
Utwórz folder na innym dysku w lokalizacji, do której chcesz przenieść bazę danych. W Właściwościach folderu, na karcie Zabezpieczenia, dodaj użytkownika, który uruchamia PostgreSQL, i przyznaj mu pełne uprawnienia.
-
Otwórz pgAdmin, kliknij prawym przyciskiem myszy sekcję Tablespaces, a następnie wybierz Create > Tablespace….
-
Podaj nazwę dla nowej przestrzeni tabel (Tablespace), wybierz folder utworzony w kroku 3 i kliknij Save, aby zastosować zmiany.
-
Dla wszystkich baz danych Syteca (tj. ekranactivitydb, EkranManagementDatabase i EkranUbaDatabase) wykonaj następujące czynności:
-
Kliknij prawym przyciskiem myszy na bazie danych i otwórz Properties > Definition, a następnie znajdź pole Tablespace.
-
Wybierz nazwę przestrzeni tabel utworzonej w kroku 4 i kliknij Save, aby zastosować zmiany.
Po chwili okno dialogowe zamknie się, a bazy danych zostaną przeniesione do nowej przestrzeni tabel.
-
-
Jeśli podczas przenoszenia były otwarte jakieś połączenia z bazami danych, pojawi się błąd. Aby rozwiązać ten problem, zamknij aktywne połączenia, uruchamiając poniższy skrypt, a następnie powtórz instrukcję:
SELECT pg_terminate_backend (pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'database_name';