[inne] [HOWTO]Przenosimy bazę PostgrSQL na inną partycję.

    • dragoste
      dragoste
      Brąz
      na forum od: 07.05.2010 Posty: 4 468
      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.
  • 33 odpowiedzi
    • avril1991
      avril1991
      Srebro
      na forum od: 20.03.2009 Posty: 4 899
      Witam!

      Dzięki dragoste za poradnik skonsultuje się i może podwiesimy ten temat.

      Pozdrawiam
    • kuczenty
      kuczenty
      Brąz
      na forum od: 11.12.2009 Posty: 880
      cześć dragoste,
      trochę odświeże, bo nie moge sobie poradzic. Wszystko cacy, skopiowalem juz folder data na wolna partycje, ale utknalem na punkcie 4, bo nie chce rozpoznac 'komendy' pg_ctl.

      Mam W7 prof, posgresql 8.3.9, wiersz polecen uruchamiam jako admin/

    • kuczenty
      kuczenty
      Brąz
      na forum od: 11.12.2009 Posty: 880
      tilt postawil sprawe jasno - format
      wszystko juz cacy :nh
    • buejk
      buejk
      Brąz
      na forum od: 26.11.2009 Posty: 1 747
      Tez mi nie chce rozpoznac tej komendy, na xp, any1 help?
    • dragoste
      dragoste
      Brąz
      na forum od: 07.05.2010 Posty: 4 468
      W takim razie musisz najpierw przejść do katalogu postgesqla w którym są te programy.
      Robimy to komendą cd

      Pozdrawiam.
    • buejk
      buejk
      Brąz
      na forum od: 26.11.2009 Posty: 1 747
      1Tylko data kopiujemy czy wszystkie pliki? 3 krok

      2Sorry, nie umiem korzystac z wiersza polecen. Ogarniam jak sie przechodzi do katalogow, ale nie wiem o jaki chodzi....C:/....../8.4 ?? Tam jest 9 folderow+ uninstal-postgresql i jakis plik wsadowy. Zrobilem to w bin.

      3Ten piaty krok to trzeba przejsc do katalogu na innej partycji zeby to uruchomic?


      Prosze o wyrozumialosc :f_biggrin:


      Edit: Sprobowalem to zrobic i teraz otwierajac Hm mam komunikat "....Failed to establish connection to '...'.
      Daje connect i wyskakuje info, ze nie mozna sie polaczyc + zapytanie "would you like to have Hm attempt to start the service?"
      -yes
      -sorry hm was unable to start service....
      ...
    • dragoste
      dragoste
      Brąz
      na forum od: 07.05.2010 Posty: 4 468
      Edit: Sprobowalem to zrobic i teraz otwierajac Hm mam komunikat "....Failed to establish connection to '...'.


      Jeśli któregoś kroku nie zrobisz, lub zrobisz nieprawidłowo, to baza nie zadziała. Nie można robić na "mniej więcej".

      1Tylko data kopiujemy czy wszystkie pliki? 3 krok

      Kopiujemy cały folder data w miejsce, gdzie mamy zapas miejsca.



      3Ten piaty krok to trzeba przejsc do katalogu na innej partycji zeby to uruchomic?

      z folderu instalacji postgresql/bin, tak samo jak wykonywałeś komendę unregister.

      Pozdrawiam.
    • buejk
      buejk
      Brąz
      na forum od: 26.11.2009 Posty: 1 747
      Zrobilem teraz poprawnie, ale juz pewnie cos namieszalem, bo dalej blad wyskakuje... Napisalem do supportu Hma, odpowiedz-olewka.

      Pewnie format najlatwiejsza opcja, co?
    • dragoste
      dragoste
      Brąz
      na forum od: 07.05.2010 Posty: 4 468
      Support HMa raczej Ci w tym nie pomoże.

      Nie przesadzajmy. Format to nie rozwiązanie na każdy problem.
      Masz usługę PostgreSQLa na liście? Działa? Da się ją włączyć?

      Pozdrawiam.
    • buejk
      buejk
      Brąz
      na forum od: 26.11.2009 Posty: 1 747
      Jak teraz wpisuje sc query nie pojawia mi sie postgresql na liscie.
      Jak w punkcie 4tym przechodze do katalogi bin i daje "unregister" to dostaje info ze"pg_ctl: service "postgresql-8.4" not registered". Daje pozniej register tez w tym bin- pg_ctl register -N "postrgesql-8.4" -N xxx -P xxx -D e:\posgresql\8.4\data
      Dostaje info pg_ctl: service "postgres" already registered
      Daje start tez z bin i dostaje info [SC] StartService: OpenService FAILED 1060: Okre
    • Marjed
      Marjed
      Brąz
      na forum od: 26.08.2009 Posty: 2 225
      cały dzień się z tym męczę i się poddaję.
      Nie wypalił pkt 5. Po usunięciu usługi, nowa na innym dysku nie chciała się stworzyć :facepalm:
      Lipa
    • musashi87
      musashi87
      Srebro
      na forum od: 14.03.2008 Posty: 11 847
      Napisane przez Marjed
      cały dzień się z tym męczę i się poddaję.
      Nie wypalił pkt 5. Po usunięciu usługi, nowa na innym dysku nie chciała się stworzyć :facepalm:
      Lipa
      IMO musisz najpierw dać uprawnienia do tego foldera użytkownikowi posgres.
      Tego w tym poradniku brakuje a praktycznie w 75% przypadków jest to konieczne.
    • Marjed
      Marjed
      Brąz
      na forum od: 26.08.2009 Posty: 2 225
      a jak nadać te uprawnienia?
    • musashi87
      musashi87
      Srebro
      na forum od: 14.03.2008 Posty: 11 847
      Napisane przez Marjed
      a jak nadać te uprawnienia?
      zalezy jaki system generalnie musisz w opcjach folderow wylaczyc kreatora udostepniania i potem we wlasciwosciach folderu powinienes miec zakladke zabezpieczenia i tam musisz dodać użytkownika posgres i nadać mu pełną kontrolę nad folderem
    • musashi87
      musashi87
      Srebro
      na forum od: 14.03.2008 Posty: 11 847
      coś takiego:
    • buejk
      buejk
      Brąz
      na forum od: 26.11.2009 Posty: 1 747
      Mi to juz wszystko smiga, ale po prostu zrobilem to kilka razy :P Poszukalem cos tam na innych forach i juz hula. Na pewno trzeba dac ostrzezenie, ze nie jest to dla przecietnego uzytkownika komputera, bo mozna sie nameczyc.
    • musashi87
      musashi87
      Srebro
      na forum od: 14.03.2008 Posty: 11 847
      Napisane przez buejk
      Mi to juz wszystko smiga, ale po prostu zrobilem to kilka razy :P Poszukalem cos tam na innych forach i juz hula. Na pewno trzeba dac ostrzezenie, ze nie jest to dla przecietnego uzytkownika komputera, bo mozna sie nameczyc.
      Prawda. Ale jeśli ktoś ma jako takie pojęcie o tym co robi to nie jest to operacja strasznie trudna. U mnie przenosiny bazy na dysk SSD zajeły kilkanaście minut i najwiekszy problem miałem właśnie z tym, że nie chciała mi się uruchomić usługa bo użytkownik postgres nie miał uprawnień do modyfikacjipartycji, na którą przeniosłem bazę.
    • Marjed
      Marjed
      Brąz
      na forum od: 26.08.2009 Posty: 2 225
      Dzięki Musashi,
      Teraz udało się bez problemu :s_thumbsup:
    • wantmemoney
      wantmemoney
      Diament
      na forum od: 25.11.2010 Posty: 723
      Napisane przez buejk
      Jak teraz wpisuje sc query nie pojawia mi sie postgresql na liscie.
      mam to samo
      mam viste i postgres8.4
    • 1
    • 2