pg.ddx.io  pgsql-admin@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Achilleas Mantzios <achill@matrix.gatewaynet.com>
To: pgsql-admin@postgresql.org
Subject: Easy way to know the original table row/column given a pg_toast.pg_toast_XXXX chunk_id ?
Date: Fri, 24 Jan 2014 17:03:01 +0200
Message-ID: <52E280A5.9000007@matrix.gatewaynet.com> (raw)
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-admin>

Hello,
just a general question regarding toast, we have run across various instances of problems
having to do with corrupted toast data as a consequence of hardware failures.
The ERRORs were of the type : "missing chunk number %d for toast value %u in %s"
The usual way people try to find the row in the original table is to try a (potentially large)
number of queries in a effort to narrow down the problem, and finally find the row
with the corrupted TOAST.
(yes i know writing a program to do it would be handy, unfortunately the said server of ours
lies somewhere in some ocean with limited ISDN connectivity, so in general deployments are a big PITA)

I understand the chunk_id is the "oid" of the "value" to be toasted, is there any way to get to the row/column
of the toasted table, faster than the aforementioned exhaustive search?

What i did in order to research this (not in a context of a specific problem)
was in my test server, to create a new row in some toasted table, and then find the newest additions (chunk_id) to the
corresponding toast table. But i could not find a way (via pg_* relations) to somehow link the new row of the original table
to the set of new rows (chunk_id, chunk_seq) in the toast table.

-- 
Achilleas Mantzios
Head of IT DEV
IT DEPT
Dynacom Tankers Mgmt



-- 
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin



view thread (3+ messages)  latest in thread

Message-ID: <52E280A5.9000007@matrix.gatewaynet.com>
Permalink:  ../52E280A5.9000007@matrix.gatewaynet.com/
Also on:    postgresql.org/message-id/52E280A5.9000007@matrix.gatewaynet.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-admin@postgresql.org
  Cc: achill@matrix.gatewaynet.com
  Subject: Re: Easy way to know the original table row/column given a pg_toast.pg_toast_XXXX chunk_id ?
  In-Reply-To: <52E280A5.9000007@matrix.gatewaynet.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox