I have an old version of postgres (8.4.13) that doesn't run for various reasons. I plan to move the database files in there to a new install of postgres 9.3. How would I go about doing this? For one I can not start up postgres when I run:
postgres -D /var/lib/pgsql/9.2/data
As I get :
FATAL: database files are incompatible with server
DETAIL: The data directory was initialized by PostgreSQL version 9.2, which is not compatible with this version 8.4.13.
The easiest route would be to figuring out how to run this server but if not how would I locate the db files in it?
EDIT:
How this actually happened was last week I wanted to intiliaze postgres server commands so I could easily stop and restart the server since my knowledge of postgresql is pretty limited. I ended up installing postgresql-server for RHEL and it was initially working fine. The commands weren't working so I forgot about it. The databases were working fine too at that time. I log on today and to my shock the commands were working but it also wiped the dbs. So my presumption is it installed a completely new server that could be accessed via the commands.
Somehow this tampered whatever settings I had.
Typing postgresql –version gives me version 8.4.13.
If I can only start it now by pointing postgres -D to the correct pgsql.
There are two pgsql dirs:
/var/lib/pgsql/9.2/data
/var/lib/pgsql/data
The latter seems to be the newest install of postgresql as the pg_hba.conf files are unedited.
I used to be able to start the 8.4.13 server with 9.2 it would just give me a WARNING: Some features might not be available. I don't know why installing postgresql-server would change this now. As they are separate dirs.
Best Answer
Only the same major version can read the data files.
You need to upgrade properly. To do that you'll have to install 8.4, then use
pg_upgrade
, or usepg_dump
andpg_restore
. See the manual for more information.That said, the error actually has the versions the other way around - it says you're running 8.4 binaries and trying to point them at a datadir from 9.2. Verify this with
postgres --version
. If you turn out to have 8.4 binaries and a 9.2 datadir then pg_upgrade won't do you any good - you just need to install 9.2 (or use the correctPATH
if it's already installed) and run the 9.2 datadir using 9.2 binaries.Update given extra info in question:
It is very likely that both 8.4 and 9.2 are running fine on your machine, just on different ports.
will show you listening PostgreSQL servers, and
(or whatever) will connect to a different port.
The databases appeared to vanish because when you installed the new PostgreSQL it became the default version that's run.
If you find that the 8.4 install is in fact not running, you probably just need to change the
port
it starts on in its configuration so it runs on a different port, then connect to it as shown above.