Wiele razy padało pytanie, co zrobić, gdy na partycji C:\ ( gdzie zapewne macie zainstalowanego PostgreSQLa) zaczyna brakować miejsca. Też tak miałem i dzisiaj stwierdziłem, że trzeba coś z tym zrobić, więc trochę poszukałem w internecie.
Znalazłem coś takiego. Nie do końca na temat, ale na podstawie tego możemy wykombinować, jak osiągnąć nasz cel. Sprawa tak na prawdę jest prostsza, niż tam opisane.
Tak więc do rzeczy.
Operację wykonywałem na systemie Windows 7 Professional, oraz serwerze PostgreSQL 8.3. Jednak w innych Windowsach/PostgreSQLach powinno wyglądać to tak samo.
1. Znajdujemy nazwę usługi PostgrrSQLa.
W wersji 8.3 usługa nazywa się pgsql-8.3, w innych wersjach zapewne będzie analogicznie, jednak dla pewności sprawdźmy jak to wygląda.
Aby tego dokonać uruchamiamy Wiersz poleceń jako administrator. Nie zamykamy go po tym, gdyż będziemy go używać do końca.
Start->Akcesoria->Wiersz poleceń->PPM->"Uruchom jako administrator".
Następnie wpisujemy:
sc query
I na liście znajdujemy PostgreSQLa. Interesuje nas pole SERVICE_NAME z jego opisu.
2. Zatrzymujemy usługę PostgreSQLa.
Aby zatrzymać usługę wpisujemy:
sc stop pgsql-8.3
Uwaga! Jeśli w poprzednim kroku okazało się, że usługa nazywa się inaczej, tutaj podajemy jej nazwę zamiast pgsql-8.3.
3. Przenosimy dane na inną partycję.
Dane znajdują się domyślnie w folderze
C:\Program Files\PostgreSQL\8.3\data
chyba, że inaczej zainstalowaliście PostgreSQL. Ale jeśli to zrobiliście, to na pewno było to celowe, więc się odnajdziecie.
Kopiujemy cały folder data w miejsce, gdzie mamy zapas miejsca. Na przykład D:\PostgrSQLdata\, tak więc nasza nowa ścieżka do folderu data, to:
D:\PostgreSQLdata\data
Uwaga! Celowo zaznaczyłem słowo kopiujemy. Ostatecznie te dane usuniemy dopiero po upewnieniu się, że migracja na inną partycję zakończyła się powodzeniem.
4. Usuwamy usługę postgresqla.
Teraz usuwamy usługę wpisując ww wcześniej otwartym wierszu poleceń:
pg_ctl unregister -N "pgsql-8.3"
Oczywiście nazwa usługi odpowiednio taka sama, jak w poprzednim kroku.
5. Tworzymy nową usługę.
Pozostało już tylko utworzyć nową usługę z parametrem wskazującym na nową ścieżkę do folderu data.
Aby do zrobić korzystamy znów z wcześniej otworzonego Wiersza poleceń.
Aby utworzyć usługę wpisujemy:
pg_ctl register -N "pgsql-8.3" -U <username> -P <password> -D <path>
Czyli w moim przypadku to będzie:
pg_ctl register -N "pgsql-8.3" -U pgsql -P haslo -D D:\PostgreSQLdata\data
Uwaga! Usługę tworzymy o takiej samej nazwie, jak ta, którą usunęliśmy!
5. Uruchamiamy usługę.
W wierszu poleceń wpisujemy:
sc start pgsql-8.3
Nazwa usługi oczywiście może być inna jeśli wcześniej tak się okazało.
Teraz uruchamiamy PT3 HMa czy Elephanta i sprawdzamy, czy wszystko działa. Jeśli tak, możemy usunąć stary folder data zwalniając miejsce na naszej partycji systemowej.
Nie odpowiadam za zamieszanie w razie niepowodzenia całej operacji!
I tak powstał Chocapic!
Enjoy.

