SlideShare a Scribd company logo
1 of 23
Download to read offline
Latinoware 2012
Oficina PostgreSQL Básico


    Fabrízio de Royes Mello
   fabriziomello@gmail.com
         @fabriziomello

 http://www.postgresql.org.br
 http://listas.postgresql.org.br
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
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
   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
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
Arquitetura
Preparação Servidor

        Instalação e Configuração
        Usuário ”postgres” sistema Operacional
        Entendendo e Trabalhando com Clusters
        Iniciando/Parando o Servidor PostgreSQL




Fonte: Manoel Pimental Medeiros - visaoagil.wordpress.com
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!!!!
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!!!!
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'
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 
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
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
Manipulando
                                              Bancos de Dados
        Criando um Banco de Dados
        Banco de Dados Template
        Removendo Banco de Dados
        Localização Física no Sistema de Arquivos




Fonte: Manoel Pimental Medeiros - visaoagil.wordpress.com
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
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
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
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;
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
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/
Dúvidas/Críticas/Sugestões!!!

     Fabrízio de Royes Mello
     fabriziomello@gmail.com

  http://fabriziomello.blogspot.com

More Related Content

What's hot

TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...tdc-globalcode
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotationeduardo dias
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
 
Otimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - TchelinuxOtimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - TchelinuxElton Minetto
 
Gerência de redes utilizando o cacti
Gerência de redes utilizando o cactiGerência de redes utilizando o cacti
Gerência de redes utilizando o cactiIsraelCunha
 
Sismologia USP: Infra Estutura Computacional para Pesquisa
Sismologia USP: Infra Estutura Computacional para PesquisaSismologia USP: Infra Estutura Computacional para Pesquisa
Sismologia USP: Infra Estutura Computacional para PesquisaCentro de Sismologia - USP
 
Oracle 18c Instalação Grid Infrastructure & Database
Oracle 18c Instalação Grid Infrastructure & DatabaseOracle 18c Instalação Grid Infrastructure & Database
Oracle 18c Instalação Grid Infrastructure & DatabaseDouglas Paiva de Sousa
 
Administracao de sistemas_com_puppet
Administracao de sistemas_com_puppetAdministracao de sistemas_com_puppet
Administracao de sistemas_com_puppetRamon Mota
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPedro Fernandes Vieira
 
ZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLgsroma
 
PostgreSQL: Performance Tuning
PostgreSQL: Performance TuningPostgreSQL: Performance Tuning
PostgreSQL: Performance TuningFernando Ike
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBADextra
 
Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)Elen Arantza
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQlCezar Souza
 

What's hot (20)

Python e bancos NoSQL
Python e bancos NoSQLPython e bancos NoSQL
Python e bancos NoSQL
 
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
 
PostgreSQL Conceitos e aplicações
PostgreSQL  Conceitos e aplicaçõesPostgreSQL  Conceitos e aplicações
PostgreSQL Conceitos e aplicações
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotation
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Otimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - TchelinuxOtimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - Tchelinux
 
Introdução ao Apache Ant
Introdução ao Apache AntIntrodução ao Apache Ant
Introdução ao Apache Ant
 
Gerência de redes utilizando o cacti
Gerência de redes utilizando o cactiGerência de redes utilizando o cacti
Gerência de redes utilizando o cacti
 
Vagrant + Puppet
Vagrant + PuppetVagrant + Puppet
Vagrant + Puppet
 
Sismologia USP: Infra Estutura Computacional para Pesquisa
Sismologia USP: Infra Estutura Computacional para PesquisaSismologia USP: Infra Estutura Computacional para Pesquisa
Sismologia USP: Infra Estutura Computacional para Pesquisa
 
Oracle 18c Instalação Grid Infrastructure & Database
Oracle 18c Instalação Grid Infrastructure & DatabaseOracle 18c Instalação Grid Infrastructure & Database
Oracle 18c Instalação Grid Infrastructure & Database
 
Administracao de sistemas_com_puppet
Administracao de sistemas_com_puppetAdministracao de sistemas_com_puppet
Administracao de sistemas_com_puppet
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro Vieira
 
ZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQL
 
PostgreSQL: Performance Tuning
PostgreSQL: Performance TuningPostgreSQL: Performance Tuning
PostgreSQL: Performance Tuning
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBA
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
Acessando o MySql com o Python
Acessando o MySql com o PythonAcessando o MySql com o Python
Acessando o MySql com o Python
 
Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQl
 

Viewers also liked

Database refactoring postgresql_consegi2010
Database refactoring postgresql_consegi2010Database refactoring postgresql_consegi2010
Database refactoring postgresql_consegi2010Fabrízio Mello
 
Bad Smells em Bancos de Dados
Bad Smells em Bancos de DadosBad Smells em Bancos de Dados
Bad Smells em Bancos de DadosFabrízio Mello
 
Database Refactoring PostgreSQL Urcamp Alegrete 2009
Database Refactoring PostgreSQL Urcamp Alegrete 2009Database Refactoring PostgreSQL Urcamp Alegrete 2009
Database Refactoring PostgreSQL Urcamp Alegrete 2009Fabrízio Mello
 
Bad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de DadosBad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de DadosFabrízio Mello
 
Keep calm and Database Continuous Deployment
Keep calm and Database Continuous DeploymentKeep calm and Database Continuous Deployment
Keep calm and Database Continuous DeploymentFabrízio Mello
 
Como posso colaborar com o PostgreSQL
Como posso colaborar com o PostgreSQLComo posso colaborar com o PostgreSQL
Como posso colaborar com o PostgreSQLFabrízio Mello
 
NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP)
NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP) NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP)
NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP) Fabrízio Mello
 

Viewers also liked (7)

Database refactoring postgresql_consegi2010
Database refactoring postgresql_consegi2010Database refactoring postgresql_consegi2010
Database refactoring postgresql_consegi2010
 
Bad Smells em Bancos de Dados
Bad Smells em Bancos de DadosBad Smells em Bancos de Dados
Bad Smells em Bancos de Dados
 
Database Refactoring PostgreSQL Urcamp Alegrete 2009
Database Refactoring PostgreSQL Urcamp Alegrete 2009Database Refactoring PostgreSQL Urcamp Alegrete 2009
Database Refactoring PostgreSQL Urcamp Alegrete 2009
 
Bad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de DadosBad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de Dados
 
Keep calm and Database Continuous Deployment
Keep calm and Database Continuous DeploymentKeep calm and Database Continuous Deployment
Keep calm and Database Continuous Deployment
 
Como posso colaborar com o PostgreSQL
Como posso colaborar com o PostgreSQLComo posso colaborar com o PostgreSQL
Como posso colaborar com o PostgreSQL
 
NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP)
NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP) NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP)
NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP)
 

Similar to PostgreSQL Básico Oficina 2012

Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntDenis L Presciliano
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntDenis L Presciliano
 
Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01julianabdpaiva
 
Escalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIEscalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIMatheus Espanhol
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmGuilherme Blanco
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopAlexei Znamensky
 
PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfArleiEvaristo
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Carlos Duarte do Nascimento
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineCampus Party Brasil
 
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports  Tecnicas de geracao_de_relatorios1JasperReports  Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1Sliedesharessbarbosa
 
Minicurso PostgreSQL
Minicurso PostgreSQLMinicurso PostgreSQL
Minicurso PostgreSQLDiogo Biazus
 
pgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQLpgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQLelliando dias
 
TDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direitoTDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direitoCezinha Anjos
 
Mini-Curso de MongoDB
Mini-Curso de MongoDBMini-Curso de MongoDB
Mini-Curso de MongoDBBrunno Gomes
 
Aula PIT 3 - Ambientes
Aula PIT 3 - AmbientesAula PIT 3 - Ambientes
Aula PIT 3 - AmbientesDirceu Belém
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javJulio Viegas
 
Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017Thiago Barradas
 

Similar to PostgreSQL Básico Oficina 2012 (20)

Maonamassa Pga
Maonamassa PgaMaonamassa Pga
Maonamassa Pga
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
 
Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01
 
Escalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIEscalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool II
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl Workshop
 
PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdf
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Implementação de
Implementação de Implementação de
Implementação de
 
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports  Tecnicas de geracao_de_relatorios1JasperReports  Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1
 
Minicurso PostgreSQL
Minicurso PostgreSQLMinicurso PostgreSQL
Minicurso PostgreSQL
 
pgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQLpgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQL
 
TDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direitoTDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direito
 
Mini-Curso de MongoDB
Mini-Curso de MongoDBMini-Curso de MongoDB
Mini-Curso de MongoDB
 
Aula PIT 3 - Ambientes
Aula PIT 3 - AmbientesAula PIT 3 - Ambientes
Aula PIT 3 - Ambientes
 
Mongodb workshop cinlug
Mongodb workshop cinlugMongodb workshop cinlug
Mongodb workshop cinlug
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_jav
 
Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017
 

More from Fabrízio Mello

PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisPHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisFabrízio Mello
 
Bad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de DadosBad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de DadosFabrízio Mello
 
URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...
URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...
URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...Fabrízio Mello
 
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...Fabrízio Mello
 
GSoC2014 - PGDay Ijui/RS Presentation October, 2016
GSoC2014 - PGDay Ijui/RS Presentation October, 2016 GSoC2014 - PGDay Ijui/RS Presentation October, 2016
GSoC2014 - PGDay Ijui/RS Presentation October, 2016 Fabrízio Mello
 
GSoC2014 - PGCon2015 Presentation June, 2015
GSoC2014 - PGCon2015 Presentation June, 2015GSoC2014 - PGCon2015 Presentation June, 2015
GSoC2014 - PGCon2015 Presentation June, 2015Fabrízio Mello
 
GSoC2014 - Uniritter Presentation May, 2015
GSoC2014 - Uniritter Presentation May, 2015GSoC2014 - Uniritter Presentation May, 2015
GSoC2014 - Uniritter Presentation May, 2015Fabrízio Mello
 
PROCERGS 2015-03-25: Bad Smells em Bancos de Dados
PROCERGS 2015-03-25: Bad Smells em Bancos de DadosPROCERGS 2015-03-25: Bad Smells em Bancos de Dados
PROCERGS 2015-03-25: Bad Smells em Bancos de DadosFabrízio Mello
 
Tutorial Database Refactoring
Tutorial Database RefactoringTutorial Database Refactoring
Tutorial Database RefactoringFabrízio Mello
 
Sharing Code and Experiences
Sharing Code and ExperiencesSharing Code and Experiences
Sharing Code and ExperiencesFabrízio Mello
 
NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)
NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)
NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)Fabrízio Mello
 
Software Delivery Like a Boss
Software Delivery Like a BossSoftware Delivery Like a Boss
Software Delivery Like a BossFabrízio Mello
 
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)Fabrízio Mello
 
Dojo PHP (treinanto programação orientada a objetos em PHP)
Dojo PHP (treinanto programação orientada a objetos em PHP)Dojo PHP (treinanto programação orientada a objetos em PHP)
Dojo PHP (treinanto programação orientada a objetos em PHP)Fabrízio Mello
 
Bad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de DadosBad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de DadosFabrízio Mello
 
EXPLicando o Explain no PostgreSQL
EXPLicando o Explain no PostgreSQLEXPLicando o Explain no PostgreSQL
EXPLicando o Explain no PostgreSQLFabrízio Mello
 
Planejador de Consultas do PostgreSQL
Planejador de Consultas do PostgreSQLPlanejador de Consultas do PostgreSQL
Planejador de Consultas do PostgreSQLFabrízio Mello
 
Database Refactoring com PostgreSQL PGDay RS 2009
Database Refactoring com PostgreSQL PGDay RS 2009Database Refactoring com PostgreSQL PGDay RS 2009
Database Refactoring com PostgreSQL PGDay RS 2009Fabrízio Mello
 
Refatoração Banco de Dados (Agileweekend2009)
Refatoração Banco de Dados (Agileweekend2009)Refatoração Banco de Dados (Agileweekend2009)
Refatoração Banco de Dados (Agileweekend2009)Fabrízio Mello
 

More from Fabrízio Mello (20)

PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisPHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
 
Bad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de DadosBad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de Dados
 
URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...
URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...
URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...
 
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
 
GSoC2014 - PGDay Ijui/RS Presentation October, 2016
GSoC2014 - PGDay Ijui/RS Presentation October, 2016 GSoC2014 - PGDay Ijui/RS Presentation October, 2016
GSoC2014 - PGDay Ijui/RS Presentation October, 2016
 
GSoC2014 - PGCon2015 Presentation June, 2015
GSoC2014 - PGCon2015 Presentation June, 2015GSoC2014 - PGCon2015 Presentation June, 2015
GSoC2014 - PGCon2015 Presentation June, 2015
 
GSoC2014 - Uniritter Presentation May, 2015
GSoC2014 - Uniritter Presentation May, 2015GSoC2014 - Uniritter Presentation May, 2015
GSoC2014 - Uniritter Presentation May, 2015
 
PROCERGS 2015-03-25: Bad Smells em Bancos de Dados
PROCERGS 2015-03-25: Bad Smells em Bancos de DadosPROCERGS 2015-03-25: Bad Smells em Bancos de Dados
PROCERGS 2015-03-25: Bad Smells em Bancos de Dados
 
Tutorial Database Refactoring
Tutorial Database RefactoringTutorial Database Refactoring
Tutorial Database Refactoring
 
Sharing Code and Experiences
Sharing Code and ExperiencesSharing Code and Experiences
Sharing Code and Experiences
 
NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)
NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)
NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)
 
Software Delivery Like a Boss
Software Delivery Like a BossSoftware Delivery Like a Boss
Software Delivery Like a Boss
 
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
 
Dojo PHP (treinanto programação orientada a objetos em PHP)
Dojo PHP (treinanto programação orientada a objetos em PHP)Dojo PHP (treinanto programação orientada a objetos em PHP)
Dojo PHP (treinanto programação orientada a objetos em PHP)
 
Dojo plpgsql
Dojo plpgsqlDojo plpgsql
Dojo plpgsql
 
Bad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de DadosBad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de Dados
 
EXPLicando o Explain no PostgreSQL
EXPLicando o Explain no PostgreSQLEXPLicando o Explain no PostgreSQL
EXPLicando o Explain no PostgreSQL
 
Planejador de Consultas do PostgreSQL
Planejador de Consultas do PostgreSQLPlanejador de Consultas do PostgreSQL
Planejador de Consultas do PostgreSQL
 
Database Refactoring com PostgreSQL PGDay RS 2009
Database Refactoring com PostgreSQL PGDay RS 2009Database Refactoring com PostgreSQL PGDay RS 2009
Database Refactoring com PostgreSQL PGDay RS 2009
 
Refatoração Banco de Dados (Agileweekend2009)
Refatoração Banco de Dados (Agileweekend2009)Refatoração Banco de Dados (Agileweekend2009)
Refatoração Banco de Dados (Agileweekend2009)
 

PostgreSQL Básico Oficina 2012

  • 1. Latinoware 2012 Oficina PostgreSQL Básico Fabrízio de Royes Mello fabriziomello@gmail.com @fabriziomello http://www.postgresql.org.br http://listas.postgresql.org.br
  • 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. Agenda  Introdução  Preparação do Servidor  Manipulando Bancos de Dados
  • 4. Ambiente Oficina  Ubuntu 12.04  PostgreSQL 9.2
  • 5. Introdução  Breve Histórico  Arquitetura do PostgreSQL
  • 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. 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
  • 9. Preparação Servidor  Instalação e Configuração  Usuário ”postgres” sistema Operacional  Entendendo e Trabalhando com Clusters  Iniciando/Parando o Servidor PostgreSQL Fonte: Manoel Pimental Medeiros - visaoagil.wordpress.com
  • 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. 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. 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. 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. 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. 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. Manipulando Bancos de Dados  Criando um Banco de Dados  Banco de Dados Template  Removendo Banco de Dados  Localização Física no Sistema de Arquivos Fonte: Manoel Pimental Medeiros - visaoagil.wordpress.com
  • 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. 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. 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. 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. 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. 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. Dúvidas/Críticas/Sugestões!!! Fabrízio de Royes Mello fabriziomello@gmail.com http://fabriziomello.blogspot.com