quinta-feira, 30 de julho de 2015
PgBouncer
PgBouncer? O que é? Pra que serve?
O bouncer é um agrupador de conexões para o PostgreSQL.
Qualquer aplicação de destino pode ser ligado ao pgbouncer como se fosse um servidor PostgreSQL , e pgbouncer vai criar uma ligação ao servidor real , ou vai reutilizar uma das suas ligações existentes.
Além disso, ele tem três diferentes modos de pool:
pool por sessão (Session pooling)
Método mais educado ou gentil. Quando o cliente se conecta, a conexão com o servidor será atribuída a ele enquanto dure toda a conexão do cliente. Quando o cliente se desconectar, a conexão do servidor será colocada de volta como disponível no pool. Este é o método padrão.
pool por transação (Transaction pooling)
A conexão com o servidor é atribuída ao cliente apenas durante uma transação. Quando o PgBouncer percebe que transação acabou, a conexão do servidor será colocada de volta como disponível no pool.
Pool por declaração ou comando (Statement pooling)
Método mais agressivo. A conexão com o servidor será colocada de volta como disponível ao pool imediatamente após o fim da consulta. Transações com várias instruções não são permitidas neste modo.
Vantagem de se utilizar o pgBouncer?
Em ambientes com muitas conexões e muitos usuários ele ajuda a reduzir o impacto de performance causado pela abertura de novas conexões.
1) Instalação exemplo no CentOS:
# yum install pgbouncer
Ou Compilando
# wget http://pgfoundry.org/frs/download.php/3393/pgbouncer-1.5.4.tar.gz
# tar -zxvf pgbouncer-1.5.4.tar.gz
# cd pgbouncer-1.5.4
# ./configure
# make
# make install
2) Para o funcionamento ele precisa de dois arquivos um é pgbouncer.ini para configuração e um outro para os usuarios eu normalmente uso o nome pgbouncer-users.txt
2.1) pgbouncer.ini Exemplo:
[databases]
Minha_Database = host=127.0.0.1 port=5432 dbname=Minha_Database
Minha_Database1 = host=127.0.0.1 port=5432 dbname=Minha_Database1
Minha_Database2 = host=127.0.0.1 port=5432 dbname=Minha_Database2
[pgbouncer]
listen_port = 6432
listen_addr = 127.0.0.1
auth_type = md5
auth_file = pgbouncer-users.txt
logfile = pgbouncer.log
pidfile = pgbouncer.pid
admin_users = dba
2.2) pgbouncer-users.txt Exemplo:
"usuario1" "senha_usuario1"
"usuario2" "senha_usuario2"
"usuario3" "senha_usuario3"
"usuario4" "senha_usuario4"
3) Executando o pgbouncer:
# pgbouncer -d pgbouncer.ini
4) Para testar se esta conectando ao banco via pgbouncer use a porta que o pgbouncer esta escutando "listen_port"
# psql -U usuario1 -p 6432 -d Minha_Database
Se conectou quer dizer que o pgbouncer esta funcionando, bom ele ainda tem varias outras funcionalidades e comandos internos que podem ser executados para isso você pode ler o manual do pgbouncer clicando AQUI.
Existem outras ferramentas que fazem a mesma tarefa que pgbouncer um exemplo é o Pgpool mais em minha opinião o pgbouncer em questão de facilidade e reaproveitamento de conexões é o melhor pelo menos até o momento.
segunda-feira, 27 de julho de 2015
Bases de Exemplo para PostgreSQL
Base de Exemplo ou Dbsamples for PostgreSQL
Sempre alguém me questiona onde pode se encontrar bases de exemplo, com tabelas e dados para fazer algum teste ou ainda para uso didático para o postgres.
Já a algum tempo encontrei no site do postgres uma relação com varias bases de exemplo, entre elas a Pagila que me acompanhou quando ainda engatinhava no mundo de banco de dados.
A database Pagila é uma Locadora de Vídeo, sua estrutura é composta de:
-> 15 Tabelas
-> 1 Trigger
-> 7 Views
-> 8 Funções
-> 1 Dominio
-> 13 Sequences
No site do postgresql você vai encontrar outras bases de exemplo.
Sempre alguém me questiona onde pode se encontrar bases de exemplo, com tabelas e dados para fazer algum teste ou ainda para uso didático para o postgres.
Já a algum tempo encontrei no site do postgres uma relação com varias bases de exemplo, entre elas a Pagila que me acompanhou quando ainda engatinhava no mundo de banco de dados.
A database Pagila é uma Locadora de Vídeo, sua estrutura é composta de:
-> 15 Tabelas
-> 1 Trigger
-> 7 Views
-> 8 Funções
-> 1 Dominio
-> 13 Sequences
No site do postgresql você vai encontrar outras bases de exemplo.
sexta-feira, 10 de julho de 2015
pgBadger e não mais pgFouine, Conheça o mais novo log Analyzer do PostgreSQL
PgBadger - a PostgreSQL log Analyzer
Minha primeira postagem foi sobre o uso do pgFouine, então desse tempo para cá o pgFouine já se tornou um projeto obsoleto, mais não fique triste pois não estamos desamparados, agora temos o pgBadger ele também é um log analyser com uma configuração simples e com relatórios de layout bonito e prático.
Bom como ele é um log analyser para seu relatório ficar o mais completo possível o nível de log do PostreSQL deve estar alto ou seja quanto mais você logar mais completo será seu relatório.
Não vou entrar no mérito se você deve colocar a gravação de log em outro disco, se a quantidade e o tamanho desses arquivos de logs acumulados diariamente é muito grande (sim é muito), irei tratar esses assuntos em outras postagens.
Agora vamos as configurações de log do postgres.conf:
log_destination = 'stderr'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 100MB
client_min_messages = notice
log_min_messages = info
log_min_error_statement = info
log_min_duration_statement = 0
log_checkpoints = on
log_connections = on
log_disconnections = on
log_duration = on
log_error_verbosity = verbose
log_connections = on
log_disconnections = on
log_duration = on
log_error_verbosity = verbose
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d '
log_lock_waits = on
log_statement = 'ddl'
log_temp_files = 1
Instalação do pgBadger no CentOS :
[root@localhost ~]# yum install pgbadger
Comando para gerar o relatorio:
[root@localhost pg_log]# pgbadger -q -f stederr -j 2 -x html postgresql-2015-07-07_175436.log -o relatorio.html
Bom... não custa avisar, faça sempre em um banco de teste e faça por sua conta e risco.
Não é por que eu passei essas configurações que elas vão servir para você, essas configurações estão em um ambiente monitorado, então talvez para seu cenário precise de adequações.
Instalação do pgBadger no CentOS :
[root@localhost ~]# yum install pgbadger
Comando para gerar o relatorio:
[root@localhost pg_log]# pgbadger -q -f stederr -j 2 -x html postgresql-2015-07-07_175436.log -o relatorio.html
Bom... não custa avisar, faça sempre em um banco de teste e faça por sua conta e risco.
Não é por que eu passei essas configurações que elas vão servir para você, essas configurações estão em um ambiente monitorado, então talvez para seu cenário precise de adequações.
Retorno ao Blog!
Olá,
Depois de quase 3 anos estou reativando o blog.
Por quê? hummm... boa pergunta depois de quase 3 anos provavelmente não sou mais um DBA baby como me auto denominava, mais ainda estou aprendendo coisas novas todos os dias.
Não tenho o dom de me expressar tão bem quanto o Fábio Telles com o Save Point que com certeza é alguém que tem minha admiração, por isso não vou me estender de mais com motivos e textos bonitos(Como já dito não sei fazer isso). :(
Então com isso vou voltar a postar dicas, ferramentas e duvidas recorrentes até para minha própria pesquisa posterior.
Então VAMOS LÁ!!!
Depois de quase 3 anos estou reativando o blog.
Por quê? hummm... boa pergunta depois de quase 3 anos provavelmente não sou mais um DBA baby como me auto denominava, mais ainda estou aprendendo coisas novas todos os dias.
Não tenho o dom de me expressar tão bem quanto o Fábio Telles com o Save Point que com certeza é alguém que tem minha admiração, por isso não vou me estender de mais com motivos e textos bonitos(Como já dito não sei fazer isso). :(
Então com isso vou voltar a postar dicas, ferramentas e duvidas recorrentes até para minha própria pesquisa posterior.
Então VAMOS LÁ!!!
Assinar:
Postagens (Atom)