Fixing OID directory names after a fsck

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

Our virtual server (running 9.4) suffered a disk corruption outage due to a flaky SAN. As a result, all the contents of /var/lib/postgresql ended up (along with lots of other things) in lost+found with names like #1835289.

By looking for directories containing PG_VERSION (and checking the version number), I found 9 directories named like: ./#1835987/PG_VERSION. These look similar to other top-level dirs within main/base, and "strings" shows contents that does indeed look like I've identified the right thing.

So, I made a clean install of Postgres 9.4 on a new machine (Ubuntu 17.04), and copied the directories into /var/lib/postgresql/9.4/main/base. I now have:

root@treacle:/var/lib/postgresql/9.4/main/base# ls
1 12172 12177 16384 1828647 1835009 1835289 1835317 1835987 1843977 1844229 1844901 1958920

where the first 3 directories are the system defaults, 16384 is a test that I created, and 1828647 - 1958920 are the recovered top-level database directories (but with the wrong names). However, Postgresql doesn't recognise them.

From what I've been able to understand, if I could find out what the database OIDs used to be, I could just rename the 1828647 etc to the correct names, and it would work. But I'm not sure how to do this... all the documents are about how to find the file if you know the OID, rather than how to set the OID to match the file. I tried the "obvious" step of creating a new database called "rescue", getting 16384, stopping postgresql, renaming one of my backups to 16384, and restarting - but that doesn't help.

Can anyone here give me a pointer?

Thanks very much for your help,

Richard

P.S. I've just joined, and I think I'm posting this to the right place
but if not, please let me know.


--
Sent via pgsql-admin mailing list (pgsql-admin@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux