Re: [pgbr-geral] Banco de contigencia
2012/9/25 Tiago Valério tiagosvale...@gmail.com Fabio Uma pergunta, existe a possibilidade de nós sabermos através dos metadados, se é necessário reduzir ou aumentar o fillfactor, ou seja, se temos uma analise de quanto desfragmentado esta um índice ou uma linha da tabela. É possível, não sei se é uma viagem minha talvez. Sei que perguntou pro Telles, mas vai lá... Pesquise por postgresql table bloat no Google mesmo [1]. Tem vários artigos em blogs e a entrada no Wiki [2] com uma consulta boa para ter-se uma noção de como anda a coisa, e se quiser ter mais detalhes, temos extensões que ajudam [3] e [4]. E de uma forma mais rápida, podemos consultar a pg_stat_user_tables nas colunas n_live_tup e n_dead_tup. [1] https://www.google.com.br/search?q=postgresql+table+bloat [2] http://wiki.postgresql.org/wiki/Show_database_bloat [3] http://www.postgresql.org/docs/9.1/static/pgstattuple.html [4] http://www.postgresql.org/docs/9.1/static/pgfreespacemap.html Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados PostgreSQL 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
Re: [pgbr-geral] Banco de contigencia
Em 24 de setembro de 2012 12:16, Antonio Cesar cgcesarsoa...@gmail.comescreveu: Tipo esses onde precisei remover uma CONSTRAINT e recria-la. START TRANSACTION; ALTER TABLE nfe_emitida DROP CONSTRAINT uk_nfe_emitida_chaces; ALTER TABLE nfe_emitida ADD CONSTRAINT uk_nfe_emitida_chaces UNIQUE (chave_acesso); COMMIT; Se você está tendo de reconstruir sua chave todo dia, algo ruim pode estar ocorrendo, como um número muito grande de DELETEs ou UPDATEs. Se for um número grande de UPDATEs, recomendo mexer no 'fillfactor' da tabela, http://www.postgresql.org/docs/9.2/static/sql-createtable.html#SQL-CREATETABLE-STORAGE-PARAMETERS . Se o problema forem DELETEs, então recomendo pensar no particionamento da tabela em questão. Deixar uma tabela esburacada leva a este tipo de solução: recriar índices. Outra coisa: Não seria melhor trabalhar apenas com o REINDEX da tabela ao invés de destruir e recriar a constraint? Meus 2 centavos. []s -- Atenciosamente, Fábio Telles Rodriguez blog: http:// http://www.midstorm.org/~telles/http://tellesr.wordpress.com e-mail / gtalk / MSN: fabio.tel...@gmail.com Skype: fabio_telles ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Banco de contigencia
Fabio Uma pergunta, existe a possibilidade de nós sabermos através dos metadados, se é necessário reduzir ou aumentar o fillfactor, ou seja, se temos uma analise de quanto desfragmentado esta um índice ou uma linha da tabela. É possível, não sei se é uma viagem minha talvez. Em 25 de setembro de 2012 07:28, Fábio Telles Rodriguez fabio.tel...@gmail.com escreveu: Em 24 de setembro de 2012 12:16, Antonio Cesar cgcesarsoa...@gmail.comescreveu: Tipo esses onde precisei remover uma CONSTRAINT e recria-la. START TRANSACTION; ALTER TABLE nfe_emitida DROP CONSTRAINT uk_nfe_emitida_chaces; ALTER TABLE nfe_emitida ADD CONSTRAINT uk_nfe_emitida_chaces UNIQUE (chave_acesso); COMMIT; Se você está tendo de reconstruir sua chave todo dia, algo ruim pode estar ocorrendo, como um número muito grande de DELETEs ou UPDATEs. Se for um número grande de UPDATEs, recomendo mexer no 'fillfactor' da tabela, http://www.postgresql.org/docs/9.2/static/sql-createtable.html#SQL-CREATETABLE-STORAGE-PARAMETERS . Se o problema forem DELETEs, então recomendo pensar no particionamento da tabela em questão. Deixar uma tabela esburacada leva a este tipo de solução: recriar índices. Outra coisa: Não seria melhor trabalhar apenas com o REINDEX da tabela ao invés de destruir e recriar a constraint? Meus 2 centavos. []s -- Atenciosamente, Fábio Telles Rodriguez blog: http:// http://www.midstorm.org/~telles/ http://tellesr.wordpress.com e-mail / gtalk / MSN: fabio.tel...@gmail.com Skype: fabio_telles ___ 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] Banco de contigencia
Bom dia pessoal. Estou desenvolvendo um sistema de ECF, onde o supermercado funciona 24 horas por dia e quando preciso de fazer manutenção no banco preciso parar o banco. Tem alguma maneira de efetuar esta manuteção com o banco em produção? Pensei em manter um banco de contigencia, os usuario passaria a gravar os dados nele e depois replicar no servidor central, tem como? attachment: cgcesarsoares.vcf___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Banco de contigencia
2012/9/24 Antonio Cesar cgcesarsoa...@gmail.com: Bom dia pessoal. Estou desenvolvendo um sistema de ECF, onde o supermercado funciona 24 horas por dia e quando preciso de fazer manutenção no banco preciso parar o banco. Tem alguma maneira de efetuar esta manuteção com o banco em produção? Pensei em manter um banco de contigencia, os usuario passaria a gravar os dados nele e depois replicar no servidor central, tem como? bucardo ? -- Itamar Reis Peixoto http://www.quebarato.com.br/perfil/itamarjp ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Banco de contigencia
On 24-09-2012 09:00, Antonio Cesar wrote: Estou desenvolvendo um sistema de ECF, onde o supermercado funciona 24 horas por dia e quando preciso de fazer manutenção no banco preciso parar o banco. Tem alguma maneira de efetuar esta manuteção com o banco em produção? Parar o banco? Pra que? Todas as manutenções no PostgreSQL são online. Pensei em manter um banco de contigencia, os usuario passaria a gravar os dados nele e depois replicar no servidor central, tem como? Tem mas isso vai de dar a maior dor de cabeça. Só recomendo se for um ambiente bem controlado e _realmente_ haja necessidade de parar o servidor principal (hoje isso só é necessário quando precisamos atualizar entre versões novas). -- Euler Taveira de Oliveira - Timbira http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Banco de contigencia
Em segunda-feira, 24 de setembro de 2012, Antonio Cesar cgcesarsoa...@gmail.com escreveu: Bom dia pessoal. Estou desenvolvendo um sistema de ECF, onde o supermercado funciona 24 horas por dia e quando preciso de fazer manutenção no banco preciso parar o banco. Tem alguma maneira de efetuar esta manuteção com o banco em produção? Quais manutenções? Vacuum, reindex podem ser feitos online. a gravar os dados nele e depois replicar no servidor central, tem como? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Banco de contigencia
Tipo esses onde precisei remover uma CONSTRAINT e recria-la. START TRANSACTION; ALTER TABLE nfe_emitida DROP CONSTRAINT uk_nfe_emitida_chaces; ALTER TABLE nfe_emitida ADD CONSTRAINT uk_nfe_emitida_chaces UNIQUE (chave_acesso); COMMIT; Em 24/09/2012 12:14, Danilo Silva escreveu: Em segunda-feira, 24 de setembro de 2012, Antonio Cesarcgcesarsoa...@gmail.com mailto:cgcesarsoa...@gmail.com escreveu: Bom dia pessoal. Estou desenvolvendo um sistema de ECF, onde o supermercado funciona 24 horas por dia e quando preciso de fazer manutenção no banco preciso parar o banco. Tem alguma maneira de efetuar esta manuteção com o banco em produção? Quais manutenções? Vacuum, reindex podem ser feitos online. a gravar os dados nele e depois replicar no servidor central, tem como? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral attachment: cgcesarsoares.vcf___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Banco de contigencia
Em 24 de setembro de 2012 12:16, Antonio Cesar cgcesarsoa...@gmail.com escreveu: Tipo esses onde precisei remover uma CONSTRAINT e recria-la. START TRANSACTION; ALTER TABLE nfe_emitida DROP CONSTRAINT uk_nfe_emitida_chaces; ALTER TABLE nfe_emitida ADD CONSTRAINT uk_nfe_emitida_chaces UNIQUE (chave_acesso); COMMIT; Como diria nosso amigo Dutra (que sempre está aí para lembrar os desavisados): Evite o top-posting. Escreva sempre abaixo das mensagens anteriores e preferencialmente em texto plano (sem formatação HTML). Respondendo à sua dúvida: como é um supermercado 24hs, em conformidade com as leis do PAF-ECF cada caixa (ou ponto-de-venda) precisa ter um banco de dados independente e local para funcionar sem rede (inclusive durante a homologação eles arrancam o cabo de rede da máquina para ver como o aplicativo se comporta). Logo, você deverá programar atualizações de 1 ou 2 caixas por vez (depende do número total) para não ter que parar toda a loja. Não tem como parar o banco para fazer isso e não precisa de um banco para contingência, pelo menos não para este cenário. -- TIAGO J. ADAMI http://www.adamiworks.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] Banco de contigencia
2012/9/24 Antonio Cesar cgcesarsoa...@gmail.com: Tipo esses onde precisei remover uma CONSTRAINT e recria-la. START TRANSACTION; ALTER TABLE nfe_emitida DROP CONSTRAINT uk_nfe_emitida_chaces; ALTER TABLE nfe_emitida ADD CONSTRAINT uk_nfe_emitida_chaces UNIQUE (chave_acesso); COMMIT; Maravilha, sem interrupção! ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Banco de contigencia
On 24-09-2012 12:16, Antonio Cesar wrote: Tipo esses onde precisei remover uma CONSTRAINT e recria-la. Mas isso tá levando quanto tempo? Cadê a janela de manutenção (ou pelo menos um período onde há baixo uso do sistema)? START TRANSACTION; ALTER TABLE nfe_emitida DROP CONSTRAINT uk_nfe_emitida_chaces; ALTER TABLE nfe_emitida ADD CONSTRAINT uk_nfe_emitida_chaces UNIQUE (chave_acesso); COMMIT; Você não disse a versão que está utilizando mas a partir do 9.1 você pode diminuir o tempo desse tipo de transação utilizando um índice preexistente e utilizá-lo como restrição UNIQUE. CREATE UNIQUE INDEX CONCURRENTLY fooi ON nfe_emitida(chave_acesso); BEGIN; ALTER TABLE nfe_emitida ADD CONSTRAINT uk_nfe_emitida UNIQUE USING INDEX fooi; ALTER TABLE nfe_emitida DROP CONSTRAINT uk_nfe_emitida_chaces; COMMIT; -- Euler Taveira de Oliveira - Timbira http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Banco de contigencia
On 24-09-2012 14:22, Guimarães Faria Corcete DUTRA, Leandro wrote: 2012/9/24 Antonio Cesar cgcesarsoa...@gmail.com: Tipo esses onde precisei remover uma CONSTRAINT e recria-la. START TRANSACTION; ALTER TABLE nfe_emitida DROP CONSTRAINT uk_nfe_emitida_chaces; ALTER TABLE nfe_emitida ADD CONSTRAINT uk_nfe_emitida_chaces UNIQUE (chave_acesso); COMMIT; Maravilha, sem interrupção! Não! AccessExclusiveLock até que ele termine de criar o índice em chave_acesso. -- Euler Taveira de Oliveira - Timbira http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral