On 21/08/2009, at 12:40 PM, Seth Gordon wrote:
Yaroslav Tykhiy wrote:
By the way, `chkdsk' in Windows or `fsck' in Unix can, in a way, be
a _source_ of file loss if the file metadata got damaged badly,
e.g., by a system crash, and the file node has to be cleared. So
I've always been curious if there is a way to retrieve surviving
records from a PostgreSQL database damaged by file loss. Do you
know any? (Of course, the only true solution is to have been
making backups beforehand, but...)
The Ubuntu Linux site has this page on data recovery (also
applicable to other Linux flavors):
https://help.ubuntu.com/community/DataRecovery
I assume that a database file, because of its structure, is harder
to recover after it becomes corrupt than, say, an XML file. But any
port in a storm, right?
Excuse me, but my curiosity was about a somewhat different thing.
Let's assume we did file system level data recovery but lost just a
couple of files from $PGDATA/base that were damaged hopelessly. Now,
if we start pgsql and try accessing the database, pgsql will fail as
soon as it hits a missing file. So I wondered if there was a way to
tell pgsql to ignore such errors at the cost of returning possibly
inconsistent and corrupted data. It has just occurred to me that
recreating the files zero-filled is another option to try. As long as
the objects stored in the database are small and/or uncompressed,
screwing up a few pages shouldn't affect data from the other pages,
right?
Yar
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general