Pessoal,
Está aberta a chamada de trabalhos para o PGBR2013. Vamos lá, se inscreva... estamos ansiosos para saber o que você tem feito com o PostgreSQL... nos encontramos em Porto Velho/RO de 15 a 17 de agosto de 2013.
--
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
segunda-feira, 18 de fevereiro de 2013
quinta-feira, 4 de outubro de 2012
Patch sobre CREATE SCHEMA IF NOT EXISTS aceito para o PostgreSQL 9.3devel
Após algumas discussões [1] meu patch para adicionar a cláusula "IF NOT EXISTS" no "CREATE SCHEMA" foi aceito e efetuado o commit na branch master do git oficial do PostgreSQL [2] pelo commiter Mr. Tom Lane.
Agora na 9.3 poderemos usar a cláusula "IF NOT EXISTS" no "CREATE SCHEMA" para que não gere um erro (cancelando transação atual) caso o esquema que está sendo criado já exista, por exemplo:
BEGIN;
CREATE SCHEMA IF NOT EXISTS foo;
CREATE TABLE foo.bar();
COMMIT;
O exemplo acima caso o esquema "foo" já exista não será gerado um erro e a transação irá prosseguir normalmente. O comportamento é similar ao já existente "IF NOT EXISTS" do "CREATE TABLE" [3].
[1] https://commitfest.postgresql.org/action/patch_view?id=907
[2] http://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=fb34e94d214d6767910df47aa7c605c452d11c57
[3] http://www.postgresql.org/docs/9.2/interactive/sql-createtable.html
---
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Agora na 9.3 poderemos usar a cláusula "IF NOT EXISTS" no "CREATE SCHEMA" para que não gere um erro (cancelando transação atual) caso o esquema que está sendo criado já exista, por exemplo:
BEGIN;
CREATE SCHEMA IF NOT EXISTS foo;
CREATE TABLE foo.bar();
COMMIT;
O exemplo acima caso o esquema "foo" já exista não será gerado um erro e a transação irá prosseguir normalmente. O comportamento é similar ao já existente "IF NOT EXISTS" do "CREATE TABLE" [3].
[1] https://commitfest.postgresql.org/action/patch_view?id=907
[2] http://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=fb34e94d214d6767910df47aa7c605c452d11c57
[3] http://www.postgresql.org/docs/9.2/interactive/sql-createtable.html
---
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
9.3devel,
git,
patch,
postgresql
quinta-feira, 17 de maio de 2012
Instalar/Configurar "Debugador" de PL/pgSQL (pldebugger) no PostgreSQL 9.1 usando Ubuntu
O passo-a-passo abaixo foi realizado no Ubuntu 10.04LTS com o PostgreSQL 9.1 instalado via ppa do Martin Pitti, mas creio que pode ser executado tranquilamente utilizando a última versão LTS do Ubuntu, a 12.04LTS.
1) Download dos fontes do PostgreSQL
$ wget -c http://ftp.postgresql.org/pub/source/v9.1.3/postgresql-9.1.3.tar.bz2
2) Precisamos instalar ferramentas necessárias para compilação da extensão
$ sudo apt-get update
$ sudo apt-get install build-essential libreadline-dev zlib1g-dev flex bison libssl-dev git-core
3) Compilar o PostgreSQL e a extensao pldebugger
$ tar jxvf postgresql-9.1.3.tar.bz2
$ cd postgresql-9.1.3
$ ./configure --prefix=/usr --includedir=/usr/include --mandir=/usr/share/man --infodir=/usr/share/info --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/postgresql-9.1 --srcdir=. --mandir=/usr/share/postgresql/9.1/man --docdir=/usr/share/doc/postgresql-doc-9.1 --datadir=/usr/share/postgresql/9.1 --bindir=/usr/lib/postgresql/9.1/bin --libdir=/usr/lib/postgresql/9.1/lib --includedir=/usr/include/postgresql/ --enable-integer-datetimes --with-openssl
$ make
$ cd contrib
$ git clone git://git.postgresql.org/git/pldebugger.git
$ cd pldebugger
$ make
$ sudo make install
Obs: lembrando que, apesar de extenso, o "./configure" deve ser todo escrito na mesma linha
4) Após compilar e instalar a extensao pldebugger precisamos ativa-a no PostgreSQL
$ sudo vim /etc/postgresql/9.1/main/postgresql.conf
alterar
#shared_preload_libraries = ''
para
shared_preload_libraries = '$libdir/plugin_debugger'
5) Reiniciar PostgreSQL
$ sudo /etc/init.d/postgresql restart 9.1
6) Criar a EXTENSAO "pldbgpapi" na(s) base(s) de dados que deseja fazer debug de pls
$ psql -U postgres bdteste
psql (9.1.3)
Digite "help" para ajuda.
bdteste=# CREATE EXTENSION pldbgapi;
CREATE EXTENSION
bdteste=#
7) Pronto, agora vc pode usar o PGAdmin para "debugar" suas funções PL/pgSQL
---
Fabrízio Mello
fabriziomello [at] gmail.com
terça-feira, 11 de outubro de 2011
Vídeo com atividade do repositório GIT do PostgreSQL nos últimos meses
Pessoal,
Montei um pequeno vídeo [1] que mostra a atividade do repositório GIT do PostgreSQL nos últimos meses.
Para gerar o vídeo usei o Gource [2].
Fabrízio Mello
fabriziomello [at] gmail.com
Marcadores:
#postgresql #git #gource #video
quarta-feira, 31 de agosto de 2011
PGBR2011 - Chamada de Trabalhos
Pessoal,
A chamada de trabalhos do PGBR2011 está aberta.
Vejam mais informações interessantes de como participar no excelente post do Fábio Telles.
---
Fabrízio Mello
fabriziomello [at] gmail.com
A chamada de trabalhos do PGBR2011 está aberta.
Vejam mais informações interessantes de como participar no excelente post do Fábio Telles.
---
Fabrízio Mello
fabriziomello [at] gmail.com
quinta-feira, 28 de julho de 2011
PGDay/RS 2011 - Targettrust irá Sortear 1 (um) Curso de PostgreSQL (20h)
Durante o PGDay/RS 2011 a T@rgetTrust, empresa especializada em treinamentos, irá sortear 1 (um) curso, a escolha do sorteado, da sua Formação PostgreSQL:
- PostgreSQL Fundamentos
- PostgreSQL Procedural
- PostgreSQL Administração
- PostgreSQL Administração Avançada
Mais informações acesse o site do evento em:
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
patrocinio,
pgday,
postgresql,
targettrust
quarta-feira, 15 de junho de 2011
PGDay/RS 2011 em Porto Alegre/RS
O que é?
Postgres ou PostgreSQL é um projeto de Sistema Gerenciador de Banco de Dados open-source que foi iniciado em 1986, na Universidade de Berkeley, na Califórnia.
PGDay, ou Dia do Postgres, é um evento não tão formal quanto ao PGBR (Conferência sobre PostgreSQL no Brasil) e de caráter regional, podendo ser realizado com poucas pessoas em qualquer/vários estados do País.
Quais são os objetivos?
É uma chance para que acadêmicos, DBAs e desenvolvedores Brasileiros de PostgreSQL aprendam, troquem experiências, exponham casos de sucessos, desafios e fortifiquem sua rede de relacionamento profissional.
Qual o público alvo?
Dentre o público esperado estão:
- Administradores de Bancos de Dados;
- Acadêmicos de Cursos Técnicos ou Universidades;
- Desenvolvedores de Softwares;
- Organizações governamentais;
- Entusiastas de Software Livre;
Data e Local
O evento será dia 19 de Agosto de 2011, no Auditório do Bloco D da Uniritter localizado na Rua Orfanotrófio, 555, bairro Alto Teresópolis CEP: 90840-440 em Porto Alegre, RS.
Inscrições, Palestras, Atividades e mais informações veja em:
http://www.postgresql.org.br/eventos/2011/pgday/rs
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
dojo,
pgday,
plpgsql,
postgresql
sexta-feira, 8 de abril de 2011
PGBR2011 - Conferência Nacional PostgreSQL (3-4 Novembro, São Paulo)
O PGBR (antes conhecido como PGCon Brasil) é o maior evento sobre PostgreSQL das Américas: em 2009 e 2008, o evento trouxe mais de 300 profissionais de TI e, em 2007, mais de 200. Em 2011, serão 3 salas simultâneas com tutoriais, palestras e mesas de alto nível, contando com desenvolvedores nacionais e internacionais do PostgreSQL além de profissionais renomados no mercado brasileiro.
Venha conhecer de perto uma das comunidades de Software Livre que mais cresce no Brasil e no mundo que conta com o suporte de empresas de grande porte como CAIXA, Skype, BASF e Cisco. Conheça alguns dos maiores casos de sucesso brasileiros em órgãos públicos e privados, as novidades da versão 9.1 e o que está previsto para a versão 9.2 do PostgreSQL. Você terá a oportunidade também de conhecer técnicas avançadas de montitoramento, ajustes de performance, técnicas de replicação, migração, alta disponibilidade e muito mais.
Mais informações no sítio do evento: http://pgbr.postgresql.org.br
Aproveite também e preencha a nossa pesquisa sobre uso do PostgreSQL no Brasil:
https://spreadsheets.google.com/viewform?formkey=dFNOS0pjUFp3MFM0Y0xWT1RIWUZfRGc6MA
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Venha conhecer de perto uma das comunidades de Software Livre que mais cresce no Brasil e no mundo que conta com o suporte de empresas de grande porte como CAIXA, Skype, BASF e Cisco. Conheça alguns dos maiores casos de sucesso brasileiros em órgãos públicos e privados, as novidades da versão 9.1 e o que está previsto para a versão 9.2 do PostgreSQL. Você terá a oportunidade também de conhecer técnicas avançadas de montitoramento, ajustes de performance, técnicas de replicação, migração, alta disponibilidade e muito mais.
Mais informações no sítio do evento: http://pgbr.postgresql.org.br
Aproveite também e preencha a nossa pesquisa sobre uso do PostgreSQL no Brasil:
https://spreadsheets.google.com/viewform?formkey=dFNOS0pjUFp3MFM0Y0xWT1RIWUZfRGc6MA
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
pgbr,
pgcon,
postgresql
terça-feira, 12 de outubro de 2010
Vaga DBA PostgreSQL em Porto Alegre/RS
Pessoal,
Estamos com uma vaga para DBA PostgreSQL em Porto Alegre/RS, com as seguintes requisitos:
ATRIBUIÇÕES:
- instalar/configurar Linux para posterior instalação do PostgreSQL
- instalar/configurar o PostgreSQL na empresa (produção, desenvolvimento e testes) e nos clientes (produção e testes)
- implantação e manutenção de políticas e rotinas de backup das bases de dados da empresa e dos clientes (scripts de backup padronizados)
- implantação e manutenção de polĩticas e rotinas de segurança de dados
- monitorar servidores PostgreSQL da empresa e dos clientes (coletar informações e estatísticas para geração de base de conhecimento dos clientes)
- atender chamados dos clientes por eventuais problemas relacionados ao servidor de Banco de Dados PostgreSQL
- apoio aos programadores na criação de SQLs complexos, bem como na construção de procedimentos armazenados e funções (stored procedures e functions)
- apoio aos programadores na modelagem física de banco de dados
- realizar migrações de versão do PostgreSQL
- sugerir boas práticas de uso de SQL e Modelos de Dados a equipe de desenvolvimento
- capacitação da equipe de desenvolvimento da empresa no uso de novos recursos oferecidos pelo PostgreSQL
- otimização de performance (tunnig) do PostgreSQL e sistema operacional (Linux)
CONHECIMENTOS:
- PostgreSQL
- Linux
- Shell Script
- Programação PHP (desejável)
Interessados enviar Curriculum por e-mail para curriculos [at] dbseller.com.br que após análise inicial dos mesmos entraremos em contato para agendar entrevista.
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
dba,
porto alegre,
postgresql,
vaga
sexta-feira, 17 de setembro de 2010
Função "array_diff" em PostgreSQL
Estava realizando algumas queries aqui no meu trabalho e tive a necessidade de uma função que retornasse um array contendo os elementos de um determinado array e não estão presentes em outro, igual ao array_diff do PHP [1].
Para resolver esse pequeno problema bastou um SELECT, vejam a implementação da função "array_diff" para PostgreSQL abaixo:
CREATE OR REPLACE FUNCTION array_diff (anyarray, anyarray) RETURNS anyarray
AS $$
SELECT array(
SELECT $1[s.i]
FROM generate_series(array_lower($1,1), array_upper($1,1)) AS s(i)
WHERE NOT $1[s.i] = ANY($2)
);
$$
LANGUAGE sql;
postgres@bdteste=# SELECT array_diff(array[1, 2, 3], array[1, 4, 3]);
array_diff
------------
{2}
(1 row)
postgres@bdteste=# SELECT array_diff(array[1, 4, 3], array[1, 2, 3]);
array_diff
------------
{4}
(1 row)
Espero ter ajudado de alguma forma.
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
array,
diff,
postgresql
sábado, 21 de agosto de 2010
CONSEGI 2010
Nos dias 18, 19 e 20 de agosto/2010 ocorreu o evento denominado CONSEGI2010, onde tive oportunidade de participar como palestrante/instrutor em algumas atividades relacionadas ao PostgreSQL.
Abaixo seguem os links para download dos arquivos da palestra de das oficinas que ministrei:
Obrigado a todos que estiveram presentes prestigiando o evento e as atividades que exerci.
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
consegi,
oficina,
postgresql
domingo, 27 de junho de 2010
PostgreSQL na Memória RAM (In-Memory Database)
Recentemente (dia 24/06/2010) em seu blog, replicado no planet-postgresql, o Sr. Robert Haas postou o artigo denominado "PostgreSQL as an In-Memory Only Database".
Baseado em seu relato e no abordado na lista pgsql-performance montei este pequeno tutorial para exemplificar na prática o que foi discutido, ou seja, uma forma fácil e rápida de criar o seu próprio "PostgreSQL as an In-Memory Database".
Estou utilizando o Ubuntu 9.04 e PostgreSQL 8.3 para executar as atividades:
1) Montando partição em memória com tmpfs:
$ sudo -s
$ mkdir /mnt/in_memory
$ mount -t tmpfs -o size=2G,nr_inodes=8k,mode=0700 tmpfs /mnt/in_memory/
2) Criando cluster na partição criada:
$ chown -R postgres. /mnt/in_memory/
$ su - postgres -c "/usr/lib/postgresql/8.3/bin/initdb -D /mnt/in_memory"
3) Ajustando configurações do cluster (conforme recomendações do artigo citado):
$ vim /mnt/in_memory/postgresql.conf
fsync=off
synchronous_commit=off
full_page_writes=off
bgwriter_lru_maxpages=0
Obs: caso vc já tenha algum processo do PostgreSQL executando na mesma máquina desse teste então vc deve verificar se não será necessário modificar também a variável "port" do postgresql.conf, pois o padrão é 5432.
4) Iniciando processo servidor:
$ su - postgres -c "/usr/lib/postgresql/8.3/bin/pg_ctl -D /mnt/in_memory -l /mnt/in_memory/postgres.log start"
5) Verificando se o cluster está funcionando:
$ ps ax | grep post
19614 pts/3 S 0:00 /usr/lib/postgresql/8.3/bin/postgres -D /mnt/in_memory
19653 ? Ss 0:00 postgres: writer process
19654 ? Ss 0:00 postgres: wal writer process
19655 ? Ss 0:00 postgres: autovacuum launcher process
19656 ? Ss 0:00 postgres: stats collector process
$ /usr/lib/postgresql/8.3/bin/psql -U postgres -p 5437 -l
Lista dos bancos de dados
Nome | Dono | Codificação
-----------+----------+-------------
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(3 registros)
Acredito que neste ponto você já esteja com o seu PostgreSQL na memória pronto e funcional.
Lembre-se que o mesmo está "literalmente" na memória RAM, portanto ao desligar o micro o seu cluster inteiro será perdido, por isso o seu uso fica limitado como um Cache ao invés do uso do memcached ou alternativas NoSQL, porém com todos recursos disponíveis no PostgreSQL.
Por favor reportem problemas com esse mini-tutorial e/ou críticas e sugestões.
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Baseado em seu relato e no abordado na lista pgsql-performance montei este pequeno tutorial para exemplificar na prática o que foi discutido, ou seja, uma forma fácil e rápida de criar o seu próprio "PostgreSQL as an In-Memory Database".
Estou utilizando o Ubuntu 9.04 e PostgreSQL 8.3 para executar as atividades:
1) Montando partição em memória com tmpfs:
$ sudo -s
$ mkdir /mnt/in_memory
$ mount -t tmpfs -o size=2G,nr_inodes=8k,mode=0700 tmpfs /mnt/in_memory/
2) Criando cluster na partição criada:
$ chown -R postgres. /mnt/in_memory/
$ su - postgres -c "/usr/lib/postgresql/8.3/bin/initdb -D /mnt/in_memory"
3) Ajustando configurações do cluster (conforme recomendações do artigo citado):
$ vim /mnt/in_memory/postgresql.conf
fsync=off
synchronous_commit=off
full_page_writes=off
bgwriter_lru_maxpages=0
Obs: caso vc já tenha algum processo do PostgreSQL executando na mesma máquina desse teste então vc deve verificar se não será necessário modificar também a variável "port" do postgresql.conf, pois o padrão é 5432.
4) Iniciando processo servidor:
$ su - postgres -c "/usr/lib/postgresql/8.3/bin/pg_ctl -D /mnt/in_memory -l /mnt/in_memory/postgres.log start"
5) Verificando se o cluster está funcionando:
$ ps ax | grep post
19614 pts/3 S 0:00 /usr/lib/postgresql/8.3/bin/postgres -D /mnt/in_memory
19653 ? Ss 0:00 postgres: writer process
19654 ? Ss 0:00 postgres: wal writer process
19655 ? Ss 0:00 postgres: autovacuum launcher process
19656 ? Ss 0:00 postgres: stats collector process
$ /usr/lib/postgresql/8.3/bin/psql -U postgres -p 5437 -l
Lista dos bancos de dados
Nome | Dono | Codificação
-----------+----------+-------------
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(3 registros)
Acredito que neste ponto você já esteja com o seu PostgreSQL na memória pronto e funcional.
Lembre-se que o mesmo está "literalmente" na memória RAM, portanto ao desligar o micro o seu cluster inteiro será perdido, por isso o seu uso fica limitado como um Cache ao invés do uso do memcached ou alternativas NoSQL, porém com todos recursos disponíveis no PostgreSQL.
Por favor reportem problemas com esse mini-tutorial e/ou críticas e sugestões.
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
in-memory database,
postgresql
terça-feira, 13 de abril de 2010
PostgreSQL 8.2.x em Ubuntu > 8.04
Como é de conhecimento de todos as versões do Ubuntu superiores a 8.04 (hardy) não possuem em seus repositórios padrões o PostgreSQL 8.2.x, então o caminho natural para que seja feita a instalação é download dos fontes, compilar e instalar... para quem tem bastante intimidade com Linux + PostgreSQL essa é uma atividade corriqueira e que normalmente é realizada em ambientes de produção.
Porém tenho recebido de clientes e amigos questionamentos de como instalar, de maneira mais simples, o PostgreSQL 8.2.x em Ubuntu > 8.04, pois bem então ai vai a dica.
No console, como usuário root, execute:
$ apt-get update
$ echo "deb http://archive.ubuntu.com/ubuntu/ hardy main universe" > /etc/apt/sources.list.d/ubuntu-8.04.list
$ apt-get update
$ apt-get install postgresql-8.2
$ rm -f /etc/apt/sources.list.d/ubuntu-8.04.list
$ apt-get update
Com isso basta executar um pg_lsclusters ou um dpkg --list 'postgresql*' no console que poderão verificar que a versão 8.2.7 estará instalada.
Um pequeno contratempo em relação a essa abordagem é que teremos a versão 8.2.7 instalada e atualmente já temos disponível a 8.2.16, mas é possível sim atualizar a versão através da compilação pelos fontes mantendo toda a infra-estrutura do Ubuntu com o postgresql-common, mas isso fica para um próximo post.
Por favor reportem possíveis problemas com esse mini-tutorial.
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Porém tenho recebido de clientes e amigos questionamentos de como instalar, de maneira mais simples, o PostgreSQL 8.2.x em Ubuntu > 8.04, pois bem então ai vai a dica.
No console, como usuário root, execute:
$ apt-get update
$ echo "deb http://archive.ubuntu.com/ubuntu/ hardy main universe" > /etc/apt/sources.list.d/ubuntu-8.04.list
$ apt-get update
$ apt-get install postgresql-8.2
$ rm -f /etc/apt/sources.list.d/ubuntu-8.04.list
$ apt-get update
Com isso basta executar um pg_lsclusters ou um dpkg --list 'postgresql*' no console que poderão verificar que a versão 8.2.7 estará instalada.
Um pequeno contratempo em relação a essa abordagem é que teremos a versão 8.2.7 instalada e atualmente já temos disponível a 8.2.16, mas é possível sim atualizar a versão através da compilação pelos fontes mantendo toda a infra-estrutura do Ubuntu com o postgresql-common, mas isso fica para um próximo post.
Por favor reportem possíveis problemas com esse mini-tutorial.
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
postgresql
sexta-feira, 22 de janeiro de 2010
PostgreSQL 8.5 vs 9.0
Não é oficial ainda mas parece que não teremos mais uma versão 8.5 do PostgreSQL... a nova versão será 9.0 conforme discussão na lista de desenvolvimento do mesmo [1].
O motivo dessa mudança é o grande número de novas funcionalidades que irá incorporar a nova versão do PostgreSQL... isso é muito interessante pois a evolução do "elefantinho" está cada vez mais acelerada...
Vida longa ao PostgreSQL!!!
[1] http://archives.postgresql.org/pgsql-hackers/2010-01/msg02056.php
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
O motivo dessa mudança é o grande número de novas funcionalidades que irá incorporar a nova versão do PostgreSQL... isso é muito interessante pois a evolução do "elefantinho" está cada vez mais acelerada...
Vida longa ao PostgreSQL!!!
[1] http://archives.postgresql.org/pgsql-hackers/2010-01/msg02056.php
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
postgresql
sexta-feira, 3 de julho de 2009
Case PgBouncer 1.3 com PostgreSQL 8.2
Pessoal,
Estou finalizando a implantação do PgBouncer 1.3 com PostgreSQL 8.2 e obtive excelentes resultados só pelo fato de colocar o Pool de Conexões na frente do "postmaster".
Até aqui não temos nada de muito surpreendente a não ser pelo fato de que, segundo a documentação do próprio PgBouncer fala que podemos ter 100% de transparência com o PostgreSQL 8.3 pelo fato do comando "DISCARD" estar presente apartir dessa release.
Como na versão que estamos utilizando, a 8.2, não existe essa implementação então o jeito foi implementar uma PL que "emule" o comportamento do "DISCARD".
Através da lista de discussão da Comunidade Brasileira de PostgreSQL (pgbr-geral), com a ajuda do colega Euler, implementei uma PL para suprir essa falta conforme segue:
server_reset_query = SELECT fc_discard_all()
Os únicos efeitos colaterais dessa solução são:
O modo do pool que estou utilizando é o "session" pois preciso da sessão do inicio ao fim com o mesmo estado.
Se alguém tiver alguma dica e/ou critica estou a disposição.
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Estou finalizando a implantação do PgBouncer 1.3 com PostgreSQL 8.2 e obtive excelentes resultados só pelo fato de colocar o Pool de Conexões na frente do "postmaster".
Até aqui não temos nada de muito surpreendente a não ser pelo fato de que, segundo a documentação do próprio PgBouncer fala que podemos ter 100% de transparência com o PostgreSQL 8.3 pelo fato do comando "DISCARD" estar presente apartir dessa release.
Como na versão que estamos utilizando, a 8.2, não existe essa implementação então o jeito foi implementar uma PL que "emule" o comportamento do "DISCARD".
Através da lista de discussão da Comunidade Brasileira de PostgreSQL (pgbr-geral), com a ajuda do colega Euler, implementei uma PL para suprir essa falta conforme segue:
No meu arquivo de configuração do pool (pgbouncer.ini) fiz o seguinte:
create or replace function fc_discard_all() returns void as
$$
declare
rComando record;
iVersao integer;
begin
select cast(setting as integer)
into iVersao
from pg_settings
where name ~ 'server_version_num';
if not found then
raise exception 'A versão do PostgreSQL deve ser >= 8.2';
end if;
if iVersao >= 80300 then
execute 'discard all';
return;
end if;
set session authorization default;
reset all;
for rComando in
select name
from pg_prepared_statements
loop
execute 'deallocate '||rComando.name;
end loop;
for rComando in
select name
from pg_cursors
where name not like '%unnamed%'
loop
execute 'close '||rComando.name;
end loop;
unlisten *;
perform pg_advisory_unlock_all();
for rComando in
select distinct
table_schema,
table_name
from information_schema.tables
where table_type = 'LOCAL TEMPORARY'
loop
execute 'drop table if exists '||quote_ident(rComando.table_schema)||'.'||quote_ident(rComando.table_name)||' cascade';
end loop;
return;
end;
$$
language plpgsql;
server_reset_query = SELECT fc_discard_all()
Os únicos efeitos colaterais dessa solução são:
- Se a base de dados que for acessada não tiver a PL acima criada vai gerar um log de erro, mas não impacta em problemas na conexão
- Não foi possível implementar uma emulação para o DISCARD PLANS pois, segundo o colega Euler, esse comando veio em conjunto com a funcionalidade de invalidação de planos em funções procedurais, logo não pode ser emulada em versões menores que 8.3
O modo do pool que estou utilizando é o "session" pois preciso da sessão do inicio ao fim com o mesmo estado.
Se alguém tiver alguma dica e/ou critica estou a disposição.
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
postgresql
quarta-feira, 1 de julho de 2009
PostgreSQL 8.4 Lançado
Há poucas horas foi aunciado na lista pgsql-announce, pelo Sr. Josh Berkus, o lançamento versão 8.4 do PostgreSQL.
Mais informações e a nota oficial de lançamento traduzidas podem ser encontradas em:
http://www.postgresql.org/about/press/presskit84.html.br
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Mais informações e a nota oficial de lançamento traduzidas podem ser encontradas em:
http://www.postgresql.org/about/press/presskit84.html.br
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
postgresql
Compilando o pgAdmin 1.10.0 no Ubuntu 9.04
Ontem (30/06/2009) como já anunciado no blog foi liberada a nova versão do pgAdmin, entretanto ainda não foram disponibilizadas versões compiladas do mesmo para Linux.
Então para instalar não teve jeito, tive de fazer download dos fontes e compilar e para isso tive de seguir os seguinte passos:
1) Instalar os pré-requisitos
sudo apt-get install build-essential
sudo apt-get install libxml2-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libxslt1-dev
sudo apt-get install postgresql-server-dev-8.3
sudo apt-get install libwxbase2.8-dev
sudo apt-get install libwxgtk2.8-dev
2) Download do pgAdmin
http://www.pgadmin.org/download/
3) Descompactar os fontes
tar xzvf pgadmin3-1.10.0.tar.gz
4) Compilar e instalar
cd pgadmin3-1.10.0
./configure --with-pgsql=/usr/lib/postgresql/8.3 --prefix=/usr/local/pgadmin3
make
make install
5) Agora basta executá-lo
/usr/local/pgadmin3
Uma peculiaridade é que no meu caso tenho o PostgreSQL 8.3 instalado no meu Desktop então utilizei o pacote de desenvolvimento desta versão, mas creio que não exista problema algum em utilizar versões anteriores como a 8.2 ou 8.1.
Outro detalhe é que apesar de eu estar utilizando o Ubuntu 9.04 esse processo deve ser o igual para versões anteriores e até mesmo para o próprio Debian.
Fazendo isso temos o nosso pgAdmin 1.10.0 pronto para ser utilizado, bem simples e rápido.
Cordialmente,
Fabrízo de Royes Mello
fabriziomello [at] gmail.com
Então para instalar não teve jeito, tive de fazer download dos fontes e compilar e para isso tive de seguir os seguinte passos:
1) Instalar os pré-requisitos
sudo apt-get install build-essential
sudo apt-get install libxml2-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libxslt1-dev
sudo apt-get install postgresql-server-dev-8.3
sudo apt-get install libwxbase2.8-dev
sudo apt-get install libwxgtk2.8-dev
2) Download do pgAdmin
http://www.pgadmin.org/download/
3) Descompactar os fontes
tar xzvf pgadmin3-1.10.0.tar.gz
4) Compilar e instalar
cd pgadmin3-1.10.0
./configure --with-pgsql=/usr/lib/postgresql/8.3 --prefix=/usr/local/pgadmin3
make
make install
5) Agora basta executá-lo
/usr/local/pgadmin3
Uma peculiaridade é que no meu caso tenho o PostgreSQL 8.3 instalado no meu Desktop então utilizei o pacote de desenvolvimento desta versão, mas creio que não exista problema algum em utilizar versões anteriores como a 8.2 ou 8.1.
Outro detalhe é que apesar de eu estar utilizando o Ubuntu 9.04 esse processo deve ser o igual para versões anteriores e até mesmo para o próprio Debian.
Fazendo isso temos o nosso pgAdmin 1.10.0 pronto para ser utilizado, bem simples e rápido.
Cordialmente,
Fabrízo de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
postgresql
Disponibilizado pgAdmin v1.10.0
Pessoal,
Após mais de um ano de desenvolvimento foi disponibilizada a tão esperada versão 1.10.0 do pgAdmin.
Algumas das novas funcionalidades dessa versão:
http://www.postgresql.org/about/news.1107
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Após mais de um ano de desenvolvimento foi disponibilizada a tão esperada versão 1.10.0 do pgAdmin.
Algumas das novas funcionalidades dessa versão:
- Construtor Gráfico de Consultas (Graphical Query Builder)
- Motor de Scripts na ferramenta de consulta (pgScript)
- Suporte melhorado para Postgres Plus Advanced Server e Greeplum Database
- Suporte a "Full Text Search"
- Mecanismo para integração com ferramentas de terceiros
- Suporte para PostgreSQL 8.4
http://www.postgresql.org/about/news.1107
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
postgresql
Palestra Database Refactoring com PostgreSQL - URCAMP Alegrete/RS
Ontem (30/06/2009) ministrei a palestra de Database Refactoring para os alunos do Curso de Informática da Universidade da Região da Campanha (URCAMP) de Alegrete/RS.
O evento contou com a presença de alunos dos últimos semestres do Curso de Informática bem como de alguns docentes do Curso.
Os slides da palestra estão disponíveis em:
http://www.slideshare.net/fabriziomello/database-refactoring-postgresql-urcamp-alegrete-2009
As fotos também estão disponíveis em:
http://picasaweb.google.com/fabriziomello/UrcampAlegreteRS2009
Agradeço o convite feito pelos professores Cristian Talles e Eveline Guerra bem como a todos que participaram do evento, para mim foi uma honra trocar conhecimento com todos vocês.
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
O evento contou com a presença de alunos dos últimos semestres do Curso de Informática bem como de alguns docentes do Curso.
Os slides da palestra estão disponíveis em:
http://www.slideshare.net/fabriziomello/database-refactoring-postgresql-urcamp-alegrete-2009
As fotos também estão disponíveis em:
http://picasaweb.google.com/fabriziomello/UrcampAlegreteRS2009
Agradeço o convite feito pelos professores Cristian Talles e Eveline Guerra bem como a todos que participaram do evento, para mim foi uma honra trocar conhecimento com todos vocês.
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
database refactoring,
postgresql
terça-feira, 9 de junho de 2009
PGCon Brasil 2009 - Chamada de Trabalhos
Está aberta a Chamada de Trabalhos para o PGCon Brasil 2009 - 3a Conferência Brasileira de PostgreSQL.
Se você utiliza o PostgreSQL ou tem essa intenção, não deixe de participar. Seja como palestrante ou visitante você será muito bem vindo ao maior evento brasileiro sobre o "Banco de Dados Open-Source mais poderoso do mundo".
Informações e dicas de publicação também podem ser encontradas em:
http://www.midstorm.org/~telles/2009/05/31/aberta-a-chamada-de-trabalhos-para-o-pgcon-brasil-2009/
Vida longa ao PostgreSQL!!!
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Se você utiliza o PostgreSQL ou tem essa intenção, não deixe de participar. Seja como palestrante ou visitante você será muito bem vindo ao maior evento brasileiro sobre o "Banco de Dados Open-Source mais poderoso do mundo".
Informações e dicas de publicação também podem ser encontradas em:
http://www.midstorm.org/~telles/2009/05/31/aberta-a-chamada-de-trabalhos-para-o-pgcon-brasil-2009/
Vida longa ao PostgreSQL!!!
Cordialmente,
Fabrízio de Royes Mello
fabriziomello [at] gmail.com
Marcadores:
postgresql
Assinar:
Postagens (Atom)