Oficina postgresql basico_consegi2010

Embed Size (px)

Citation preview

  • 1. CONSEGI 2010 Oficina PostgreSQL Bsico Fabrzio de Royes Mello [email_address]

2. Apresentao

  • Fabrzio de Royes Mello ( [email_address] )

3. Gerente de Tecnologia 4. Bacharel em Informtica pela URCAMP 5. Experincia Profissional

  • 5 anos como Gerente de CPD Prefeitura

6. DBSeller desde 2005 7. Desenvolvimento de Software desde 1993 8. Experincia em PostgreSQL desde 1999 9. Experincia em PHP desde 2002 10. Desenvolvedor do Software Pblico e-cidade 11. Agenda

  • Introduo

12. Preparao do Servidor 13. Manipulando Bancos de Dados 14. Ambiente Oficina

  • Ubuntu 10.04 Desktop

15. PostgreSQL 8.4 16. Introduo

  • Breve Histrico

17. Arquitetura do PostgreSQL 18. Breve Histrico

  • Antes :Oriundo do INGRES

19. 1986: Incio Projeto (Berkley) 20. 1987: Primeira verso do Postgres 21. 1991: verso 3 com principais funcionalidades atuais 22. 1993: verso 4.2, ltima lanada pela Berkley 23. 1994: Andrew Yu e Jolly Chen lanam Postgre95 com interpretador para linguagem SQL 24. 1997: Nome muda para PostgreSQL, verso 6 lanada 25. 2000: verso 7 lanada com suporte a FK 26. 2005: verso 8 lanada com verso nativa Windows, Tablespaces, Savepoints, Point-In-Time-Recovery 27. 2005: verso 8.1 Commit Tho Phases, Roles 28. 2006: verso 8.2 (Insert, Update, Delete) Returning, melhora performance OLTP e BI 29. 2008: verso 8.3 debug PL/PgSQL, Tsearch2(XML) no core 30. 2009: verso 8.4 Windowing Functions, Common Table Expressions and Recursive Queries, Parallel Restore, pg_upgrade 31. 2010: verso 9.0 (beta 4) Hot Standby and Streaming Replication 32. Arquitetura

  • Modelo Cliente/Servidor
  • Processo Servidor (postgres)

33. Aplicao Cliente (text, gui, web, etc) Faz uma cpia (fork) do processo servidor para cada conexo cliente 34. Processos auxiliares

  • Writer

35. Wal Writer 36. Autovacuum 37. Stats Collector 38. Arquitetura 39. Fonte: Manoel Pimental Medeiros - visaoagil.wordpress.com Preparao Servidor

  • Instalao e Configurao

40. Usurio postgres sistema Operacional 41. Entendendo e Trabalhando com Clusters 42. Iniciando/Parando o Servidor PostgreSQL 43. Instalao e Configurao

  • Repositrios Ubuntu 10.04
  • $ su serpro(senha no quadro)

44. $ sudo apt-get install postgresql-8.4 Verificando se as coisas esto OK!

  • $ pg_lsclusters

Listar Bases de Dados

  • $ psql -U postgres -l

45. Oops... erro autenticao!!!! 46. Instalao e Configurao

  • Configurar pg_hba.conf
  • $ sudo vim /etc/postgresql/8.4/main/pg_hba.conf

47. Trocar ident e md5 por trust e salvar 48. $ sudo /etc/init.d/postgresql-8.4 reload Listar Bases de Dados (novamente)

  • $ psql -U postgres -l( gravem isso !!)

49. Agora sim!!!! 50. Usurio postgres S.O.

  • Encapsular atividades em um nico usurio
  • Usurio postgres que executa binrios

51. Arquivos de configurao e datafiles tem owner e group = postgres Uma breve verificao

  • $ ls -al/etc/postgresql/8.4/main

52. $ ls -al/var/lib/postgresql/8.4 53. $ ps aux | egrep '^postgres' 54. Entendendo e Trabalhando com Clusters

  • Cluster = agrupamento de bancos de dados

55. Gerenciado por um processo servidor" 56. Listar clusters(debian based - pg_common)

  • $ pg_lsclusters

Criar clusters(debian based - pg_common)

  • $ pg_createcluster

http://www.postgresql.org/docs/8.4/static/app-initdb.html 57. Apagar clusters(debian based - pg_common)

  • $ pg_dropcluster

58. Entendendo e Trabalhando com Clusters

  • Exerccio
  • Criar um cluster chamado consegi

59. Criar um cluster chamado oficina 60. Configurar autenticao clusters (pg_hba.conf) 61. Listar clusters 62. Apagar cluster oficina Respostas 63. $ sudo pg_createcluster 8.4 consegi 64. $ sudo pg_createcluster 8.4 oficina 65. $ sudo vim /etc/postgresql/8.4/**/pg_hba.conf 66. $ pg_lsclusters 67. $ sudo pg_dropcluster --stop 8.4 oficina 68. Iniciando/ParandoServidor PostgreSQL

  • Iniciando Servidor
  • $ sudo /etc/init.d/postgresql-8.4 start

Parando Servidor

  • $ sudo /etc/init.d/postgresql-8.4 stop

Reiniciando Servidor

  • $ sudo /etc/init.d/postgresql-8.4 restart

Recarregando Configuraes

  • $ sudo /etc/init.d/postgresql-8.4 reload

http://www.postgresql.org/docs/8.4/static/app-pg-ctl.html 69. Fonte: Manoel Pimental Medeiros - visaoagil.wordpress.com ManipulandoBancos de Dados

  • Criando um Banco de Dados

70. Banco de Dados Template 71. Removendo Banco de Dados 72. Localizao Fsica no Sistema de Arquivos 73. Criando um Banco de Dados

  • Utilitrio createdb
  • $ createdb -U postgres consegi1

http://www.postgresql.org/docs/8.4/static/app-createdb.html 74. SQL CREATE DATABASE

  • $ psql -U postgres

75. postgres=# CREATE DATABASE consegi1; http://www.postgresql.org/docs/8.4/static/sql-createdatabase.html 76. Banco de Dados Template

  • Template = Banco de Dados Modelo

77. CREATE DATABASE, atualmente, copia uma base de dados existente, por padro template1 78. Existe outro banco template chamado template0 que um banco virgem 79. Criando ou banco por template

  • $ createdb -U postgres -T consegi1 consegi2

http://www.postgresql.org/docs/8.4/static/manage-ag-templatedbs.html 80. RemovendoBancos de Dados

  • Utilitrio dropdb
  • $ createdb -U postgres consegi2

http://www.postgresql.org/docs/8.4/static/app-dropdb.html 81. SQL DROP DATABASE

  • $ psql -U postgres

82. postgres=# DROP DATABASE consegi2; http://www.postgresql.org/docs/8.4/static/sql-dropdatabase.html 83. Localizao Fsica no Sistema de Arquivos

  • Cluster
  • $ psql -U postgres

84. postgres=# SHOW data_directory Configuraes

  • $ psql -U postgres

85. postgres=# SHOW config_file; 86. postgres=# SHOW hba_file; 87. Exerccios

  • Criar / Apagar Cluster

88. Criar Banco de Dados 89. Criar Banco usando anterior como template 90. Dica: Mudar cluster atual da sesso

  • export PGCLUSTER=8.4/nome_do_cluster

91. Algumas Referncias!

  • Nacionais

92. http://www.postgresql.org.br 93. https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 94. Internacionais 95. http://www.postgresql.org ( Site oficial ) 96. http://www.postgresql.org/community/lists/ 97. Dvidas/Crticas/Sugestes!!! Fabrzio de Royes Mello [email_address] http://fabriziomello.blogspot.com