Re: Forgot to dump old data before re-installing machine - Mailing list pgsql-general

From Stefan Schwarzer
Subject Re: Forgot to dump old data before re-installing machine
Date
Msg-id 5A2523FD-101E-4951-B0FC-12642139A7D2@grid.unep.ch
Whole thread Raw
In response to Re: Forgot to dump old data before re-installing machine  (Richard Huxton <dev@archonet.com>)
Responses Re: Forgot to dump old data before re-installing machine
List pgsql-general
>>>> I re-installed my machine and "forgot" to dump my database(s). I
>>>> naturally still have the whole database folders. For the moment I
>>>> installed the "old" postgres version (8.1) to be able to read my
>>>> data.
>>>> But how can I read them? It seems that it doesn't work that I just
>>>> overwrite the new database folder with the old one... Would be too
>>>> simple, I guess...
>>>
>>> Should work, if you've got the whole $PGDATA directory tree.  Maybe
>>> you forgot to stop the postmaster while copying the backup into
>>> place?
>> Thanks a lot for this. Still trying. But although the postmaster
>> did run at one time, now, after copying back and forth, it doesn't
>> want to do anything anymore... Gush, getting really frustrated...
>
> Stop. Deep breath. Cup of coffee / tea, optional biscuit.
> Stop the server (if it's running)
> Check the version-number of the installed postgresql packages.
> Check you still have your backups somewhere safe.
> Re-run initdb to re-create your "data" directory.
> Make sure plenty of logging is turned on in postgresql.conf
> Start the server.
> Verify that everything is fine, particularly that select version()
> displays what you expect.
> Stop the server.
> Do the logs contain everything you'd expect? If not, update
> postgresql.conf and re-start the server until they do.
> Rename the data directory to "data.old" (or similar).
> Try starting the server - check that it fails complaining "you need
> to run initdb" (or similar).
> Restore your backup to "data".
> Make sure plenty of logging is turned on in postgresql.conf
> Compare ownership + permissions on "data" vs "data.old", correct if
> necessary.
> Start the server.
>
> With this setup you can compare both versions of your data directory
> and see what's different. If the version of your backup and the
> version of the software are the same then it will work.

Ok, thanks for these steps. Coffee and chocolate helped... :-))

Ok, did what you said: stopping server, deleting "newly" created
"data" directory, re-running initdb, starting the server, stopping the
server.

Renamed "empty" data directory.

Restarting server: NOT COMPLAINING "you need to run initdb" or
something else.... Although it's saying that it starts, nothing
appears in the process list (ps -ef).

and renamed "old, backuped" data directory to "data_postgres"

Can't see any differences in permissions... Looks like this:

drwx------   14 schwarzer  schwarzer   476 Jan 14 13:33 data_postgres

Restarted the server.

/opt/local/lib/postgresql81/bin/psql postgres

\l

         List of databases
    Name    |   Owner   | Encoding
-----------+-----------+----------
  postgres  | schwarzer | UTF8
  template0 | schwarzer | UTF8
  template1 | schwarzer | UTF8


I should have a couple of databases appearing here...



pgsql-general by date:

Previous
From: Martijn van Oosterhout
Date:
Subject: Re: Forgot to dump old data before re-installing machine
Next
From: "Vyacheslav Kalinin"
Date:
Subject: Prepared statement's planning