Re: unable to dump database, toast errors
От | Lonni Friedman |
---|---|
Тема | Re: unable to dump database, toast errors |
Дата | |
Msg-id | 3E90A92D.6030102@vasoftware.com обсуждение исходный текст |
Ответ на | Re: unable to dump database, toast errors (Jan Wieck <JanWieck@Yahoo.com>) |
Список | pgsql-general |
On 04/06/03 14:50, Jan Wieck wrote: > Lonni Friedman wrote: >> On 04/04/03 14:32, Tom Lane wrote: >> >> i'm positive that there is a much more recent release. this server is >> >> sadly, very poorly maintained by the customer. do you feel that the >> >> segfaults generated in psql are blocking any possible solution to the >> >> pg_dump failures, or can you/I work on a solution for that indpendently of >> >> resolving the segfaults? >> > >> > Assuming that I've correctly diagnosed the segfault, it will only occur >> > if you try to print an extremely wide value in psql. It's pretty easy >> > to avoid doing so, though. For example, you could query for >> > LENGTH(bin_data) or a SUBSTRING() of it, instead of printing the whole >> > field value. AFAIR, 7.2 does not have any optimizations that would >> > skip fetching the whole toasted value when it is the argument of one of >> > these functions, so "select length(bin_data) ..." should be just as >> > useful for checking for brokenness as "select bin_data ...". >> >> Hi Tom, >> Following your suggestion, i pinned down the following: >> >> sfee=# select LENGTH(bin_data) from artifact_file LIMIT 1 OFFSET 693; >> ERROR: missing chunk number 1 for toast value 7685119 >> >> However, what is very odd, is that I can view the entire contents of >> that row's particular bin_data column if i do a normal select: >> select bin_data from artifact_file LIMIT 1 OFFSET 693; >> >> and it completes with no errors. After more testing, it appears that >> the 'select LENGTH(bin_data) ...' for any offset greater than or equal >> to 693 dies with the same 'missing chunk...' error. >> >> any suggestions on where to go from here? > >From that I would assume that the row at offset 693 is totally intact > but the one at 694 is the one damaged. LIMIT reads one more row > internally than you asked for. > > Get the key of the row at 694 (and others you might find) and continue > the work using those keys. I'm not sure that I understand what it is that I need to do now: sfee=# select bin_data from artifact_file LIMIT 1 OFFSET 694; ERROR: missing chunk number 1 for toast value 7685119 sfee=# select LENGTH(bin_data) from artifact_file LIMIT 1 OFFSET 694; ERROR: missing chunk number 1 for toast value 7685119 How would i get the key of row 694?
В списке pgsql-general по дате отправления: