FATAL error after a system crash

Started by Feng-Cheng Changalmost 24 years ago3 messagesgeneral
Jump to latest
#1Feng-Cheng Chang
breeze@alumni.nctu.edu.tw

Hello everybody,

My system crashed two days ago. After the system restarted, the
postmaseter also started without any error messages. The problem happens
when I try to
connect to the database using either psql or JDBC, it says

"FATAL 1: cannot open pg_variable: no such file or directory"

and terminates the connection.

Is there any chance to recover the database to a "workable" state?
Because I forgot to backup for a few weeks, the latest dump is
quite out-of-date :(
Frankly speaking, I have no idea about where the problem is.
Hope this is not really a "fatal" crash.

Would any kind people here help me to recover the DB?
If the data are corrupted and the database should be re-initialized,
is there any method to retrieve as much data as possible from the old
repository files?

P.S.
My system configuration:
Win2k server
cygwin + postgresql 7.1.3

Thank you very much!!

Feng-Chang Chang

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Feng-Cheng Chang (#1)
Re: FATAL error after a system crash

Feng-Cheng Chang <breeze@alumni.nctu.edu.tw> writes:

when I try to
connect to the database using either psql or JDBC, it says
"FATAL 1: cannot open pg_variable: no such file or directory"
and terminates the connection.

Well, if that's the only problem, you got (very) lucky. 7.1.* doesn't
actually use pg_variable, but there is still vestigial code in it that
tries to open that file during startup. All you need is an empty file
of the right name, so try

touch $PGDATA/global/1264

But I fear that'll just let you get to the next problem :-(. If Windoze
managed to lose that file, it probably managed to lose other stuff too.
If it does seem to start up okay, I'd recommend trying to do pg_dumpall,
and then initdb and reload if the dump process doesn't show errors.

P.S.
My system configuration:
Win2k server
cygwin + postgresql 7.1.3

This is not a production-grade setup IMHO. If you don't want to run
a real OS to put Postgres on top of, you'd better be a lot more
religious about backing up.

regards, tom lane

#3Feng-Cheng Chang
breeze@alumni.nctu.edu.tw
In reply to: Feng-Cheng Chang (#1)
Re: FATAL error after a system crash

Tom Lane wrote:

Feng-Cheng Chang <breeze@alumni.nctu.edu.tw> writes:

"FATAL 1: cannot open pg_variable: no such file or directory"
and terminates the connection.

Well, if that's the only problem, you got (very) lucky. 7.1.* doesn't
actually use pg_variable, but there is still vestigial code in it that
tries to open that file during startup. All you need is an empty file
of the right name, so try

touch $PGDATA/global/1264

But I fear that'll just let you get to the next problem :-(. If Windoze
managed to lose that file, it probably managed to lose other stuff too.
If it does seem to start up okay, I'd recommend trying to do pg_dumpall,
and then initdb and reload if the dump process doesn't show errors.

Things went like what you said....
I started postmaster and connected to it using psql without error
messages. When I tried to pg_dumpall or pg_dump, the message "cannot
open pg_inherits: no such file or directory" appeared. Although I
couldn't dump the database, I use SQL COPY to save all needed tables to
files :-D After the table-by-table recovery, my application was back!

Thank you for your great help :-)

Win2k server
cygwin + postgresql 7.1.3

This is not a production-grade setup IMHO. If you don't want to run
a real OS to put Postgres on top of, you'd better be a lot more
religious about backing up.

I don't think it is a good setup, either. If I had a spare machine, I
would like to install a UNIX-like system and move my application to it.
Anyway, thank you for your suggestion. I'll never forget to backup
periodically :-)

--
Feng-Cheng Chang (嚙箠 嚙緘 嚙踝蕭)
Ph.D. Student of
Communication Electronics & Signal Processing Laboratory,
Institute of Electronics, NCTU, Taiwan, R.O.C.
E-mail: fcchang.ee88g@nctu.edu.tw