FATAL error after a system crash
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
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
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 trytouch $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.3This 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