PostgreSQL
Conceitos e Aplicações
Agenda
História do PostgreSQL       Tunning
Pontos Fortes                Ambiente OLTP
Pontos Fracos?               Ambien...
História do PostgreSQL
• 1980 início do Ingres pela Berkeley e Computer Associates
• 1986 início do Postgres pela Berkeley...
Pontos Fortes
• Suporte não é exclusivo do fornecedor;
• Desenvolvimento ativo;
• Bugs são realmente conhecidos;
• Boa doc...
Pontos Fracos?
• Não existe suporte corporativo oficial;
• Não existe certificação;
• Não existem boas ferramentas gráfica...
(algumas) Ferramentas
Ferramenta nativa:
• psql
Ferramentas gráficas de administração:
• pgADMIN III
• PHPpgADMIN
• TORA
•...
SQL e Pl/pgSQL
• Índices: btree, hash, rtree e gist, bitmap (8.2)‫‏‬
• Sequência
• Views (podem receber UPDATE, INSERT e U...
Autenticação
Tipos de autenticação:
• local (usando socket UNIX)‫‏‬
• host (TCP/IP com ou sem SSL)‫‏‬
• hostssl (TCP/IP co...
Transação
• Possibilidade de usar modo auto-commited
• Uso de controle de multiversão (MMVC) permite acesso simultâneo de
...
Backup
Dump
• Realiza dump consistente com o banco de dados on-line sem bloquear
usuários
• pg_dump gera dump em modo text...
Backup
Cópia do datafile
• Só pode ser realizado com o banco off-line ou com snapshot (através do
SO) de todos tablespaces...
Storage
• Uso de Table Spaces para tabelas e índices
• Cada Table Space define um diretório vazio onde o PostgreSQL cria
a...
Administração
Vacuum
• Recupera espaço em disco utilizado pelo MMVC
• Atualiza estatísticas utilizadas pelo planejador
• E...
Administração
Monitoramento
• Estatísticas e bloqueios no servidor são visíveis em tabelas do catálogo
ou através de funçõ...
Tunning
• Acesso ao código fonte permite otimização para casos especiais
• Compilação permite habilitar ou não característ...
Ambiente OLTP
• MVCC;
• Tablespaces;
• Particionamento de tabelas (melhorias previstas para 8.5);
• Common Tables Expressi...
Ambiente BI
• Índices parciais e com expressões (bitmap previsto para 8.5);
• Visões;
• Copy com suporte a CSV;
• Subconsu...
Ambiente WEB
• Pool de conexões com PGPool;
• XML;
• Suporte a localização e internacionalização;
• Suporte nativo a SSL;
...
Alta Disponibilidade
• Point In Time Recovery;
• Warm Stand By (Hot Stand By previsto para 8.5);
• Hot Backup;
• Slony, PG...
Segurança
• pg_hba.conf;
• Configurações padrões são seguras;
• Dollar Quoting;
• MD5, SHA1;
• Várias opções para criar o ...
Migração
• Aderência ao padrão SQL;
• Existência de funções com sintaxe compatíveis;
• DBI-Link;
• Information Schema;
• o...
Links
•Site oficial: http://www.postgresql.org.br
  • Documentação de todas versões
  • Notícias de lançamentos
  • Downlo...
Bem é isso pessoal!

Dúvidas, sugestões, correções são bem
               vindas!

       Leonardo Medeiros Martins

     ...
Upcoming SlideShare
Loading in …5
×

Conceitoseaplicaes

972 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
972
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Conceitoseaplicaes

  1. 1. PostgreSQL Conceitos e Aplicações
  2. 2. Agenda História do PostgreSQL Tunning Pontos Fortes Ambiente OLTP Pontos Fracos? Ambiente BI (algumas) Ferramentas Ambiente WEB SQL e PL/pgSQL Alta Disponibilidade Autenticação Segurança Transação Migração Backup Links Storage Administração
  3. 3. História do PostgreSQL • 1980 início do Ingres pela Berkeley e Computer Associates • 1986 início do Postgres pela Berkeley • 1987 primeira versão do Postgres • 1989 liberação para usuários restritos da versão 1 • 1991 versão 3 com as principais funcionalidades atuais. • 1993 versão 4.2, última lançada pela Berkeley • 1994 Andrew Yu e Jolly Chen criaram a versão conhecida como Postgre95 (versão 5) com interpretador para a linguagem SQL. • 1997 nome do projeto muda para PostgreSQL, a versão 6 é lançada • 2000 versão 7 lançada com suporte a Foreign Key • 2005 versão 8 lançada com versão nativa (sem uso do CYGWIN) para Windows, TABLESPACES, SAVEPOINTS, POINT-IN-TIME-RECOVERY. etc.
  4. 4. Pontos Fortes • Suporte não é exclusivo do fornecedor; • Desenvolvimento ativo; • Bugs são realmente conhecidos; • Boa documentação; • Bom suporte da comunidade; • Conformidade total com ACID; • Conformidade com SQL; • Extensível ; • Multi-plataforma;
  5. 5. Pontos Fracos? • Não existe suporte corporativo oficial; • Não existe certificação; • Não existem boas ferramentas gráficas; • Não é estável; • Instável em Windows; • Baixa performance (lento); • Não tem uma campanha de marketing agressiva.
  6. 6. (algumas) Ferramentas Ferramenta nativa: • psql Ferramentas gráficas de administração: • pgADMIN III • PHPpgADMIN • TORA • pgACCESS Ferramentas de modelagem: • Data Architect • Erwin • Case Studio
  7. 7. SQL e Pl/pgSQL • Índices: btree, hash, rtree e gist, bitmap (8.2)‫‏‬ • Sequência • Views (podem receber UPDATE, INSERT e UPDATE através de RULES)‫‏‬ • Domínios • Esquemas (podem estar atrelados ou não aos usuários)‫‏‬ • Tipos de dados • Funções • Funções de agragação • Funções de operadores • Funções de conversão de caracteres • Funções de conversão de tipo de dados • Funções de utilização de índices • Trigger, Constraint Trigger
  8. 8. Autenticação Tipos de autenticação: • local (usando socket UNIX)‫‏‬ • host (TCP/IP com ou sem SSL)‫‏‬ • hostssl (TCP/IP com SSL)‫‏‬ • hostnossl (TCP/IP sem SSL)‫‏‬ Métodos de autenticação: • TRUST (aceita incondicionalmente)‫‏‬ • REJECT (rejeita incondicionalmente)‫‏‬ • md5 • crypt • password (texto puro)‫‏‬ • Kerberos v4 e v5 • ident • PAM
  9. 9. Transação • Possibilidade de usar modo auto-commited • Uso de controle de multiversão (MMVC) permite acesso simultâneo de leitura e escrita utilizando um snapshot separado • Uso de isolamento Read Commited ou Serializable • Possibilidade de utilizar Lock explícito do tipo Acces Share, Row Share, Row Exclusive, Share Update Exclusive, Share, Share Row Exclusive, Exclusive e Access Exclusive. • Facilita a manutenção do sistema pois quando um domínio é alterado, todos campos baseados nele são alterados automaticamente. • Transação pode utilizar SAVEPOINT para retornar a transação até pontos específicos.
  10. 10. Backup Dump • Realiza dump consistente com o banco de dados on-line sem bloquear usuários • pg_dump gera dump em modo texto (em formato SQL), binário e compactado por GZIP. • Podem ser selecionados parte dos objetos na exportação ou importação como permissões, dados, esquemas, etc. • Um dump pode ser exportado ou compactado diretamente para outro banco utilizando pipe! • Objetos binários só podem ser exportados no modo binário.
  11. 11. Backup Cópia do datafile • Só pode ser realizado com o banco off-line ou com snapshot (através do SO) de todos tablespaces e log (WAL) simultaneamente. Cópia do datafile + cópia de log (WAL)‫‏‬ • Permite a cópia dos datafiles com o banco de dados on-line sem o uso de snapshot. • Permite a recuperação uma data e hora específica ou até o a realização de determinada transação. • Permite o controle de históricos paralelos de recuperações até um ponto específico. • Necessita de espaço para arquivamento do WAL a partir da realização da última cópia dos datafiles. • Permite a criação de um Stand By em outro servidor.
  12. 12. Storage • Uso de Table Spaces para tabelas e índices • Cada Table Space define um diretório vazio onde o PostgreSQL cria arquivos automaticamente. Estes diretórios são ligados por links simbólicos • Área para catálogo do sistema e armazenamento temporário é definido na criação do Cluster e não pode ser modificado • Mecanismo TOAST gerencia o armazenamento de tabelas com mais de 1GB e colunas de comprimento variável. • Colunas de tamanho variável podem ser comprimidas ou não e armazenadas em arquivo separado da tabela ou não.
  13. 13. Administração Vacuum • Recupera espaço em disco utilizado pelo MMVC • Atualiza estatísticas utilizadas pelo planejador • Estatísticas podem ser diferenciadas para colunas específicas de tabelas • Previne reinicio no id de transações • Pode ser executado com o Banco de Dados on-line com ajustes no impacto de desempenho. • Pode ser automatizado
  14. 14. Administração Monitoramento • Estatísticas e bloqueios no servidor são visíveis em tabelas do catálogo ou através de funções. • Quantidade de estatísticas coletadas pode ser alterada para todo o servidor ou para seções específicas. • Espaço em disco ocupado por tabelas e índices podem ser monitorados através de tabelas do catálogo ou através da ferramenta oid2toname
  15. 15. Tunning • Acesso ao código fonte permite otimização para casos especiais • Compilação permite habilitar ou não características que afetam o desempenho • postgresql.conf possui vários parâmetros que controlam: • o uso de memória • uso de recursos do sistema • localização de arquivos • conexão e autenticação • uso do VACUUM • escrita em segundo plano • WAL e pontos de controle • local, quantidade de informações e formato de log • uso de índices, controle de custo, e otimizador genético controle de coleta de estatísticas do servidor • Parâmetros de postgresql.conf podem ser alterados reiniciando o servidor, ou podem ser personalizados para um Banco de Dados, secção ou usuário específico.
  16. 16. Ambiente OLTP • MVCC; • Tablespaces; • Particionamento de tabelas (melhorias previstas para 8.5); • Common Tables Expressions e recursividade; • PL/Proxy (Cluster Shared Nothing)‫‏‬ • Gatilhos; • PL/pgSQL, PL/Python, PL/Perl, PL/Tcl, ... • Sequências; • Suporte a Kerberos, LDAP, etc.
  17. 17. Ambiente BI • Índices parciais e com expressões (bitmap previsto para 8.5); • Visões; • Copy com suporte a CSV; • Subconsultas; • Windowing Functions; • PGPool II; • Visões Materializadas (previsto para 8.5)‫‏‬
  18. 18. Ambiente WEB • Pool de conexões com PGPool; • XML; • Suporte a localização e internacionalização; • Suporte nativo a SSL; • Full Text Search
  19. 19. Alta Disponibilidade • Point In Time Recovery; • Warm Stand By (Hot Stand By previsto para 8.5); • Hot Backup; • Slony, PGPool, PGCluster, etc;
  20. 20. Segurança • pg_hba.conf; • Configurações padrões são seguras; • Dollar Quoting; • MD5, SHA1; • Várias opções para criar o usuário; • Uso de visões, gatilhos e funções para limitar acesso a dados; • SE PostgreSQL; • Várias opções de logs;
  21. 21. Migração • Aderência ao padrão SQL; • Existência de funções com sintaxe compatíveis; • DBI-Link; • Information Schema; • ora2pg, my2pg, dbf2pg, etc.
  22. 22. Links •Site oficial: http://www.postgresql.org.br • Documentação de todas versões • Notícias de lançamentos • Download do código fonte • Listas de discussão • Projetos relacionados: http://gborg.postgresql.org • Outros projetos: http://pgfoundry.org/ • Diretório Contrib no código-fonte
  23. 23. Bem é isso pessoal! Dúvidas, sugestões, correções são bem vindas! Leonardo Medeiros Martins www.dbtn.com.br leonardo@dbtn.com.br

×