Latinoware 2012Oficina PostgreSQL Básico    Fabrízio de Royes Mello   fabriziomello@gmail.com         @fabriziomello http:...
Apresentação   Fabrízio de Royes Mello (fabriziomello@gmail.com)   Gerente de Tecnologia   Bacharel em Informática pela...
Agenda   Introdução   Preparação do Servidor   Manipulando Bancos de Dados
Ambiente Oficina   Ubuntu 12.04   PostgreSQL 9.2
Introdução   Breve Histórico   Arquitetura do PostgreSQL
Breve Histórico   Antes : Oriundo do INGRES   1986 : Início Projeto (Berkley)   1987 : Primeira versão do Postgres   1...
Arquitetura   Modelo Cliente/Servidor       Processo Servidor (postgres)       Aplicação Cliente (text, gui, web, etc)...
Arquitetura
Preparação Servidor        Instalação e Configuração        Usuário ”postgres” sistema Operacional        Entendendo e ...
Instalação e Configuração   Repositórios Ubuntu 12.04        $ sudo ­s   (senha latinoware2012)        $ add­apt­reposito...
Instalação e Configuração   Configurar pg_hba.conf      $ sudo vim       /etc/postgresql/9.2/main/pg_hba.conf      Trocar...
Usuário ”postgres” S.O.   Encapsular atividades em um único usuário       Usuário ”postgres” que executa binários      ...
Entendendo e Trabalhando                          com Clusters   Cluster = agrupamento de bancos de dados   Gerenciado p...
Entendendo e Trabalhando                         com Clusters   Exercício       Criar um cluster chamado ”latinoware”   ...
Iniciando/Parando                         Servidor PostgreSQL   Iniciando Servidor         $ sudo /etc/init.d/postgresql ...
Manipulando                                              Bancos de Dados        Criando um Banco de Dados        Banco d...
Criando um Banco de Dados   Utilitário ”createdb”       $ createdb ­U postgres latino1     http://www.postgresql.org/docs...
Banco de Dados Template   Template = Banco de Dados Modelo   CREATE DATABASE, atualmente, ”copia” uma    base de dados e...
Removendo                            Bancos de Dados   Utilitário ”dropdb”       $ dropdb ­U postgres latino2     http://...
Localização Física no                    Sistema de Arquivos   Cluster      $ psql ­U postgres      postgres=# SHOW data_...
Exercícios   Criar / Apagar Cluster   Criar Banco de Dados   Criar Banco usando anterior como template   Dica: Mudar c...
Algumas Referências!   Nacionais    http://www.postgresql.org.br    https://listas.postgresql.org.br/cgi-bin/mailman/list...
Dúvidas/Críticas/Sugestões!!!     Fabrízio de Royes Mello     fabriziomello@gmail.com  http://fabriziomello.blogspot.com
Próximos SlideShares
Carregando em…5
×

Oficina PostgreSQL Básico Latinoware 2012

1.009 visualizações

Publicada em

Oficina Básica de PostgreSQL ministrada no Latinoware 2012

Publicada em: Tecnologia
1 comentário
0 gostaram
Estatísticas
Notas
  • Seja a primeira pessoa a gostar disto

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

Nenhuma nota no slide

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

×