On Thursday 04 December 2003 14:55, 吴德文 wrote:
> Help!
>
> A few days ago, my php page began to complain this:
> ------
> Warning: PostgresSQL query failed: pqReadData() -- backend closed the
> channel unexpectedly. This probably means the backend terminated abnormally
> before or while processing the request.
[snip]
> NOTE:
> I'm on Redhat 6.2 with Postgresql 6.5.3, the database named "news",
> and the table is "newses", looks like this (dumped from "pg_dump -s -t
> newses news"):

One of the developers will probably be able to help, but bear in mind many are 
in the USA/Canada and so you might have time-zone delays. It will be 
suggested you upgrade to 7.3.5 or 7.4.0 as soon as possible. That might mean 
upgrading from RedHat 6.2 as well.

At present:
1. Dump all the other tables, if you can
2. Stop PostgreSQL 
3. make a file backup of /var/data (or wherever your data is stored)

OK - now at least you know things can't get any worse.

In psql you can use \a to set unaligned output and \o <filename> to output 
query results to a file. You can then try SELECT * FROM newses WHERE news_id 
BETWEEN 1 AND 100, then 101-200 etc. This should let you recover a great deal 
of your data if only one disk-block is damaged.

>From what you say, you should be able to recover your table's data. Then, I'd 
recreate the database from your dumps.

> But I found that pg_dump sometimes does not work on that very table, and
> sometimes work with a long long time then error.

This sounds like either a disk or memory error. I'd guess disk.

-- 
  Richard Huxton
  Archonet Ltd

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to