Re: [pgbr-geral] missing chunk number 0 for toast value 382548694 in pg_toast_847386

2017-10-23 Por tôpico Gerdan Rezende dos Santos
Boa noite Rodrigo!

Isso ai e mensagem de corrupção de dados, pode ser índice do toast que ta
crashado, pode ser o chuck mesmo, pode ser uma página ruim... então pode
ser muita coisa...

É necessária uma análise completa do ambiente não só para identificar e
resolver o problema, mas para identificar o que gerou ele para que não mais
ocorra!

Existem várias formas de resolver dependendo do que é o problema!




On Mon, 23 Oct 2017 at 15:52 rodrigo rodrigues barbosa <
rrodriguesdbaora...@gmail.com> wrote:

> Olá pessoal.
>
> To com um problema que não sei se tem solução...
>
> estou com uma tabela com este erro
> ERROR:  missing chunk number 0 for toast value 1460249954 in
> pg_toast_1306209316
> ** Error **
>
> ERROR: missing chunk number 0 for toast value 1460249954 in
> pg_toast_1306209316
> SQL state: XX000
>
> nunca me deparei com este erro antes.
>
> como resolvo isto?
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

-- 
--
*Gerdan Rezende dos Santos *
Hortonworks, PostgreSQL & EnterpriseDB Specialist, Support, Training &
Services
+55 (61) 996 451 525
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Delete ou Update em dois registros identicos

2017-10-23 Por tôpico Edelson Regis de Lima
Isso mesmo Fábio, resolvi com o CTID!

Valew pessoal!

Edelson

Em 23 de outubro de 2017 14:48, Fábio Telles Rodriguez <
fabio.tel...@gmail.com> escreveu:

> Veja se assim fica claro:
>
> http://www.savepoint.blog.br/2017/10/23/removendo-registros-identicos-no-
> postgresql/
>
> Em 16 de outubro de 2017 13:03, Edelson Regis de Lima 
> escreveu:
>
>> Olá pessoal.
>>
>> To com um problema que não sei se tem solução...
>>
>> Tem um cliente que tem um banco de dados com uma tabela com dois
>> registros identicos, e preciso dar um update ou um delete em um dos
>> registros, porém como todos os campos são iguais, ainda não achei uma
>> solução.
>>
>> Exmplo: tenho a minha_tabela, com as colunas col_a e col_b. Nessa tabela
>> tem dois registros identicos:
>>
>> col_a | col_B
>>
>> aaa | bbb
>>
>> aaa | bbb
>>
>> Eu gostaria de apagar a linha dois por exemplo, ou dar um update mudando
>> as informações para ccc | ddd.
>>
>> Já vi o uso do ROW_NUMBER () OVER (ORDER BY id), porém só achei exemplos
>> que funcionasse com o SELECT.
>>
>> Já tentei:
>>
>> UPDATE minha_tabela SET col_a = 'ccc', col_b = 'ddd' where col_a = 'aaa'
>> and col_b = 'bbb' and ROW_NUMBER () OVER (ORDER BY id) = 2;
>>
>> Porém dá: ERROR:  cannot use window function in UPDATE
>>
>> Alguém teria uma solução?
>>
>> Agradeço desde já!
>>
>> --
>> *Edelson Regis de Lima*
>>
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>
>
>
> --
> Atenciosamente,
> Fábio Telles Rodriguez
> blog: http:// s
> avepoint.blog.br
> e-mail / gtalk / MSN: fabio.tel...@gmail.com
> Skype: fabio_telles
>
> Timbira - A empresa brasileira de Postgres
> http://www.timbira.com.br
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] missing chunk number 0 for toast value 382548694 in pg_toast_847386

2017-10-23 Por tôpico rodrigo rodrigues barbosa
Olá pessoal.

To com um problema que não sei se tem solução...

estou com uma tabela com este erro
ERROR:  missing chunk number 0 for toast value 1460249954 in
pg_toast_1306209316
** Error **

ERROR: missing chunk number 0 for toast value 1460249954 in
pg_toast_1306209316
SQL state: XX000

nunca me deparei com este erro antes.

como resolvo isto?
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Delete ou Update em dois registros identicos

2017-10-23 Por tôpico Fábio Telles Rodriguez
Veja se assim fica claro:

http://www.savepoint.blog.br/2017/10/23/removendo-registros-identicos-no-postgresql/

Em 16 de outubro de 2017 13:03, Edelson Regis de Lima 
escreveu:

> Olá pessoal.
>
> To com um problema que não sei se tem solução...
>
> Tem um cliente que tem um banco de dados com uma tabela com dois registros
> identicos, e preciso dar um update ou um delete em um dos registros, porém
> como todos os campos são iguais, ainda não achei uma solução.
>
> Exmplo: tenho a minha_tabela, com as colunas col_a e col_b. Nessa tabela
> tem dois registros identicos:
>
> col_a | col_B
>
> aaa | bbb
>
> aaa | bbb
>
> Eu gostaria de apagar a linha dois por exemplo, ou dar um update mudando
> as informações para ccc | ddd.
>
> Já vi o uso do ROW_NUMBER () OVER (ORDER BY id), porém só achei exemplos
> que funcionasse com o SELECT.
>
> Já tentei:
>
> UPDATE minha_tabela SET col_a = 'ccc', col_b = 'ddd' where col_a = 'aaa'
> and col_b = 'bbb' and ROW_NUMBER () OVER (ORDER BY id) = 2;
>
> Porém dá: ERROR:  cannot use window function in UPDATE
>
> Alguém teria uma solução?
>
> Agradeço desde já!
>
> --
> *Edelson Regis de Lima*
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Atenciosamente,
Fábio Telles Rodriguez
blog: http:// s
avepoint.blog.br
e-mail / gtalk / MSN: fabio.tel...@gmail.com
Skype: fabio_telles

Timbira - A empresa brasileira de Postgres
http://www.timbira.com.br
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Delete ou Update em dois registros identicos

2017-10-23 Por tôpico Fábio Telles Rodriguez
Em 23 de outubro de 2017 12:59, Luiz Carlos L. Nogueira Jr. <
lcnogueir...@gmail.com> escreveu:

> Fazer um update com limit 1 não funcionaria?
>

O LIMIT se aplica ao SELECT, a condição do UPDATE vem pelo WHERE. Você tem
que fazer algo assim:

SELECT *ctid, ** FROM tabela;

UPDATE tabela SET ...  WHERE *ctid = ( xxx, yyy)::tid*


Onde xxx e yyy são o par de números exibidos no ctid que você recebeu no
seu SELECT.



> Em 17 de outubro de 2017 10:17, Edelson Regis de Lima 
> escreveu:
>
>> Obrigado pessoal!
>> Obrigado a todos pela ajuda!
>>
>> Grande abraço!
>>
>> --
>> *Edelson Regis de Lima*
>>
>> Em 16 de outubro de 2017 15:01, Michel Luiz Milezzi <
>> michelmile...@gmail.com> escreveu:
>>
>>> Edelson, neste caso você deve usar a localização física dos registros
>>> (coluna implícita ctid).
>>>
>>> https://www.postgresql.org/docs/current/static/ddl-system-columns.html
>>>
>>> Em 16 de outubro de 2017 15:51, Danilo Silva >> > escreveu:
>>>


 Danilo Gomes

 Em 16 de outubro de 2017 15:32, Edelson Regis de Lima <
 edre...@gmail.com> escreveu:

> Olá Flávio.
>
> Mas com esse exemplo você está supondo que na tabela exista o campo
> "id" que seria uma chave única, correto?
> O problema é que nessa tabela que mencionei não sei porque raios não
> existe essa chave única. Tem um campo id, auto incremento, que seria essa
> chave única, mas não sei como o sistema conseguiu inserir dois registros
> identicos, inclusive o valor do id...
> Então eu teria que ver se dá para identificar de outra maneira, pela
> posição física do registro, sei lá...
> Não sei se isso é possível... rs
>
> ​Você tem duas opções:
 a) se a tabela possuir o campo OID (essa coluna normalmente fica
 invisível, depende do método de criação da tabela), você pode deletar por
 esse registro, exemplo: SELECT OID, col_a,
 col_
 ​b FROM tabela, e depois deletar: DELETE FROM tabela WHERE (OID = ?)

 b) se a tabela não for muito grande, você pode adicionar uma nova
 coluna com ​
 ​

 ​o tipo sendo serial: ALTER TABLE tabela ADD COLUMN cod_delete serial.
 Com isso você consegue deletar através do código dessa coluna.

 []s
 Danilo​

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

>>>
>>>
>>> ___
>>> pgbr-geral mailing list
>>> pgbr-geral@listas.postgresql.org.br
>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>
>>
>>
>>
>>
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Atenciosamente,
Fábio Telles Rodriguez
blog: http:// s
avepoint.blog.br
e-mail / gtalk / MSN: fabio.tel...@gmail.com
Skype: fabio_telles

Timbira - A empresa brasileira de Postgres
http://www.timbira.com.br
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Delete ou Update em dois registros identicos

2017-10-23 Por tôpico Luiz Carlos L. Nogueira Jr.
Fazer um update com limit 1 não funcionaria?

Em 17 de outubro de 2017 10:17, Edelson Regis de Lima 
escreveu:

> Obrigado pessoal!
> Obrigado a todos pela ajuda!
>
> Grande abraço!
>
> --
> *Edelson Regis de Lima*
>
> Em 16 de outubro de 2017 15:01, Michel Luiz Milezzi <
> michelmile...@gmail.com> escreveu:
>
>> Edelson, neste caso você deve usar a localização física dos registros
>> (coluna implícita ctid).
>>
>> https://www.postgresql.org/docs/current/static/ddl-system-columns.html
>>
>> Em 16 de outubro de 2017 15:51, Danilo Silva 
>> escreveu:
>>
>>>
>>>
>>> Danilo Gomes
>>>
>>> Em 16 de outubro de 2017 15:32, Edelson Regis de Lima >> > escreveu:
>>>
 Olá Flávio.

 Mas com esse exemplo você está supondo que na tabela exista o campo
 "id" que seria uma chave única, correto?
 O problema é que nessa tabela que mencionei não sei porque raios não
 existe essa chave única. Tem um campo id, auto incremento, que seria essa
 chave única, mas não sei como o sistema conseguiu inserir dois registros
 identicos, inclusive o valor do id...
 Então eu teria que ver se dá para identificar de outra maneira, pela
 posição física do registro, sei lá...
 Não sei se isso é possível... rs

 ​Você tem duas opções:
>>> a) se a tabela possuir o campo OID (essa coluna normalmente fica
>>> invisível, depende do método de criação da tabela), você pode deletar por
>>> esse registro, exemplo: SELECT OID, col_a,
>>> col_
>>> ​b FROM tabela, e depois deletar: DELETE FROM tabela WHERE (OID = ?)
>>>
>>> b) se a tabela não for muito grande, você pode adicionar uma nova coluna
>>> com ​
>>> ​
>>>
>>> ​o tipo sendo serial: ALTER TABLE tabela ADD COLUMN cod_delete serial.
>>> Com isso você consegue deletar através do código dessa coluna.
>>>
>>> []s
>>> Danilo​
>>>
>>> ___
>>> pgbr-geral mailing list
>>> pgbr-geral@listas.postgresql.org.br
>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>
>>
>>
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral