Re: [pgbr-geral] Execução de backup lógico (pg_dump) consumindo muitas horas na execução

2013-06-24 Por tôpico luiz damascena
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?

2013-06-24 Por tôpico Alexsander Rosa
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?

2013-06-24 Por tôpico Juliano Atanazio
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?

2013-06-24 Por tôpico Flavio Henrique Araque Gurgel

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?

2013-06-24 Por tôpico Vinicius Santos
 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?

2013-06-24 Por tôpico Alexsander Rosa
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?

2013-06-24 Por tôpico Alexsander Rosa
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?

2013-06-24 Por tôpico Juliano Atanazio
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-06-24 Por tôpico Matheus de Oliveira
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-06-24 Por tôpico Leonardo Cezar
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

2013-06-24 Por tôpico Giovani Rodrigues
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-06-24 Por tôpico Matheus de Oliveira
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

2013-06-24 Por tôpico Paulo Bastos
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-06-24 Por tôpico jpaulorieg
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

2013-06-24 Por tôpico Giovani Rodrigues
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

2013-06-24 Por tôpico Matheus de Oliveira
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-06-24 Por tôpico Matheus de Oliveira
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

2013-06-24 Por tôpico Rebert Tomaz Aquino
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

2013-06-24 Por tôpico Giovani Rodrigues
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

2013-06-24 Por tôpico Matheus de Oliveira
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

2013-06-24 Por tôpico Cicero Neto
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

2013-06-24 Por tôpico Giovani Rodrigues
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

2013-06-24 Por tôpico Charles Viana

 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

2013-06-24 Por tôpico Cicero Neto
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-06-24 Por tôpico Matheus de Oliveira
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

2013-06-24 Por tôpico Romulo Souza
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