Transcript
Page 1: Oficina PostgreSQL Básico Latinoware 2012

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

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

Agenda

Introdução Preparação do Servidor Manipulando Bancos de Dados

Page 4: Oficina PostgreSQL Básico Latinoware 2012

Ambiente Oficina

Ubuntu 12.04 PostgreSQL 9.2

Page 5: Oficina PostgreSQL Básico Latinoware 2012

Introdução

Breve Histórico Arquitetura do PostgreSQL

Page 6: Oficina PostgreSQL Básico Latinoware 2012

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

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

Arquitetura

Page 9: Oficina PostgreSQL Básico Latinoware 2012

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

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!!!!

Page 11: Oficina PostgreSQL Básico Latinoware 2012

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!!!!

Page 12: Oficina PostgreSQL Básico Latinoware 2012

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

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

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

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

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

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

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

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

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

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

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/

Page 23: Oficina PostgreSQL Básico Latinoware 2012

Dúvidas/Críticas/Sugestões!!!

Fabrízio de Royes [email protected]

http://fabriziomello.blogspot.com


Top Related