Oficina postgresql basico_consegi2010

2,552 views
2,459 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,552
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
69
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Oficina postgresql basico_consegi2010

  1. 1. CONSEGI 2010 Oficina PostgreSQL Básico Fabrízio de Royes Mello [email_address]
  2. 2. Apresentação <ul><li>Fabrízio de Royes Mello ( [email_address] )
  3. 3. Gerente de Tecnologia
  4. 4. Bacharel em Informática pela URCAMP
  5. 5. Experiência Profissional </li><ul><li>5 anos como Gerente de CPD Prefeitura
  6. 6. DBSeller desde 2005
  7. 7. Desenvolvimento de Software desde 1993
  8. 8. Experiência em PostgreSQL desde 1999
  9. 9. Experiência em PHP desde 2002
  10. 10. Desenvolvedor do Software Público e-cidade </li></ul></ul>
  11. 11. Agenda <ul><li>Introdução
  12. 12. Preparação do Servidor
  13. 13. Manipulando Bancos de Dados </li></ul>
  14. 14. Ambiente Oficina <ul><li>Ubuntu 10.04 Desktop
  15. 15. PostgreSQL 8.4 </li></ul>
  16. 16. Introdução <ul><li>Breve Histórico
  17. 17. Arquitetura do PostgreSQL </li></ul>
  18. 18. Breve Histórico <ul><li>Antes : Oriundo do INGRES
  19. 19. 1986 : Início Projeto (Berkley)
  20. 20. 1987 : Primeira versão do Postgres
  21. 21. 1991 : versão 3 com principais funcionalidades atuais
  22. 22. 1993 : versão 4.2, última lançada pela Berkley
  23. 23. 1994 : Andrew Yu e Jolly Chen lançam Postgre95 com interpretador para linguagem SQL
  24. 24. 1997 : Nome muda para PostgreSQL, versão 6 lançada
  25. 25. 2000 : versão 7 lançada com suporte a FK
  26. 26. 2005 : versão 8 lançada com versão nativa Windows, Tablespaces, Savepoints, Point-In-Time-Recovery
  27. 27. 2005 : versão 8.1 Commit Tho Phases, Roles
  28. 28. 2006 : versão 8.2 (Insert, Update, Delete) Returning, melhora performance OLTP e BI
  29. 29. 2008 : versão 8.3 debug PL/PgSQL, Tsearch2 (XML) no core
  30. 30. 2009 : versão 8.4 Windowing Functions, Common Table Expressions and Recursive Queries, Parallel Restore, ”pg_upgrade”
  31. 31. 2010 : versão 9.0 (beta 4) Hot Standby and Streaming Replication </li></ul>
  32. 32. Arquitetura <ul><li>Modelo Cliente/Servidor </li><ul><li>Processo Servidor (postgres)
  33. 33. Aplicação Cliente (text, gui, web, etc) </li></ul><li>Faz uma cópia (fork) do processo servidor para cada conexão cliente
  34. 34. Processos auxiliares </li><ul><li>Writer
  35. 35. Wal Writer
  36. 36. Autovacuum
  37. 37. Stats Collector </li></ul></ul>
  38. 38. Arquitetura
  39. 39. Fonte: Manoel Pimental Medeiros - visaoagil.wordpress.com Preparação Servidor <ul><li>Instalação e Configuração
  40. 40. Usuário ”postgres” sistema Operacional
  41. 41. Entendendo e Trabalhando com Clusters
  42. 42. Iniciando/Parando o Servidor PostgreSQL </li></ul>
  43. 43. Instalação e Configuração <ul><li>Repositórios Ubuntu 10.04 </li><ul><li>$ su – serpro (senha no quadro)
  44. 44. $ sudo apt-get install postgresql-8.4 </li></ul><li>Verificando se as coisas estão OK! </li><ul><li>$ pg_lsclusters </li></ul><li>Listar Bases de Dados </li><ul><li>$ psql -U postgres -l
  45. 45. Oops... erro autenticação!!!! </li></ul></ul>
  46. 46. Instalação e Configuração <ul><li>Configurar pg_hba.conf </li><ul><li>$ sudo vim /etc/postgresql/8.4/main/pg_hba.conf
  47. 47. Trocar ident e md5 por ”trust” e salvar
  48. 48. $ sudo /etc/init.d/postgresql-8.4 reload </li></ul><li>Listar Bases de Dados (novamente) </li><ul><li>$ psql -U postgres -l ( gravem isso !!)
  49. 49. Agora sim!!!! </li></ul></ul>
  50. 50. Usuário ”postgres” S.O. <ul><li>Encapsular atividades em um único usuário </li><ul><li>Usuário ”postgres” que executa binários
  51. 51. Arquivos de configuração e datafiles tem owner e group = ”postgres” </li></ul><li>Uma breve ”verificação” </li><ul><li>$ ls -al /etc/postgresql/8.4/main
  52. 52. $ ls -al /var/lib/postgresql/8.4
  53. 53. $ ps aux | egrep '^postgres' </li></ul></ul>
  54. 54. Entendendo e Trabalhando com Clusters <ul><li>Cluster = agrupamento de bancos de dados
  55. 55. Gerenciado por um ”processo servidor&quot;
  56. 56. Listar clusters (debian based - pg_common) </li><ul><li>$ pg_lsclusters </li></ul><li>Criar clusters (debian based - pg_common) </li><ul><li>$ pg_createcluster </li></ul><li>http://www.postgresql.org/docs/8.4/static/app-initdb.html
  57. 57. Apagar clusters (debian based - pg_common) </li><ul><li>$ pg_dropcluster </li></ul></ul>
  58. 58. Entendendo e Trabalhando com Clusters <ul><li>Exercício </li><ul><li>Criar um cluster chamado ”consegi”
  59. 59. Criar um cluster chamado ”oficina”
  60. 60. Configurar autenticação clusters (pg_hba.conf)
  61. 61. Listar clusters
  62. 62. Apagar cluster ”oficina” </li></ul><li>Respostas
  63. 63. $ sudo pg_createcluster 8.4 consegi
  64. 64. $ sudo pg_createcluster 8.4 oficina
  65. 65. $ sudo vim /etc/postgresql/8.4/**/pg_hba.conf
  66. 66. $ pg_lsclusters
  67. 67. $ sudo pg_dropcluster --stop 8.4 oficina </li></ul>
  68. 68. Iniciando/Parando Servidor PostgreSQL <ul><li>Iniciando Servidor </li><ul><li>$ sudo /etc/init.d/postgresql-8.4 start </li></ul><li>Parando Servidor </li><ul><li>$ sudo /etc/init.d/postgresql-8.4 stop </li></ul><li>Reiniciando Servidor </li><ul><li>$ sudo /etc/init.d/postgresql-8.4 restart </li></ul><li>Recarregando Configurações </li><ul><li>$ sudo /etc/init.d/postgresql-8.4 reload </li></ul><li>http://www.postgresql.org/docs/8.4/static/app-pg-ctl.html </li></ul>
  69. 69. Fonte: Manoel Pimental Medeiros - visaoagil.wordpress.com Manipulando Bancos de Dados <ul><li>Criando um Banco de Dados
  70. 70. Banco de Dados Template
  71. 71. Removendo Banco de Dados
  72. 72. Localização Física no Sistema de Arquivos </li></ul>
  73. 73. Criando um Banco de Dados <ul><li>Utilitário ”createdb” </li><ul><li>$ createdb -U postgres consegi1 </li></ul><li>http://www.postgresql.org/docs/8.4/static/app-createdb.html
  74. 74. SQL ”CREATE DATABASE” </li><ul><li>$ psql -U postgres
  75. 75. postgres=# CREATE DATABASE consegi1; </li></ul><li>http://www.postgresql.org/docs/8.4/static/sql-createdatabase.html </li></ul>
  76. 76. Banco de Dados Template <ul><li>Template = Banco de Dados Modelo
  77. 77. CREATE DATABASE, atualmente, ”copia” uma base de dados existente, por padrão ”template1”
  78. 78. Existe outro banco template chamado ”template0” que é um ”banco virgem”
  79. 79. Criando ou banco por template </li><ul><li>$ createdb -U postgres -T consegi1 consegi2 </li></ul><li>http://www.postgresql.org/docs/8.4/static/manage-ag-templatedbs.html </li></ul>
  80. 80. Removendo Bancos de Dados <ul><li>Utilitário ”dropdb” </li><ul><li>$ createdb -U postgres consegi2 </li></ul><li>http://www.postgresql.org/docs/8.4/static/app-dropdb.html
  81. 81. SQL ”DROP DATABASE” </li><ul><li>$ psql -U postgres
  82. 82. postgres=# DROP DATABASE consegi2; </li></ul><li>http://www.postgresql.org/docs/8.4/static/sql-dropdatabase.html </li></ul>
  83. 83. Localização Física no Sistema de Arquivos <ul><li>Cluster </li><ul><li>$ psql -U postgres
  84. 84. postgres=# SHOW data_directory </li></ul><li>Configurações </li><ul><li>$ psql -U postgres
  85. 85. postgres=# SHOW config_file;
  86. 86. postgres=# SHOW hba_file; </li></ul></ul>
  87. 87. Exercícios <ul><li>Criar / Apagar Cluster
  88. 88. Criar Banco de Dados
  89. 89. Criar Banco usando anterior como template
  90. 90. Dica: Mudar cluster atual da sessão </li><ul><li>export PGCLUSTER=8.4/nome_do_cluster </li></ul></ul>
  91. 91. Algumas Referências! <ul><li>Nacionais
  92. 92. http://www.postgresql.org.br
  93. 93. https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
  94. 94. Internacionais
  95. 95. http://www.postgresql.org ( Site oficial )
  96. 96. http://www.postgresql.org/community/lists/ </li></ul>
  97. 97. Dúvidas/Críticas/Sugestões!!! Fabrízio de Royes Mello [email_address] http://fabriziomello.blogspot.com

×