Re: [pgbr-geral] restore baseado em cópia do hd
>>Só precisa conferir as permissões. Vou conferir as permissões, muito obrigado. >>PS: Não te esquece de se cadastrar na lista nova!!! Acabei de me inscrever na nova lista. Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] restore baseado em cópia do hd
Boa tarde, Preciso restaurar uma base de dados a partir de uma cópia dos arquivos do sistema operacional. Gostaria de confirmar se precisa ser o mesmo sistema operacional e mesma versão do postgresql? Basta ser Windows 64bits, ou tem que ser exatamente Windows 2012 R2 64bits como era o caso. Basta ser 9.4, posso pegar a última 9.4.17. Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] mover esquema para novo tablespace
bom dia a todos, Preciso mover meu esquema de audit para outra partição por motivos de espaço em disco, gostaria de confirmar se basta executar as queries abaixo: - create tablespace ts2 owner postgres location '/data/table_space_2'; - alter schema audit set tablespace ts2; Desta forma todas tabelas, índices, etc.. que estão no esquema serão transferidos para a outra partição? Obs.: Ubuntu 16.04 Postgres 9.4.15 Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] ping
PING listas.postgresql.org.br (45.33.72.210): icmp_seq=12 ttl=52 time=174 1 packet transmitted, 1 received, 0% packet loss, time 1day ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] "orientado a banco de dados"
>>Os problemas gerais seriam a briga com o time de dev (a pratica de logica no DB é abominada pela maioria, tipo 99%) Realmente a maioria dos desenvolvedores é contra, mas faço parte do 1% Prefiro toda regra de negócio no banco de dados, priorizando a performance Utilizando o servidor de aplicação (java/scala/python) apenas como "bypass", realizando apenas a autenticação. Alessandro Lima ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] ignorar trigger de origem cascade
Boa tarde, Estou criando triggers para indexar (sincronizar) com o elasticsearch, Exemplo: Documento json {pessoa:1,filiacao:[{pessoa:2}.{pessoa:3}]} Tabela pessoa (principal), Tabela filiacao (subordinada) com foreign key cascade para pessoa Tenho uma trigger ao deletar a pessoa, retiro o documento do elasticsearch, e outra trigger ao deletar filiacao, atualizo o documento da pessoa referente aquele pai/mae O problema é que o cascade realiza primeiro o delete na tabela pessoa, ao tentar realizar o delete na tabela filiacao (cascade), não consegue atualizar o documento no elasticsearch pois ele não existe mais. Existe alguma maneira de identificar a origem da trigger como sendo de um cascade, para que eu possa ignorar a trigger/function? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] alerta de tentativas de conexão
>> Pode ser monitorado configurando alguns detalhes dos logs no PostgreSQL: Sim, eu já monitoro as conexões pelo pgBadger, mas o que eu queria era ser notificado se o número de tentativas falhas atingisse determinado valor, evitando ficar consultando o log ou pgBadger manualmente. Caso não tenha nenhuma ferramenta neste sentido, vou criar um shell script para isso. Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] alerta de tentativas de conexão
Bom dia, Gostaria de saber se existe alguma ferramenta para alertar/monitorar tentativas (ataques) de conexão ao banco de dados. Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Perder Dados
um log como o https://wiki.postgresql.org/wiki/Audit_trigger_91plus ajudaria muito nesses casos Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Seguencia de logs no audit trigger
>>Jovem, execute o exemplo abaixo e vc entenderá a diferença: Percebi que o current_timestamp sempre pega o mesmo horário que seria quando iniciei a transação e que o clock_timestamp() sempre pega o horário atual realmente. Mas continuo sem entender, pois no caso que relatei, tanto clock_timestamp(), quanto current_timestamp, quanto statement_timestamp() estão exibindo o mesmo horário Percebo que a transação 7362816 com event_id = 93986673 foi realizada antes das demais, apesar do current_timestamp, clock_timestamp() e statement_timestamp() informarem o contrário, pois o valor 77141 que foi alterado nesta transação é registrado como valor antigo nas demais transações https://drive.google.com/file/d/0B47dJuZYaLMaYU9vQWIwSFphcW8/view?usp=sharing obs.: valor_antigo foi retirado do row_data (OLD.*) e novo_valor foi retirado do changed_fields (NEW.*) ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Seguencia de logs no audit trigger
Boa tarde, Costumo pesquisar em meus logs do Audit Trigger ordenando por action_tstamp_stm para ver a sequencia de alterações em um registro. Mas percebi que em alguns casos os dados alterados estavam fora da ordem cronológica, constatei então que a ordem sequencial da chave primária event_id e da transaction_id não estão coerentes com a ordem crescente das datas, por exemplo: event_id transaction_id action_tstamp_tx action_tstamp_stm action_tstamp_clk 93986673 7362816 2016-11-17 09:17:59.453002-02 2016-11-17 09:17:59.460058-02 2016-11-17 09:17:59.460938-02 93986846 7362848 2016-11-17 09:11:58.574255-02 2016-11-17 09:11:58.57457-02 2016-11-17 09:11:58.575121-02 93986858 7362866 2016-11-17 09:12:21.143129-02 2016-11-17 09:12:21.143443-02 2016-11-17 09:12:21.166096-02 93986935 7362985 2016-11-17 09:13:12.403124-02 2016-11-17 09:13:12.411809-02 2016-11-17 09:13:12.412167-02 Exemplo da function que captura os logs: audit_row = ROW( nextval('audit.logged_actions_event_id_seq'),-- event_id current_timestamp,-- action_tstamp_tx statement_timestamp(),-- action_tstamp_stm clock_timestamp(),-- action_tstamp_clk txid_current(), -- transaction ID Alguém sabe me explicar o que está acontecento? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] armazenamento de imagens no Banco x File System
>>O que é mais indicado, gravar arquivos em file system ou no próprio banco ? Também tive essa dúvida e decidi por utilizar o melhor de ambos, Para Inserir/Alterar/Excluir gravo no banco de dados, pois tenho backup unificado e controle de transação. Para Visualizar utilizo o servidor web nginx (funciona como cache), pois não sobrecarrego o banco de dados. >>Sendo file system vocês tem sugestão de ferramentas ? Como minha aplicação fica no mesmo servidor que o banco de dados, utilizo a biblioteca Apache FileUtils. Atenciosamente, Alessandro Lima > ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tabela não aceita criação de trigger
>>SELECT age(now(), max(prepared)) FROM pg_prepared_xacts; Muito obrigado Matheus, vou providenciar esse monitoramento. Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tabela não aceita criação de trigger
>>Como sabe que esse commit prepared é a causa de seu problema? meio que intuição, rsrsrs rodei o comando: select database, gid, prepared from pg_prepared_xacts e nele o campo prepared mostrava data de fevereiro de 2016 executei o comando: rollback prepared '4871251_EF6eOp5vdGltaXplLXBjLHNlcnZlcixQMTAw_b3RpbWl6ZS1wYyxzZXJ2ZXIsUDEwMCwB' e resolveu o problema, trigger criada com sucesso. Obrigado a todos pela ajuda. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tabela não aceita criação de trigger
>>Eu gostaria de ver todas as colunas, não apenas a consulta. datid, datname, pid, usesysid, usename, application_name, client_addr, client_hostname, client_port, backend_start, xact_start, query_start, query_change, waiting, state, backend_xid, backend_xmin, query 2694156;"VTRBD";8641;10;"postgres";"";"192.168.2.241";"";59608;"2016-09-20 09:22:30.220249-03";"";"2016-09-20 10:19:49.880087-03";"2016-09-20 10:19:49.880977-03";f;"idle";;;"COMMIT PREPARED '4871251_BBMBANZmB0d2dHJ1bS1hcHAtMDEuaW4udnRydW0uY29tLmJyLHNlcnZlcixQMTAw_dnRydW0tYXBwLTAxLmluLnZ0cnVtLmNvbS5icixzZXJ2ZXIsUDEwMCwA'" ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tabela não aceita criação de trigger
>>Qual a saída de: >>SELECT * FROM pg_stat_activity; >>? "COMMIT PREPARED '4871251_SvUAANZmB0d2dHJ1bS1hcHAtMDEuaW4udnRydW0uY29tLmJyLHNlcnZlcixQMTAw_dnRydW0tYXBwLTAxLmluLnZ0cnVtLmNvbS5icixzZXJ2ZXIsUDEwMCwA'" Deve ser isso, utilizo controle de transação em duas bases de dados. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Tabela não aceita criação de trigger
Bom dia, Tenho um postgresql 9.4.4 em linux centos 64 bits em produção. Estou implementando o "audit trigger" e em apenas uma das tabelas não consigo criar as triggers: select audit.audit_table('tabela'); o "CREATE TRIGGER" fica rodando e nunca termina, mas aparentemente não consigo encontrar nenhum bloqueio para justificar essa demora. Alguém já passou por algo parecido? será que tenho que reiniciar o banco? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Validar valor do work_mem
>>Vê sim. >>Exemplo, quando aparece algo como: >> Sort Method: quicksort Memory: 25kB Agora consegui ver o Sort Method, é que tinha testado com order by em um indice. Fiz um teste aumentando o tamanho da consulta, para ver até onde era usado o work_mem: -com limit 56000, o Sort Method utiliza cerca de 17MB "Memory" e é executado em 1,2s -com limit 57000, o Sort Method utiliza cerca de 683MB "Merge Disk" e é executado em 9s considerando meu work_mem = 32MB, não deveria utilizar o disco apenas depois de 32MB? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Validar valor do work_mem
>>EXPLAIN (analyze, timing, buffers) SELECT... >>O explain mostra quanto de memória a consulta usa e é bem preciso. Pelo que entendi, com esse explain posso ver o uso de memória "shared_buffers" e não o "work_mem", correto? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] FDW entre bases do mesmo cluster
ops, favor desconsiderar a pergunta acima. Encontrei a solução: set search_path to esquema1,esquema2. e o interessante é que mesmo que tenha tabelas com nomes iguais, ele busca pela ordem definida pelo 'set search_path' ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] FDW entre bases do mesmo cluster
>>Se a isolação lógica imposta pelo uso de esquemas é suficiente para você, eu diria >>para ir direto e usar um só banco, você terá sempre planos ótimos. Se eu transformar cada base em um esquema, para não ter que alterar todos os sqls existentes da aplicação (pois não uso ORM), existe a possibilidade de continuar usando os nomes das tabelas sem ter que especificar o nome do esquema? pois as duas bases não possuem nomes de tabelas duplicados, em vez de fazer 'select nf.id from esquema1.cliente cli join esquema2.notafiscal nf on nf.cliente = cli.id', poderia deixar apenas 'select nf.id from cliente cli join notafiscal nf on nf.cliente = cli.id' ? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] FDW entre bases do mesmo cluster
Bom dia, Tenho uma aplicação que utiliza duas (multitenancy) bases postgresql 9.4, a princípio eram em servidores diferentes, agora estão no mesmo servidor, no mesmo cluster. Compensa mais eu migrar cada uma destas bases para um esquema de um mesmo banco, ou a diferença de perfomance por estar no mesmo banco seria pequena se eu apenas utilizar FDW? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] invalid page in block of relation base
>>Foi feito alguma mudança de plano que aumentou a quantidade de memória >>e/ou o número de vCpus? Se isso ocorreu, o servidor (ou melhor, a VM) >>foi desligada e religada ou a mudança foi "on-the-fly" e o SO ainda >>não foi reiniciado? Apenas Reinstalei o sistema operacional, não alterou o plano. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] invalid page in block of relation base
>>Para realizar a migração entre versões utilizando o pg_dump é recomendável utilizar ambos binários da versão de destino, no caso, >>utilizar o pg_dump da 9.4.8, e não da 9.3. Fiz desta forma porque o servidor de destino e origem eram o mesmo, fiz dump com 9.3, reinstalei sistema operacional e fiz restore com 9.4.8 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] invalid page in block of relation base
>>Você tentou a restauração novamente? O erro é igual? Não tentei, porque precisava colocar a aplicação em produção novamente, como a tabela que aparentemente estava corrompida era apenas de log, e eu já tinha restaurado ela no meu computador, então deixei assim mesmo em produção. >>Pode ser que seu servidor esteja com defeito. >>Sugiro fazer um memtest urgente nessa máquina e, depois, restaurar o dump novamente. vou verificar um horário para executar esse memtest, o servidor é da locaweb (CLOUD PRO) ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] invalid page in block of relation base
>>Você tentou fazer o dump e o restore utilizando os binários da 9.4? não tentei fazer o dump com os binários do 9.4, mas já restaurei o dump feito pelo 9.3 em outro computador, apenas no servidor de produção que apresentou essa falha. Obs.: agora não tem mais como fazer o dump utilizando o 9.4 pois o servidor já foi formatado. >>A versão é 9.4.X ? 9.4.8 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] invalid page in block of relation base
Migrei uma base de dados de um postgres 9.3 debian 6 64 bits para um postgres 9.4.8 debian 8.4 64bits, utilizei o pg_dump do 9.3 e o pg_restore do 9.4 ao restaurar no servidor de produção aconteceu um erro para cada índíce da tabela audit.logged_actions_2015_10 (log trigger particionado por mes) Erro: invalid page in block 9342 of relation base/16385/16585 Ocasionando a não criação dos índices desta tabela e percebi que só consigo fazer um select nesta tabela até o registro 57 (limit 57), acima disto é exibio o erro "invalid page..." restaurei esta mesma base em um postgres 9.4 windows 64bits e não apresentou nenhum problema pesquisando na internet parece que existe um bug sobre isso: https://groups.google.com/forum/#!msg/mailing.database.pgsql-bugs/ZrT7WuxSZKA/OgpsSE3nCwAJ Alguém já passou por algo parecido ou tem alguma dica para me ajudar, por favor. Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] contraint already exists (mas não existe!)
>>Pode ser esse o problema, verifique se o PgAdmin está usando os binários na mesma versão que a do seu servidor Está usando o 9.4 C:\Program Files\PostgreSQL\9.4\bin Mas a partir de agora vou sempre usar o binário do próprio servidor. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] contraint already exists (mas não existe!)
>>Você utilizou versões compatíveis de pg_dump + pg_restore com seu servidor? Fiz o dump e o restore pelo pgadmin 1.20.0 (windows) ambos os servidores do dump e do restore são linux e utilizam postgresql 9.4 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] contraint already exists (mas não existe!)
>>Poderia conectar no psql e executar `\d nome_da_tabela` de uma que está com problema? Um exemplo de tabela com problema, com o comando "\d banco" apresenta banco_pkey como UNIQUE: Indexes: "banco_pkey" UNIQUE, btree (codigo) Já numa tabela sem problemas apresenta como PRIMARY KEY: Indexes: ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] contraint already exists (mas não existe!)
Obrigado pelas dicas. Não tenho mais o log do restore, mas percebi que não estava deixando incluir e/ou excluir estas constraints devido existir um indíce para a chave primária, ao exlcuir o índice foi possível incluir a constraint e depois recriar o índice. O problema é que vai ser trabalhoso corrigir isso para centenas de tabelas. Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] contraint already exists (mas não existe!)
Boa tarde, Restaurei uma base de dados em Postgresql 9.4 64bits linux Hoje percebi que está faltando várias constraints PRIMARY KEY o estranho é que ao tentar adicionar a constraint, é informado que já existe se tento excluir a constraint, é informado que não existe Alguém já passou por isso? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] PGConfig
Para 4GB 100 connections 9.5.x o pgconfig sugere 1GB shared_buffers, 3GB effective_cache_size e 41MB de work_mem Minha dúvida é se as 100 conexões estiverem sendo usada, serão usados só de work_mem 4GB (41MB x 100), não sobrando nada para o sistema operacional, shared_buffers e maintenance_work_mem. Minha análise está correta? Atenciosamente, Alessandro Lima ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] trigger for each statement
boa tarde, Utilizo o audit trigger(1) a algum tempo, mas agora surgiu uma dúvida, toda tabela auditada possui duas trigger, uma for each row e outra for each statement mas nunca tive registros gravados pela trigger for each statement, onde a coluna statement_only ficaria true Alguém sabe me dizer se é necessária essa trigger for each statement? qual a finalidade dela? (1) https://wiki.postgresql.org/wiki/Audit_trigger_91plus Atenciosamente, Alessandro Lima ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] prepared statements
Obrigado Euler Atenciosamente, Alessandro Lima ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] prepared statements
boa noite, Pelo que entendi uma das vantagens de usar prepared statements é que o parse é realizado apenas uma vez para consultas idênticas, gostaria de saber se é nomal ter no log todos estes registros de bind também? 2016-01-13 14:17:04 BRST [10225]: [4-1] LOG: duration: 33570.858 ms execute : ... 2016-01-13 14:17:04 BRST [10229]: [4-1] LOG: duration: 32828.979 ms execute : ... 2016-01-13 14:17:05 BRST [10228]: [4-1] LOG: duration: 33158.300 ms execute : ... 2016-01-13 14:17:05 BRST [9522]: [10-1] LOG: duration: 33564.056 ms execute : ... 2016-01-13 14:17:05 BRST [10227]: [4-1] LOG: duration: 32830.827 ms execute : ... 2016-01-13 14:17:07 BRST [10233]: [4-1] LOG: duration: 33707.367 ms execute : ... 2016-01-13 14:17:08 BRST [10232]: [4-1] LOG: duration: 34604.249 ms execute : ... 2016-01-13 14:17:09 BRST [10235]: [4-1] LOG: duration: 34825.490 ms execute : ... 2016-01-13 14:17:11 BRST [10234]: [4-1] LOG: duration: 35785.093 ms execute : ... 2016-01-13 14:17:12 BRST [10236]: [4-1] LOG: duration: 36861.005 ms execute : ... 2016-01-13 14:17:14 BRST [10231]: [4-1] LOG: duration: 37549.028 ms execute : ... 2016-01-13 14:17:20 BRST [10224]: [5-1] LOG: duration: 17592.364 ms bind : ... 2016-01-13 14:17:23 BRST [10239]: [5-1] LOG: duration: 19288.528 ms bind : ... 2016-01-13 14:17:23 BRST [10225]: [5-1] LOG: duration: 19133.306 ms bind : ... 2016-01-13 14:17:24 BRST [10238]: [3-1] LOG: duration: 20334.185 ms bind : ... 2016-01-13 14:17:25 BRST [10308]: [3-1] LOG: duration: 20392.145 ms bind : ... 2016-01-13 14:17:26 BRST [10226]: [5-1] LOG: duration: 20771.352 ms bind : ... 2016-01-13 14:17:26 BRST [10229]: [5-1] LOG: duration: 20935.923 ms bind : ... 2016-01-13 14:17:27 BRST [10240]: [3-1] LOG: duration: 21022.901 ms bind : ... 2016-01-13 14:17:29 BRST [9522]: [11-1] LOG: duration: 20882.280 ms bind : ... 2016-01-13 14:17:30 BRST [10320]: [3-1] LOG: duration: 22028.661 ms bind : ... 2016-01-13 14:17:30 BRST [10318]: [3-1] LOG: duration: 22472.868 ms bind : ... 2016-01-13 14:17:30 BRST [10327]: [3-1] LOG: duration: 2535.394 ms parse : ... exite algum timeout para que a query realize um novo parse? Atenciosamente, Alessandro Lima ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tabela gigante - Melhoria
Também tive esse problema com a tabela logged_actions do "audit trigger". Tinha problemas de performance com tabela de mais de 20GB. A solução foi particionar(1) a tabela por mês. (1) http://www.postgresql.org/docs/9.4/static/ddl-partitioning.html Atenciosamente, Alessandro Lima email grandegoia...@gmail.com Em 14 de dezembro de 2015 02:34, drum.lu...@gmail.com escreveu: > Oi pessoal... > Eu tenho uma tabela de 8 GB, chamada feedlog. > > Nesta tabela eu tenho o historico do usuario dentro do sistema, TUDO o que > ele faz fica gravado ali. > Porem, para melhorar a performance eu gostaria de mudar ela. > > Talvez, criar uma tabela "feedlog-history" ou ate mesmo "feedlog-2014' e > mover dados antigos da original para esta? Tornaria maior? > > Enfim.. o que voces aconselhariam? > > *Aguns dados:* > > Size: 8 GB > > relname | relkind | reltuples | relpages > ---+-+-+-- > feedlog| r | 6.60508e+07 | 9974857 > > > > ___ > 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
Re: [pgbr-geral] dúvida sobre replicação
>>Creio que o termo correto seja streaming replication (SR) Desculpe o erro de digitação. >>Quanto ao seu funcionamento, eu recomendo tu dê uma lida na doc[2]. Já havia lido a documentação e vários tutoriais, mas a minha dúvida em específico não consegui sanar. >>Creio eu que o pg_basebackup[3] solicite que o diretório esteja fazio para efetuar a cópia do servidor master para o servidor slave. Também acho, é exatamente essa a minha dúvida, quais arquivos excluir, pois no meu caso todos os arquivos estão juntos, por exemplo não posso apagar o postgresql.conf Atenciosamente, email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] dúvida sobre replicação
Boa noite a todos, Estou com a missão de implantar um STREAM REPLICATION de um banco em produção, estamos usando a versão 9.4 do postgresql e o sistema operacional nos dois servidores é o CentOS 6,7 Minha principal dúvida é na hora da exclusão dos arquivos no slave, pois nos tutoriais que lí, pede par excluir o conteúdo da pasta /var/lib/postgresql/9.4/main/* antes de executar o pg_basebackup, mas da maneira que foi instalado pelo repositório do Centos, todos os arquivos ficam em uma única pasta "data", os arquivos de configuração junto com dados, logs, etc... Quais arquivos devo realmente excluir? Atenciosamente, Alessandro Lima ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] uncategorized SQLException
>>Isso tem cara de ser prepared statement? Tua aplicação trabalha com isso? Sim, também apresenta esta mensagem: PreparedStatementCallback; uncategorized SQLException for SQL [SELECT * FROM...] Obs.: já pesso desculpas antecipadamente pelo "SELECT * FROM" !!! ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] uncategorized SQLException
Boa tarde, Estou me deparando com um erro ao logar na minha aplicação na seguinte situação: Aplicação java web com pool de conexões C3P0 Postgresql (alguns clientes 9.3 outros 9.4) Ao executar algum ALTER TABLE ADD COLUMN... (pelo pgadmin, sem conectar pelo pool), e tentar logar na aplicação, é apresentado o seguinte erro: SQL state [0A000]; error code [0]; ERROR: cached plan must not change result type Preciso então reiniciar a aplicação para obter novas conexões e conseguir logar. Qual a melhor forma de evitar este tipo de falha? Atenciosamente, Alessandro Lima ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Consultar valores através da tabela de sistema.
Este SQL gera dinamicamente o select desejado: SELECT 'SELECT MAX(data) AS maior_data FROM ('||array_to_string(array( SELECT 'SELECT max('||column_name||') AS data FROM '||table_name FROM information_schema.columns WHERE table_schema = 'public' AND column_name = 'data' ),' union ')||') as t' AS selects; Atenciosamente, Alessandro Lima ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] reset do transaction_id
Obrigado Matheus, vou seguir suas sugestões ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] reset do transaction_id
>>Se o transaction_id que você se refere foi recuperado pelo resultado da função txid_current(), então ao restaurar um dump este vai >>naturalmente usar o que está definido na nova instância. De qualquer forma você não deve considerar o txid_current() para identificação >>dessa forma, porque esse valor é circular, depois de chegar à 2^31 irá voltar à zero (na verdade é 3 ou 4, não lembro bem). sim, realmente estou usando o txid_current() Utilizo o transaction_id para consultar no log todas as operações realizadas na mesma transação. Teria alguma forma de definir o valor inicial do txid_current() ao realizar o pg_restore? >>Colocando de forma simples, serão armazenadas informações lógicas (daí "backup lógico") Então utilizando (pg_basebackup + xlogs) o transaction_id será mantido? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] reset do transaction_id
Boa tarde, Utilizo o Audit Trigger e percebi que ele gerou dois registros de datas bem diferentes com o mesmo transaction_id. Obs.: Recentemente foi feito um pg_dump e pg_restore quando trocamos o servidor. Gostaria de saber se o pg_restore reseta o transaction_id, e o que mais ele pode resetar? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Exclusão de logs antigos
Muito obrigado pela ajuda, o %w faz a mágica que queria. Alessandro Lima ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Exclusão de logs antigos
Boa tarde a todos, Procurei na internet mas não encontrei nenhuma configuração que deixe a pasta de logs pg_log apenas com determinado número de arquivos ou determinado tamanho em GB. Fiz alguns testes com ROTATION, mas os arquivos antigos nunca são apagados. Tem alguma forma de configurar o postgres para isso? ou vou ter que agendar um script para excluir os logs antigos Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] query com limit muito mais lenta
Sem dúvida a consulta deve ser melhorada, mas o que não consigo entender é o fato de acrescentar apenas um limit 60 e a consulta demorar centenas de vezes mais que sem o limit. Em teoria a consulta já foi realizada sem o limit em 3 segundos, o limit não seria a última etapa, pegando apenas os 60 primeiros registros? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] query com limit muito mais lenta
>>Antes de continuar, todos estes LEFT JOINs estão certos? A intenção é usá-los mesmo? Sim, a intenção é essa. Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] query com limit muito mais lenta
>>Cadê a consulta? SELECT prospects.nome AS nomeProspect, prospects.codigo AS codigoProspect, prospects.dataCadastro AS dataCadastro, prospects.telefoneResidencial AS telRes, prospects.telefoneComercial AS telComer, prospects.celular AS cel, prospects.telefoneRecado AS telRec, prospects.emailPrincipal AS email, interacaoworkflow.datainicio AS dataContato, interacaoworkflow.observacao AS observacao, situacaoprospectpipeline.controle AS controleSituacaoProspectPipeline, turma.identificadorturma AS turma, curso.nome AS nomeCurso, curso.codigo AS codigoCurso, consultorPadrao.nome AS nomeConsultorPadrao, pessoaResponsavel.nome AS nomeResponsavel, matricula.matricula, c3.nome AS cursoMatriculado, ( SELECT count ( matricula.matricula ) FROM matricula WHERE aluno = pessoaProspect.codigo AND matricula.situacao = 'AT' ) > 0 AS possuiMatricula FROM prospects LEFT JOIN pessoa AS pessoaProspect ON pessoaProspect.codigo = prospects.pessoa LEFT JOIN interacaoworkflow ON interacaoworkflow.codigo = ( SELECT iwf.codigo FROM interacaoworkflow iwf WHERE prospects.codigo = iwf.prospect ORDER BY datainicio DESC LIMIT 1 ) LEFT JOIN etapaWorkflow ON interacaoworkflow.etapaWorkflow = etapaWorkflow.codigo LEFT JOIN usuario ON interacaoworkflow.responsavel = usuario.codigo LEFT JOIN pessoa AS pessoaResponsavel ON usuario.pessoa = pessoaResponsavel.codigo LEFT JOIN funcionario ON prospects.consultorPadrao = funcionario.codigo LEFT JOIN pessoa AS consultorPadrao ON consultorPadrao.codigo = funcionario.pessoa LEFT JOIN cursointeresse ON cursointeresse.prospects = prospects.codigo AND cursointeresse.codigo = ( SELECT ci.codigo FROM cursointeresse ci WHERE ci.prospects = prospects.codigo ORDER BY ci.codigo DESC LIMIT 1 ) LEFT JOIN curso ON ( curso.codigo = cursointeresse.curso ) LEFT JOIN curso c2 ON ( c2.codigo = interacaoworkflow.curso ) LEFT JOIN matricula ON matricula.aluno = pessoaProspect.codigo AND matricula.matricula = ( SELECT m.matricula FROM matricula m WHERE m.aluno = pessoaProspect.codigo AND m.situacao = 'AT' ORDER BY DATA DESC LIMIT 1 ) LEFT JOIN matriculaperiodo ON matriculaperiodo.matricula = matricula.matricula AND matriculaperiodo.codigo = ( SELECT codigo FROM matriculaperiodo mp WHERE mp.matricula = matricula.matricula ORDER BY codigo DESC LIMIT 1 ) LEFT JOIN curso c3 ON ( c3.codigo = matricula.curso ) LEFT JOIN turma ON turma.codigo = matriculaperiodo.turma LEFT JOIN situacaoprospectworkflow ON etapaWorkflow.situacaodefinirprospectfinal = situacaoprospectworkflow.codigo LEFT JOIN situacaoprospectpipeline ON situacaoprospectpipeline.codigo = situacaoprospectworkflow.situacaoprospectpipeline WHERE ( prospects.inativo != TRUE ) AND prospects.nome ILIKE '%' AND prospects.unidadeensino IN ( SELECT DISTINCT unidadeEnsino.codigo FROM unidadeEnsino INNER JOIN usuarioperfilacesso ON usuarioperfilacesso.unidadeensino = unidadeensino.codigo WHERE usuarioperfilacesso.usuario = 73164 ) AND ( ( pessoaResponsavel.codigo = 124331 ) OR ( pessoaResponsavel.codigo IS NULL ) ) ORDER BY interacaoworkflow.datainicio DESC, prospects.nome, pessoaResponsavel.nome LIMIT 60 offset 0 >>Cadê o outro plano sem o LIMIT? http://explain.depesz.com/s/hPu Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] query com limit muito mais lenta
Bom dia, Segue link do explain analyze de uma consulta sem o limit: http://explain.depesz.com/s/eRj A consulta sem limit retorna cerca de 5000 registros em 3 segundos A consulta com limit 60 demora 20 minutos Já rodei o analyze e não melhorou. Alguma dica? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] usuário apenas para pg_dump
E no caso de ser criada nova tabela, quando rodar o pg_dump para toda a base de dados public, o dump será realizado ignorando somente as tabelas que ele não possuir privilégios? ou não realizará o dump? pois tabelas que ele tenha permissão pode ter chave estrangeira para uma tabela sem permissão!!! Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] usuário apenas para pg_dump
Gostaria de confirmar se para criar um usuário específico para o script de pg_dump só preciso de permissões nas tabelas e sequencias como o exemplo que peguei na internet: CREATE USER backup_user WITH ENCRYPTED PASSWORD 'password'; GRANT CONNECT ON DATABASE production to backup_user; \c production GRANT USAGE ON SCHEMA public to backup_user; /*thanks Dominic!*/ GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO backup_user; GRANT SELECT ON ALL TABLES IN SCHEMA public TO backup_user; Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] idle em shell script
> > >>Tem certeza disso? Após executar o comando passado pelo "-c", o psql > sempre finaliza, não precisa usar \q ou nada do tipo. > acho que me enganei mesmo, consultei novamente os processos idle e não tinha mais nenhuma conexão 127.0.0.1 idle. Obrigado Matheus. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] idle em shell script
Estou acessando o postgres via shell script: psql -h localhost -p 5432 -U postgres -At -c "select ..." mas percebi que está deixando uma conexão idle, dei uma pesquisada mas não encontrei como terminar a conexão no shell script, ou seja, forçar o \q recomendaram utilizar um script com alguma linguagem para utilizar um driver. Alguma sugestão? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] host postgres
>>apos algumas pesquisas, assinei o weblink [1], que possui servidores virtuais, e com acesso root. realmente o preço é bom, pena que a latência seja alta, os servidores vps deles são nos EUA e não no Brasil. Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] falha ao instalar postgresql-contrib
RESOLVIDO, esqueci de atualizar, apt-get update Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] falha ao instalar postgresql-contrib
Boa tarde, tenho postgresql 9.3.5 instalado em debian 7 64 bits através do repositório ,http://apt.postgresql.org/ ao tentar instalar a extension hstore, percebi que tinha que instalar o pacote postgresql-contrib mas ao instalar o pacote ele tenta buscar no repositório um arquivo postgresql-contrib-9.3_9.3.5-1.pgdg70+1_amd64.deb e acusa 404 Not Found, pois no repositório só tem o postgesql-contrib-9.3_0.3.5-1.pgdg13.10+1_amd64.deb alguma dica para solucionar este problema? Atenciosamente: Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] consumo de memória
>>Considerando max_connections = a + b, não entendi o que é "a" e "b" exemplo: tenho max_connections = 16 a = ? b = ? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] consumo de memória
>>Misturar aplicação com banco de dados não é uma boa... concordo, mas vai convencer o cliente a gastar mais dinheiro! >>aplicação precisa *realmente* dos 8 GB? estamos sempre tentando otimizar a aplicação, mas atualmente a resposta é sim. >>sugiro que leia sobre como o kernel apresenta esses valores em aplicações como top cada processo estava com valores distindtos, ou seja, não representavam o mesmo processo pai. >>Não entendi a pergunta. Se há memória porque um processo não pode utilizá-la? >>Sim. Uma simples consulta pode utilizar bem mais do que isso. Vou explicar, no meu modesto conhecimento, pensei que o máximo de memória ram que o postgres pode usar seria: (shared_buffers) + (autovacum_max_workers * maintenance_work_mem) + (max_connections + work_mem) minha intenção era limitar o uso de ram para não usar swap, então quando ví um único processo utilizando cerca de 3GB, achei estranho dúvida: este tamanho todo de processo poderia ser além dos parâmetros citados acima, o cache do s.o.? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] consumo de memória
Tenho um servidor debian 7 64 bits com postgresql 9.3.4 com 12gb ram, sendo 8gb para uma aplicação java, o restante para postgres e S.O. configuração: max_connections 64 shared_buffers 1gb temp_buffers 16mb work_mem 4mb maintenance_work_mem 128mb autovacuum_max_workers 3 autovacumm on Recentemente o servidor está consumindo toda a ram e usando até 10gb de swap, utilizando o comando htop percebi 3 processos: postgres NOME_BASE 127.0.0.1(45730) idle utilizando cada um cerca de 33% cpu e 20% de ram Como um único processo pode estar usando cerca de 3gb de memória? Existe alguma rotina que faça isso, por exemplo dump, importação, vacuum? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] processos consumindo muita memória
>>Como um único processo pode estar usando cerca de 3gb de memória? >>Existe alguma rotina que faça isso, por exemplo dump, importação, vacuum? seria um problema de configuração do postgresql ou de s.o.? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] processos consumindo muita memória
Bom dia, tenho um servidor debian 7 64 bits com postgresql 9.3.4 com 12gb ram, sendo 8gb para uma aplicação java, o restante para postgres e S.O. configuração: max_connections 64 shared_buffers 1gb temp_buffers 16mb work_mem 4mb maintenance_work_mem 128mb autovacuum_max_workers 3 autovacumm on Recentemente o servidor está consumindo toda a ram e usando até 10gb de swap, utilizando o comando htop percebi 3 processos: postgres NOME_BASE 127.0.0.1(45730) idle utilizando cada um cerca de 33% cpu e 20% de ram Como um único processo pode estar usando cerca de 3gb de memória? Existe alguma rotina que faça isso, por exemplo dump, importação, vacuum? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] postgresql corrompido
>>Voçê fez a cópia com o serviço do postgres parado? Sim, pois com a pasta original o serviço não inicia mais. >>Como é um ambiente de testes, você pode resetar os dados de pg_xlog, a partir do comando: pg_resetxlog diretoriodedados. opa, esse comando eu não conhecia, vou testar amanha cedo. Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] postgresql corrompido
>>Por favor, explique etapa por etapa como você fez a recuperação? 1- realizada nova instalação do postgresql com a mesma versão. 2- copiada pasta data original Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] postgresql corrompido
Bom dia, estou com um postgresql 9.3.5 em windows corrompido após travamento do computador, já foi feita nova instalação do postgresql, mas após substituir a pasta data o serviço não inicia acusando o mesmo erro: 2014-09-23 19:05:58 BRT LOG: sistema de banco de dados foi interrompido enquanto estava sendo recuperado em 2014-09-23 19:03:43 BRT 2014-09-23 19:05:58 BRT DICA: Isso provavelmente significa que algum dado foi corrompido e você terá que utilizar a última cópia de segurança para recuperação. 2014-09-23 19:05:58 BRT LOG: criando diretório WAL ausente "pg_xlog/archive_status" 2014-09-23 19:05:58 BRT LOG: registro do ponto de controle primário é inválido 2014-09-23 19:05:58 BRT LOG: registro do ponto de controle secundário é inválido 2014-09-23 19:05:58 BRT PÂNICO: não pôde localizar registro do ponto de controle válido 2014-09-23 19:05:58 BRT LOG: processo de inicialização (PID 2460) terminou com código de retorno 3 2014-09-23 19:05:58 BRT LOG: interrompendo inicialização porque o processo de inicialização falhou obs.: o postgresql estava praticamente com a configuração original, sem backup de WAL, pois é o computador de desenvolvimento. Alguma chance de ignorar o arquivo corrompido e não perder a base de dados? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Audit trigger 91plus
>>Tenho interesse de utilizar e contribuir se vc publicar. Vinicius, vou preparar o código para publicar, mas não tenho experiência neste processo de publicar projeto open source, basta criar um mailing list no google groups e publicar no github? posso usar a licença GPL 3 mesmo? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Audit trigger 91plus
Boa tarde, utilizo o "Audit trigger 91plus" e desenvolvi dentro da minha aplicação web algumas telas para consultar estes logs. Gostaria de saber se já existe algo similar, que facilite a leitura destes logs ? Se realmente não existir, pretendo disponibilizar minha implementação como open source. Resumo: Administração: Exibe lista de tabelas, informando se tabela está ou não sendo auditada; Opção para habilitar ou desabilitar auditoria na tabela; Consultas: Consulta pelos registros inseridos, alterados ou excluídos; Filtros por data, usuário, tabela, valores de colunas; Exibe sql e lista com valores anteriores e posteriores de todas as colunas; Exibe lista com todas queries realizadas na mesma transação; Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] performance - function
Aproveitando o tópico, gostaria de tirar uma dúvida: Qual a vantagem em usar uma function no lugar de uma consulta normal? pelo que pesquisei, entendi que o ganho seria na economia em trafegar caracteres, exemplo: uma consulta grande com 2000 caracteres deixaria de ser trafegada até o postgres, sendo substituída apenas pelo nome da função. seria isso mesmo? se for, caso o cliente (aplicação) estiver no mesmo servidor, esta economia não se justifica, não gera nem tráfego de rede. Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Limite de cursores
> >Existe algum limite de cursores no Postgres? >Não. Obrigado Euler. Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Limite de cursores
Bom dia, estou configurando um pool de conexões pelo servidor de aplicações wildfly 8.1.0 e me deparei com a seguinte advertência na documentação: Statement Cache Size The Statement Cache Size attribute determines the total number of prepared and callable statements to cache for each connection in each instance of the data source. By caching statements, you can increase your system performance. However, you must consider how your DBMS handles open prepared and callable statements. In many cases, the DBMS will maintain a cursor for each open statement. This applies to prepared and callable statements in the statement cache. If you cache too many statements, *you may exceed the limit of open cursors on your database server*. Existe algum limite de cursores no Postgres? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Postgres cache
-> Hash (cost=20.41..20.41 rows=1141 width=27) (actual time=1.135..1.135 rows=1141 loops=1)" " Output: b.nome, b.codigo, b.codigo_cidade" " Buckets: 1024 Batches: 1 Memory Usage: 69kB" " Buffers: shared hit=9" " -> Seq Scan on public.bairro b (cost=0.00..20.41 rows=1141 width=27) (actual time=0.008..0.480 rows=1141 loops=1)" "Output: b.nome, b.codigo, b.codigo_cidade" "Buffers: shared hit=9" " -> Hash (cost=1.22..1.22 rows=22 width=18) (actual time=0.025..0.025 rows=22 loops=1)" "Output: c.nome, c.codigo_ibge" "Buckets: 1024 Batches: 1 Memory Usage: 2kB" "Buffers: shared hit=1" "-> Seq Scan on public.cidade c (cost=0.00..1.22 rows=22 width=18) (actual time=0.005..0.011 rows=22 loops=1)" " Output: c.nome, c.codigo_ibge" " Buffers: shared hit=1" "Total runtime: 1489.635 ms" Me parece que neste caso o shared_buffers do tamanho da base de dados tem melhor performance. Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Postgres cache
060 rows=20 loops=1)" "Output: a.tipo, a.inicio, a.texto, b.nome, (ts_rank(a.texto_search, query.query))" "Sort Key: (ts_rank(a.texto_search, query.query)), b.nome" "Sort Method: top-N heapsort Memory: 36kB" "Buffers: shared hit=50820 read=2055" "-> Hash Join (cost=144.67..27584.68 rows=8000 width=1161) (actual time=92.188..46046.735 rows=58844 loops=1)" " Output: a.tipo, a.inicio, a.texto, b.nome, ts_rank(a.texto_search, query.query)" " Hash Cond: (a.codigo_bairro = b.codigo)" " Buffers: shared hit=50820 read=2055" " -> Nested Loop (cost=110.00..27420.00 rows=8000 width=1142) (actual time=91.696..45035.989 rows=58844 loops=1)" "Output: a.tipo, a.inicio, a.texto, a.texto_search, a.codigo_bairro, query.query" "Buffers: shared hit=50811 read=2055" "-> Function Scan on query (cost=0.00..0.01 rows=1 width=32) (actual time=0.003..0.004 rows=1 loops=1)" " Output: query.query" " Function Call: '''propri'''::tsquery" "-> Bitmap Heap Scan on public.anuncio a (cost=110.00..27339.99 rows=8000 width=1110) (actual time=91.682..43901.170 rows=58844 loops=1)" " Output: a.id, a.id_usuario, a.codigo_bairro, a.tipo, a.texto, a.inicio, a.texto_search" " Recheck Cond: (a.texto_search @@ query.query)" " Buffers: shared hit=50811 read=2055" " -> Bitmap Index Scan on idx_gin_texto_search (cost=0.00..108.00 rows=8000 width=0) (actual time=77.595..77.595 rows=58844 loops=1)" "Index Cond: (a.texto_search @@ query.query)" "Buffers: shared hit=3 read=45" " -> Hash (cost=20.41..20.41 rows=1141 width=23) (actual time=0.471..0.471 rows=1141 loops=1)" "Output: b.nome, b.codigo" "Buckets: 1024 Batches: 1 Memory Usage: 63kB" "Buffers: shared hit=9" "-> Seq Scan on public.bairro b (cost=0.00..20.41 rows=1141 width=23) (actual time=0.007..0.191 rows=1141 loops=1)" " Output: b.nome, b.codigo" " Buffers: shared hit=9" "Total runtime: 46109.779 ms" Segunda consulta: "Limit (cost=27797.55..27797.60 rows=20 width=1161) (actual time=232.074..232.077 rows=20 loops=1)" " Output: a.tipo, a.inicio, a.texto, b.nome, (ts_rank(a.texto_search, query.query))" " Buffers: shared hit=52875" " -> Sort (cost=27797.55..27817.55 rows=8000 width=1161) (actual time=232.071..232.072 rows=20 loops=1)" "Output: a.tipo, a.inicio, a.texto, b.nome, (ts_rank(a.texto_search, query.query))" "Sort Key: (ts_rank(a.texto_search, query.query)), b.nome" "Sort Method: top-N heapsort Memory: 36kB" "Buffers: shared hit=52875" "-> Hash Join (cost=144.67..27584.68 rows=8000 width=1161) (actual time=35.060..195.143 rows=58844 loops=1)" " Output: a.tipo, a.inicio, a.texto, b.nome, ts_rank(a.texto_search, query.query)" " Hash Cond: (a.codigo_bairro = b.codigo)" " Buffers: shared hit=52875" " -> Nested Loop (cost=110.00..27420.00 rows=8000 width=1142) (actual time=34.546..143.135 rows=58844 loops=1)" "Output: a.tipo, a.inicio, a.texto, a.texto_search, a.codigo_bairro, query.query" "Buffers: shared hit=52866" "-> Function Scan on query (cost=0.00..0.01 rows=1 width=32) (actual time=0.004..0.006 rows=1 loops=1)" " Output: query.query" " Function Call: '''propri'''::tsquery" "-> Bitmap Heap Scan on public.anuncio a (cost=110.00..27339.99 rows=8000 width=1110) (actual time=34.528..123.412 rows=58844 loops=1)" " Output: a.id, a.id_usuario, a.codigo_bairro, a.tipo, a.texto, a.inicio, a.texto_search" " Recheck Cond: (a.texto_search @@ query.query)" " Buffers: shared hit=52866" " -> Bitmap Index Scan on idx_gin_texto_search (cost=0.00..108.00 rows=8000 width=0) (actual time=20.198..20.198 rows=58844 loops=1)" "Index Cond: (a.texto_search @@ query.query)" "Buffers: shared hit=48" " -> Hash (cost=20.41..20.41 rows=1141 width=23) (actual time=0.478..0.478 rows=1141 loops=1)" "Output: b.nome, b.codigo" "Buckets: 1024 Batches: 1 Memory Usage: 63kB" "Buffers: shared hit=9" "-> Seq Scan on public.bairro b (cost=0.00..20.41 rows=1141 width=23) (actual time=0.008..0.218 rows=1141 loops=1)" " Output: b.nome, b.codigo" " Buffers: shared hit=9" "Total runtime: 232.811 ms" Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Postgres cache
>>Você tem índices aí? >>Você tem outras tabelas? >>Enfim, seu teste me parece mais uma rota de colisão com uma parede do que um teste. É muito simples e não corresponde ao uso real de um banco de dados. Tenho índices para a chave estrangeira e para o tsvector que é o filtro da consulta. Tenho um outra tabela pequena (1141 registros, 168kB) >>Índices também ocupam espaço do cache. Índices GIN costumam ser grandes. o índice GIN do tsvector é de 644MB a tabela principal é de 1822MB totalizando 2466MB, que é 98,8% de toda a base de dados >>Quem vai pro cache do PostgreSQL são páginas, eventualmente uma tabela inteira, apenas os registros resultado dos filtros da consulta que vão para o cache? >>.lembrando que há o cache do S.O. a considerar. por se tratar de uma única tabela(98,8% de toda a base de dados), e alto processamento nos filtros (text search), pensei que a melhor saída seria colocar todo o banco no cache, e gostaria de usar recursos próprio do postgres, ou será que para alta performance será necessário utilizar ferramentas como solr? Segue SQL utilizado para testes: select a.tipo, a.inicio, a.texto, b.nome as bairro, ts_rank(texto_search, query) as rank from anuncio as a inner join bairro as b on b.codigo = a.codigo_bairro , to_tsquery('pt', 'cozinha') as query where texto_search @@ query order by rank desc, b.nome limit 20 offset 0 Meu desafio é agilizar esta consulta, pois sempre que altero o texto da consulta, demora cerca de 50 segundos mas das próximas vezes demora 0,5 segundo (em cache) Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Postgres cache
Bom dia, criei uma base de dados para testes de performance com uma tabela contendo 2 milhões de registros contendo um campo text com texto gerado aleatoriamente com 25 palavras cada. A base de dados ficou com 2,5GB, estou utilizando shared_buffers de 3.5GB para que a base fique toda em cache. Utilizando consultas para testes de performance percebo que sempre que altero o texto a ser pesquisado a primeira consulta fica lenta, a próximas ficam abaixo de 1 segundo. Exemplo de filtro: to_tsquery('teste|porta|janela') Minha dúvida é como a tabela é armazenada em cache, em partes? porque se a tabela fosse toda para cache não justificaria a lentidão na primeira consulta. Obs.: já estou utilizando índice gin na coluna pré-processada do tipo tsvector. Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] pgbadger
>>Pelo que pude entender, "connections" conta cada conexão realizada, já "sessions" conta quando foi conectado e desconectado. Então analisando dois gráficos que tenho, e considerando que as conexões são geradas pelo pool de conexões da aplicação java: um com pico de 24 connections, significa que neste momento foram criadas 24 conexões pelo pool ? outro com pico de 58 sessions, , significa que neste momento foram fechadas 58 conexões pelo pool ? (neste caso provavelmente pelo timeout) >>Agora, para verificar quem gerou esses bloqueios, você terá que usar o %x no log_line_prefix e procurar pelo número da transação informado lá, nesse caso 237386. configurei meu log_line_prefix para '%t [%p]: [%l-1] db=%d,t=%x ' mas a transaçao está sempre com zero no log, t=0 >>É claro que para isso o comando da transação 237386 deve ter sido logado. É bom habilitar um log completo de vez em quando, pode ser por algum tempo basta definir o log_min_duration_statement = 0 e log_statement = 'none' ? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] pgbadger
Tenho o pgbadger instalado e estou com algumas dúvidas e alguns questionamentos do meu cliente: 1- qual a diferença entre connections e sessions? no exemplo: http://192.99.153.10/pgbadger.png 2- o que significa (5 MINUTES AVERAGE) se no gráfico mostra o dia inteiro? 3- cliente alega que recentemente aumentou o QUERIES DURATION, isto não quer dizer necessariamente que as consultas estão mais lentas, basta o número de queries do dia ser maior, correto? 4- no gráfico mostra que um update levou cerca de 40 segundos, este update também aparece na lista de queries que demoraram mais devido bloqueio, qual a melhor forma de identificar quem gerou este bloqueio? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] postgres pedindo senha ao instalar/iniciar/parar/reload
>>Parece ser mais um problema de linux do que de postgres, mas qualquer ajuda é bem vinda Realmente era um problema com o usuário root e não com o postgres, consegui instalar com outro usuário. Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] postgres pedindo senha ao instalar/iniciar/parar/reload
Boa tarde, Tenho um postgres 9.0 (em produçao) instalado em um Ubuntu 10.04.2 LTS 64 bits e fui solicitado para realizar a instalação da versão 9.3 Acontece que ao instalar o novo postgres, fica pedindo uma senha após 100% da instalação: 0%___50%100% #Password: Warning: Problem running post-install step. Installation may not complete correctly The database cluster initialisation failed Esta senha também está sendo pedida para qualquer operação (start/stop/reload) do postgres antigo 9.0 /etc/init.d/postgresql-9.0 reload Restarting PostgreSQL 9.0: Password: su: incorrect password rm: cannot remove `su': No such file or directory Já atualizei a senha do usuário postgres # passwd postgres Mas continua acusando senha inválida ao executar operações do postgres Editei o arquivo /etc/init.d/postgresql-9.0 ví que é chamado o comando: su - postgres /opt/PostgreSQL/9.0/bin/pg_ctl. Provavelmente esta seja a origem do problema, pois testei rodar simplesmente o comando: su - postgres e apresenta o mesmo erro: Password: su: incorrect password rm: cannot remove `su': No such file or directory Parece ser mais um problema de linux do que de postgres, mas qualquer ajuda é bem vinda Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] estimando tamanho da base
Obrigado pelas explicações!!! Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] estimando tamanho da base
Estive analisando os tamanhos das colunas, tabelas e base e alguns valores não batem: 1- uma tabela com 27435 registros com índice (integer 4 bytes) consome 616KB, sendo que 27435 x 4B = 107KB, esta diferença (overhead) é normal? tem alguma fórmula matemática para calcular o tamanho de índices? 2- Somando o tamanho (informado pelo pgadmin) das colunas: integer:,média 4B varchar: média 14B varchar: média 19B varchar: média 12B total: média 49B 27435 x 49B = 1,28MB, o pgadmin informa que a tabela (sem índices) consome 2,18MB 3- Somando todas as tabelas (incluindo toast e índices) informados pelo próprio pgadmin, o tamanho seria de 3,1MB mas o tabanho da base completa é de 9.56MB Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Auditoria de dados
>>Pretendo fazer essa operação através de trigger Utilizo o Audit trigger 91Plus [1] >>O problema é capturar o responsável pela alteração, porque quem faz a conexão no banco é um usuário único, definido na aplicação Tive o mesmo problema, como uso jdbc resolvi passando o id do usuário logado como comentário no final da query: UPDATE tabela SET campo = true WHERE id = 1 --ul:5 onde ul:5 significa usuáio logado de id 5 alterei a a trigger original do audit trigger para capturar em vez do usuário do postgres, capturar o id que vem após a string '--ul:' [1] https://wiki.postgresql.org/wiki/Audit_trigger_91plus Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Case com Zebedee
Renato, >>A versão atual é de 2005 mesmo, mas está muito estável. Creio que por isso não tenha atualizações recentes. qual versão vc utiliza? porque no site diz que a versão estável é a 2.4.1A mas no sourceforge tem uma versão 2.5.3 com a mesma data 06/09/2005. Utilizo debian 7 64 bits, existe alguma forma de instalar com apt-get? ou qual forma vc recomenda, pelo fonte? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] banco e aplicação no mesmo servidor
Tenho vários clientes que possuem o postgres e a aplicação java web no mesmo servidor, acredito que tenho melhor desempenho por não gerar tráfego na rede e por aproveitar ociosidade da cpu. Mas gostaria da experiência de vocês se esta é uma boa prática, ou o banco em um servidor independente teria melhor desempenho. Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] falha could not extend file
>>As operações ainda estão falhando? parece que voltou ao normal. Obrigado pela ajuda, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Case com Zebedee
Jean, estive dando uma olhada no Zebedee, parece que a última atualização dele foi em 2005, é isto mesmo? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] falha could not extend file
>>Como assim? Nesse seu caso é claro o erro de alguma operação de sua >>aplicação ao executar aquele INSERT INTO audit.logged_actions ... A aplicação nem sabe da existência do log, utilizo o Audit trigger 91plus (1) >>Tem certeza que aquela tabela "audit.logged_actions" está nessa >>partição? Verifique em que tablespace ela está alocada. Só existe uma partição e só uma tablespace (1) https://wiki.postgresql.org/wiki/Audit_trigger_91plus Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] falha could not extend file
Tenho uma aplicação web java usando postgres 9.3 em linux que está apresentando a seguinte mensagem: PreparedStatementCallback; SQL[]; ERROR: could not extend file "base/16393/37677": No space left on device Dica: Check free disk space. Onde: SQL statement "INSERT INTO audit.logged_actions VALUES (audit_row.*)" PL/pgSQL function audit.if_modified_func() line 58 at SQL statement 1 - Pelo que saiba qualquer erro relacionado a log não deveria gerar excessão na aplicação, correto? 2 - Não existe falta de espaço em disco, a partição / de 59GB está apenas com 39% de uso. Alguma dica? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] servidor não inicia
>>A versão anterior que você usava era o tal "instalador gráfico" ou do repositório do Ubuntu? a anteriror também é da EnterpriseDB eu vi a opção de instalar pelo repositorio, http://www.postgresql.org/download/linux/ubuntu/ mas pede para escolher uma versão do ubuntu (10.04 ou 12.04) não tem a minha versão 11.10 ! Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] servidor não inicia
>>Provavelmente estás chamando o script com usuário não root. estou logado como root >>Como você procedeu essa instalação? baixei o instalador postgresql-9.3.4-4-linux-x64.run do site postgres.org (instalador gráfico) Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] servidor não inicia
Tenho um postgres 9.0 instalado em ubuntu 11.10 64 bits, minha meta era instalar o 9.3 em outra porta para fazer a migração e fazer dump do antigo e restaurar no novo. Mas no final da instalação no 9.3, após 100% pede uma senha e depois dá falha na instalação, no arquivo /tmp/install-postgresql.log diz o seguinte: rm: cannot remove `su': no such file or directory su:: unexpected operator após iniciar o servidor (init 6) nem o atual postgres 9.0 em produção quer iniciar /etc/init.d/postgresql start pede senha e nao inicia. alguma dica! Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] dúvida sobre PITR
Obrigado pelas dicas, utilizei os bzip2 e os logs de 16MB estão ficando com 1.5MB em média. Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] dúvida sobre PITR
>>Se quiser, use o pg_xlogdump e dê uma olhada o que está sendo escritos nesses logs não consegui entender como usar este comando, me pede "start range", você tem algum tutorial para indicar? >>Recomendo também a usar o gzip para comprimir os logs arquivados basta substituir o archive_command? por exemplo 'bzip2 -c %p > /backup/wal/%f.bz2' se utilizar alguma ferramenta que quebra o arquivo como o Flávio sugeriu: "Existem ferramentas que "quebram" o arquivo no ponto da última escrita para evitar armazená-lo inteiro." melhora a compressão dos dados? caso positivo, você sabe de alguma para indicar? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] dúvida sobre PITR
>>Se houver algo escrito, sim, ele vai arquivar após o tempo configurado. Se a escrita for zero, não há arquivamento. o estranho é que no momento não tem ninguem acessando o sistema, apenas eu instalei o pgbadger para ter certeza, não houve nenhuma escrita mas os arquivos WAL continuam sendo criados. link pgbadger: http://scwsistemas.com.br/arquivos/out.html >>Perdidas é uma palavra muito forte. Que tal "não arquivadas"? no caso de perda total to disco ou servidor, não terei como recuperar estas transações, correto? >>Pra tirar nota 10, apague o resto da mensagem que você deixa abaixo da sua resposta. ficou legal agora? se não me engano já me reclamaram no passado quando apaguei o resto das mensagens (uso gmail) Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] dúvida sobre PITR
>>Então desabilite archive_timeout, deve ser isso que está te causando o volume que vê. alterei o archive_timeout para 60 para monitorar o que acontece e em 15 minutos foram criados 5 arquivos de 16MB com esta configuração ele deveria criar um novo arquivo WAL a cada minuto (60 segundos)? desabilitando o archive_timeout resolveria o volume, mas isto é prática normal? pois pelo que entendi desabilitando só vai fechar o arquivo após preencher os 16MB, se isto levar muito tempo, e o disco danificar, todas as transações destas horas ficariam perdidas? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com Em 11 de julho de 2014 11:48, Flavio Henrique Araque Gurgel < fha...@gmail.com> escreveu: > >>A quantidade de arquivos gerada não tem a ver com o tamanho da base, >> mas com a quantidade de modificações que você faz nela. >> Mas verifiquei e praticamente só estão fazendo consultas, não está sendo >> cadastrado nada! >> > > Então desabilite archive_timeout, deve ser isso que está te causando o > volume que vê. > > > >> Se você não tiver replicação ainda, você pode colocar o wal_level para >>>> >>> archive >> Estou fazendo replicação. >> > > Então deves manter o nível hot-standby. > > > >> Deve ter algo de errado mesmo, a replicação pode afetar no volume dos >> arquivos WAL? >> > > A configuração wal_level interfere um pouco no volume, mas não muda a > ordem de gigabytes para megabytes, pode ter certeza. > > > []s > Flavio Gurgel > ___ > 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
Re: [pgbr-geral] dúvida sobre PITR
>>A quantidade de arquivos gerada não tem a ver com o tamanho da base, mas com a quantidade de modificações que você faz nela. Mas verifiquei e praticamente só estão fazendo consultas, não está sendo cadastrado nada! >>Se você não tiver replicação ainda, você pode colocar o wal_level para archive Estou fazendo replicação. Deve ter algo de errado mesmo, a replicação pode afetar no volume dos arquivos WAL? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com Em 11 de julho de 2014 10:39, Flavio Henrique Araque Gurgel < fha...@gmail.com> escreveu: > > > Em 11-07-2014 15:22, Alessandro Lima escreveu: > > Percebi que a pasta com arquivos WAL está crescendo muito, >> meu banco só tem uma base de dados com 128MB >> e após um dia de arquivamentos PITR minha pasta /backup/wal já está com >> 4GB. >> obs.: a aplicação ainda não está em produção, só tem um usuário fazendo >> alguns testes. >> >> meu postgresql.conf: >> wal_level = hot_standby >> archive_mode = on >> archive_command = 'cp %p /backup/wal/%f' >> archive_timeout = 300 >> max_wal_senders = 1 >> >> Isto é normal? algum erro na configuração? >> > > É normal. > > A quantidade de arquivos gerada não tem a ver com o tamanho da base, mas > com a quantidade de modificações que você faz nela. > > Você pode, talvez, desligar archive_timeout colocando 0 como valor, isso > deve reduzir a quantidade de arquivos guardada, mas tem um efeito > colateral, o PostgreSQL vai sempre esperar um log de transação encher em 16 > MiB antes de arquivá-lo e isso pode demorar muito tempo se sua base não for > muito frequentada, o que pode fazer seu backup muito "atrasado". > Considerando que sua base ainda está em testes, talvez seja útil fazer isso. > > Das configurações que você enviou, wal_senders não afeta o arquivamento. > Se você não tiver replicação ainda, você pode colocar o wal_level para > archive, isso reduz um pouco a quantidade de dados também, mas talvez não > valha a pena porque é pouco, e pode ser impossível se você já tiver > replicação em funcionamento. > > > []s > Flavio Gurgel > ___ > 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
Re: [pgbr-geral] dúvida sobre PITR
Percebi que a pasta com arquivos WAL está crescendo muito, meu banco só tem uma base de dados com 128MB e após um dia de arquivamentos PITR minha pasta /backup/wal já está com 4GB. obs.: a aplicação ainda não está em produção, só tem um usuário fazendo alguns testes. meu postgresql.conf: wal_level = hot_standby archive_mode = on archive_command = 'cp %p /backup/wal/%f' archive_timeout = 300 max_wal_senders = 1 Isto é normal? algum erro na configuração? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com Em 10 de julho de 2014 05:16, Flavio Henrique Araque Gurgel < fha...@gmail.com> escreveu: > >>Ele pode armazenar se você o fizer propositalmente como parte de sua >> estratégia. >> >> basta configurar o standby do mesmo jeito que configurei o principal? >> porque acho que gravando os logs no standby seria o ideal devido ao >> baixo delay (quase que em tempo real) e também seria no mesmo disco, não >> dependeria da rede. >> > > Não. > Um servidor standby não gera logs de transação (WAL), ele faz o contrário, > ele os consome a partir do mestre para aplicar as modificações, mesmo no > modo de replicação por streaming, o servidor standby vai lendo aos poucos o > que o mestre está escrevendo no seu log de transação local. > > Portanto, se você quiser armazenar os logs de transação no servidor > escravo, você terá de fazê-lo a partir do mestre, usando por exemplo rsync > ou scp como archive_command, ou montando o diretório do escravo como nfs no > mestre e copiando pra lá com cp. > > > []s > Flavio Gurgel > ___ > 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
Re: [pgbr-geral] dúvida sobre PITR
>>Ele pode armazenar se você o fizer propositalmente como parte de sua estratégia. basta configurar o standby do mesmo jeito que configurei o principal? porque acho que gravando os logs no standby seria o ideal devido ao baixo delay (quase que em tempo real) e também seria no mesmo disco, não dependeria da rede. Atenciosamente, Alessandro Lima email grandegoia...@gmail.com Em 9 de julho de 2014 11:31, Flavio Henrique Araque Gurgel escreveu: > >>a pasta pg_xlog é de uso do servidor PostgreSQl e sua manutenção é >> feita automaticamente. Nunca mexa manualmente nela. >> acho que confundi qual pasta o pg_archivecleanup limpa. >> > > Ah sim, o diretório onde você configurou o arquivamento pelo seu > archive_command, ok. > A limpeza não é automática, como já respondido anteriormente e acho que > você já "captou". > > > >>A ferramenta pg_barman é uma ótima companheira para gerenciar backups >> PITR. Ela automatiza a maioria das tarefas, principalmente a tediosa >> limpeza da pasta onde guardam-se os arquivos WAL. >> o pg_barman automatiza estas tarefas via comando (shell) ou tem >> interface gráfica? >> > > A ferramenta funciona através de linha de comando, mas muita gente a > integra a outras ferramentas como o Bacula ou Tivoli, por exemplo. > > > ele pode ser instalado em um computador sem postgres para administrar os >> servidores de vários clientes? >> > > Sim senhor. > > []s > Flavio Gurgel > > ___ > 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
Re: [pgbr-geral] dúvida sobre PITR
>>a pasta pg_xlog é de uso do servidor PostgreSQl e sua manutenção é feita automaticamente. Nunca mexa manualmente nela. acho que confundi qual pasta o pg_archivecleanup limpa. >>A ferramenta pg_barman é uma ótima companheira para gerenciar backups PITR. Ela automatiza a maioria das tarefas, principalmente a tediosa limpeza da pasta onde guardam-se os arquivos WAL. o pg_barman automatiza estas tarefas via comando (shell) ou tem interface gráfica? ele pode ser instalado em um computador sem postgres para administrar os servidores de vários clientes? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com Em 9 de julho de 2014 10:57, Matheus de Oliveira escreveu: > Seus entendimentos do backup incremental/PITR parecem estar corretas, > então vou focar nas dúvidas que restaram. > > 2014-07-09 10:31 GMT-03:00 Alessandro Lima : > > Mas a minha dúvida maior é na manutenção destes backups: >> 1- a pasta que eu criei para copiar os logs WAL nunca diminui? mesmo >> reciclando a pasta pg_xlog >> > > O pg_xlog é controlado pelo próprio PostgreSQL, já o local onde você está > salvando os segmentos de log devem ser controlados por você. Na verdade o > PostgreSQL nem sabe da existência ou local desta, logo se quiser que ela > "diminua", você mesmo deve apagar os arquivos que não considera mais > necessário. > > >> 2- a limpeza da pasta pg_xlog é feita excluindo os arquivos com extensão >> .backup? >> > > Não. Nunca, em hipótese alguma, nem em sonho, encoste em nenhum dos > arquivos na pasta pg_xlog. Deixe o PostgreSQL controlá-los. Só garanta que > o código de retorno do comando que colocaras no archive_command esteja > funcionando corretamente e que o arquivamento está sendo feito. Uma causa > comum de inchaço da pg_xlog é a falha do archive_command. > > >> 3- o ideal é repetir o pg_basebackup de tempos em tempos? >> > > Sim. > > Na verdade você poderia fazer um só e acumular os logs, mas isso faria com > que o tempo de restauração só aumentasse, ficando impraticável. O ideal é > mesmo um base backup de tempos em tempos. > > >> neste caso devo excluir minha pasta com logs WAL antigos? >> > > Quando você faz um base backup o PostgreSQL cria o arquivo .backup. É um > arquivo texto, leia este arquivo e verás dois registros: "START WAL > LOCATION" e "STOP WAL LOCATION". Estes registros indicam quais são os logs > de transação que este backup precisa obrigatoriamente. Logo, para > restaurá-lo você precisará ao menos ter os arquivos gerados entre o START e > o STOP, os demais não são necessários, mas possivelmente você vai querer > mais arquivos à frente do STOP, para fazer uma restauração de tudo possível > ou ainda um PITR (Point In Time Recovery). > > Agora, quanto à apagar os logs de transação, vai depender de sua política > de backup. Se, por exemplo, a cada backup base realizado você decidir > apagar o backup base anterior, você poderá apagar todos logs de transação > anteriores ao valor do START daquele que será mantido. A regra seria: "ao > apagar backups base antigos, você pode apagar todos os logs de transação > anteriores ao START do primeiro backup base que será mantido". O ponto do > START também é o indicado no nome do arquivo .backup, seria " filename>..backup", isso facilita (e.g. apague todos > até o .backup e o que tem o mesmo número). > > Para apagar os arquivos antigos, você pode usar o pg_archivecleanup [1]. > Ou outras ferramentas de backup, como o barman ou o pg_rman. > > [1] http://www.postgresql.org/docs/current/static/pgarchivecleanup.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 > > ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] dúvida sobre PITR
Pesquisei os links indicados por vocês como sendo melhor forma de backup, não usando apenas do pg_dump e pg_dumpall. E consegui implementar o PITR e o STREAMING REPLICATION. Pelo que entendi o STREAMING REPLICATION é usado normalmente para balanceamento de carga em consultas e para assumir como servidor principal na falha do mesmo, mas não como backup pois se os registros forem apagados no principal, também serão apagados no standby, e pelo que pesquisei o standby não armazena os logs WAL. Já o PITR sim é o mecanismo de backup, armazenando em outro servidor o base backup através do pg_basebackup e dos arquivos WAL usando rsync Mas a minha dúvida maior é na manutenção destes backups: 1- a pasta que eu criei para copiar os logs WAL nunca diminui? mesmo reciclando a pasta pg_xlog 2- a limpeza da pasta pg_xlog é feita excluindo os arquivos com extensão .backup? 3- o ideal é repetir o pg_basebackup de tempos em tempos? neste caso devo excluir minha pasta com logs WAL antigos? Atenciosamente, Alessandro Lima email grandegoia...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral