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

2013-06-24 Thread luiz damascena
Em 21 de junho de 2013 15:33, Charles Viana escreveu:

> 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 Thread 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 Thread Juliano Atanazio
Em 24 de junho de 2013 10:39, Alexsander Rosa
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.



>
> 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 Thread 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 Thread 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 Thread 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 Thread 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 Thread Juliano Atanazio
Em 24 de junho de 2013 12:00, Alexsander Rosa
escreveu:

> 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 Thread Matheus de Oliveira
2013/6/24 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.
>
>
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 Thread Leonardo Cezar
2013/6/24 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.
>

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 .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 Thread 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 Thread Matheus de Oliveira
2013/6/24 Giovani Rodrigues 

> 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  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 Thread 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 Thread jpaulorieg
2013/6/24 Alexsander Rosa 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 Thread 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  escreveu:

>
>
>
> 2013/6/24 Giovani Rodrigues 
>
>> 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  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 Thread Matheus de Oliveira
On Mon, Jun 24, 2013 at 4:06 PM, Paulo Bastos  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 Thread Matheus de Oliveira
2013/6/24 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!
>
>
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  escreveu:

>
>
>
> 2013/6/24 Giovani Rodrigues 
>
>> 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  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 Thread 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  escreveu:

>
>
>
> 2013/6/24 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!
>>
>>
> 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 
>>
>>> 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  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 Thread 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  escreveu:

>
>
>
> 2013/6/24 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!
>>
>>
> 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 
>>
>>> 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  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 Thread Matheus de Oliveira
nem falando mal do top-posting... é, não tem jeito mesmo...


2013/6/24 Rebert Tomaz Aquino 

> 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 
>>
>>> 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 
>>>
 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  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 Thread 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  escreveu:

> nem falando mal do top-posting... é, não tem jeito mesmo...
>
>
> 2013/6/24 Rebert Tomaz Aquino 
>
>> 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 
>>>
 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 

> 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  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 Thread 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  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 
>>
>>> 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 

> 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 
>
>> 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  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 Thread 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 Thread 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  escreveu:

>
>
>
> On Mon, Jun 24, 2013 at 4:06 PM, Paulo Bastos 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
>
>
___
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 Thread Matheus de Oliveira
2013/6/24 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.
>
>
"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 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
>>
>>
>
> ___
> 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 Thread 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  escreveu:

>
> 2013/6/20 Romulo Souza 
>
>> 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