Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Oficina PostgreSQL Básico Latinoware 2012

1,033 views

Published on

Oficina Básica de PostgreSQL ministrada no Latinoware 2012

Published in: Technology
  • Be the first to like this

Oficina PostgreSQL Básico Latinoware 2012

  1. 1. Latinoware 2012Oficina PostgreSQL Básico Fabrízio de Royes Mello fabriziomello@gmail.com @fabriziomello http://www.postgresql.org.br http://listas.postgresql.org.br
  2. 2. Apresentação Fabrízio de Royes Mello (fabriziomello@gmail.com) Gerente de Tecnologia Bacharel em Informática pela URCAMP – Bagé/RS Experiência Profissional  Desenvolvimento de Software desde 1993  Experiência em PostgreSQL desde 1999  Experiência em PHP desde 2002  Consultor/Coach PostgreSQL  Colaborador Comunidade Brasileira PostgreSQL  Colaborador PGDG – PostgreSQL Global Development Group
  3. 3. Agenda Introdução Preparação do Servidor Manipulando Bancos de Dados
  4. 4. Ambiente Oficina Ubuntu 12.04 PostgreSQL 9.2
  5. 5. Introdução Breve Histórico Arquitetura do PostgreSQL
  6. 6. Breve Histórico Antes : Oriundo do INGRES 1986 : Início Projeto (Berkley) 1987 : Primeira versão do Postgres 1991 : versão 3 com principais funcionalidades atuais 1993 : versão 4.2, última lançada pela Berkley 1994 : Andrew Yu e Jolly Chen lançam Postgre95 com interpretador para linguagem SQL 1997 : Nome muda para PostgreSQL, versão 6 lançada 2000 : versão 7 lançada com suporte a FK 2005 : versão 8 lançada com versão nativa Windows, Tablespaces, Savepoints, Point-In-Time-Recovery 2005 : versão 8.1 Commit Tho Phases, Roles 2006 : versão 8.2 (Insert, Update, Delete) Returning, melhora performance OLTP e BI 2008 : versão 8.3 debug PL/PgSQL, Tsearch2 (XML) no core 2009 : versão 8.4 Windowing Functions, Common Table Expressions and Recursive Queries, Parallel Restore, ”pg_upgrade” 2010 : versão 9.0 Hot Standby and Streaming Replication (assincrona) 2011 : versão 9.1 Synchronous Streaming Replication, Extensions, FDWs 2012 : versão 9.2 Index-Only Scans, JSON, PLV8, Cascade Replication
  7. 7. Arquitetura Modelo Cliente/Servidor  Processo Servidor (postgres)  Aplicação Cliente (text, gui, web, etc) Faz uma cópia (fork) do processo servidor para cada conexão cliente Processos auxiliares  Checkpointer  Writer  Wal Writer  Autovacuum  Stats Collector
  8. 8. Arquitetura
  9. 9. Preparação Servidor  Instalação e Configuração  Usuário ”postgres” sistema Operacional  Entendendo e Trabalhando com Clusters  Iniciando/Parando o Servidor PostgreSQLFonte: Manoel Pimental Medeiros - visaoagil.wordpress.com
  10. 10. Instalação e Configuração Repositórios Ubuntu 12.04 $ sudo ­s   (senha latinoware2012) $ add­apt­repository ppa:pitti/postgresql $ apt­get update $ apt­get install postgresql­9.2 Verificando se as coisas estão OK! $ pg_lsclusters Listar Bases de Dados $ psql ­U postgres ­l  Oops... erro autenticação!!!!
  11. 11. Instalação e Configuração Configurar pg_hba.conf $ sudo vim  /etc/postgresql/9.2/main/pg_hba.conf Trocar ident e md5 por ”trust” e salvar $ sudo /etc/init.d/postgresql­9.2 reload Listar Bases de Dados (novamente) $ psql ­U postgres ­l    (gravem isso!!) Agora sim!!!!
  12. 12. Usuário ”postgres” S.O. Encapsular atividades em um único usuário  Usuário ”postgres” que executa binários  Arquivos de configuração e datafiles tem owner e group = ”postgres” Uma breve ”verificação” $ ls ­al  /etc/postgresql/9.2/main $ ls ­al  /var/lib/postgresql/9.2 $ ps aux | egrep ^postgres
  13. 13. Entendendo e Trabalhando com Clusters Cluster = agrupamento de bancos de dados Gerenciado por um ”processo servidor" Listar clusters (debian based - pg_common) $ pg_lsclusters  Criar clusters (debian based - pg_common) $ pg_createcluster http://www.postgresql.org/docs/9.2/static/app-initdb.html  Apagar clusters (debian based - pg_common) $ pg_dropcluster 
  14. 14. Entendendo e Trabalhando com Clusters Exercício  Criar um cluster chamado ”latinoware”  Criar um cluster chamado ”oficina”  Configurar autenticação clusters (pg_hba.conf)  Listar clusters  Apagar cluster ”oficina” Respostas $ sudo pg_createcluster 9.2 latinoware $ sudo pg_createcluster 9.2 oficina $ sudo vim /etc/postgresql/9.2/**/pg_hba.conf $ pg_lsclusters $ sudo pg_dropcluster ­­stop 9.2 oficina
  15. 15. Iniciando/Parando Servidor PostgreSQL Iniciando Servidor $ sudo /etc/init.d/postgresql start 9.2  Parando Servidor $ sudo /etc/init.d/postgresql stop 9.2 Reiniciando Servidor $ sudo /etc/init.d/postgresql restart 9.2 Recarregando Configurações  $ sudo /etc/init.d/postgresql reload 9.2 http://www.postgresql.org/docs/9.2/static/app-pg-ctl.html
  16. 16. Manipulando Bancos de Dados  Criando um Banco de Dados  Banco de Dados Template  Removendo Banco de Dados  Localização Física no Sistema de ArquivosFonte: Manoel Pimental Medeiros - visaoagil.wordpress.com
  17. 17. Criando um Banco de Dados Utilitário ”createdb” $ createdb ­U postgres latino1  http://www.postgresql.org/docs/9.2/static/app-createdb.html SQL ”CREATE DATABASE” $ psql ­U postgres  postgres=# CREATE DATABASE latino1; http://www.postgresql.org/docs/9.2/static/sql-createdatabase.html
  18. 18. Banco de Dados Template Template = Banco de Dados Modelo CREATE DATABASE, atualmente, ”copia” uma base de dados existente, por padrão ”template1” Existe outro banco template chamado ”template0” que é um ”banco virgem” Criando ou banco por template $ createdb -U postgres -T latino1 latino2 http://www.postgresql.org/docs/9.2/static/manage-ag-templatedbs.html
  19. 19. Removendo Bancos de Dados Utilitário ”dropdb” $ dropdb ­U postgres latino2  http://www.postgresql.org/docs/9.2/static/app-dropdb.html SQL ”DROP DATABASE” $ psql ­U postgres  postgres=# DROP DATABASE latino2; http://www.postgresql.org/docs/9.2/static/sql-dropdatabase.html
  20. 20. Localização Física no Sistema de Arquivos Cluster $ psql ­U postgres postgres=# SHOW data_directory Configurações $ psql ­U postgres  postgres=# SHOW config_file; postgres=# SHOW hba_file;
  21. 21. Exercícios Criar / Apagar Cluster Criar Banco de Dados Criar Banco usando anterior como template Dica: Mudar cluster atual da sessão  export PGCLUSTER=9.2/nome_do_cluster
  22. 22. Algumas Referências! Nacionais http://www.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Internacionais http://www.postgresql.org (Site oficial) http://www.postgresql.org/community/lists/
  23. 23. Dúvidas/Críticas/Sugestões!!! Fabrízio de Royes Mello fabriziomello@gmail.com http://fabriziomello.blogspot.com

×