Treinamento PostgreSQL - Aula 05 Eduardo Ferreira dos Santos SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com 04 de Junho de 2013 Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 eduardo.edusantos@gmail.com 04 de Junho de 2013 1 / 27 edua
Cronograma Semana 1: 27 de Maio a 4 de Junho Administração de Dados Semana 2: 5-11 de Junho Administração de Banco de Dados Semana 3: 13-18 de Junho Alta disponibilidade Semana 4: 19-24 de Junho Performance Tuning Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 eduardo.edusantos@gmail.com 04 de Junho de 2013 2 / 27 edua
Sumário 1 Instalação e Conguração Pacotes para Debian e Ubuntu Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 eduardo.edusantos@gmail.com 04 de Junho de 2013 3 / 27 edua
1 Instalação e Conguração Pacotes para Debian e Ubuntu Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 eduardo.edusantos@gmail.com 04 de Junho de 2013 4 / 27 edua
Pacotes para Debian e Ubuntu 1 Instalação e Conguração Pacotes para Debian e Ubuntu Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 eduardo.edusantos@gmail.com 04 de Junho de 2013 5 / 27 edua
Pacotes para Debian e Ubuntu Remoção Listing 1: Remove bancos de dados do cluster [ p o s t g r e s p g s q l ] $ p g _ l s c l u s t e r s [ p o s t g r e s p g s q l ] $ p g _ d r o p c l u s t e r s t o p 9. 1 main Listing 2: Remove pacotes # Remove banco [ r o o t s r c ]# apt get remove purge p o s t g r e s q l Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 eduardo.edusantos@gmail.com 04 de Junho de 2013 6 / 27 edua
Pacotes para Debian e Ubuntu Instalação Listing 3: Instala e cria cluster # I n s t a l a banco [ r o o t s r c ]# apt get i n s t a l l p o s t g r e s q l p o s t g r e s q l dev # Executa comandos [ p o s t g r e s p g s q l ] $ p g _ l s c l u s t e r s [ p o s t g r e s p g s q l ] $ p g _ d r o p c l u s t e r s t o p 9. 1 main [ p o s t g r e s p g s q l ] $ p g _ c r e a t e c l u s t e r l o c a l e pt_br. UTF 8 s t a r t 9. 1 main Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 eduardo.edusantos@gmail.com 04 de Junho de 2013 7 / 27 edua
Pacotes para Debian e Ubuntu Testes Listing 4: Cluster de testes # C r i a c l u s t e r de t e s t e [ p o s t g r e s p g s q l ] $ p g _ c r e a t e c l u s t e r l o c a l e pt_br. UTF 8 s t a r t 9. 1 t e s t e Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 eduardo.edusantos@gmail.com 04 de Junho de 2013 8 / 27 edua
Pacotes para Debian e Ubuntu Exercício 1 Mova os cluster existentes para a partição /srv/cluster 2 Faça a versão do PostgreSQL rodar na porta 5433 Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 eduardo.edusantos@gmail.com 04 de Junho de 2013 9 / 27 edua
1 Instalação e Conguração Pacotes para Debian e Ubuntu Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 10 / 27 edua
Dependências GNU Make: http://www.gnu.org/software/make/ GCC: http://gcc.gnu.org/ GNU Zip: http://www.gzip.org/ GNU Readline Opcionais: linguagens procedurais, criptograa, etc Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 11 / 27 edua
Instalação das dependências Listing 5: Instalação de dependências # I n s t a l a c a o de d e p e n d e n c i a s [ r o o t s r c ]# apt get i n s t a l l gcc l i b c 6 dev l i b r e a d l i n e 5 dev z l i b 1 g dev u n z i p z i p Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 12 / 27 edua
Cria usuário Listing 6: Cria usuário do banco de dados # C r i a c a o do u s u a r i o [ r o o t s r c ]# useradd d / u s r / l o c a l / p g s q l p o s t g r e s [ r o o t s r c ]# mkdir p / u s r / l o c a l / p g s q l [ r o o t s r c ]# chown R p o s t g r e s. p o s t g r e s / u s r / l o c a l / p g s q l / u s r / l o c a l / s r c / p o s t g r e s q l 9.1.9 [ r o o t s r c ]# chmod 750 / u s r / l o c a l / p g s q l [ r o o t s r c ]# su p o s t g r e s Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 13 / 27 edua
Variáveis de ambiente Listing 7: Congura variáveis de ambiente [ p o s t g r e s ~] echo "export PATH =/usr/local/bin/: $PATH :/usr/local/pgsql/bin\nexport LD_LIBRARY_PATH= $LD_LIBRARY_PATH :/usr/local/pgsql/lib" >> ~/. b a s h r c [ p o s t g r e s ~] echo "source $HOME /. bashrc" >> ~/. b a s h _ p r o f i l e [ p o s t g r e s p g s q l ] $ e x i t Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 14 / 27 edua
Variáveis de ambiente Listing 8: Testa variáveis de ambiente [ p o s t g r e s p g s q l ] $ e x i t [ r o o t s r c ]# su p o s t g r e s [ p o s t g r e s p g s q l ] $ env g r e p PATH LD_LIBRARY_PATH=:/ u s r / l o c a l / p g s q l / l i b PATH=/b i n : / s b i n : / u s r / b i n : / u s r / s b i n : / u s r / l o c a l / b i n : / u s r / l o c a l / s b i n : / u s r / b i n /X11 : / u s r /X11R6/ b i n : / r o o t / b i n : / u s r / l o c a l / p g s q l / b i n : / u s r / l o c a l / p g s q l / b i n [ p o s t g r e s p g s q l ] $ e x i t Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 15 / 27 edua
Baixando os fontes Escolha sua versão: http://www.postgresql.org/download/ Listing 9: Baixando e descompactando arquivos # Descompactacao [ r o o t s r c ]# cd / u s r / l o c a l / s r c [ r o o t s r c ]# wget f t p : / / f t p. p o s t g r e s q l. org /pub/ s o u r c e / v9. 1. 9 / p o s t g r e s q l 9. 1. 9. t a r. gz [ r o o t s r c ]# t a r x z v f p o s t g r e s q l 9. 1. 9. t a r. gz [ r o o t s r c ]# chown R p o s t g r e s. p o s t g r e s p o s t g r e s q l 9.1.9 [ r o o t s r c ]# cd p o s t g r e s q l 9.1.9 [ r o o t s r c ]# su p o s t g r e s [ p o s t g r e s p g s q l ] $ cd / u s r / l o c a l / s r c / p o s t g r e s q l 9. 1. 9 Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 16 / 27 edua
Compilação Listing 10: Congurando a compilação # C o n f i g u r a c a o da compilacao [ p o s t g r e s p g s q l ] $. / c o n f i g u r e [ p o s t g r e s p g s q l ] $ make a l l [ p o s t g r e s p g s q l ] $ make i n s t a l l Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 17 / 27 edua
Opções de compilação prex=prefix Diretório para todos os arquivos do banco. Padrão: /usr/local/pgsql exec-prex=exec-prefix Caminho para os arquivos independentes de arquitetura. Padrão: PREFIX bindir=directory Caminho para os executáveis. Padrão: EXEC-PREFIX/bin sysconfdir=directory Arquivos de conguração. Padrão: PREFIX/etc libdir=directory Bibliotecas. Padrão: EXEC-PREFIX/lib includedir=directory C e C++ header (.h). Padrão: PREFIX/include datarootdir=directory Arquivos de dados somente leitura. Padrão: PREFIX/share datadir=directory Arquivos somente leitura para os programas instalados. Padrão: DATAROOTDIR Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 18 / 27 edua
Opções de compilação Linguagens Compilar PL's (Procedural Languages). Ex.: with-perl, with-tcl, etc. Criptrograa e Segurança Adicionar SSL, PAM, LDAP, etc. Ex.: with-openssl, with-pam, with-ldap Referência completa Todas as opções de compilação estão no endereço http://www.postgresql.org/docs/9.1/interactive/ install-procedure.html Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 19 / 27 edua
Inicializar o banco de dados Listing 11: Inicializa estrutura de arquivos # I n i c i a banco de dados [ p o s t g r e s p g s q l ] $ / u s r / l o c a l / p g s q l / b i n / i n i t d b D / u s r / l o c a l / p g s q l / d a t a Listing 12: Inicia servidor do SGBD [ p o s t g r e s p g s q l ] $ / u s r / l o c a l / p g s q l / b i n / p g _ c t l D / u s r / l o c a l / p g s q l / d a t a l / u s r / l o c a l / p g s q l / d a t a / s e r v e r. l o g s t a r t Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 20 / 27 edua
Parâmetros do banco de dados Diretório de dados Estrutura de arquivos para armazenamento do banco de dados do PostgreSQL. /usr/local/pgsql/data Log do servidor Arquivo de log do servidor. /usr/local/pgsql/data/server.log Comando de inicialização Comando para iniciar o serviço do SGBD. start Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 21 / 27 edua
Testes Listing 13: Testa inicialização # Testa i n i c i a l i z a c a o o f u n c i o n a l [ p o s t g r e s p g s q l ] $ c r e a t e l a n g p l p g s q l t e m p l a t e 1 [ p o s t g r e s p g s q l ] $ c r e a t e l a n g l t e m p l a t e 1 Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 22 / 27 edua
Teste da base Listing 14: Testa base de dados # Testa o banco de dados [ p o s t g r e s p g s q l ] $ c r e a t e d b mytestdb [ p o s t g r e s p g s q l ] $ p s q l mytestdb # C o n s u l t a s de t e s t e mytestdb=# s e l e c t current_timestamp ; mytestdb=# c r e a t e f u n c t i o n t e s t 1 ( ) r e t u r n s i n t e g e r as $$ b e g i n r e t u r n 1 ; end ; $$ language ' p l p g s q l ' ; mytestdb=# s e l e c t t e s t 1 ( ) ; Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 23 / 27 edua
Script de inicialização Baixe o script: http: //cvs.openacs.org/browse/~raw,r=1.2/openacs/openacs-4/ packages/acs-core-docs/www/files/postgresql.txt Verique as congurações iniciais Adicione o script à lista de comandos do SO Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 24 / 27 edua
Exercícios 1 Apague a instalação anterior completamente 2 Suba o banco de dados na porta 5433 3 Inicialize a estrutura de diretórios de conguração no caminho /srv/curso Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 25 / 27 edua
Exercícios 1 Baixe a versão 9.0 do PostgreSQL 2 Compile a versão e coloque para rodar na porta 5432 3 As versões 9.0 e 9.1 devem funcionar ao mesmo tempo na mesma máquina Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 26 / 27 edua
Contato Eduardo Ferreira dos Santos Sparkgroup Lightbase Consultoria em Software Público eduardo.santos@lightbase.com.br eduardo.edusantos@gmail.com www.postgresql.org.br www.eduardosan.com +55 61 3347-1949 Eduardo Ferreira dos Santos (SparkGroup TreinamentoePostgreSQL Capacitação- Aula em Tecnologia 05 04 eduardo.edusantos@gmail.com de Junho de 2013 27 / 27 edua