2014-07-21 11:20 GMT-03:00 <ngonz...@ig.com.br>: > Executei o comando acima: > > oid | relkind > ---------------------------+--------- > pg_toast.pg_toast_1088147 | t > > > Olhei em [1] o tipo t (TOAST table) e nao faço ideia do que seja isto. > _ >
humm... Não tenho boas notícias pra você. As tabelas TOAST armazenam dados de uma determinada tabela. De forma superficial, dados que ocupam muito espaço são comprimidos e salvos na TOAST, veja [1] para mais detalhes. Uma tabela TOAST está sempre associada a outra tabela, para achar qual é a tabela que realmente apresenta problemas, você deve executar a seguinte consulta: SELECT oid::regclass FROM pg_class WHERE reltoastrelid = 'pg_toast.pg_toast_1088147'::regclass; > > > > É exatamente no meio do dump que ocorre o problema. > Na verdade é na consulta do COPY. O fato é que qualquer consulta que atingir (no caso fazer um "detoast") do(s) registro(s) corrompidos na tabela TOAST vão apresentar problema. A solução seria identificar qual(is) é(são) o(s) registro(s) problemático(s) e atualizá-lo(s) ou removê-lo(s). Uma forma é usar LIMIT/OFFSET ou o ctid e ir recuperando registro por registro até um erro ser apresentado. > Tem como fazer o dump ignorando esta pg_toast? > Não. E nem faria sentido, tabelas tipo TOAST não são descartáveis, elas realmente possuem partes dos dados de suas tabelas. > Posso fazer isso e restaurar sem problemas? > Não. :-( [1] http://www.postgresql.org/docs/current/static/storage-toast.html -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral