Re: [pgbr-geral] Função em C
mateusgra escreveu: #include postgres.h #include utils/builtins.h /* convert C string to text pointer */ #define PG_TEXT_GET_STR(textp_) \ DatumGetCString(DirectFunctionCall1(textout, PointerGetDatum(textp_))) #define PG_STR_GET_TEXT(str_) \ DatumGetTextP(DirectFunctionCall1(textin, CStringGetDatum(str_))) #define PG_REPLACE_STR(str_, substr_, replacestr_) \ PG_TEXT_GET_STR(DirectFunctionCall3(replace_text, \ PG_STR_GET_TEXT(str_), \ PG_STR_GET_TEXT(substr_), \ PG_STR_GET_TEXT(replacestr_))) As funções DirectFunctionCallX() sempre retornam Datum. Portanto, não precisa converter de text para Datum. Utilize: #define PG_STR_GET_TEXT(str_) \ DirectFunctionCall1(textin, CStringGetDatum(str_)) #define PG_REPLACE_STR(str_, substr_, replacestr_) \ DirectFunctionCall3(replace_text, \ PG_STR_GET_TEXT(str_), \ PG_STR_GET_TEXT(substr_), \ PG_STR_GET_TEXT(replacestr_)) -- Euler Taveira de Oliveira http://www.timbira.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Escolha do método de replicação
Pessoal, Preciso escolher o melhor método de replicação para utilizar , se puderem me ajudar, o caso é o seguinte : Possuimos um banco no postgres 9.0 em um servidor de desenvolvimento com bases sendo geradas a todo momento. Já possuimos um servidor pronto para receber uma versão de produção do banco, ou seja, algumas bases que seriam utilizadas por clientes , onde o desempenho não seja prejudicado pelas escritas. Inicialmente tivemos 2 idéias utilizar o hot-standby(porém um problema seria que se algo desse errado no desenvolvimento seria imediatamente replicado para o server de produção) e fiquei na duvida se o desempenho seria bom(pois há carga 24x7). A outra seria o server de produção possui uma base atualizada diariamente (incremental?) durante a noite (entre 0h e 6h) , existe alguma forma fácil de fazer isso? Agradeço desde já, -- Thiago Godoi ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sobre curso PostgreSQL HA
Diogo, Nada contra a dextra, mas eu fiz na 4Linux e gostei muito. []´s victor hugo Em 27 de outubro de 2010 16:49, Diogo Borsoi diogobor...@gmail.com escreveu: Pessoal, Esta é minha 1a. mensagem no grupo. Gostaria de saber se o curso http://www.dextra.com.br/servicos/treinamento/pg/postgres-alta-disponibilidade.htm nesta empresa de treinamento é recomendado e se alguém tem outra sugestão. Att. -- = Diogo Borsoi = ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- []´s Victor Hugo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sobre curso PostgreSQL HA
Thiago Godoi escreveu: Outro detalhe é que pelas ementas se não estou enganado , esse curso da 4linux engloba 2 da Dextra performance-tuning e alta disponibilidade. A ementa e material foi montada por mim no ano passado. O curso realmente engloba tanto tuning quanto soluções de alta disponibilidade/replicação. -- Euler Taveira de Oliveira http://www.timbira.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] Escolha do método de replicação
Olá, Em 28 de outubro de 2010 12:49, Thiago Godoi thiagogodo...@gmail.comescreveu: Pessoal, Preciso escolher o melhor método de replicação para utilizar , se puderem me ajudar, o caso é o seguinte : Possuimos um banco no postgres 9.0 em um servidor de desenvolvimento com bases sendo geradas a todo momento. Já possuimos um servidor pronto para receber uma versão de produção do banco, ou seja, algumas bases que seriam utilizadas por clientes , onde o desempenho não seja prejudicado pelas escritas. Inicialmente tivemos 2 idéias utilizar o hot-standby(porém um problema seria que se algo desse errado no desenvolvimento seria imediatamente replicado para o server de produção) e fiquei na duvida se o desempenho seria bom(pois há carga 24x7). A outra seria o server de produção possui uma base atualizada diariamente (incremental?) durante a noite (entre 0h e 6h) , existe alguma forma fácil de fazer isso? Vamos lá. Acredito que você não deva replicar coisas de desenvolvimento para produção. Uma coisa é teste/desenvolvimento e outra é produção. Por que replicar de teste para produção? Isso pode ser um risco não? Agradeço desde já, -- Thiago Godoi ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.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 Gigante
Em outra mensagem você colocou Não é simples demais para uma tabela que terá milhões de registros ???... O problema não é simplicidade. Na verdade, simplicidade geralmente é a melhor prática! O pessoal aqui falou sobre a tal Chave Natural... mas o que vem a ser uma chave natural?? Durante o processo de modelagem, identificamos atributos ou combinação de atributos que identificam cada ocorrência (registro) como único. Cada uma dessas combinações é conhecida como chave candidata. As chaves candidatas identificam a ocorrência como única, mas precisamos eleger uma delas como chave primária. Vamos pegar como exemplo a provável entidade pessoa_fisica abaixo: create table pessoa_fisica ( id_pessoa cpf nome pai mae ... ) Dentre os atributos acima, podemos eleger como candidatas os atributos id_pessoa e cpf. Cpf, neste caso é a chamada chave natural, visto que a mesma foi introduzida pelo usuário e diz respeito ao negócio, já id_pessoa é uma chave artificial, que é controlada pelo banco e não diz respeito ao negócio, por isso ser artificial. Mas qual a melhor escolha? Existem várias vantagens e desvantagens associadas à essa escolha. Muitas vezes, isso levando-se em conta chaves compostas, chaves artificiais economizam espaço nos índices e nas colunas quando repassadas a FKs e chave naturais costumam economizar em JOINs (se repassamos a chave natural para outras tabelas, talvez não precisemos fazer um JOIN) e principalmente no fato de conter em si uma informação da tupla, ou seja, ela diz exatamente o que é e a que serve. Em todo caso, um dos grandes dilemas entre chaves artificiais e chaves naturais é a volatilidade de tuas regras de negócio. Se você escolhe uma chave natural e hoje a combinação dela é única, o que fazer com o seu modelo de dados se amanhã ela não for unica? Seria muito ruim sair remendando o modelo. Logo, na minha humilde visão, não incluiria os termos certo e errado em se utilizar uma chave natural em detrimento de uma chave artificial, mas sim, ao teu modelo de negócios o que é melhor? Na maioria dos casos, chaves naturais são a melhor escolha, mas como maioria não significa todos, você deve rever teu modelo de negócios e claro, dar uma boa estudada nos conceitos e processos envolvidos em modelagem de dados. Att, -- Charly Batista Administrador de Banco de Dados http://javadevilopers.blogspot.com/ charlyfra...@gmail.com Linux user #391083 Se você tem uma maçã e eu tenho uma maçã e nós trocamos essas maçãs, então eu e você ainda teremos uma maçã cada. Mas se você tiver uma idéia e eu tiver uma idéia e nós trocamos idéias, então cada um de nós terá duas idéias. George Bernard Shaw (1856-1950) Em 28 de outubro de 2010 00:19, Emerson Moretto emore...@gmail.comescreveu: 260.000 é piada para o PostgreSQL, mesmo para realizar buscas. Eu trabalho com um banco com 46 milhões de registros em uma única tabela usando PostgreSQL. Não é o banco principal, é de redundância, mas ele aguenta muito bem, desde que com índices bem feitos. No meu caso: - Desnormalizei tudo, usei tudo em uma única tabela e não faço nenhum join. (sim, repliquei colunas.. campos vazios... etc) - Separei os campos principais de buscas em mais de um campo. E coloquei índice para todos esses campos. Ex: nome_completo - primeiro_nome, ultimo_nome. Então, # select * from tabela where primeiro_nome = 'Jose' and ultimo_nome = 'Silva'; de certa forma, fica como se fosse um like e ao mesmo tempo com muito desempenho. - Criei esses índices de nomes usando o próprio valor do campo no índice. O PostgreSQL por default faz um hash do valor para melhor uso de memória e a comparação. Pra fazer isso: # create index idx_nome on tabela (nome varchar_pattern_ops); Esse varchar_pattern_ops que faz isso acontecer Com isso, a consulta: # SELECT * FROM tabela WHERE nome LIKE 'JOS%' utiliza o índice para fazer o LIKE. Dessa forma, a busca será muito rápida (te garanto, no meu caso ficou em ~25 ms), mas esse LIKE só vai funcionar para quando a busca iniciar com determinado valor. LIKE '%ANA%' ou LIKE '%ANA' vão funcionar, mas fazendo full scan. Enfim, tudo que fiz nesse meu case escrevi nesse post: http://www.emersonmoretto.com/articles/tag/postgres%209 * Não sou especialista em PostgreSQL, apenas admiro, defendo e uso desde a versão 7.2 ** Espero ter ajudado e não ter te confundido mais att Emerson Moretto 2010/10/27 Listas lis...@arsweb.net.br Olá Pessoal, Sou programador em PHP e utiliso o mysql para fazer meus sistemas, bom, estou desenvolvendo um sistema on-line de uma lista telefonica e resolvi usar o postgresql como banco de dados. Porém, estou com dúvidas de como fazer a tabela no banco. A tabela va conter de arrancada 260.000 registros Vai ser um cadastro normal de usuario, como ( Id, nome, endereço, cep, cidade, estado, anuncio, etc ) Gostaria de saber como criar esta tabela, a estrutura, tipo auto_increment, ja
[pgbr-geral] Res: Escolha do método de replic ação
Thiago, creio que o hot-standby não irá funcionar da maneira que você deseja, pois um banco neste estado não aceita transações pois ele roda somente em read-only. A não ser que você queira usar apenas para consulta. Att., __ Renato R. Ricci Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos! De: Thiago Godoi thiagogodo...@gmail.com Para: pgbr-geral@listas.postgresql.org.br Enviadas: Quinta-feira, 28 de Outubro de 2010 12:49:34 Assunto: [pgbr-geral] Escolha do método de replicação Pessoal, Preciso escolher o melhor método de replicação para utilizar , se puderem me ajudar, o caso é o seguinte : Possuimos um banco no postgres 9.0 em um servidor de desenvolvimento com bases sendo geradas a todo momento. Já possuimos um servidor pronto para receber uma versão de produção do banco, ou seja, algumas bases que seriam utilizadas por clientes , onde o desempenho não seja prejudicado pelas escritas. Inicialmente tivemos 2 idéias utilizar o hot-standby(porém um problema seria que se algo desse errado no desenvolvimento seria imediatamente replicado para o server de produção) e fiquei na duvida se o desempenho seria bom(pois há carga 24x7). A outra seria o server de produção possui uma base atualizada diariamente (incremental?) durante a noite (entre 0h e 6h) , existe alguma forma fácil de fazer isso? Agradeço desde já, -- Thiago Godoi ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sobre curso PostgreSQL HA
Pessoal, Obrigado pelas opiniões. On 10/28/2010 01:26 PM, Euler Taveira de Oliveira wrote: Thiago Godoi escreveu: Outro detalhe é que pelas ementas se não estou enganado , esse curso da 4linux engloba 2 da Dextra performance-tuning e alta disponibilidade. A ementa e material foi montada por mim no ano passado. O curso realmente engloba tanto tuning quanto soluções de alta disponibilidade/replicação. -- = Diogo Borsoi Cel: +55 (12) 9143-6960 http://diborsoi.wordpress.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] Res: Escolha do método de replica ção
Hum creio que usei a palavra errada então, não seria uma replicação. Seria migrar as atualizações para o banco de produção. Porém um detalhe que não havia citado antes, o banco de produção será usado somente para consultas. Em 28 de outubro de 2010 13:40, Renato Ricci renatoricc...@yahoo.com.brescreveu: Thiago, creio que o hot-standby não irá funcionar da maneira que você deseja, pois um banco neste estado não aceita transações pois ele roda somente em read-only. A não ser que você queira usar apenas para consulta. Att., __ *Renato R. Ricci* *Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos!*** -- *De:* Thiago Godoi thiagogodo...@gmail.com *Para:* pgbr-geral@listas.postgresql.org.br *Enviadas:* Quinta-feira, 28 de Outubro de 2010 12:49:34 *Assunto:* [pgbr-geral] Escolha do método de replicação Pessoal, Preciso escolher o melhor método de replicação para utilizar , se puderem me ajudar, o caso é o seguinte : Possuimos um banco no postgres 9.0 em um servidor de desenvolvimento com bases sendo geradas a todo momento. Já possuimos um servidor pronto para receber uma versão de produção do banco, ou seja, algumas bases que seriam utilizadas por clientes , onde o desempenho não seja prejudicado pelas escritas. Inicialmente tivemos 2 idéias utilizar o hot-standby(porém um problema seria que se algo desse errado no desenvolvimento seria imediatamente replicado para o server de produção) e fiquei na duvida se o desempenho seria bom(pois há carga 24x7). A outra seria o server de produção possui uma base atualizada diariamente (incremental?) durante a noite (entre 0h e 6h) , existe alguma forma fácil de fazer isso? Agradeço desde já, -- Thiago Godoi ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Thiago Godoi Ec07 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Res: Res: Escolha do método de replicação
Thiago, deixa eu ver se entendi.. você tem um ambiente de desenvolvimento onde você faz alterações físicas e lógicas no banco de dados. O que você quer fazer é aplicar essas alterações em um banco de produção? O que você vai querer aplicar no banco de produção? Somente o DDL? Ou as informações geradas em desenvolvimento tb? Se você usar um hot-standby, você poderá replicar DDL e informações (cópia fiel do banco) para produção. Não sei como isso impactaria no seu ambiente ai, pois você estará aplicando as alterações no banco de produção mas a aplicação (.exe ou alguma aplicação web) ainda ficará antiga. Se for alterações somente em Functions, triggers, views, ai de boa.. Geralmente as empresas costumam usar um banco hot-standby mais para contingência, ou seja, caso der algum problema no banco de produção, esse banco hot-standby assumiria a brinca. Geralmente tem-se os seguintes ambientes: Desenvolvimento Produção (Processo feito manualmente através de aplicação de scripts com alterações necessárias) Produção (transacional) hot-standby (automático) T+ __ Renato R. Ricci Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos! De: Thiago Godoi thiagogodo...@gmail.com Para: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br Enviadas: Quinta-feira, 28 de Outubro de 2010 14:25:49 Assunto: Re: [pgbr-geral] Res: Escolha do método de replicação Hum creio que usei a palavra errada então, não seria uma replicação. Seria migrar as atualizações para o banco de produção. Porém um detalhe que não havia citado antes, o banco de produção será usado somente para consultas. Em 28 de outubro de 2010 13:40, Renato Ricci renatoricc...@yahoo.com.br escreveu: Thiago, creio que o hot-standby não irá funcionar da maneira que você deseja, pois um banco neste estado não aceita transações pois ele roda somente em read-only. A não ser que você queira usar apenas para consulta. Att., __ Renato R. Ricci Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos! De: Thiago Godoi thiagogodo...@gmail.com Para: pgbr-geral@listas.postgresql.org.br Enviadas: Quinta-feira, 28 de Outubro de 2010 12:49:34 Assunto: [pgbr-geral] Escolha do método de replicação Pessoal, Preciso escolher o melhor método de replicação para utilizar , se puderem me ajudar, o caso é o seguinte : Possuimos um banco no postgres 9.0 em um servidor de desenvolvimento com bases sendo geradas a todo momento. Já possuimos um servidor pronto para receber uma versão de produção do banco, ou seja, algumas bases que seriam utilizadas por clientes , onde o desempenho não seja prejudicado pelas escritas. Inicialmente tivemos 2 idéias utilizar o hot-standby(porém um problema seria que se algo desse errado no desenvolvimento seria imediatamente replicado para o server de produção) e fiquei na duvida se o desempenho seria bom(pois há carga 24x7). A outra seria o server de produção possui uma base atualizada diariamente (incremental?) durante a noite (entre 0h e 6h) , existe alguma forma fácil de fazer isso? Agradeço desde já, -- Thiago Godoi ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Thiago Godoi Ec07 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Res: Res: Escolha do método de replicação
É realmente já percebi que o hot-standby não é o ideal para a situação. Vou tentar especificar melhor o que desejamos fazer. Tenho um banco de Desenvolvimento onde eu tenho várias bases em que eu estou inserindo novas informações o tempo inteiro.Na máquina de produção a ideia é possuir algumas das bases do banco de Desenvolvimento , somente para consultas de clientes. Meu problema seria como levar os dados do meu banco de Desenvolvimento para o banco de Produção (lembrando que seria somente uma parte do cluster), a ideia seria fazer essa atualização todo dia durante a madrugada, é possível algo incremental? Em 28 de outubro de 2010 14:43, Renato Ricci renatoricc...@yahoo.com.brescreveu: Thiago, deixa eu ver se entendi.. você tem um ambiente de desenvolvimento onde você faz alterações físicas e lógicas no banco de dados. O que você quer fazer é aplicar essas alterações em um banco de produção? O que você vai querer aplicar no banco de produção? Somente o DDL? Ou as informações geradas em desenvolvimento tb? Se você usar um hot-standby, você poderá replicar DDL e informações (cópia fiel do banco) para produção. Não sei como isso impactaria no seu ambiente ai, pois você estará aplicando as alterações no banco de produção mas a aplicação (.exe ou alguma aplicação web) ainda ficará antiga. Se for alterações somente em Functions, triggers, views, ai de boa.. Geralmente as empresas costumam usar um banco hot-standby mais para contingência, ou seja, caso der algum problema no banco de produção, esse banco hot-standby assumiria a brinca. Geralmente tem-se os seguintes ambientes: Desenvolvimento Produção (Processo feito manualmente através de aplicação de scripts com alterações necessárias) Produção (transacional) hot-standby (automático) T+ __ *Renato R. Ricci* *Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos!*** -- *De:* Thiago Godoi thiagogodo...@gmail.com *Para:* Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br *Enviadas:* Quinta-feira, 28 de Outubro de 2010 14:25:49 *Assunto:* Re: [pgbr-geral] Res: Escolha do método de replicação Hum creio que usei a palavra errada então, não seria uma replicação. Seria migrar as atualizações para o banco de produção. Porém um detalhe que não havia citado antes, o banco de produção será usado somente para consultas. Em 28 de outubro de 2010 13:40, Renato Ricci renatoricc...@yahoo.com.brescreveu: Thiago, creio que o hot-standby não irá funcionar da maneira que você deseja, pois um banco neste estado não aceita transações pois ele roda somente em read-only. A não ser que você queira usar apenas para consulta. Att., __ *Renato R. Ricci* *Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos!*** -- *De:* Thiago Godoi thiagogodo...@gmail.com *Para:* pgbr-geral@listas.postgresql.org.br *Enviadas:* Quinta-feira, 28 de Outubro de 2010 12:49:34 *Assunto:* [pgbr-geral] Escolha do método de replicação Pessoal, Preciso escolher o melhor método de replicação para utilizar , se puderem me ajudar, o caso é o seguinte : Possuimos um banco no postgres 9.0 em um servidor de desenvolvimento com bases sendo geradas a todo momento. Já possuimos um servidor pronto para receber uma versão de produção do banco, ou seja, algumas bases que seriam utilizadas por clientes , onde o desempenho não seja prejudicado pelas escritas. Inicialmente tivemos 2 idéias utilizar o hot-standby(porém um problema seria que se algo desse errado no desenvolvimento seria imediatamente replicado para o server de produção) e fiquei na duvida se o desempenho seria bom(pois há carga 24x7). A outra seria o server de produção possui uma base atualizada diariamente (incremental?) durante a noite (entre 0h e 6h) , existe alguma forma fácil de fazer isso? Agradeço desde já, -- Thiago Godoi ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Thiago Godoi Ec07 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Thiago Godoi Ec07 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Res: Res: Escolha do método de replicação
Olá, Em 28 de outubro de 2010 15:32, Thiago Godoi thiagogodo...@gmail.comescreveu: É realmente já percebi que o hot-standby não é o ideal para a situação. Vou tentar especificar melhor o que desejamos fazer. Tenho um banco de Desenvolvimento onde eu tenho várias bases em que eu estou inserindo novas informações o tempo inteiro.Na máquina de produção a ideia é possuir algumas das bases do banco de Desenvolvimento , somente para consultas de clientes. Hum.. Que tal dar uma olhada no Slony [1] Meu problema seria como levar os dados do meu banco de Desenvolvimento para o banco de Produção (lembrando que seria somente uma parte do cluster), a ideia seria fazer essa atualização todo dia durante a madrugada, é possível algo incremental? [1] http://www.slony.info/ Em 28 de outubro de 2010 14:43, Renato Ricci renatoricc...@yahoo.com.brescreveu: Thiago, deixa eu ver se entendi.. você tem um ambiente de desenvolvimento onde você faz alterações físicas e lógicas no banco de dados. O que você quer fazer é aplicar essas alterações em um banco de produção? O que você vai querer aplicar no banco de produção? Somente o DDL? Ou as informações geradas em desenvolvimento tb? Se você usar um hot-standby, você poderá replicar DDL e informações (cópia fiel do banco) para produção. Não sei como isso impactaria no seu ambiente ai, pois você estará aplicando as alterações no banco de produção mas a aplicação (.exe ou alguma aplicação web) ainda ficará antiga. Se for alterações somente em Functions, triggers, views, ai de boa.. Geralmente as empresas costumam usar um banco hot-standby mais para contingência, ou seja, caso der algum problema no banco de produção, esse banco hot-standby assumiria a brinca. Geralmente tem-se os seguintes ambientes: Desenvolvimento Produção (Processo feito manualmente através de aplicação de scripts com alterações necessárias) Produção (transacional) hot-standby (automático) T+ __ *Renato R. Ricci* *Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos!*** -- *De:* Thiago Godoi thiagogodo...@gmail.com *Para:* Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br *Enviadas:* Quinta-feira, 28 de Outubro de 2010 14:25:49 *Assunto:* Re: [pgbr-geral] Res: Escolha do método de replicação Hum creio que usei a palavra errada então, não seria uma replicação. Seria migrar as atualizações para o banco de produção. Porém um detalhe que não havia citado antes, o banco de produção será usado somente para consultas. Em 28 de outubro de 2010 13:40, Renato Ricci renatoricc...@yahoo.com.brescreveu: Thiago, creio que o hot-standby não irá funcionar da maneira que você deseja, pois um banco neste estado não aceita transações pois ele roda somente em read-only. A não ser que você queira usar apenas para consulta. Att., __ *Renato R. Ricci* *Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos!*** -- *De:* Thiago Godoi thiagogodo...@gmail.com *Para:* pgbr-geral@listas.postgresql.org.br *Enviadas:* Quinta-feira, 28 de Outubro de 2010 12:49:34 *Assunto:* [pgbr-geral] Escolha do método de replicação Pessoal, Preciso escolher o melhor método de replicação para utilizar , se puderem me ajudar, o caso é o seguinte : Possuimos um banco no postgres 9.0 em um servidor de desenvolvimento com bases sendo geradas a todo momento. Já possuimos um servidor pronto para receber uma versão de produção do banco, ou seja, algumas bases que seriam utilizadas por clientes , onde o desempenho não seja prejudicado pelas escritas. Inicialmente tivemos 2 idéias utilizar o hot-standby(porém um problema seria que se algo desse errado no desenvolvimento seria imediatamente replicado para o server de produção) e fiquei na duvida se o desempenho seria bom(pois há carga 24x7). A outra seria o server de produção possui uma base atualizada diariamente (incremental?) durante a noite (entre 0h e 6h) , existe alguma forma fácil de fazer isso? Agradeço desde já, -- Thiago Godoi ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Thiago Godoi Ec07 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Thiago Godoi Ec07 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.com ___ pgbr-geral mailing
[pgbr-geral] Res: Res: Res: Escolha do mé todo de replicação
Realmente, concordo com o JotaComm. Provavelmente o Slony seja ideal para sua situação. Com ele você pode escolher quais objetos deseja replicar para o banco slave... T+ __ Renato R. Ricci Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos! De: JotaComm jota.c...@gmail.com Para: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br Enviadas: Quinta-feira, 28 de Outubro de 2010 15:54:44 Assunto: Re: [pgbr-geral] Res: Res: Escolha do método de replicação Olá, Em 28 de outubro de 2010 15:32, Thiago Godoi thiagogodo...@gmail.com escreveu: É realmente já percebi que o hot-standby não é o ideal para a situação. Vou tentar especificar melhor o que desejamos fazer. Tenho um banco de Desenvolvimento onde eu tenho várias bases em que eu estou inserindo novas informações o tempo inteiro.Na máquina de produção a ideia é possuir algumas das bases do banco de Desenvolvimento , somente para consultas de clientes. Hum.. Que tal dar uma olhada no Slony [1] Meu problema seria como levar os dados do meu banco de Desenvolvimento para o banco de Produção (lembrando que seria somente uma parte do cluster), a ideia seria fazer essa atualização todo dia durante a madrugada, é possível algo incremental? [1] http://www.slony.info/ Em 28 de outubro de 2010 14:43, Renato Ricci renatoricc...@yahoo.com.br escreveu: Thiago, deixa eu ver se entendi.. você tem um ambiente de desenvolvimento onde você faz alterações físicas e lógicas no banco de dados. O que você quer fazer é aplicar essas alterações em um banco de produção? O que você vai querer aplicar no banco de produção? Somente o DDL? Ou as informações geradas em desenvolvimento tb? Se você usar um hot-standby, você poderá replicar DDL e informações (cópia fiel do banco) para produção. Não sei como isso impactaria no seu ambiente ai, pois você estará aplicando as alterações no banco de produção mas a aplicação (.exe ou alguma aplicação web) ainda ficará antiga. Se for alterações somente em Functions, triggers, views, ai de boa.. Geralmente as empresas costumam usar um banco hot-standby mais para contingência, ou seja, caso der algum problema no banco de produção, esse banco hot-standby assumiria a brinca. Geralmente tem-se os seguintes ambientes: Desenvolvimento Produção (Processo feito manualmente através de aplicação de scripts com alterações necessárias) Produção (transacional) hot-standby (automático) T+ __ Renato R. Ricci Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos! De: Thiago Godoi thiagogodo...@gmail.com Para: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br Enviadas: Quinta-feira, 28 de Outubro de 2010 14:25:49 Assunto: Re: [pgbr-geral] Res: Escolha do método de replicação Hum creio que usei a palavra errada então, não seria uma replicação. Seria migrar as atualizações para o banco de produção. Porém um detalhe que não havia citado antes, o banco de produção será usado somente para consultas. Em 28 de outubro de 2010 13:40, Renato Ricci renatoricc...@yahoo.com.br escreveu: Thiago, creio que o hot-standby não irá funcionar da maneira que você deseja, pois um banco neste estado não aceita transações pois ele roda somente em read-only. A não ser que você queira usar apenas para consulta. Att., __ Renato R. Ricci Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos! De: Thiago Godoi thiagogodo...@gmail.com Para: pgbr-geral@listas.postgresql.org.br Enviadas: Quinta-feira, 28 de Outubro de 2010 12:49:34 Assunto: [pgbr-geral] Escolha do método de replicação Pessoal, Preciso escolher o melhor método de replicação para utilizar , se puderem me ajudar, o caso é o seguinte : Possuimos um banco no postgres 9.0 em um servidor de desenvolvimento com bases sendo geradas a todo momento. Já possuimos um servidor pronto para receber uma versão de produção do banco, ou seja, algumas bases que seriam utilizadas por clientes , onde o desempenho não seja prejudicado pelas escritas. Inicialmente tivemos 2 idéias utilizar o hot-standby(porém um problema seria que se algo desse errado no desenvolvimento seria imediatamente replicado para o server de produção) e fiquei na duvida se o desempenho seria bom(pois há carga 24x7). A outra seria o server de produção possui uma base atualizada diariamente (incremental?) durante a noite (entre 0h e 6h) , existe alguma forma fácil de fazer isso? Agradeço desde já, -- Thiago Godoi ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br
Re: [pgbr-geral] Res: Res: Res: Escolha do mét odo de replicação
Obrigado galera , vou pesquisar mais sobre o Slony então, porém ele possui essa opção de replicação agendada dos dados? Por exemplo eu conseguiria definir para ele replicar os dados gerados durante o dia , somente durante a noite? Em 28 de outubro de 2010 16:11, Renato Ricci renatoricc...@yahoo.com.brescreveu: Realmente, concordo com o JotaComm. Provavelmente o Slony seja ideal para sua situação. Com ele você pode escolher quais objetos deseja replicar para o banco slave... T+ __ *Renato R. Ricci* *Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos!*** -- *De:* JotaComm jota.c...@gmail.com *Para:* Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br *Enviadas:* Quinta-feira, 28 de Outubro de 2010 15:54:44 *Assunto:* Re: [pgbr-geral] Res: Res: Escolha do método de replicação Olá, Em 28 de outubro de 2010 15:32, Thiago Godoi thiagogodo...@gmail.comescreveu: É realmente já percebi que o hot-standby não é o ideal para a situação. Vou tentar especificar melhor o que desejamos fazer. Tenho um banco de Desenvolvimento onde eu tenho várias bases em que eu estou inserindo novas informações o tempo inteiro.Na máquina de produção a ideia é possuir algumas das bases do banco de Desenvolvimento , somente para consultas de clientes. Hum.. Que tal dar uma olhada no Slony [1] Meu problema seria como levar os dados do meu banco de Desenvolvimento para o banco de Produção (lembrando que seria somente uma parte do cluster), a ideia seria fazer essa atualização todo dia durante a madrugada, é possível algo incremental? [1] http://www.slony.info/ Em 28 de outubro de 2010 14:43, Renato Ricci renatoricc...@yahoo.com.brescreveu: Thiago, deixa eu ver se entendi.. você tem um ambiente de desenvolvimento onde você faz alterações físicas e lógicas no banco de dados. O que você quer fazer é aplicar essas alterações em um banco de produção? O que você vai querer aplicar no banco de produção? Somente o DDL? Ou as informações geradas em desenvolvimento tb? Se você usar um hot-standby, você poderá replicar DDL e informações (cópia fiel do banco) para produção. Não sei como isso impactaria no seu ambiente ai, pois você estará aplicando as alterações no banco de produção mas a aplicação (.exe ou alguma aplicação web) ainda ficará antiga. Se for alterações somente em Functions, triggers, views, ai de boa.. Geralmente as empresas costumam usar um banco hot-standby mais para contingência, ou seja, caso der algum problema no banco de produção, esse banco hot-standby assumiria a brinca. Geralmente tem-se os seguintes ambientes: Desenvolvimento Produção (Processo feito manualmente através de aplicação de scripts com alterações necessárias) Produção (transacional) hot-standby (automático) T+ __ *Renato R. Ricci* *Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos!*** -- *De:* Thiago Godoi thiagogodo...@gmail.com *Para:* Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br *Enviadas:* Quinta-feira, 28 de Outubro de 2010 14:25:49 *Assunto:* Re: [pgbr-geral] Res: Escolha do método de replicação Hum creio que usei a palavra errada então, não seria uma replicação. Seria migrar as atualizações para o banco de produção. Porém um detalhe que não havia citado antes, o banco de produção será usado somente para consultas. Em 28 de outubro de 2010 13:40, Renato Ricci renatoricc...@yahoo.com.br escreveu: Thiago, creio que o hot-standby não irá funcionar da maneira que você deseja, pois um banco neste estado não aceita transações pois ele roda somente em read-only. A não ser que você queira usar apenas para consulta. Att., __ *Renato R. Ricci* *Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos!*** -- *De:* Thiago Godoi thiagogodo...@gmail.com *Para:* pgbr-geral@listas.postgresql.org.br *Enviadas:* Quinta-feira, 28 de Outubro de 2010 12:49:34 *Assunto:* [pgbr-geral] Escolha do método de replicação Pessoal, Preciso escolher o melhor método de replicação para utilizar , se puderem me ajudar, o caso é o seguinte : Possuimos um banco no postgres 9.0 em um servidor de desenvolvimento com bases sendo geradas a todo momento. Já possuimos um servidor pronto para receber uma versão de produção do banco, ou seja, algumas bases que seriam utilizadas por clientes , onde o desempenho não seja prejudicado pelas escritas. Inicialmente tivemos 2 idéias utilizar o hot-standby(porém um problema seria que se algo desse errado no desenvolvimento seria imediatamente replicado para o server de produção) e fiquei na duvida se o desempenho seria
Re: [pgbr-geral] Tabela Gigante
2010/10/27 Listas lis...@arsweb.net.br: Sou programador em PHP e utiliso o mysql para fazer meus sistemas, bom, estou desenvolvendo um sistema on-line de uma lista telefonica e resolvi usar o postgresql como banco de dados. Porém, estou com dúvidas de como fazer a tabela no banco. A tabela va conter de arrancada 260.000 registros Vai ser um cadastro normal de usuario, como ( Id, nome, endereço, cep, cidade, estado, anuncio, etc ) Gostaria de saber como criar esta tabela, a estrutura, tipo auto_increment, ja que esta tabela vai ser imensa e terá que fazer buscas rápidas. 0) Seu nome é mesmo listas? 1) 260.000 registros é muito pouco 2) Seria bom para sua carreira dar uma estudada na parte teórica de modelagem de dados auto_increment do MySQL: use o tipo serial no PostgreSQL Buscas rápidas: de acordo com suas regras de negócio, modele os dados, e crie índices adequados. Não posso falar mais do que isso visto que a pergunta foi tão vaga. Exemplo: CREATE TABLE lista_telefonica ( id serial not null primary key, nome varchar(256) not null, ... ); CREATE INDEX lista_telefonica_nome_idx ON lista_telefonica (nome); Há uma infinidade de outras coisas que poderiam ser sugeridas dependendo das necessidades do sistema. Roberto ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Auditoria em POstgreSQL -
Opa pessoal. Tenho umas triggers de auditoria no sistema.Mas temos também um módulo de usuarios onde sabemos quem estar logado. Preciso de ajuda pra integrar as triggers ao modulo de usuários.Alguem ja implementou algo assim? Tow com esse problema pra resolver..Urgente.. Emerson Martins emersonmarti...@hotmail.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 em POstgreSQL -
2010/10/28 Emerson Martins emersonmarti...@gmail.com: Opa pessoal. Tenho umas triggers de auditoria no sistema.Mas temos também um módulo de usuarios onde sabemos quem estar logado. Preciso de ajuda pra integrar as triggers ao modulo de usuários.Alguem ja implementou algo assim? Tow com esse problema pra resolver..Urgente.. Muita gente já implementou algo assim. De alguma maneira você precisa passar para os seus gatilhos qual o usuário do seu sistema que está fazendo a modificação. Ou então implementar com uma combinação de callbacks no seu sistema que vão chamar seus gatilhos. Sem saber mais sobre o seu sistema e implementação, é só até aí que posso responder. Roberto ___ 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 em POstgreSQL -
Olá Emerson, tem como detalhar melhor o que você precisa? E, adiantando, quando você fala usuário é usuário do banco (login role) ou usuário da sua aplicação? sds Fábio Gibon - Original Message - From: Emerson Martins To: pgbr-geral@listas.postgresql.org.br Sent: Thursday, October 28, 2010 4:20 PM Subject: [pgbr-geral] Auditoria em POstgreSQL - Opa pessoal. Tenho umas triggers de auditoria no sistema.Mas temos também um módulo de usuarios onde sabemos quem estar logado. Preciso de ajuda pra integrar as triggers ao modulo de usuários.Alguem ja implementou algo assim? Tow com esse problema pra resolver..Urgente.. Emerson Martins emersonmarti...@hotmail.com -- ___ 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] Add Topic: Escolha do método de r eplicação - Urgente
Boa noite pessoal. Desculpem o topico extenso... Esse tópico do colega Thiago é uma excelente deixa, pois tenho que pesquisar e implementar (em 15 dias) um mecanismo de replicação que atenda a seguinte situação: Atualmente possuimos um sistema que integra matriz e filial de forma online, tendo a base de dados centralizada num servidor central que utiliza a internet para conexão das filiais. Isso tem funcionado a contento a bastante tempo, entretanto, um novo cliente esta exigindo algo que lhe garanta a disponibilidade das lojas quando a net não estiver disponivel, e acredito que a replicação seja a solução. A idéia é a seguinte: Continuar tendo um servidor central e manter as lojas conectadas nesse servidor, porem, esse servidor central deve estar replicando seus dados para um servidor que fica em cada loja. Caso a net caia em alguma loja ou na matriz, o servidor que roda na loja deve assumir as operações, e é ai que acho que a coisa complica... Nesse caso, a loja continuaria rodando, atualizando essa base local. Voltando a net, esse servidor deve sincronizar seus dados com o servidor central e voltar a receber as atualizações do servidor central. Essa implementação me resolveria, a curto prazo, 2 problemas (e talvez me crie outros...) : 1) O do cliente com medo da indisponibilidade; 2) A questão da exigencia do PAF-ECF em manter o sistema funcionando independente da rede. Como o prazo que tenho é curto, estamos dispostos a contratar os serviços de uma empresa ou pessoa especializada para nos ajudar nessa tarefa. Caso alguem da lista possa nos ajudar, por favor entre em contato. Grato! Julio M Tofoli SetaDigital Sistemas ___ 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 em POstgreSQL -
Olá Emerson, Nós temos algo assim em nosse ERP (se for o usuário da aplicação). No Oracle você consegue setar um valor para uma variável de Sessão do usuário (na versão 9 do Post, pelo que entendi tem esse recurso tb). Mas resolvemos da seguinte forma. Quando o usuário se loga no sistema incluímos um registro em um tabela chamada sessoes, registrando o código do usuário na aplicação e o pg_backend_pid() da sessão. Assim quando precisamos saber, usamos a View abaixo para recuperar o usuário da sessão atual. Funciona certinho, o porém é que as vezes ficam registros perdidos na tabela, se o sistema não for encerrado corretamente (quando fecha o sistema, o registro é excluído). CREATE OR REPLACE VIEW vw_sessao AS SELECT sessoes.usr_usuario FROM sessoes WHERE sessoes.usr_sessao = pg_backend_pid(); Espero que seja isso que você procure. Att, Celso Lorenzetti www.sysrs.com.br - Original Message - From: Fábio Gibon - Comex System To: Comunidade PostgreSQL Brasileira Sent: Thursday, October 28, 2010 6:47 PM Subject: Re: [pgbr-geral] Auditoria em POstgreSQL - Olá Emerson, tem como detalhar melhor o que você precisa? E, adiantando, quando você fala usuário é usuário do banco (login role) ou usuário da sua aplicação? sds Fábio Gibon - Original Message - From: Emerson Martins To: pgbr-geral@listas.postgresql.org.br Sent: Thursday, October 28, 2010 4:20 PM Subject: [pgbr-geral] Auditoria em POstgreSQL - Opa pessoal. Tenho umas triggers de auditoria no sistema.Mas temos também um módulo de usuarios onde sabemos quem estar logado. Preciso de ajuda pra integrar as triggers ao modulo de usuários.Alguem ja implementou algo assim? Tow com esse problema pra resolver..Urgente.. Emerson Martins emersonmarti...@hotmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Agrupar, transformar linhas em colunas
/* Estrutura apenas para exemplo */ --DROP TABLE IF EXISTS cadastro_teste; CREATE TEMP TABLE cadastro_teste ( cpf VARCHAR(11) , nome VARCHAR(21) , matricula VARCHAR(7) ); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Maria Madalena','72034054401','2010011'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Jonas','12034054408','2010032'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Maria Madalena','72034054401','2010051'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Maria Madalena','72034054401','2010071'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Jonas','12034054408','2010559'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Marcos','42034054403','2010033'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Marcos','42034054403','2010154'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Joao','53034054403','2010004'); SELECT * FROM cadastro_teste ORDER BY cpf; /* cpf|nome |matricula 12034054408|Jonas |2010559 12034054408|Jonas |2010032 42034054403|Marcos|2010154 42034054403|Marcos|2010033 53034054403|Joao |2010004 72034054401|Maria Madalena|2010071 72034054401|Maria Madalena|2010051 72034054401|Maria Madalena|2010011 */ -- Existe a possibilidade de agrupar esses dados da forma abaixo (concatenando a matricula) sem uso de store function? Utilizo PostgreSQL 8.3. -- Se existe, como seria, com window function ? /* cpf|nome |matricula 12034054408|Jonas |2010032;2010559; 42034054403|Marcos|2010033;2010154; 53034054403|Joao |2010004; 72034054401|Maria Madalena|2010011;2010051;2010071; */ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Agrupar, transformar linhas em colunas
2010/10/28 Emerson Hermann emersonherm...@gmail.com: /* Estrutura apenas para exemplo */ --DROP TABLE IF EXISTS cadastro_teste; CREATE TEMP TABLE cadastro_teste ( cpf VARCHAR(11) , nome VARCHAR(21) , matricula VARCHAR(7) ); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Maria Madalena','72034054401','2010011'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Jonas','12034054408','2010032'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Maria Madalena','72034054401','2010051'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Maria Madalena','72034054401','2010071'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Jonas','12034054408','2010559'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Marcos','42034054403','2010033'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Marcos','42034054403','2010154'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Joao','53034054403','2010004'); SELECT * FROM cadastro_teste ORDER BY cpf; /* cpf |nome |matricula 12034054408|Jonas |2010559 12034054408|Jonas |2010032 42034054403|Marcos |2010154 42034054403|Marcos |2010033 53034054403|Joao |2010004 72034054401|Maria Madalena|2010071 72034054401|Maria Madalena|2010051 72034054401|Maria Madalena|2010011 */ -- Existe a possibilidade de agrupar esses dados da forma abaixo (concatenando a matricula) sem uso de store function? Utilizo PostgreSQL 8.3. -- Se existe, como seria, com window function ? /* cpf |nome |matricula 12034054408|Jonas |2010032;2010559; 42034054403|Marcos |2010033;2010154; 53034054403|Joao |2010004; 72034054401|Maria Madalena|2010011;2010051;2010071; */ Utilize a função de agregação array_agg. Veja: http://www.postgresql.org/docs/current/interactive/functions-aggregate.html Veja exemplo do array_accum em: http://www.postgresql.org/docs/current/interactive/xaggr.html Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Agrupar, transformar linhas em colunas
Em 28 de outubro de 2010 20:50, Osvaldo Kussama osvaldo.kuss...@gmail.com escreveu: 2010/10/28 Emerson Hermann emersonherm...@gmail.com: /* Estrutura apenas para exemplo */ --DROP TABLE IF EXISTS cadastro_teste; CREATE TEMP TABLE cadastro_teste ( cpf VARCHAR(11) , nome VARCHAR(21) , matricula VARCHAR(7) ); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Maria Madalena','72034054401','2010011'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Jonas','12034054408','2010032'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Maria Madalena','72034054401','2010051'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Maria Madalena','72034054401','2010071'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Jonas','12034054408','2010559'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Marcos','42034054403','2010033'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Marcos','42034054403','2010154'); INSERT INTO cadastro_teste (nome,cpf,matricula) VALUES ('Joao','53034054403','2010004'); SELECT * FROM cadastro_teste ORDER BY cpf; /* cpf |nome |matricula 12034054408|Jonas |2010559 12034054408|Jonas |2010032 42034054403|Marcos |2010154 42034054403|Marcos |2010033 53034054403|Joao |2010004 72034054401|Maria Madalena|2010071 72034054401|Maria Madalena|2010051 72034054401|Maria Madalena|2010011 */ -- Existe a possibilidade de agrupar esses dados da forma abaixo (concatenando a matricula) sem uso de store function? Utilizo PostgreSQL 8.3. -- Se existe, como seria, com window function ? /* cpf |nome |matricula 12034054408|Jonas |2010032;2010559; 42034054403|Marcos |2010033;2010154; 53034054403|Joao |2010004; 72034054401|Maria Madalena|2010011;2010051;2010071; */ Utilize a função de agregação array_agg. Veja: http://www.postgresql.org/docs/current/interactive/functions-aggregate.html Veja exemplo do array_accum em: http://www.postgresql.org/docs/current/interactive/xaggr.html Osvaldo Dando o serviço completo: SELECT cpf, nome, array_agg(matricula) FROM cadastro_teste GROUP BY cpf, nome; Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Digest pgbr-geral, volume 22, assunto 61
Aos que não entenderam..Desculpas!! Realmente no nosso sistema(web python e django)temos o modulo de usuários do sistema, e quando falei usuário não é o usuario do banco. Então.Justamente é isso que eu não sei implementar a questão de pegar o usuario da sessão e jogar no parametro da trigger.Na realidade nao faço ideia de como implementar.. Obrigado a todos.Celso vou testar no PostgreSQL 9 posstarei o resultado. Agradeço. Em 28 de outubro de 2010 19:21, pgbr-geral-requ...@listas.postgresql.org.br escreveu: Send pgbr-geral mailing list submissions to pgbr-geral@listas.postgresql.org.br To subscribe or unsubscribe via the World Wide Web, visit https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral or, via email, send a message with subject or body 'help' to pgbr-geral-requ...@listas.postgresql.org.br You can reach the person managing the list at pgbr-geral-ow...@listas.postgresql.org.br When replying, please edit your Subject line so it is more specific than Re: Contents of pgbr-geral digest... Tópicos de Hoje: 1. Re: Tabela Gigante (Roberto Mello) 2. Auditoria em POstgreSQL - (Emerson Martins) 3. Re: Auditoria em POstgreSQL - (Roberto Mello) 4. Re: Auditoria em POstgreSQL - (Fábio Gibon - Comex System) 5. Add Topic: Escolha do método de replicação - Urgente (jmtofoli) 6. Re: Auditoria em POstgreSQL - (Celso) -- Message: 1 Date: Thu, 28 Oct 2010 14:37:52 -0400 From: Roberto Mello roberto.me...@gmail.com Subject: Re: [pgbr-geral] Tabela Gigante To: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br Message-ID: aanlktinykfxbnbs8pleocxj8jks+=u=mvrcayblvk...@mail.gmail.com Content-Type: text/plain; charset=UTF-8 2010/10/27 Listas lis...@arsweb.net.br: Sou programador em PHP e utiliso o mysql para fazer meus sistemas, bom, estou desenvolvendo um sistema on-line de uma lista telefonica e resolvi usar o postgresql como banco de dados. Porém, estou com dúvidas de como fazer a tabela no banco. A tabela va conter de arrancada 260.000 registros Vai ser um cadastro normal de usuario, como ( Id, nome, endereço, cep, cidade, estado, anuncio, etc ) Gostaria de saber como criar esta tabela, a estrutura, tipo auto_increment, ja que esta tabela vai ser imensa e terá que fazer buscas rápidas. 0) Seu nome é mesmo listas? 1) 260.000 registros é muito pouco 2) Seria bom para sua carreira dar uma estudada na parte teórica de modelagem de dados auto_increment do MySQL: use o tipo serial no PostgreSQL Buscas rápidas: de acordo com suas regras de negócio, modele os dados, e crie índices adequados. Não posso falar mais do que isso visto que a pergunta foi tão vaga. Exemplo: CREATE TABLE lista_telefonica ( id serial not null primary key, nome varchar(256) not null, ... ); CREATE INDEX lista_telefonica_nome_idx ON lista_telefonica (nome); Há uma infinidade de outras coisas que poderiam ser sugeridas dependendo das necessidades do sistema. Roberto -- Message: 2 Date: Thu, 28 Oct 2010 17:20:29 -0200 From: Emerson Martins emersonmarti...@gmail.com Subject: [pgbr-geral] Auditoria em POstgreSQL - To: pgbr-geral@listas.postgresql.org.br Message-ID: aanlktin8gljcwsxckgqxzs8hs-vhiwbam-6a1mqen...@mail.gmail.com Content-Type: text/plain; charset=iso-8859-1 Opa pessoal. Tenho umas triggers de auditoria no sistema.Mas temos também um módulo de usuarios onde sabemos quem estar logado. Preciso de ajuda pra integrar as triggers ao modulo de usuários.Alguem ja implementou algo assim? Tow com esse problema pra resolver..Urgente.. Emerson Martins emersonmarti...@hotmail.com -- Próxima Parte -- Um anexo em HTML foi limpo... URL: http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20101028/d76f1e9a/attachment-0001.htm -- Message: 3 Date: Thu, 28 Oct 2010 15:42:37 -0400 From: Roberto Mello roberto.me...@gmail.com Subject: Re: [pgbr-geral] Auditoria em POstgreSQL - To: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br Message-ID: aanlktimtpe+t5cd=v0ctxe1v9m06wn9oqqps6h3uo...@mail.gmail.com Content-Type: text/plain; charset=UTF-8 2010/10/28 Emerson Martins emersonmarti...@gmail.com: Opa pessoal. Tenho umas triggers de auditoria no sistema.Mas temos também um módulo de usuarios onde sabemos quem estar logado. Preciso de ajuda pra integrar as triggers ao modulo de usuários.Alguem ja implementou algo assim? Tow com esse problema pra resolver..Urgente.. Muita gente já implementou algo assim. De alguma maneira você precisa passar para os seus gatilhos qual o usuário do seu sistema que está fazendo a modificação. Ou então implementar com uma combinação de callbacks no seu sistema que vão chamar seus gatilhos. Sem saber
Re: [pgbr-geral] Res: Res: Res: Escolha do mét odo de replicação
Thiago, boa noite! Talvez uma ferramenta de ETL te seja mais apropriado do que uma ferramenta de replicação. Existem algumas boas ferramentas de ETL disponíveis, e uma que gosto muito é o Kettle[1]. Com ele você consegue fazer extrações agendadas, como você deseja. Dá uma olhada, talvez te resolva o problema. [1] http://kettle.pentaho.com/ Att, -- Charly Batista Administrador de Banco de Dados http://javadevilopers.blogspot.com/ charlyfra...@gmail.com Linux user #391083 Se você tem uma maçã e eu tenho uma maçã e nós trocamos essas maçãs, então eu e você ainda teremos uma maçã cada. Mas se você tiver uma idéia e eu tiver uma idéia e nós trocamos idéias, então cada um de nós terá duas idéias. George Bernard Shaw (1856-1950) Em 28 de outubro de 2010 16:15, Thiago Godoi thiagogodo...@gmail.comescreveu: Obrigado galera , vou pesquisar mais sobre o Slony então, porém ele possui essa opção de replicação agendada dos dados? Por exemplo eu conseguiria definir para ele replicar os dados gerados durante o dia , somente durante a noite? Em 28 de outubro de 2010 16:11, Renato Ricci renatoricc...@yahoo.com.brescreveu: Realmente, concordo com o JotaComm. Provavelmente o Slony seja ideal para sua situação. Com ele você pode escolher quais objetos deseja replicar para o banco slave... T+ __ *Renato R. Ricci* *Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos!*** -- *De:* JotaComm jota.c...@gmail.com *Para:* Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br *Enviadas:* Quinta-feira, 28 de Outubro de 2010 15:54:44 *Assunto:* Re: [pgbr-geral] Res: Res: Escolha do método de replicação Olá, Em 28 de outubro de 2010 15:32, Thiago Godoi thiagogodo...@gmail.comescreveu: É realmente já percebi que o hot-standby não é o ideal para a situação. Vou tentar especificar melhor o que desejamos fazer. Tenho um banco de Desenvolvimento onde eu tenho várias bases em que eu estou inserindo novas informações o tempo inteiro.Na máquina de produção a ideia é possuir algumas das bases do banco de Desenvolvimento , somente para consultas de clientes. Hum.. Que tal dar uma olhada no Slony [1] Meu problema seria como levar os dados do meu banco de Desenvolvimento para o banco de Produção (lembrando que seria somente uma parte do cluster), a ideia seria fazer essa atualização todo dia durante a madrugada, é possível algo incremental? [1] http://www.slony.info/ Em 28 de outubro de 2010 14:43, Renato Ricci renatoricc...@yahoo.com.br escreveu: Thiago, deixa eu ver se entendi.. você tem um ambiente de desenvolvimento onde você faz alterações físicas e lógicas no banco de dados. O que você quer fazer é aplicar essas alterações em um banco de produção? O que você vai querer aplicar no banco de produção? Somente o DDL? Ou as informações geradas em desenvolvimento tb? Se você usar um hot-standby, você poderá replicar DDL e informações (cópia fiel do banco) para produção. Não sei como isso impactaria no seu ambiente ai, pois você estará aplicando as alterações no banco de produção mas a aplicação (.exe ou alguma aplicação web) ainda ficará antiga. Se for alterações somente em Functions, triggers, views, ai de boa.. Geralmente as empresas costumam usar um banco hot-standby mais para contingência, ou seja, caso der algum problema no banco de produção, esse banco hot-standby assumiria a brinca. Geralmente tem-se os seguintes ambientes: Desenvolvimento Produção (Processo feito manualmente através de aplicação de scripts com alterações necessárias) Produção (transacional) hot-standby (automático) T+ __ *Renato R. Ricci* *Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos!*** -- *De:* Thiago Godoi thiagogodo...@gmail.com *Para:* Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br *Enviadas:* Quinta-feira, 28 de Outubro de 2010 14:25:49 *Assunto:* Re: [pgbr-geral] Res: Escolha do método de replicação Hum creio que usei a palavra errada então, não seria uma replicação. Seria migrar as atualizações para o banco de produção. Porém um detalhe que não havia citado antes, o banco de produção será usado somente para consultas. Em 28 de outubro de 2010 13:40, Renato Ricci renatoricc...@yahoo.com.br escreveu: Thiago, creio que o hot-standby não irá funcionar da maneira que você deseja, pois um banco neste estado não aceita transações pois ele roda somente em read-only. A não ser que você queira usar apenas para consulta. Att., __ *Renato R. Ricci* *Antes de imprimir, pense em sua responsabilidade e compromisso com o Meio Ambiente. O Futuro está em Nossas Mãos!*** -- *De:* Thiago Godoi