Re: [pgbr-geral] Execução de backup lógico (pg_dump) consumindo muitas horas na execução
Em 21 de junho de 2013 15:33, Charles Viana charles.vi...@gmail.comescreveu: Voce nao diz o tipo de disco que? Se esta em raid , qual ? Quantos discos sua maquina possui ? Charles, os dados são armazenados em storage. Seguramente, equipamentos muito bons, com robusta configuração. E se a solução tiver que passar por aí, fica meio na casa do sem jeito, pois não tem como alterar isso. De qualquer forma, obrigado. LC ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Como descobrir o nome do ínidice/constraint que causou erro?
Estou colocando COMMENTS nas constraints com mensagens de erro mais claras. Quero poder converter isto: ERROR: new row for relation produto violates check constraint chk_produto_precomin Nisto: O preço de tabela do produto não pode estar abaixo do preço mínimo. Gostaria de uma maneira de descobrir o SQLSTATE e o ID da constraint que deu erro. Em último caso vou procurar tudo que está entre aspas no catálogo. -- Atenciosamente, Alexsander da Rosa ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Como descobrir o nome do ínidice/constraint que causou erro?
Em 24 de junho de 2013 10:39, Alexsander Rosa alexsander.r...@gmail.comescreveu: Estou colocando COMMENTS nas constraints com mensagens de erro mais claras. Quero poder converter isto: ERROR: new row for relation produto violates check constraint chk_produto_precomin Nisto: O preço de tabela do produto não pode estar abaixo do preço mínimo. Você pode tratar isso na sua aplicação através de tratamento de excessões. Gostaria de uma maneira de descobrir o SQLSTATE e o ID da constraint que deu erro. Em último caso vou procurar tudo que está entre aspas no catálogo. -- Atenciosamente, Alexsander da Rosa ___ 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] Como descobrir o nome do ínidice/constraint que causou erro?
Estou colocando COMMENTS nas constraints com mensagens de erro mais claras. Quero poder converter isto: ERROR: new row for relation produto violates check constraint chk_produto_precomin Nisto: O preço de tabela do produto não pode estar abaixo do preço mínimo. Você pode tratar isso na sua aplicação através de tratamento de excessões. Gostaria de uma maneira de descobrir o SQLSTATE e o ID da constraint que deu erro. Em último caso vou procurar tudo que está entre aspas no catálogo. Além da dica do Juliano você pode fazer um gatilho (trigger) do tipo before e que lança um raise exception caso dê o erro. []s __ Flavio Henrique A. Gurgel Líder de Projetos Especiais Consultoria, Projetos Treinamentos 4LINUX Tel1: +55-11.2125-4747 ou 2125-4748 www.4linux.com.br email: fla...@4linux.com.br __ FREE SOFTWARE SOLUTIONS ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Como descobrir o nome do ínidice/constraint que causou erro?
Estou colocando COMMENTS nas constraints com mensagens de erro mais claras. Quero poder converter isto: ERROR: new row for relation produto violates check constraint chk_produto_precomin Nisto: O preço de tabela do produto não pode estar abaixo do preço mínimo. Você sabe o nome da constraint, basta pegar no catálogo o comentário da mesma. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Como descobrir o nome do ínidice/constraint que causou erro?
Em 24 de junho de 2013 11:09, Flavio Henrique Araque Gurgel fla...@4linux.com.br escreveu: Estou colocando COMMENTS nas constraints com mensagens de erro mais claras. Quero poder converter isto: ERROR: new row for relation produto violates check constraint chk_produto_precomin Nisto: O preço de tabela do produto não pode estar abaixo do preço mínimo. Você pode tratar isso na sua aplicação através de tratamento de excessões. Além da dica do Juliano você pode fazer um gatilho (trigger) do tipo before e que lança um raise exception caso dê o erro. Agradeço as sugestões, mas quero fazer algo no banco pra poder ser usado por todas as aplicações. E acho que colocar um trigger em cada tabela só pra isso me parece exagerado (e trabalhoso). -- Atenciosamente, Alexsander da Rosa ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Como descobrir o nome do ínidice/constraint que causou erro?
Em 24 de junho de 2013 11:09, Vinicius Santos vinicius.santos.li...@gmail.com escreveu: Estou colocando COMMENTS nas constraints com mensagens de erro mais claras. Quero poder converter isto: ERROR: new row for relation produto violates check constraint chk_produto_precomin Nisto: O preço de tabela do produto não pode estar abaixo do preço mínimo. Você sabe o nome da constraint, basta pegar no catálogo o comentário da mesma. Por você sabe o nome da constraint você quer dizer: você pode extrair o nome da constraint por regex? Neste caso eu preciso ainda descobrir se a string entre aspas é uma constraint, um índice, uma tabela, etc. -- Atenciosamente, Alexsander da Rosa ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Como descobrir o nome do ínidice/constraint que causou erro?
Em 24 de junho de 2013 12:00, Alexsander Rosa alexsander.r...@gmail.comescreveu: Em 24 de junho de 2013 11:09, Flavio Henrique Araque Gurgel fla...@4linux.com.br escreveu: Estou colocando COMMENTS nas constraints com mensagens de erro mais claras. Quero poder converter isto: ERROR: new row for relation produto violates check constraint chk_produto_precomin Nisto: O preço de tabela do produto não pode estar abaixo do preço mínimo. Você pode tratar isso na sua aplicação através de tratamento de excessões. Além da dica do Juliano você pode fazer um gatilho (trigger) do tipo before e que lança um raise exception caso dê o erro. Agradeço as sugestões, mas quero fazer algo no banco pra poder ser usado por todas as aplicações. E acho que colocar um trigger em cada tabela só pra isso me parece exagerado (e trabalhoso). De qualquer forma são suas aplicações que lidam com o banco e quanto menos o servidor de banco de dados for onerado com processamento que poderia ser feito fora dele melhor. Não sei que linguagem vc usa, mas se for Python, por exemplo vc trataria com esta exceção: psycopg2.IntegrityError -- Atenciosamente, Alexsander da Rosa ___ 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] Como descobrir o nome do ínidice/constraint que causou erro?
2013/6/24 Alexsander Rosa alexsander.r...@gmail.com Estou colocando COMMENTS nas constraints com mensagens de erro mais claras. Quero poder converter isto: ERROR: new row for relation produto violates check constraint chk_produto_precomin Nisto: O preço de tabela do produto não pode estar abaixo do preço mínimo. Gostaria de uma maneira de descobrir o SQLSTATE e o ID da constraint que deu erro. Em último caso vou procurar tudo que está entre aspas no catálogo. Infelizmente, até o PostgreSQL 9.3 não há um jeito realmente elegante de se fazer isso. Se você puder esperar um pouco, na versão 9.3 (hoje em beta) é possível coletar quais foram exatamente os objetos que geraram uma exceção [1]. Claro que essa funcionalidade também vai depender do driver da sua linguagem (que você não informou). Se desconsiderarmos essa funcionalidade, creio que a melhor forma seja aliar o código da exceção [2] com o a mensagem de erro. Nesse caso, use sempre mensagens numa determinada língua (preferencialmente inglês, para evitar problemas) e faça um parser (regex) da mensagem de erro. Pegar só o que está entre strings me parece uma boa ideia, considerando que não use nomes fora do comum nos seus objetos não vejo problemas. [1] http://www.depesz.com/2013/03/07/waiting-for-9-3-provide-database-object-names-as-separate-fields-in-error-messages/ [2] http://www.postgresql.org/docs/current/static/errcodes-appendix.html Atenciosamente, -- 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
Re: [pgbr-geral] Como descobrir o nome do ínidice/constraint que causou erro?
2013/6/24 Alexsander Rosa alexsander.r...@gmail.com Estou colocando COMMENTS nas constraints com mensagens de erro mais claras. Quero poder converter isto: ERROR: new row for relation produto violates check constraint chk_produto_precomin Nisto: O preço de tabela do produto não pode estar abaixo do preço mínimo. Gostaria de uma maneira de descobrir o SQLSTATE e o ID da constraint que deu erro. Em último caso vou procurar tudo que está entre aspas no catálogo. Seria isto?? CREATE table foo(id int primary key); CREATE TABLE bar(id int references foo(id)); COMMENT ON CONSTRAINT bar_id_fkey ON TABLE bar IS 'Falha na chave estrangeira'; DO $$ BEGIN INSERT INTO bar VALUES(2); EXCEPTION WHEN integrity_constraint_violation THEN RAISE NOTICE '%', obj_description(49354); -- Claro que num trigger vc poderia colocar TG_RELNAME e TG_RELID nos parametros -- desta função END $$; Abraço! -Leo -- Leonardo Cezar http://www.postgreslogia http://postgreslogia.wordpress.com.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Clonar base de dados
Boa tarde! Pessoal, como faço para clonar uma base de dados no postgres 9.2? Eu quero clonar a base de produção para criar uma base de testes. Att. -- Giovani Rodrigues ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Clonar base de dados
2013/6/24 Giovani Rodrigues giovani...@gmail.com Boa tarde! Pessoal, como faço para clonar uma base de dados no postgres 9.2? Se não tiver usuários conectados você pode usar a base como template, exemplo: CREATE DATABASE dbclone TEMPLATE dboriginal; Se não, você pode usar o pg_dump: $ createdb dbclone $ pg_dump dboriginal | psql dbclone Eu quero clonar a base de produção para criar uma base de testes. Não use no mesmo servidor, nesse caso teria que usar mesmo o pg_dump: $ createdb nome_banco $ pg_dump -h host produção nome_banco | psql nome_banco Em ambos os casos lembre-se dos usuários e donos (owner) da base. Atenciosamente, -- 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] Warning quando da criação de um cluster
Senhores(as), Ao criar um cluster com o comando abaixo: pg_createcluster -e Latin1 -u dbasocic -d /u1/jap/base 9.2 socic Recebi o seguinte warning: Creating new cluster 9.2/socic ... config /etc/postgresql/9.2/socic data /u1/jap/base locale pt_BR Warning: The socket directory for owners other than 'postgres' defaults to /tmp. You might want to change the unix_socket_directory parameter in postgresql.conf to a more secure directory. port 5432 O cluster foi criado. Aparentemente está tudo ok. Alguem poderia esclarecer o warning? Antecipadamente agradeço a ajuda. Att PRoberto ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] RES: Como descobrir o nome do ínidice/constraint que causou erro?
2013/6/24 Alexsander Rosa alexsander.r...@gmail.com mailto:alexsander.r...@gmail.com Estou colocando COMMENTS nas constraints com mensagens de erro mais claras. Quero poder converter isto: ERROR: new row for relation produto violates check constraint chk_produto_precomin Nisto: O preço de tabela do produto não pode estar abaixo do preço mínimo. Gostaria de uma maneira de descobrir o SQLSTATE e o ID da constraint que deu erro. Em último caso vou procurar tudo que está entre aspas no catálogo. Infelizmente, até o PostgreSQL 9.3 não há um jeito realmente elegante de se fazer isso. Se você puder esperar um pouco, na versão 9.3 (hoje em beta) é possível coletar quais foram exatamente os objetos que geraram uma exceção [1]. Claro que essa funcionalidade também vai depender do driver da sua linguagem (que você não informou). Se desconsiderarmos essa funcionalidade, creio que a melhor forma seja aliar o código da exceção [2] com o a mensagem de erro. Nesse caso, use sempre mensagens numa determinada língua (preferencialmente inglês, para evitar problemas) e faça um parser (regex) da mensagem de erro. Pegar só o que está entre strings me parece uma boa ideia, considerando que não use nomes fora do comum nos seus objetos não vejo problemas. [1] http://www.depesz.com/2013/03/07/waiting-for-9-3-provide-database-object-nam es-as-separate-fields-in-error-messages/ [2] http://www.postgresql.org/docs/current/static/errcodes-appendix.html Atenciosamente, -- Matheus de Oliveira Outra opção que pode ser feita em nível de aplicação é colocar alguma trigger no before insert/update que valide os eventos e na função vc faz um exception. Exemplo: IF NEW. precomin = 0 THEN raise exception %, O preço de tabela do produto não pode estar igual a 0; END IF; Com isso, será disparado uma exceção na sua aplicação, vc pega, trata a exceção e coleta apenas a mensagem da mesma. Cuidado, pois uma trigger desse tipo não substitui uma chave primaria e/ou estrangeira. Detalhe. Um raise exception gera um rollback de sua transação e isso as vezes não é conveniente. Atenciosamente Rieg. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Clonar base de dados
Obrigado Matheus! Consegui clonar a base de dados utilizando o primeiro método que vc passou. Como hj só tem eu aqui, eu matei todas as sessões ativas e clonei! Att. Giovani Em 24 de junho de 2013 15:42, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2013/6/24 Giovani Rodrigues giovani...@gmail.com Boa tarde! Pessoal, como faço para clonar uma base de dados no postgres 9.2? Se não tiver usuários conectados você pode usar a base como template, exemplo: CREATE DATABASE dbclone TEMPLATE dboriginal; Se não, você pode usar o pg_dump: $ createdb dbclone $ pg_dump dboriginal | psql dbclone Eu quero clonar a base de produção para criar uma base de testes. Não use no mesmo servidor, nesse caso teria que usar mesmo o pg_dump: $ createdb nome_banco $ pg_dump -h host produção nome_banco | psql nome_banco Em ambos os casos lembre-se dos usuários e donos (owner) da base. Atenciosamente, -- 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 -- Giovani Rodrigues ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Warning quando da criação de um cluster
On Mon, Jun 24, 2013 at 4:06 PM, Paulo Bastos prbalme...@bol.com.br wrote: Senhores(as), Ao criar um cluster com o comando abaixo: pg_createcluster -e Latin1 -u dbasocic -d /u1/jap/base 9.2 socic Recebi o seguinte warning: Creating new cluster 9.2/socic ... config /etc/postgresql/9.2/socic data /u1/jap/base locale pt_BR Warning: The socket directory for owners other than 'postgres' defaults to /tmp. You might want to change the unix_socket_directory parameter in postgresql.conf to a more secure directory. port 5432 O cluster foi criado. Aparentemente está tudo ok. Alguem poderia esclarecer o warning? Você alterou o dono do cluster para um usuário que não era postgres, isso significa que o usuário dbasocic do SO é que vai rodar esse cluster. Entretanto, o diretório padrão do PostgreSQL para Unix Domain Socket [1] no pacote Debian é /var/run/postgresql, cujo o dono é o usuário postgres (do SO). No seu caso ele está usando /tmp/, pois o usuário dbasocic não terá permissão de escrita em /var/run/postgresql/. A dúvida é: por que você não está usando o usuário postgres? [1] https://www.google.com/search?q=unix+domain+socket Atenciosamente, -- 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
Re: [pgbr-geral] Clonar base de dados
2013/6/24 Giovani Rodrigues giovani...@gmail.com Obrigado Matheus! Consegui clonar a base de dados utilizando o primeiro método que vc passou. Como hj só tem eu aqui, eu matei todas as sessões ativas e clonei! Ok. Só tome cuidado com o que eu falei antes (e ficou embaixo por causa do top-posting)... Em 24 de junho de 2013 15:42, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2013/6/24 Giovani Rodrigues giovani...@gmail.com Boa tarde! Pessoal, como faço para clonar uma base de dados no postgres 9.2? Se não tiver usuários conectados você pode usar a base como template, exemplo: CREATE DATABASE dbclone TEMPLATE dboriginal; Se não, você pode usar o pg_dump: $ createdb dbclone $ pg_dump dboriginal | psql dbclone Eu quero clonar a base de produção para criar uma base de testes. Não use no mesmo servidor, nesse caso teria que usar mesmo o pg_dump: $ createdb nome_banco $ pg_dump -h host produção nome_banco | psql nome_banco Em ambos os casos lembre-se dos usuários e donos (owner) da base. Atenciosamente, -- 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
Re: [pgbr-geral] Clonar base de dados
no caso enquanto tiver no dump ( uma base muito grande ) o banco continua seu fuincionamento normal? leitura, escrita ... ? Em 24 de junho de 2013 16:21, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2013/6/24 Giovani Rodrigues giovani...@gmail.com Obrigado Matheus! Consegui clonar a base de dados utilizando o primeiro método que vc passou. Como hj só tem eu aqui, eu matei todas as sessões ativas e clonei! Ok. Só tome cuidado com o que eu falei antes (e ficou embaixo por causa do top-posting)... Em 24 de junho de 2013 15:42, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2013/6/24 Giovani Rodrigues giovani...@gmail.com Boa tarde! Pessoal, como faço para clonar uma base de dados no postgres 9.2? Se não tiver usuários conectados você pode usar a base como template, exemplo: CREATE DATABASE dbclone TEMPLATE dboriginal; Se não, você pode usar o pg_dump: $ createdb dbclone $ pg_dump dboriginal | psql dbclone Eu quero clonar a base de produção para criar uma base de testes. Não use no mesmo servidor, nesse caso teria que usar mesmo o pg_dump: $ createdb nome_banco $ pg_dump -h host produção nome_banco | psql nome_banco Em ambos os casos lembre-se dos usuários e donos (owner) da base. Atenciosamente, -- 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 -- Rebert Tomaz ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Clonar base de dados
Matheus, Por favor me esclareça melhor a parte de servidores. Eu realmente não compreendi. Você quis dizer servidor físico, para não usar na mesma máquina? ou tem algum jeito de criar servidores lógicos dentro de uma mesma máquina? Algo como uma virtual machine, seria isso? Att. Giovani Em 24 de junho de 2013 16:21, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2013/6/24 Giovani Rodrigues giovani...@gmail.com Obrigado Matheus! Consegui clonar a base de dados utilizando o primeiro método que vc passou. Como hj só tem eu aqui, eu matei todas as sessões ativas e clonei! Ok. Só tome cuidado com o que eu falei antes (e ficou embaixo por causa do top-posting)... Em 24 de junho de 2013 15:42, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2013/6/24 Giovani Rodrigues giovani...@gmail.com Boa tarde! Pessoal, como faço para clonar uma base de dados no postgres 9.2? Se não tiver usuários conectados você pode usar a base como template, exemplo: CREATE DATABASE dbclone TEMPLATE dboriginal; Se não, você pode usar o pg_dump: $ createdb dbclone $ pg_dump dboriginal | psql dbclone Eu quero clonar a base de produção para criar uma base de testes. Não use no mesmo servidor, nesse caso teria que usar mesmo o pg_dump: $ createdb nome_banco $ pg_dump -h host produção nome_banco | psql nome_banco Em ambos os casos lembre-se dos usuários e donos (owner) da base. Atenciosamente, -- 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 -- Giovani Rodrigues ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Clonar base de dados
nem falando mal do top-posting... é, não tem jeito mesmo... 2013/6/24 Rebert Tomaz Aquino rebertto...@gmail.com no caso enquanto tiver no dump ( uma base muito grande ) o banco continua seu fuincionamento normal? leitura, escrita ... ? Sim, como um dump normal. Claro que a atividade do mesmo pode degradar um pouco a performance global, principalmente se restaurar no mesmo servidor/disco/etc. Em 24 de junho de 2013 16:21, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2013/6/24 Giovani Rodrigues giovani...@gmail.com Obrigado Matheus! Consegui clonar a base de dados utilizando o primeiro método que vc passou. Como hj só tem eu aqui, eu matei todas as sessões ativas e clonei! Ok. Só tome cuidado com o que eu falei antes (e ficou embaixo por causa do top-posting)... Em 24 de junho de 2013 15:42, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2013/6/24 Giovani Rodrigues giovani...@gmail.com Boa tarde! Pessoal, como faço para clonar uma base de dados no postgres 9.2? Se não tiver usuários conectados você pode usar a base como template, exemplo: CREATE DATABASE dbclone TEMPLATE dboriginal; Se não, você pode usar o pg_dump: $ createdb dbclone $ pg_dump dboriginal | psql dbclone Eu quero clonar a base de produção para criar uma base de testes. Não use no mesmo servidor, nesse caso teria que usar mesmo o pg_dump: $ createdb nome_banco $ pg_dump -h host produção nome_banco | psql nome_banco Em ambos os casos lembre-se dos usuários e donos (owner) da base. Atenciosamente, -- 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 -- Rebert Tomaz ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- 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
Re: [pgbr-geral] Clonar base de dados
Oi, você poderia usar também p phppgadmin pelo navegador e executar um export em txt, criar o banco novo e executar este script gerado. Seja Livre! Use OpenSource! LineOn, Tecnologia da Informação! http://lineonti.wordpress.com Em 24 de junho de 2013 16:30, Matheus de Oliveira matioli.math...@gmail.com escreveu: nem falando mal do top-posting... é, não tem jeito mesmo... 2013/6/24 Rebert Tomaz Aquino rebertto...@gmail.com no caso enquanto tiver no dump ( uma base muito grande ) o banco continua seu fuincionamento normal? leitura, escrita ... ? Sim, como um dump normal. Claro que a atividade do mesmo pode degradar um pouco a performance global, principalmente se restaurar no mesmo servidor/disco/etc. Em 24 de junho de 2013 16:21, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2013/6/24 Giovani Rodrigues giovani...@gmail.com Obrigado Matheus! Consegui clonar a base de dados utilizando o primeiro método que vc passou. Como hj só tem eu aqui, eu matei todas as sessões ativas e clonei! Ok. Só tome cuidado com o que eu falei antes (e ficou embaixo por causa do top-posting)... Em 24 de junho de 2013 15:42, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2013/6/24 Giovani Rodrigues giovani...@gmail.com Boa tarde! Pessoal, como faço para clonar uma base de dados no postgres 9.2? Se não tiver usuários conectados você pode usar a base como template, exemplo: CREATE DATABASE dbclone TEMPLATE dboriginal; Se não, você pode usar o pg_dump: $ createdb dbclone $ pg_dump dboriginal | psql dbclone Eu quero clonar a base de produção para criar uma base de testes. Não use no mesmo servidor, nesse caso teria que usar mesmo o pg_dump: $ createdb nome_banco $ pg_dump -h host produção nome_banco | psql nome_banco Em ambos os casos lembre-se dos usuários e donos (owner) da base. Atenciosamente, -- 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 -- Rebert Tomaz ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- 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
Re: [pgbr-geral] Clonar base de dados
Cícero, Muito interessante! Vou testar isso quando chegar em casa! Att. Giovani Em 24 de junho de 2013 16:49, Cicero Neto cicero@gmail.com escreveu: Oi, você poderia usar também p phppgadmin pelo navegador e executar um export em txt, criar o banco novo e executar este script gerado. Seja Livre! Use OpenSource! LineOn, Tecnologia da Informação! http://lineonti.wordpress.com Em 24 de junho de 2013 16:30, Matheus de Oliveira matioli.math...@gmail.com escreveu: nem falando mal do top-posting... é, não tem jeito mesmo... 2013/6/24 Rebert Tomaz Aquino rebertto...@gmail.com no caso enquanto tiver no dump ( uma base muito grande ) o banco continua seu fuincionamento normal? leitura, escrita ... ? Sim, como um dump normal. Claro que a atividade do mesmo pode degradar um pouco a performance global, principalmente se restaurar no mesmo servidor/disco/etc. Em 24 de junho de 2013 16:21, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2013/6/24 Giovani Rodrigues giovani...@gmail.com Obrigado Matheus! Consegui clonar a base de dados utilizando o primeiro método que vc passou. Como hj só tem eu aqui, eu matei todas as sessões ativas e clonei! Ok. Só tome cuidado com o que eu falei antes (e ficou embaixo por causa do top-posting)... Em 24 de junho de 2013 15:42, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2013/6/24 Giovani Rodrigues giovani...@gmail.com Boa tarde! Pessoal, como faço para clonar uma base de dados no postgres 9.2? Se não tiver usuários conectados você pode usar a base como template, exemplo: CREATE DATABASE dbclone TEMPLATE dboriginal; Se não, você pode usar o pg_dump: $ createdb dbclone $ pg_dump dboriginal | psql dbclone Eu quero clonar a base de produção para criar uma base de testes. Não use no mesmo servidor, nesse caso teria que usar mesmo o pg_dump: $ createdb nome_banco $ pg_dump -h host produção nome_banco | psql nome_banco Em ambos os casos lembre-se dos usuários e donos (owner) da base. Atenciosamente, -- 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 -- Rebert Tomaz ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- 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 -- Giovani Rodrigues ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Execução de backup lógico (pg_dump) consumindo muitas horas na execução
Charles, os dados são armazenados em storage. Seguramente, equipamentos muito bons, com robusta configuração. E se a solução tiver que passar por aí, fica meio na casa do sem jeito, pois não tem como alterar isso. De qualquer forma, obrigado. Quantas operações por segundo seu storage suporta (IOPS) ? Esse storage é compartilhado ? Quantas LUNS você disponibilizou para o SO/BD ? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Warning quando da criação de um cluster
Este aviso é de segurança, apenas informa que durante o processo, tudo ocorrerá no diretório tmp que não é seguro e o postgres sugere que você pode mudar a pasta para um dirtório mais seguro, nada mais. Seja Livre! Use OpenSource! LineOn, Tecnologia da Informação! http://lineonti.wordpress.com Em 24 de junho de 2013 16:19, Matheus de Oliveira matioli.math...@gmail.com escreveu: On Mon, Jun 24, 2013 at 4:06 PM, Paulo Bastos prbalme...@bol.com.brwrote: Senhores(as), Ao criar um cluster com o comando abaixo: pg_createcluster -e Latin1 -u dbasocic -d /u1/jap/base 9.2 socic Recebi o seguinte warning: Creating new cluster 9.2/socic ... config /etc/postgresql/9.2/socic data /u1/jap/base locale pt_BR Warning: The socket directory for owners other than 'postgres' defaults to /tmp. You might want to change the unix_socket_directory parameter in postgresql.conf to a more secure directory. port 5432 O cluster foi criado. Aparentemente está tudo ok. Alguem poderia esclarecer o warning? Você alterou o dono do cluster para um usuário que não era postgres, isso significa que o usuário dbasocic do SO é que vai rodar esse cluster. Entretanto, o diretório padrão do PostgreSQL para Unix Domain Socket [1] no pacote Debian é /var/run/postgresql, cujo o dono é o usuário postgres (do SO). No seu caso ele está usando /tmp/, pois o usuário dbasocic não terá permissão de escrita em /var/run/postgresql/. A dúvida é: por que você não está usando o usuário postgres? [1] https://www.google.com/search?q=unix+domain+socket Atenciosamente, -- 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
Re: [pgbr-geral] Warning quando da criação de um cluster
2013/6/24 Cicero Neto cicero@gmail.com Este aviso é de segurança, apenas informa que durante o processo, tudo ocorrerá no diretório tmp que não é seguro e o postgres sugere que você pode mudar a pasta para um dirtório mais seguro, nada mais. tudo ?? Em 24 de junho de 2013 16:19, Matheus de Oliveira matioli.math...@gmail.com escreveu: On Mon, Jun 24, 2013 at 4:06 PM, Paulo Bastos prbalme...@bol.com.brwrote: Senhores(as), Ao criar um cluster com o comando abaixo: pg_createcluster -e Latin1 -u dbasocic -d /u1/jap/base 9.2 socic Recebi o seguinte warning: Creating new cluster 9.2/socic ... config /etc/postgresql/9.2/socic data /u1/jap/base locale pt_BR Warning: The socket directory for owners other than 'postgres' defaults to /tmp. You might want to change the unix_socket_directory parameter in postgresql.conf to a more secure directory. port 5432 O cluster foi criado. Aparentemente está tudo ok. Alguem poderia esclarecer o warning? Você alterou o dono do cluster para um usuário que não era postgres, isso significa que o usuário dbasocic do SO é que vai rodar esse cluster. Entretanto, o diretório padrão do PostgreSQL para Unix Domain Socket [1] no pacote Debian é /var/run/postgresql, cujo o dono é o usuário postgres (do SO). No seu caso ele está usando /tmp/, pois o usuário dbasocic não terá permissão de escrita em /var/run/postgresql/. A dúvida é: por que você não está usando o usuário postgres? [1] https://www.google.com/search?q=unix+domain+socket Atenciosamente, -- 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 -- 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
Re: [pgbr-geral] Consulta linha x coluna
Prezado Matheus, muito obrigado pela resposta. Vou implementar a sua solução durante essa semana. Abraço, Rômulo. Em 23 de junho de 2013 14:59, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2013/6/20 Romulo Souza romulocso...@gmail.com Prezados colegas, a partir da query: SELECT * FROM ( SELECT t.ano, s.sexo, SUM(f.qt_obito) obitos FROM f_sim f JOIN dim_tempo t ON (t.id=f.id_ano) JOIN dim_sexo s ON (s.id=f.id_sexo) GROUP BY t.ano,s.sexo ORDER BY t.ano,s.sexo ) tb1 como eu faço para obter uma consulta do tipo linha x coluna? O que preciso: nas linhas os valores dos anos e nas colunas as quantidades de óbitos, segundo sexo. Tentei alterar a query a partir de exemplos que vi utilizando crosstab, mas não fui capaz de resolver o problema. Alguém, por favor, poderia me auxiliar? No seu caso, o modo mais fácil usando a função crosstab da tablefunc [1], com a variante com dois parâmetros: o primeiro é sua consulta (como já definiu), a segunda uma consulta que retorne apenas os sexos (M, F). Dessa forma, mesmo que em algum ano não tenha óbitos dos dois sexos, o resultado ainda aparecerá (valor null quando não encontrado). Seguindo seu exemplo ficaria assim (deve testar): SELECT * FROM crosstab($$ SELECT t.ano, s.sexo, SUM(f.qt_obito) obitos FROM f_sim f JOIN dim_tempo t ON (t.id=f.id_ano) JOIN dim_sexo s ON (s.id=f.id_sexo) GROUP BY t.ano,s.sexo ORDER BY t.ano,s.sexo $$, $$VALUES('M'),('F')$$ ) AS tb1(ano int, fem int, masc int); [1] http://www.postgresql.org/docs/current/static/tablefunc.html#AEN144882 Atenciosamente, -- 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