PostgreSQL `a la Debian
PostgreSQL `a la Debian
Pacote: postgresql-common
Leonardo Cezar
DATAPREV - PostgreSQL Brasil
10 d...
PostgreSQL `a la Debian
Introdu¸c˜ao
Conte´udo
1 Introdu¸c˜ao
Resumo
2 Gerenciamento de Software
Processo de instala¸c˜ao
...
PostgreSQL `a la Debian
Introdu¸c˜ao
Resumo
Resumo
• Utilit´ario para gerenciar instˆancias do PostgreSQL (aka
cluster) co...
PostgreSQL `a la Debian
Gerenciamento de Software
Conte´udo
1 Introdu¸c˜ao
Resumo
2 Gerenciamento de Software
Processo de ...
PostgreSQL `a la Debian
Gerenciamento de Software
Processo de instala¸c˜ao
Digress˜ao: M´etodos de instala¸c˜ao
• Sistema ...
PostgreSQL `a la Debian
Gerenciamento de Software
Processo de instala¸c˜ao
Instala¸c˜ao `a la Debian
Bash
# aptitude insta...
PostgreSQL `a la Debian
Gerenciamento de Software
Su´ıte postgresql-common
Objetivos postgresql-commom
• postgresql-common...
PostgreSQL `a la Debian
Gerenciamento de Software
Su´ıte postgresql-common
Arquivos
• /etc/postgresql-common/user clusters...
PostgreSQL `a la Debian
Gerenciamento de Software
Su´ıte postgresql-common
Arquivos
• /usr/lib/postgresql/vers˜ao/bin
- Ar...
PostgreSQL `a la Debian
Gerenciamento de Software
Su´ıte postgresql-common
Arquivos
Execut´aveis do servidor
• /usr/bin/bi...
PostgreSQL `a la Debian
Gerenciamento de Software
Su´ıte postgresql-common
Arquivos
Execut´aveis do servidor
• /usr/bin/pg...
PostgreSQL `a la Debian
Gerenciamento de Software
Gerenciando o servidor
Configura¸c˜ao
• Configurando arquivos:
• user clus...
PostgreSQL `a la Debian
Gerenciamento de Software
Gerenciando o servidor
Utilit´arios
• Utilit´arios (psql, pg ctl) em /us...
PostgreSQL `a la Debian
Gerenciamento de Software
Gerenciando o servidor
Multicluster: Vantagens
• Homologa¸c˜ao de vers˜a...
PostgreSQL `a la Debian
Biblioteca PgCommon
Conte´udo
1 Introdu¸c˜ao
Resumo
2 Gerenciamento de Software
Processo de instal...
PostgreSQL `a la Debian
Biblioteca PgCommon
Introdu¸c˜ao
Defini¸c˜ao
• Conjunto de fun¸c˜oes que comp˜oe o framework
postgr...
PostgreSQL `a la Debian
Biblioteca PgCommon
Introdu¸c˜ao
Exemplos
• Exemplos de utiliza¸c˜ao
• export PERL5IB=/usr/share/p...
PostgreSQL `a la Debian
Biblioteca PgCommon
API
PgCommon - API
• get cluster port(vers˜ao, cluster): Obt´em o valor da por...
PostgreSQL `a la Debian
Biblioteca PgCommon
API
Exemplo de aplica¸c˜ao
Listing 1: Dispatcher
#!/ usr / bin / p e r l
{
pac...
PostgreSQL `a la Debian
Biblioteca PgCommon
API
Exemplo de aplica¸c˜ao (cont.)
Listing 2: Dispatcher
sub h a n d l e r e q...
PostgreSQL `a la Debian
Biblioteca PgCommon
API
Exemplo de aplica¸c˜ao (cont.)
Listing 3: Dispatcher
sub index {
my $cgi =...
PostgreSQL `a la Debian
Biblioteca PgCommon
API
Exemplo de aplica¸c˜ao (cont.)
Listing 4: Dispatcher
sub l i s t c l u s t...
PostgreSQL `a la Debian
Biblioteca PgCommon
API
Exemplo de aplica¸c˜ao (uso)
• Aponte seu navegador para http://localhost:...
PostgreSQL `a la Debian
Migra¸c˜ao de Software
Conte´udo
1 Introdu¸c˜ao
Resumo
2 Gerenciamento de Software
Processo de ins...
PostgreSQL `a la Debian
Migra¸c˜ao de Software
Situa¸c˜ao
Situa¸c˜ao
Aplica¸c˜oes
• +500 Aplica¸c˜oes rodando em Or4¢le
• ...
PostgreSQL `a la Debian
Migra¸c˜ao de Software
Situa¸c˜ao
Metas 2010 - 2011
• Consolida¸c˜ao do ambiente PostgreSQL
• Comp...
Próximos SlideShares
Carregando em…5
×

PostgreSQL À la Debian

383 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
383
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

PostgreSQL À la Debian

  1. 1. PostgreSQL `a la Debian PostgreSQL `a la Debian Pacote: postgresql-common Leonardo Cezar DATAPREV - PostgreSQL Brasil 10 de novembro de 2010 Leonardo Cezar PostgreSQL `a la Debian
  2. 2. PostgreSQL `a la Debian Introdu¸c˜ao Conte´udo 1 Introdu¸c˜ao Resumo 2 Gerenciamento de Software Processo de instala¸c˜ao Su´ıte postgresql-common Gerenciando o servidor 3 Biblioteca PgCommon Introdu¸c˜ao API 4 Migra¸c˜ao de Software Situa¸c˜ao Leonardo Cezar PostgreSQL `a la Debian
  3. 3. PostgreSQL `a la Debian Introdu¸c˜ao Resumo Resumo • Utilit´ario para gerenciar instˆancias do PostgreSQL (aka cluster) com algumas ferramentas interessantes para administra¸c˜ao, configura¸c˜ao e atualiza¸c˜ao do PostgreSQL para vers˜oes maiores. • API para desenvolvimento de software de gerenciamento de bancos • Processo Unificado de Migra¸c˜ao de bases de dados h´ıbridas Leonardo Cezar PostgreSQL `a la Debian
  4. 4. PostgreSQL `a la Debian Gerenciamento de Software Conte´udo 1 Introdu¸c˜ao Resumo 2 Gerenciamento de Software Processo de instala¸c˜ao Su´ıte postgresql-common Gerenciando o servidor 3 Biblioteca PgCommon Introdu¸c˜ao API 4 Migra¸c˜ao de Software Situa¸c˜ao Leonardo Cezar PostgreSQL `a la Debian
  5. 5. PostgreSQL `a la Debian Gerenciamento de Software Processo de instala¸c˜ao Digress˜ao: M´etodos de instala¸c˜ao • Sistema Gerenciador de Pacotes • Aptitude, Yum, Zypee, Up2date, AppSnap, Ports, Fink • Bin´ario de instala¸c˜ao • deb, rpm, pkg, mpkg, msi • C´odigos fontes disponibilizados pelo fornecedor • GCC, libbc6-dev, bison, yapcc • Obter fontes, parametrizar, compilar, configurar, ... • Instalar estritamente o necess´ario Leonardo Cezar PostgreSQL `a la Debian
  6. 6. PostgreSQL `a la Debian Gerenciamento de Software Processo de instala¸c˜ao Instala¸c˜ao `a la Debian Bash # aptitude install postgresql Opcionalmente: Bash # aptitude install postgresql-9.0 Leonardo Cezar PostgreSQL `a la Debian
  7. 7. PostgreSQL `a la Debian Gerenciamento de Software Su´ıte postgresql-common Objetivos postgresql-commom • postgresql-common: • Agregar software do servidor postgresql-$PGVERSION • postgresql-client-common • Agregar software do cliente postgresql-client-$PGVERSION • Solucionar problema de atualiza¸c˜ao de vers˜ao do pacotes Debian • Substituir o antigo postgresql-dump dos pacotes Debian/Red Hat; • Executar instˆancias em vers˜oes diferentes do PostgreSQL; • Gerenciar instˆancias atrav´es do utilit´ario pg wrapper; Leonardo Cezar PostgreSQL `a la Debian
  8. 8. PostgreSQL `a la Debian Gerenciamento de Software Su´ıte postgresql-common Arquivos • /etc/postgresql-common/user clusters - Mapear usu´arios contra ´area de dados e banco de dados • $HOME/.postgresqlrc - Configura¸c˜oes de usu´arios. Semelhante a user clusters, mas com precedˆencia • /etc/postgresql-common/autovacuum.conf - Configura¸c˜oes de limpeza autom´atica para vers˜oes inferiores `a 8.0 • /etc/postgresql/8.4/main/ - Configura¸c˜oes de arquivos da ´area de dados categorizados por vers˜ao Leonardo Cezar PostgreSQL `a la Debian
  9. 9. PostgreSQL `a la Debian Gerenciamento de Software Su´ıte postgresql-common Arquivos • /usr/lib/postgresql/vers˜ao/bin - Arquivos execut´aveis (–bindir – pg dump, pg restore, pg dumpall, ...) do servidor categorizados por vers˜ao • /usr/share/postgresql/vers˜ao - Arquivos de configura¸c˜ao distribu´ıdos • /usr/share/doc/postgresql/postgresql-doc-version - Documenta¸c˜ao de uma vers˜ao espec´ıfica Leonardo Cezar PostgreSQL `a la Debian
  10. 10. PostgreSQL `a la Debian Gerenciamento de Software Su´ıte postgresql-common Arquivos Execut´aveis do servidor • /usr/bin/bindir - Links simb´olicos (psql, pg dump, pg ctl, pg restore, pg controdata) • /usr/bin/pg lsclusters - Listagem de todas ´areas de dados dispon´ıveis no servidor • /usr/bin/pg ctlcluster - Realiza o trabalho da ferramenta pg ctl Leonardo Cezar PostgreSQL `a la Debian
  11. 11. PostgreSQL `a la Debian Gerenciamento de Software Su´ıte postgresql-common Arquivos Execut´aveis do servidor • /usr/bin/pg dropcluster - Realiza a sequˆencia de comandos para excluir uma ´area de dados • /usr/bin/pg upgradecluster - Atualiza os arquivos do servidor para uma nova ”maior”vers˜ao do PostgreSQL • /usr/bin/pg createclusters - Realiza o trabalho do software initdb Leonardo Cezar PostgreSQL `a la Debian
  12. 12. PostgreSQL `a la Debian Gerenciamento de Software Gerenciando o servidor Configura¸c˜ao • Configurando arquivos: • user cluster: Define em qual instˆancia determinado usu´ario se conecta por padr˜ao: # USU´ARIO GRUPO VERS˜AO ´AREA DE DADOS BANCO DE DAODS • $HOME/.postgresqlrc: Sobrescreve user clusters • $PGCLUSTER: Vari´avel de ambiente que possui o nome e porta do cluster • Utilizando a diretiva –cluster • aplicaca¸c˜ao-cliente –cluster vers˜ao/cluster • Ex.: psql –cluster 8.4/nome cluster -l Leonardo Cezar PostgreSQL `a la Debian
  13. 13. PostgreSQL `a la Debian Gerenciamento de Software Gerenciando o servidor Utilit´arios • Utilit´arios (psql, pg ctl) em /usr/bin s˜ao substitu´ıdos por links simb´olicos para: • /usr/share/postgresql-common/pg wrapper • O programa pg wrapper elege qual a vers˜ao do cliente de acordo com as configura¸c˜oes do cluster • Por exemplo: No comando ’psql –cluster 9.0/main’ o programa pg wrapper localiza os bin´arios em /usr/lib/postgresql/9.0/bin • Observe que o parˆametro --cluster”n˜ao existe no psql original. Ele ´e um pseudo-atributo do utilit´ario • Os bin´arios originais /usr/lib/postgresql/$PGVERSION/bin podem continuar sendo utilizados normalmente Leonardo Cezar PostgreSQL `a la Debian
  14. 14. PostgreSQL `a la Debian Gerenciamento de Software Gerenciando o servidor Multicluster: Vantagens • Homologa¸c˜ao de vers˜ao de software • Testar novas funcionalidades de vers˜oes maiores do PostgreSQL • Manter ambientes (teste/homologa¸c˜ao) no mesmo servidor; • Benchmarking entre vers˜oes difeferentes do PostgreSQL • POC de novas funcionalidades; • Migra¸c˜ao; • Ambiente de desenvolvimento; Leonardo Cezar PostgreSQL `a la Debian
  15. 15. PostgreSQL `a la Debian Biblioteca PgCommon Conte´udo 1 Introdu¸c˜ao Resumo 2 Gerenciamento de Software Processo de instala¸c˜ao Su´ıte postgresql-common Gerenciando o servidor 3 Biblioteca PgCommon Introdu¸c˜ao API 4 Migra¸c˜ao de Software Situa¸c˜ao Leonardo Cezar PostgreSQL `a la Debian
  16. 16. PostgreSQL `a la Debian Biblioteca PgCommon Introdu¸c˜ao Defini¸c˜ao • Conjunto de fun¸c˜oes que comp˜oe o framework postgresql-common • Controla altera¸c˜oes em arquivos de configura¸c˜ao e localiza¸c˜ao de execut´aveis • Escrito em Perl 5.10 e compat´ıvel com vers˜oes superiores • API madura e bem documentada • Licenciado sob GPL • Estens´ıvel • Dependˆencias: IO::Socket, Text::More, Exporter Leonardo Cezar PostgreSQL `a la Debian
  17. 17. PostgreSQL `a la Debian Biblioteca PgCommon Introdu¸c˜ao Exemplos • Exemplos de utiliza¸c˜ao • export PERL5IB=/usr/share/postgresql-common • perl -le ”use PgCommon; print get versions();” - Retorna todas as vers˜oes de software instalada no servidor • perl -le ”use PgCommon; set cluster port(8.4,main,5444)” • perl -le ”use PgCommon; print PgCommon::get conf value(8.4, main, port)” • pg lscluster – 8.2 main 5444 online postgres /dados Leonardo Cezar PostgreSQL `a la Debian
  18. 18. PostgreSQL `a la Debian Biblioteca PgCommon API PgCommon - API • get cluster port(vers˜ao, cluster): Obt´em o valor da porta do cluster • set cluster port(vers˜ao, cluster, porta): Altera o valor da porta • set cluster start conf: Altera a situa¸c˜ao do arquivo start.conf • get program path(aplica¸c˜ao, vers˜ao): Obt´em o caminho do execut´avel • cluster info(vers˜ao, cluster): Obt´em informa¸c˜oes sobre o cluster • get cluster databases(vers˜ao, cluster): Retorna os bancos do cluster • error(string msg): Imprime uma mensagem para a sa´ıda de erro padr˜ao e abandona com situa¸c˜ao 1 Leonardo Cezar PostgreSQL `a la Debian
  19. 19. PostgreSQL `a la Debian Biblioteca PgCommon API Exemplo de aplica¸c˜ao Listing 1: Dispatcher #!/ usr / bin / p e r l { package MyWebPgCommon; use HTTP : : Server : : Simple : : CGI qw/: a l l /; use base qw(HTTP : : Server : : Simple : : CGI ) ; use l i b ’ / usr / share / p o s t g r e s q l −common ’ ; use PgCommon ; my %dispatch = ( ’ / index ’ => &index , ) ; Leonardo Cezar PostgreSQL `a la Debian
  20. 20. PostgreSQL `a la Debian Biblioteca PgCommon API Exemplo de aplica¸c˜ao (cont.) Listing 2: Dispatcher sub h a n d l e r e q u e s t { my $ s e l f = s h i f t ; my $cgi = s h i f t ; } my $path = $cgi −>p a t h i n f o ( ) ; my $handler = $dispatch { $path }; i f ( ref ( $handler ) eq ”CODE” ) { } print ”HTTP/1.0 200 OK r n” ; $handler −>($cgi ) ; Leonardo Cezar PostgreSQL `a la Debian
  21. 21. PostgreSQL `a la Debian Biblioteca PgCommon API Exemplo de aplica¸c˜ao (cont.) Listing 3: Dispatcher sub index { my $cgi = s h i f t ; return i f ! ref $cgi ; my $ u r i = $ENV{REQUEST URI }; my $who = $cgi −>param ( ’name ’ ) ; } print $cgi −>header ; print $cgi −>s t a r t h t m l (− t i t l e=>”PostgreSQL Common M ,− s t y l e=>{ ’ s r c ’=>$ u r i . ’ / l a f /common . css ’ } print $cgi −>t a b l e ({− border=>”1” } , $cgi −>caption ( ’ C l u s t e r Re gis tr ado s ’ ) , $cgi −>Tr({− a l i g n=>l e f t ,− v a l i g n=>TOP} , [ Leonardo Cezar PostgreSQL `a la Debian
  22. 22. PostgreSQL `a la Debian Biblioteca PgCommon API Exemplo de aplica¸c˜ao (cont.) Listing 4: Dispatcher sub l i s t c l u s t e r s () { my @ c l u s t e r d e s c ; foreach $v ( sort ( g e t v e r s i o n s ( ) ) ) { my @ c l u s t e r s = g e t v e r s i o n c l u s t e r s $v ; foreach $c ( sort @ c l u s t e r s ) { %i n f o = c l u s t e r i n f o $v , $c ; push @c lust er de sc , [ $v , $c , $ i n f o { ’ port , $ i n f o { ’ running ’ } ? ” o n l i n e ” : ”down” ,( getpwuid $ i n f o { ’ owneruid ’ } ) [ 0 ] , $ i n f o { ’ pgdata ’ } , $ i n f o { ’ l o g f i l e ’ } | | ’ custom ’ ] ; } return @ c l u s t e r d e s c ; } } Leonardo Cezar PostgreSQL `a la Debian
  23. 23. PostgreSQL `a la Debian Biblioteca PgCommon API Exemplo de aplica¸c˜ao (uso) • Aponte seu navegador para http://localhost:8181 • Uma listagem com seus cluster deve aparecer • Clique no bot˜ao para iniciar o servi¸co Leonardo Cezar PostgreSQL `a la Debian
  24. 24. PostgreSQL `a la Debian Migra¸c˜ao de Software Conte´udo 1 Introdu¸c˜ao Resumo 2 Gerenciamento de Software Processo de instala¸c˜ao Su´ıte postgresql-common Gerenciando o servidor 3 Biblioteca PgCommon Introdu¸c˜ao API 4 Migra¸c˜ao de Software Situa¸c˜ao Leonardo Cezar PostgreSQL `a la Debian
  25. 25. PostgreSQL `a la Debian Migra¸c˜ao de Software Situa¸c˜ao Situa¸c˜ao Aplica¸c˜oes • +500 Aplica¸c˜oes rodando em Or4¢le • +20 Aplica¸c˜oes rodando em MS SQ£$erver • +20 Aplica¸c˜oes rodando no PostgreSQL • +50 Aplica¸c˜oes rodando mainframe (DMS2) Leonardo Cezar PostgreSQL `a la Debian
  26. 26. PostgreSQL `a la Debian Migra¸c˜ao de Software Situa¸c˜ao Metas 2010 - 2011 • Consolida¸c˜ao do ambiente PostgreSQL • Composi¸c˜ao do Processo de desenvolvimento e migra¸c˜ao PostgreSQL (Eclipse Process Framework) • Migra¸c˜ao de 30% do Oracle • Migra¸c˜ao de todas as bases SQL Server Leonardo Cezar PostgreSQL `a la Debian

×