oficina postgresql básico latinoware 2012
DESCRIPTION
Oficina Básica de PostgreSQL ministrada no Latinoware 2012TRANSCRIPT
![Page 1: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/1.jpg)
Latinoware 2012Oficina PostgreSQL Básico
Fabrízio de Royes [email protected]
@fabriziomello
http://www.postgresql.org.brhttp://listas.postgresql.org.br
![Page 2: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/2.jpg)
Apresentação
Fabrízio de Royes Mello ([email protected])
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
![Page 3: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/3.jpg)
Agenda
Introdução Preparação do Servidor Manipulando Bancos de Dados
![Page 4: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/4.jpg)
Ambiente Oficina
Ubuntu 12.04 PostgreSQL 9.2
![Page 5: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/5.jpg)
Introdução
Breve Histórico Arquitetura do PostgreSQL
![Page 6: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/6.jpg)
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
![Page 7: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/7.jpg)
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
![Page 8: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/8.jpg)
Arquitetura
![Page 9: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/9.jpg)
Fonte: Manoel Pimental Medeiros - visaoagil.wordpress.com
Preparação Servidor
Instalação e Configuração Usuário ”postgres” sistema Operacional Entendendo e Trabalhando com Clusters Iniciando/Parando o Servidor PostgreSQL
![Page 10: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/10.jpg)
Instalação e Configuração
Repositórios Ubuntu 12.04$ sudo s (senha latinoware2012)
$ addaptrepository ppa:pitti/postgresql
$ aptget update
$ aptget install postgresql9.2
Verificando se as coisas estão OK!$ pg_lsclusters
Listar Bases de Dados$ psql U postgres l
Oops... erro autenticação!!!!
![Page 11: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/11.jpg)
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/postgresql9.2 reload
Listar Bases de Dados (novamente)$ psql U postgres l (gravem isso!!)
Agora sim!!!!
![Page 12: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/12.jpg)
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'
![Page 13: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/13.jpg)
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
![Page 14: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/14.jpg)
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
![Page 15: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/15.jpg)
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
![Page 16: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/16.jpg)
Fonte: Manoel Pimental Medeiros - visaoagil.wordpress.com
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
![Page 17: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/17.jpg)
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
![Page 18: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/18.jpg)
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 latino2http://www.postgresql.org/docs/9.2/static/manage-ag-templatedbs.html
![Page 19: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/19.jpg)
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
![Page 20: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/20.jpg)
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;
![Page 21: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/21.jpg)
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
![Page 22: Oficina PostgreSQL Básico Latinoware 2012](https://reader034.vdocuments.mx/reader034/viewer/2022052410/55625332d8b42aa52d8b51f9/html5/thumbnails/22.jpg)
Algumas Referências!
Nacionaishttp://www.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Internacionaishttp://www.postgresql.org (Site oficial)
http://www.postgresql.org/community/lists/