Re: [XX000] ERROR: could not open relation with OID "someoid"
От | Igor Neyman |
---|---|
Тема | Re: [XX000] ERROR: could not open relation with OID "someoid" |
Дата | |
Msg-id | A76B25F2823E954C9E45E32FA49D70ECCD54E1D7@mail.corp.perceptron.com обсуждение исходный текст |
Ответ на | [XX000] ERROR: could not open relation with OID "someoid" (Artem Tomyuk <admin@leboutique.com>) |
Список | pgsql-admin |
Hi.
When i running query (to find the total size of biggest relation in db):
SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
AND C.relkind <> 'i'
AND nspname !~ '^pg_toast'
ORDER BY pg_total_relation_size(C.oid) DESC
LIMIT 20;
I'am often getting the error [XX000] ERROR: could not open relation with OID "someoid". Every time the OID is different.
Some times the query succeeding and i see the result.
This also happens on the slave servers.
Any ideas?
Thank you.
PS
PostgreSQL 9.1.2 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11), 64-bit
If you want to exclude TOAST tables and indexes, instead of
AND C.relkind <> 'i'
AND nspname !~ '^pg_toast'
just do:
AND C.relkind = ‘r’ -- ordinary table
But, your error probably is caused by temporary tables, so to exclude those just add:
AND c.relpersistence != ‘t’
Regards,
Igor Neyman
В списке pgsql-admin по дате отправления: