O documento apresenta uma oficina básica sobre PostgreSQL ministrada por Fabrizio de Royes Mello. A agenda inclui introdução ao PostgreSQL, preparação do servidor, e manipulação de bancos de dados. O público aprenderá sobre instalação, configuração de clusters, criação e remoção de bancos de dados no PostgreSQL.
Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010lucashungaro
Palestra apresentada na RubyConf Brasil 2010 mostrando dicas de bibliotecas úteis para aplicações web escritas em Rails e maneiras para conseguir código flexível, fácil de testar e modificar utilizando SOLID, defensive programming e outras técnicas.
Esta palestra demonstra alguns elementos relacionados à alta disponibilidade com PostgreSQL. São discutidos assuntos como redundância, replicação e utilitários de gerenciamento de ambientes de contingência: log shipping, WAL, streaming replication e outros.
Espero que seja útil, faça uma boa leitura e qualquer dúvida contate-me!
Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010lucashungaro
Palestra apresentada na RubyConf Brasil 2010 mostrando dicas de bibliotecas úteis para aplicações web escritas em Rails e maneiras para conseguir código flexível, fácil de testar e modificar utilizando SOLID, defensive programming e outras técnicas.
Esta palestra demonstra alguns elementos relacionados à alta disponibilidade com PostgreSQL. São discutidos assuntos como redundância, replicação e utilitários de gerenciamento de ambientes de contingência: log shipping, WAL, streaming replication e outros.
Espero que seja útil, faça uma boa leitura e qualquer dúvida contate-me!
Introdução prática ao Apache Ant.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Seismology Computational Infrastructure @ University of São Paulo. This presentation shows all available computational infrastructure under continuous development to support seismological and geophysical research. You are welcome to contact us. Please check out graduate program: http://www.iag.usp.br/international/graduate-programmes-msc-phd
Este material não é um curso ou parte de nenhum curso ou treinamento. Foi elaborado com o único objetivo de transferir conhecimentos adquiridos em estudos autônomos e também adquiridos durante o curso Administração de Banco de Dados com PostgreSQL ministrado por Fábio da Luz Caiut na Escola Superior de Redes (ESR) da Rede Nacional de Pesquisa (RNP) em Brasília/DF.
Palestra apresenta no PGDay Campinas 2014, apresentando o programa PGAnalytics.
Palestra apresentada por Matheus Espanhol, Matheus Oliveira e Vinícius Schmidt
Introdução prática ao Apache Ant.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Seismology Computational Infrastructure @ University of São Paulo. This presentation shows all available computational infrastructure under continuous development to support seismological and geophysical research. You are welcome to contact us. Please check out graduate program: http://www.iag.usp.br/international/graduate-programmes-msc-phd
Este material não é um curso ou parte de nenhum curso ou treinamento. Foi elaborado com o único objetivo de transferir conhecimentos adquiridos em estudos autônomos e também adquiridos durante o curso Administração de Banco de Dados com PostgreSQL ministrado por Fábio da Luz Caiut na Escola Superior de Redes (ESR) da Rede Nacional de Pesquisa (RNP) em Brasília/DF.
Palestra apresenta no PGDay Campinas 2014, apresentando o programa PGAnalytics.
Palestra apresentada por Matheus Espanhol, Matheus Oliveira e Vinícius Schmidt
Bad Smells (mal cheiros) em Bancos de DadosFabrízio Mello
Apresentação sobre Bad Smells em Bancos de Dados apresentada dia 14/07/2016 no "FISL17 - Fórum Internacional de Software Livre" na PUC/RS em Porto Alegre/RS.
Keep calm and Database Continuous DeploymentFabrízio Mello
Manter uma aplicação rodando 24x7 é um desafio para qualquer time de desenvolvimento. Mas para isso é preciso se preocupar um pouco mais do que apenas alta disponibilidade, é preciso aplicar boas práticas, padrões e técnicas de refatoração de banco de dados relacionais para evitar os temidos, e até então ?inevitáveis? downtimes.
Seu conceito de alta disponibilidade irá mudar depois desta palestra ;-)
O PostgreSQL é um projeto de software livre mantido por uma comunidade ampla, formada por pessoas de vários lugares do mundo. A intenção dessa apresentação é exemplificar as diversas formas possíves de colaboração e como você pode iniciar hoje mesmo a fazer parte desta comunidade e fazer com que este projeto nunca acabe. Engajamento é a palavra-chave para o sucesso do PostgreSQL e de qualquer projeto. Envolva-se, engaje-se, o PostgreSQL precisa de você!
NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP) Fabrízio Mello
Atualmente existe muito debate a respeito da habilidade das tecnologias NoSQL atenderem melhor as grandes demandas de processamento de dados em larga escala, do que seus predecessores, os RDBMS (Relational Database Management System).
E realmente as tecnologias NoSQL, assim como computação em nuvem, surgiram da grande necessidade de se prover serviços escaláveis, pois os bancos de dados estão sendo pressionados/direcionados a oferecer escalabilidade horizontal. Estas tecnologias foram desenvolvidas com técnicas de armazenamento de dados (documento, chave/valor, tabular, grafo, etc) afim de suprir esses requisitos.
Nesta apresentação veremos como o PostgreSQL atende vários desses requisitos por oferecer suporte nativo a JSON/JSONB, HStore (chave/valor), XML, oferecendo excelente indexação e otimização no armazenamento, e atendendo aos requisitos ACID, portanto tendo o melhor dos dois mundos. Sem contar o alto poder de extensibilidade que oferece pela possibilidade de escrever novos tipos de dados, mecanismos de indexação, linguagens procedurais, adaptadores de fontes de dados externas (SQL/MED), entre outras diversas características excelentes.
Aqui são apresentados conceitos básicos a plataforma Java. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Doctrine é uma ferramenta de ORM (mapeamento objeto-relacional) para
PHP que sobrepõe a poderosa DBAL (camada de abstração de Banco de
Dados) PDO do PHP.
Um de seus principais recursos é a possibilidade adicional de escrever
consultas à base de dados através de um dialeto-SQL OO (orientado à
objeto) chamado DQL inspirado no HQL do Hibernate. Isto provê aos
desenvolvedores uma alternativa poderosa ao SQL que mantém o máximo de
flexibilidade sem qualquer necessidade de duplicação de código.
O tema da palestra é apresentar a ferramenta como uma solução ágil
para problemas recorrentes.
Uma palestra para explorar o Google App Engine (GAE), uma plataforma de desenvolvimento e hospedagem de aplicações web na nuvem. Aplicativos fáceis de criar, manter e escalar.
Palestrante: Carlos Duarte do Nascimento
Matemático pelo IME/USP e Gerente de Produto no Apontador, faz "artesanato" de software há 20 anos, defendendo plataformas e conteúdo livres.
[Video: http://www.youtube.com/watch?feature=player_detailpage&v=nzo9dcCMi-4#t=1169s ] Palestra que introduz o desenvolvimento de aplicativos na plataforma do Google de forma pragmática, apresentada na 5a. edição (2012) do Campus Party (#cpbr5)
TDC 2015 - Rails & Javascript: faça isso direitoCezinha Anjos
Este talk propõe mostrar para você como construir um app Rails (não SPA) com uma estrutura organizada de Javascript. Você terá oportunidade de ver conceitos como injeção de dependência, single point entry, dispatcher, promises, IIFE, templates JS, Named Routes JS e muito mais? tudo isso aplicado na prática (e tudo junto). Chega de produzir brown fileds! Faça você também a coisa certa.
Slides do mini-curso de MongoDB realizado no Workshop de Software Livre 2010 do CInLUG, no Centro de Informática da Universidade Federal de Pernambuco em 24/08/2010. Instrutores: Brunno Gomes (@brunnogomes) e Daker Fernandes (@dakerfp).
Palestra apresentado no The Developers Conference - Florianópolis de 2017, um evento que aborda diversas tecnologias. A palestra foi uma apresentação sobre a tecnologia Elasticsearch na versão 5.X abordando pequenas questões arquiteturais do cluster e da sua utilização.
Semelhante a Oficina PostgreSQL Básico Latinoware 2012 (20)
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisFabrízio Mello
Desenvolver uma aplicação em PHP com PostgreSQL é uma combinação interessante, pois permite criar apps web escaláveis e de alta performance, bem como serviços, jobs, etc. Mas na maioria das vezes o uso fica limitado a conectar, executar um SQL e desconectar do banco de dados. Porém a extensão PostgreSQL para PHP implementa uma série de recursos interessantes: queries assincronas, notificação assincrona, bulk load, BLOBs, cursores, consultas preparadas, etc. Veremos um pouco desses recursos. Palestra apresentada na PHP Conference 2017 em Osasco/SP
Bad Smells (mal cheiros) em Bancos de DadosFabrízio Mello
Apresentação sobre Bad Smells em Bancos de Dados apresentada dia 20/10/2017 no "SAADS - Semana Acadêmica do Curso de Análise e Desenvolvimento de Sistemas" no IFSul em Bagé/RS.
URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...Fabrízio Mello
Palestra apresentada durante Semana Acadêmica Integrada Urcamp, Unipampa e IFSul em Bagé/RS falando sobre os novos desafios do DBA em uma cultura DevOps, onde o mesmo precisa sair se sua zona de conforto, interagir mais com outros times (não apenas times técnicos), aprender novas tecnologias, etc.
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...Fabrízio Mello
Palestra apresentada em conjunto com @fernandoike falando sobre os novos desafios do DBA em uma cultura DevOps, onde o mesmo precisa sair se sua zona de conforto, interagir mais com outros times (não apenas times técnicos), aprender novas tecnologias, etc.
This presentation is about the work that I did during the Google Summer of Code 2014 to PostgreSQL. The project is about change an Unlogged Table to Logged and vice-versa. Project wiki page: https://wiki.postgresql.org/wiki/Allow_an_unlogged_table_to_be_changed_to_logged_GSoC_2014
I presented this lecture during a PGDay in Ijui/RS (2016-10-13).
This presentation is about the work that I did during the Google Summer of Code 2014 to PostgreSQL. The project is about change an Unlogged Table to Logged and vice-versa. Project wiki page: https://wiki.postgresql.org/wiki/Allow_an_unlogged_table_to_be_changed_to_logged_GSoC_2014
I presented this work at PGCon2015 in Ottawa/Canada (2015-06-19)
GSoC2014 - Uniritter Presentation May, 2015Fabrízio Mello
This presentation is about the work that I did during the Google Summer of Code 2014 to PostgreSQL. The project is about change an Unlogged Table to Logged and vice-versa. Project wiki page: https://wiki.postgresql.org/wiki/Allow_an_unlogged_table_to_be_changed_to_logged_GSoC_2014
I present this work to Uniritter IT students in Canoas/RS (2015-05-18) and Porto Alegre/RS (FAPA - 2015-05-20).
PROCERGS 2015-03-25: Bad Smells em Bancos de DadosFabrízio Mello
Apresentação sobre Bad Smells em Bancos de Dados apresentada dia 25/03/2015 na "Quarta-feira do Conhecimento" na PROCERGS (Companhia de Processamento de Dados do Rio Grande do Sul) em Porto Alegre/RS
This presentation is about the work that I did during the Google Summer of Code 2014 to PostgreSQL. The project is about change an Unlogged Table to Logged and vice-versa. Project wiki page: https://wiki.postgresql.org/wiki/Allow_an_unlogged_table_to_be_changed_to_logged_GSoC_2014
I present this work to San Francisco PostgreSQL User Group during a meetup at 10/28/2014 (http://www.meetup.com/postgresql-1/events/200572562/)
NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)Fabrízio Mello
Atualmente existe muito debate a respeito da habilidade das tecnologias NoSQL atenderem melhor as grandes demandas de processamento de dados em larga escala, do que seus predecessores, os RDBMS (Relational Database Management System).
E realmente as tecnologias NoSQL, assim como computação em nuvem, surgiram da grande necessidade de se prover serviços escaláveis, pois os bancos de dados estão sendo pressionados/direcionados a oferecer escalabilidade horizontal. Estas tecnologias foram desenvolvidas com técnicas de armazenamento de dados (documento, chave/valor, tabular, grafo, etc) afim de suprir esses requisitos.
Nesta apresentação veremos como o PostgreSQL atende vários desses requisitos por oferecer suporte nativo a JSON/JSONB, HStore (chave/valor), XML, oferecendo excelente indexação e otimização no armazenamento, e atendendo aos requisitos ACID, portanto tendo o melhor dos dois mundos. Sem contar o alto poder de extensibilidade que oferece pela possibilidade de escrever novos tipos de dados, mecanismos de indexação, linguagens procedurais, adaptadores de fontes de dados externas (SQL/MED), entre outras diversas características excelentes.
Atualmente existe muito debate a respeito da habilidade das tecnologias NoSQL atenderem melhor as grandes demandas de processamento de dados em larga escala, do que seus predecessores, os RDBMS (Relational Database Management System).
E realmente as tecnologias NoSQL, assim como computação em nuvem, surgiram da grande necessidade de se prover serviços escaláveis, pois os bancos de dados estão sendo pressionados/direcionados a oferecer escalabilidade horizontal. Estas tecnologias foram desenvolvidas com técnicas de armazenamento de dados (documento, chave/valor, tabular, grafo, etc) afim de suprir esses requisitos.
Nesta apresentação veremos como o PostgreSQL atende vários desses requisitos por oferecer suporte nativo a JSON/JSONB, HStore (chave/valor), XML, oferecendo excelente indexação e otimização no armazenamento, e atendendo aos requisitos ACID, portanto tendo o melhor dos dois mundos. Sem contar o alto poder de extensibilidade que oferece pela possibilidade de escrever novos tipos de dados, mecanismos de indexação, linguagens procedurais, adaptadores de fontes de dados externas (SQL/MED), entre outras diversas características excelentes.
Refatoração Banco de Dados (Agileweekend2009)Fabrízio Mello
Apresentar conceitos e práticas de Refactoring de Banco de Dados, que consiste em diversas técnicas e práticas para se aplicar melhorias em banco de dados (legados ou não), fazendo uma passagem pelo Catálogo de Database Refactorings do Sr. Scott W. Ambler e demonstrando exemplos e cenários típicos de aplicação utilizando o PostgreSQL com suas facilidades e limitações na implementação de Refactorings.
2. Apresentação
Fabrízio de Royes Mello (fabriziomello@gmail.com)
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
3. Agenda
Introdução
Preparação do Servidor
Manipulando Bancos de Dados
5. Introdução
Breve Histórico
Arquitetura do PostgreSQL
6. 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
7. 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
9. Preparação Servidor
Instalação e Configuração
Usuário ”postgres” sistema Operacional
Entendendo e Trabalhando com Clusters
Iniciando/Parando o Servidor PostgreSQL
Fonte: Manoel Pimental Medeiros - visaoagil.wordpress.com
10. Instalação e Configuração
Repositórios Ubuntu 12.04
$ sudo s (senha latinoware2012)
$ addaptrepository ppa:pitti/postgresql
$ aptget update
$ aptget install postgresql9.2
Verificando se as coisas estão OK!
$ pg_lsclusters
Listar Bases de Dados
$ psql U postgres l
Oops... erro autenticação!!!!
11. 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/postgresql9.2 reload
Listar Bases de Dados (novamente)
$ psql U postgres l (gravem isso!!)
Agora sim!!!!
12. 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'
13. 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
14. 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
16. 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
Fonte: Manoel Pimental Medeiros - visaoagil.wordpress.com
17. 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
18. 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 latino2
http://www.postgresql.org/docs/9.2/static/manage-ag-templatedbs.html
19. 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
20. 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;
21. 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