From: | Zdenek Kotala <Zdenek(dot)Kotala(at)Sun(dot)COM> |
---|---|
To: | chris(dot)jurado(at)primesoft(dot)ph |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Replacing the corrupt "global" folder with older one |
Date: | 2008-03-04 08:55:39 |
Message-ID: | 47CD0E8B.702@sun.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
chris.jurado napsal(a):
> Sorry for sending this directly to the hackers mailing list. But, i think it did not belong in any other as it involves internals about the files in the data directory.
>
>
> PostgreSQL version: 8.1.2
> Operating system: Windows XP/2003
>
> The PostgreSQL service is not starting anymore. When I manually start it, it said something like it started but ended immediately because it had no work to do. I encountered this error before but a simple re-installation fixed it. This time, it didn't.
>
> I've tried running the service using a backup data folder w/c was 2 days ago, it runs. When I switch back to the current, I get the error above. So, I figured the current data must be corrupt. After examination of the data folder, the global folder is now not a folder but a file that is 8KB in size (I found this out by trying out the reset_xlog command and it said it could no longer find the global/xxx file). It could be the hard disk has a problem. I'm going to replace it soon.
>
> I searched the documentation about what the global folder contains and found out that these contain cluster-wide tables like the list of databases, etc.
>
> I wanted not to lose the latest transactions by restoring a backup. Now the question is this, is it ok to just copy the global folder from my backup 2 days ago, and replace the one in my current data folder? I'm very very sure no DDL statements were executed or no new databases/other objects were created since my last backup. Only DML statements were executed on the user's databases. Will I lose data if I do this?
Global tables also contain information about vacuuming, freeze xid and
oids. You could have problem for example with tuple visibility.
You can try it but backup current state first. And when it will work,
dump all database cluster and regenerate it from a scratch. And try to
use newer version of PostgreSQL (8.1.11 or better is 8.3).
Zdenek
From | Date | Subject | |
---|---|---|---|
Next Message | Zdenek Kotala | 2008-03-04 09:11:47 | How to handle error message in PG_CATCH |
Previous Message | Joshua D. Drake | 2008-03-04 05:43:02 | Re: pg_dump additional options for performance |