PostgreSQL Conceitos e aplicações - FSA
-
Upload
fabio-telles-rodriguez -
Category
Technology
-
view
2.153 -
download
4
description
Palestra realizada em outubro de 2006 na Fundação Santo André sobre conceitos básicos de PostgreSQL
Transcript of PostgreSQL Conceitos e aplicações - FSA
- 1. Fernando Ike Fbio Telles PostgreSQLConceitos e aplicaes
2. Agenda
- Conceitos e Aplicaes
- Histrico - Caractersticas - Ferramentas - Instalao - Objetos
- Autenticao
- Localizao
- Transaes
- Backup
- Storage
- Administrao
- Tunning
- Comunidade
3. Histrico
- 1980 inicio do Ingres pela Berkeley e Computer Associates
- 1986 inicio do Postgres pela Berkeley
- 1987 primeira verso do Postgres
- 1989 liberao para usurios restritos da verso 1
- 1991 verso 3com as principais funcionalidades atuais.
- 1993 verso 4.2, ltima lanada pela Berkeley
- 1994 Andrew Yu e Jolly Chen criaram a verso conhecida como Postgre95 (verso 5) com interpretador para a linguagem SQL.
- 1997 nome do projeto muda para PostgreSQL, a verso 6 lanada
- 2000 verso 7 lanada com suporte a Foreign Key
- 2005 verso 8 lanada com verso nativa (sem uso do CYGWIN) para Windows, TABLESPACES, SAVEPOINTS, POINT-IN-TIME-RECOVERY. etc.
- 2005 em verso 8.1 Commit Two Phases, Autovacuum, Roles
- 2006 em verso 8.2 Novembro lanamento
4. Caractersticas
- Melhor suporte: independente do fornecedor
- Baixo custo de manuteno e tunning
- Alta estabilidade
- Extensibilidade: pode ser customisado com funes, tipos ou atravs acesso ao cdigo fonte. Extenses na pasta /contrib
- Flexibilidade: roda em vrias plataformas (inclusive BSD)
- Robusto: criado para suportar grande volume de dados e transaes concorrentes.
- Controle de transaes utilizando MVCC ou Locks explcitos
- Compatvel com ANSI SQL
- Funes em SQL, C, C ++ , PLpg/SQL, PL/Perl, PL/Python, PL/TCL suportadas nativamente alm dePL/Java, PL/PHP, PL/R, PL/Ruby, PL/sh, PL/Mono.
5. (algumas) Ferramentas
- Ferramenta nativa:
- psql
- Ferramentas grficas de administrao:
- pgADMIN III
- PHPpgADMIN
- TORA
- pgACCESS
- Ferramentas de modelagem:
- Data Architect
- Erwin
- Case Studio
6. Uso do psql
- Parmetros ao invocar o psql:
- -U : usurio que se conectar ao banco
- -h : local onde o Banco de Dados se conectar
- Comandos utilizados dentro do psql:
- ? ajuda para comandos do psql
- h ajuda para sintaxe SQL
- d lista objetos existentes
- i executa arquivo SQL
- l lista bancos de dados disponveis
- q sair
7. Instalao
- Adquirir cdigo-fonte
- Compilar (estabelece alguns parmetros intrnsecos)
- Criar usurio 'postgres'
- Criar cluster (estabelece local padro de dados, localizao e codificao)
- Iniciar o postmaster
- Criar um banco de dados (estabelece variveis de desempenho, localizao e codificao)
- Teste com psql
- Configurao de path e inicializao
- Configurao do controle de acesso
8. Objetos SQL
- ndices: btree, hash, rtree e gist, bitmap (8.2)
- Sequencias
- Views (podem receber UPDATE, INSERT e UPDATE atravs de RULES)
- Domnios
- Esquemas (podem estar atrelados ou no aos usurios)
- Tipos de dados
- Funes
- Funes de agragao
- Funes de operadores
- Funes de converso de caracteres
- Funes de converso de tipo de dados
- Funes de utilizao de ndices
- Trigger, Constraint Trigger
9. Autenticao
- Tipos de autenticao:
- local (usando socket UNIX)
- host (TCP/IP com ou sem SSL)
- hostssl (TCP/IP com SSL)
- hostnossl (TCP/IP sem SSL)
- Mtodos de autenticao:
- TRUST (aceita incondicionalmente)
- REJECT (rejeita incondicionalmente)
- md5
- crypt
- password (texto puro)
- Kerberos v4 e v5
- ident
- PAM
10. Localizao
- Suporte a localizao:
- Ordenao de strings
- Idioma de mensagens
- Formatao de quantias monetrias
- Formatao de nmeros
- Formatao de data e hora
- Suporte a conjunto de caracteres:
- Suporte a ASCII, ISO, EUC, MULE, UTF8
- Converso automtica de codificao no servidor e cliente.
11. Transaes
- Possibilidade de usar modo auto-commited
- Uso de controle de multiverso (MMVC) permite acesso simuntneo de leitura e escrita utilizando um snapshot separado
- Uso de isolamentoRead CommitedouSerializable
- Possibilidade de utilizarLockexplcito do tipo Acces Share, Row Share, Row Exclusive, Share Update Exclusive, Share, Share Row Exclusive, Exclusive e Access Exclusive.
- Facilita a manuteno do sistema pois quando um domnio alterado, todos campos baseados nele so alterados autimticamente.
- Transao pode utilizar SAVEPOINT para retornar a trasao at pontos especficos.
12. Backup
- Dump
- Realiza dump consistente com o banco de dados on-line sem bloquear usurios
- pg_dump gera dump em modo texto (em formato SQL), binrio e compactado por GZIP.
- Podem ser selecionados parte dos objetos na exportao ou importao como permisses, dados, esquemas, etc.
- um dump pode ser exportado ou compactado diretamente para outro banco utilizando pipe!
- Objetos binrios s podem ser exportados no modo binrio.
13. Backup
- Cpia do datafile
- S pode ser realizado com o banco off-line ou com snapshot (atravs do SO) de todos tablespaces e log (WAL) simultaneamente.
- Cpia do datafile + cpia de log (WAL)
- Permite a cpia dos datafiles com o banco de dados on-line sem o uso de snapshot.
- Permite a recuperao uma data e hora especfica ou at o a realizao de determinada transao.
- Permite o controle de histricos paralelos de recuperaes at um ponto especfico.
- Necessita de espao para arquivamento do WAL a partir da realizao da ltima cpia dos datafiles.
- Permite a criao de um Stand By em outro servidor.
14. Storage
- Uso de Table Spaces para tabelas e ndices
- Cada Table Space define um diretrio vazio onde o PostgreSQL cria arquivos automaticamente. Estes diretrios so ligados por links simblicos
- rea para catlogo do sistema e armazenamento temporrio definido na criao do Cluster e no pode ser modificado
- Mecanismo TOAST gerencia o armazenamento de tabelas com mais de 1GB e colunas de comprimento varivel.
- Colunas de tamanho varivel podem ser comprimidas ou no e armazenadas em arquivo separado da tabela ou no.
15. Storage
- Limites*:
- Tamanho mximo do Banco de Dados: Ilimitado
- Tamanho mximo de tabela: 32 TB
- Tamanho mximo de linha: 1,6 TB
- Tamanho mximo de campo: 1 GB
- Nmero mximo de linhas por tabela: Ilimitado
- Nmero mximo de colunas por tabela: 250 1600 (dependendo dos tipos de dados utilizados)
- Nmero de ndices por tabela: Ilimitado
- * Estes valores podem variar devido a restries do sistema operacional ou plataforma utilizada
16. Administrao
- Vacuum:
- Recupera espao em disco utilizado pelo MMVC
- Atualiza estatsticas utilizadas pelo planejador
- Estatsticas podem ser diferenciadas para colunas especficas de tabelas
- Previne reinicio no id de transaes
- Pode ser executado com o Banco de Dados on-line com ajustes no impacto de desempenho.
- Pode ser automatizado
17. Administrao
- Monitoramento:
- Estatsticas e bloqueios no servidor so visveis em tabelas do catlogo ou atravs de funes.
- Quantidade de estatsticas coletadas pode ser alterada para todo o servidor ou para sees especficas.
- Espao em disco ocupado por tabelas e ndices podem ser monitorados atravs de tabelas do catlogo ou atravs da ferramenta oid2toname
18. Tunning
- Acesso ao cdigo fonte permite otimizao para casos especiais
- Compilao permite habilitar ou no caratctersticas que afetam o desempenho
- postgresql.conf possui vrios parmetros que controlam:
-
- o uso de memria
-
- uso de recursos do sistema
-
- localizao de arquivos
-
- conexo e autenticao
-
- uso do VACUUM
-
- escrita em segundo plano
-
- WAL e pontos de controle
-
- local, quantidade de informaes e formato de log
-
- uso de ndices, controle de custo, e otimizador gentico
-
- controle de coleta de estatsticas do servidor
-
- Parmetros de postgresql.conf podem ser alterados reiniciando o servidor, ou podem ser personalizados para um Banco de Dados, seco ou usurio especfico.
19. Comunidade
- Site oficial:http://www.postgresql.org
-
- Documentao de todas verses
-
- Notcias de lanamentos
-
- Dowload do cdigo fonte
-
- Listas de discusso
-
- Projetos relacionados:http://gborg.postgresql.org
-
- Outros projetos:http://pgfoundry.org/
-
- Certificao: http://osb.sra.co.jp/postgresql-ce/news_en.html
-
- Diretrio Contrib no cdigo-fonte
-
- Projetos em destaque: GiST, pg_pool, pg_cluster, xml, etc.
-
- Site nacional: http://postgresql.org.br
-
- Canais em irc.freenodes.net:
-
-
- #POSTGRESQL, #POSTGRESQL-BR
-