Re: Moving PostgreSQL data directory on Windows

From: Ottó Havasvölgyi <havasvolgyi(dot)otto(at)gmail(dot)com>
To: Magnus Hagander <mha(at)sollentuna(dot)net>
Cc: Pg - General <pgsql-general(at)postgresql(dot)org>
Subject: Re: Moving PostgreSQL data directory on Windows
Date: 2006-01-14 13:38:07
Message-ID: 34608c0c0601140538n67471dccj@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello,

Ok. I did not set any security on the machine. Only I have access to
it. Now I have done this:

0. Registry is modified (yesterday)
1. Restart today
2. Modify registry to the old value
3. Start PostgreSQL -> pg_ctl and postmaster are running (they are in
the task list), but no postgres
4. "pg_ctl status" says that neither postmaster nor postgres are
running. No new entry in event log.
5. Stop with "pg_ctl stop" -> it says "Could not send stop signal (PID
3624): no such process". There is really no such PID.
6. Restart Windows -> the same as before
7. Stop PostgreSQL from the Sart menu -> it took a half minute, and
now only postmaster is running.
8. pg_ctl unregister -N "pgsql-8.0" -> seems it succeeded
9. Register on the new location
10. Start with "net start "pgsql-8.0"" -> The service could not be
started, no event log entry. Perhaps because a postmaster isrunning.
11. Kill postmaster, I cannot stop it in other way.
12. Start from Start menu and "net start", but nothing happens. The
same message as in step 10.
13. Start from Control panel - Services -> Message: "The service
started then stopped."

Now I really don't know how to start this.
Perhaps reinstaling Postgres is easier.

14. Modified all this with the installer, but PostgreSQL does not start.
15. Backup data directory
16. Uninstall PostgreSQL
17. Install PostgreSQL 8.0.6 (this was installed before), as service,
set the same passwords.
18. Stop PostgreSQL
19. Move the backuped data directory to the location PostgreSQL uses.
20. Start PostgreSQL now, but it does not start this way. :(

What can be done to use my old data? It's not that critical, only tests.

Thanks,
Otto

2006/1/14, Magnus Hagander <mha(at)sollentuna(dot)net>:
> Ok, two things:
>
> First, when using this method, yo uhave to reboot after editing the registry. If you didn't do that, then that's your problem. Sorry, forgot to mention that. If not, then looking at permissions as Rodrigo suggested is the next step.
>
> Second, there is of course a nicer way of doing this than editing the registry, that I compleetley forgot about. It's still not as nice as you would want, but it should work. You use pg_ctl unregister to remove the service, and then pg_ctl register to register a new one with the new data directory. Doing this you won't hvae to reboot.
>
>
> Perhaps this is something we should add to pg_ctl for 8.2? "pg_ctl reconfigure" or something like that? What do others think?
>
> //Magnus
>
> > -----Original Message-----
> > From: Ottó Havasvölgyi [mailto:havasvolgyi(dot)otto(at)gmail(dot)com]
> > Subject: Re: [GENERAL] Moving PostgreSQL data directory on Windows
> >
> > Magnus,
> >
> > It's a service, and it is 8.0.6. I have fixed the registry to this
> > value: "C:\Program Files\PostgreSQL\8.0\bin\pg_ctl.exe"
> > runservice -N "pgsql-8.0" -D "E:\PostgreSQL\data\"
> >
> > The service does not start.
> > This new directory definetely exists. But now there is no
> > Event log entry about the error. The log file says nothing
> > because it is in the data/pg_log directory.
> >
> > Thanks,
> > Otto
> >
> >
> >
> > 2006/1/13, Magnus Hagander <mha(at)sollentuna(dot)net>:
> > > > Hello,
> > > >
> > > > I would like to move the data directory to another location.
> > > > I have done this:
> > > > 1. Stop PostgreSQL
> > > > 2. Move data directory
> > > > 3. Create a PGDATA env. variable to the new location 4. Start
> > > > PostgreSQL
> > > >
> > > > And it cannot start, because it cannot find postgresql.conf.
> > > > (in Event log) What should I do now?
> > >
> > > Are you running it as a service:? If so you need to reconfigure the
> > > service. Unfortunatly,the only way to do this is using
> > regedit. Go to
> > > HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pgsql-8.1
> > >
> > > Open the value "ImagePath" and change the data directory.
> > >
> > > //Magnus
> > >
> >
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Andrew - Supernews 2006-01-14 15:48:57 Re: Error when inserting millions of records
Previous Message Magnus Hagander 2006-01-14 11:35:35 Re: Moving PostgreSQL data directory on Windows