Re: Postgresql - restore database from physical storage - Mailing list pgsql-admin
From | Lukasz Brodziak |
---|---|
Subject | Re: Postgresql - restore database from physical storage |
Date | |
Msg-id | CAGWYGjX0tSjL5XB0ea=V900cnuQnqJY4U5yQ-N0hr5PNZ2Txqw@mail.gmail.com Whole thread Raw |
In response to | Postgresql - restore database from physical storage ("Anja Karlstädt" <anja.karlstaedt@charite.de>) |
List | pgsql-admin |
2012/11/19 "Anja Karlstädt" <anja.karlstaedt@charite.de>: > Dear PGSQL-Admin, > > Due to a system crash I had to reinstall PostgreSQL 8.4 without being able > to make a dump of my database. > However, I do have a complete backup of the postgresql main directory > including the physical storage (/var/lib/postgres/8.4/main). > > Is it possible to restore the database from this backup? > > After reinstallation of postgres (8.4 - 17.11.2012) I moved all files from > the original main directory back into the new directory and connected to > the database as following: > > postgres@user:/home/user$ /usr/lib/postgresql/8.4/bin/pg_ctl -D > /var/lib/postgresql/8.4/main/ -l > /var/log/postgresql/postgresql-8.4-main.log start >> server starting > > After entering psql the list of databases is displayed as following: > postgres > template 0 > template 1 > > The pg_database file shows: >> "template1" 1 1663 648 >> "template0" 11563 1663 648 >> "postgres" 11564 1663 648 > The "original" pg_database changed from my "original" version including > all databases (total=6) to the given default version. > Then I created two different databases as "test" and "test2": >> "test" 16384 1663 648 >> "test2" 16386 1663 648 > > The OID 16385 is obtained by one of my "original" databases and obviously > not included in this pg_database list. > If I try to set the OID from "test" to 16385 and connect to this database > the OID entry is changed back to 16384 and the database is empty. > The permissions (owner, group) for all files in the main directory are set > to postgres. > > Could you please tell me how to restore my database or connect to it in > order to save the data from the tables? > > Thank you very much for reading this email. > > Yours sincerely, > > Anja Karlstaedt > > > > > > > > > -- > Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-admin Hello, Do you still have the 'untouched' copy of the PGDATA? If so I would do this: 1. Create a new directory eg. /usr/local/pgsql/data and place the physical files from the backup in that directory(only the files and subdirectories from the main folder) 2. Give all permissions to the folder to user postgres 3. Stop the server 4. Initiate new cluster pointing the data directory from first step and start the server 5. Try to connect usin psql and check the pg_database for the 'original' set of DBs The strange thing is that your procedure didn't work. Given you have properly copied all the data from the physical backup it should work just fine. I've been using this method with some of our clients and it always worked. Regards -- Łukasz Brodziak "Do you bury me when I'm gone Do you teach me while I'm here Just as soon I belong Then it's time I disappear"
pgsql-admin by date: