View
1.960
Download
0
Category
Preview:
DESCRIPTION
Conhecer as características dos principais SGDBs OpenSource/Free nos dá vantagem para decidirmos até onde podemos ir com facilidade. É apresentado o MySQL e o PostgreSQL por serem os dois principais produtos que podem entrar nessa guerra.
Citation preview
Globalcode – Open4education
Trilha – Banco de DadosCarlos Eduardo Smanioto
SGDB OpenSource/Free vs Mercado
Globalcode – Open4education
AVISO
Globalcode – Open4education
AgendaWho I am
O Por que do tema
O que temos hoje ?
Desafios Desafios
Disponibilidade
Escalabilidade
Auditoria
Gerenciamento
Suporte Técnico
Arquitetura é tudoMistura de Tecnologias – NoSQL + SQL
Planejamento, algo que sempre esquecem
O Mercado para os futuros DBAs Free/OpenMercado MYSQL
Mercardo PostgreSQL
Globalcode – Open4education
NERD Report
How I am
carlos.smanioto@datapower.com.br
•NERD confesso•Consultor PostgreSQL/MySQL – Data Power •DBA Senior na Buscapé Company•Diversos artigos escrito na SQL Magazine•Instrutor Oracle University – MySQL•Consultor Linux desde os 17 anos
Globalcode – Open4education
Porque do tema
Globalcode – Open4education
Porque do tema
2.Guerra entre DBAs de produtos comerciais x Free
3.O que o mercado AINDA não conhece o potencial REAL sobre os SGDBs FREE/Open
4.Entender até onde pode se chegar com baixo custo.
Globalcode – Open4education
O Que temos hoje
Globalcode – Open4education
O Que temos hoje - PGSQL
1986 Berkeley com $$$ da DARPA, AROP (Miltar)
1995 Postgres95
Adicionado o SQL Liberado na WEB
1996 Nome PostgreSQL
26 anos de história
Globalcode – Open4education
O Que temos hoje - PGSQL
• SQL: Window Function e Recursive (v 8.4 - 2009)
• Trabalha com herança de tabelas
• Archive, HotStandBy e Streaming Replication
• Suporte a Store Procedure em Java, Perl, C
• Trabalho com o conceito de ROLEs Group, Schema, Database e TableSpace
Principais Features
Globalcode – Open4education
O Que temos hoje - PGSQL
Sem Window Function
SELECT f2.departamento, f2.nome, f2.salario,
(
SELECT avg(f1.salario) FROM funcionario f1
WHERE f1.departamento = f2.departamento GROUP
BY f1.departamento
) as media
FROM funcionario f2
ORDER BY f2.departamento;
(cost=2675.12..2675.65 rows=210 width=352)
Globalcode – Open4education
O Que temos hoje - PGSQL
Com Window Function
SELECT departamento, nome, salario,
avg(salario) OVER (PARTITION BY departamento)
AS media
FROM funcionario
ORDER BY departamento;
(cost=20.20..23.87 rows=210 width=352)
Globalcode – Open4education
O Que temos hoje - PGSQL
Resultado da query
Globalcode – Open4education
O Que temos hoje - PGSQL
• Replicação Sincrona
• Suporte a JSON, permitindo integração hibrida DBs que falam JSON com o NoSQL MongoDB
Principais Features 9.2
Globalcode – Open4education
O Que temos hoje - PGSQL
Globalcode – Open4education
O Que temos hoje - MySQL
1979 – Nasce a TcX Consultoria Michael Monty desenvolve o UNIREG
1994 TcX decide colocar no UNIREG o SQL
Uniu forças com o mSQL de David Hugles Arquitetura via API
1995 Nasce o MySQL e a empresa MySQL-AB
Nome: Arquivos com prefixo my é histórico Nome: A filha de Monty tambem se chama My
2008 Sun adquire por aproximadamente $ 1 bilhão
2009 Oracle adquire a Sun aproxidamente $ 7.4 bilhões
33 anos de história
Globalcode – Open4education
O Que temos hoje - MySQL
Principais Features
• Suporte a vários Store Engines
• GAMBETA MARAVILHOSA: INSERT IGNORE
• Replicação extremamente Flexível
Globalcode – Open4education
O Que temos hoje - MySQL
Principais Features – 5.6
• NotOnlySQL com MemCache
• Replicação• Time-Delayed Replication• Multi-Thread
• Para SQL_Thread e IO_Thread
Globalcode – Open4education
O Que temos hoje - MySQL
Globalcode – Open4education
Desafios
Globalcode – Open4education
Desafios
•Desafio 1 - Disponibilidade•Desafio 2 – Escalabilidade
•Desafio 3 – Auditoria•Desafio 4 – Gerenciamento
•Desafio 5 – Profissionais Qualificados
Globalcode – Open4education
Desafio - Disponibilidade
Globalcode – Open4education
Desafios - Disponibilidade
• MySQL• Master – Slave - Balancamento de Carga Read Only• Log transacional - BinLog
• PostgreSQL• Master – Slave Sincrono• Slony• Hot Standby
• Archive
Globalcode – Open4education
Desafios - Disponibilidade
PostgreSQL – Slony (Triger Repliction)
Globalcode – Open4education
Desafios - Escalabilidade
Globalcode – Open4education
Desafios - Escalabilidade
• MySQL• MySQL Cluster – 16,6 milhões de querys segundo.• Master – Master – Balancamento de Carga RW
Globalcode – Open4education
Desafios - Escalabilidade
MySQL Cluster
Globalcode – Open4education
Desafios - Escalabilidade
MySQL Multi-Master
/etc/my.cnf do NODE Bauto_increment_increment = 10auto_increment_offset = 2
Globalcode – Open4education
Desafios - EscalabilidadeMySQL
Multi-MasterCircular
/etc/my.cnf do NODE A auto_increment_increment = 10auto_increment_offset = 1
/etc/my.cnf do NODE B auto_increment_increment = 10auto_increment_offset = 2
/etc/my.cnf do NODE C auto_increment_increment = 10auto_increment_offset = 3
/etc/my.cnf do NODE D auto_increment_increment = 10auto_increment_offset = 4
Globalcode – Open4education
Desafios - EscalabilidadeMySQL Multi-Master Circular
[node A] +----+------+| id | c |+----+------+| 1 | a || 11 | aa || 21 | aaa |+----+------+
[node B] +----+------+| id | c |+----+------+| 2 | b || 12 | bb || 22 | bbb |+----+------+
[node C] +----+------+| id | c |+----+------+| 3 | c || 13 | cc || 23 | ccc |+----+------+
[node D] +----+------+| id | c |+----+------+| 4 | d || 14 | dd || 24 | ddd |+----+------+
+----+------+| id | c |+----+------+| 1 | a || 11 | aa || 21 | aaa || 4 | d || 14 | dd || 24 | ddd || 3 | c || 13 | cc || 23 | ccc || 2 | b || 12 | bb || 22 | bbb |+----+------+
SELECT após replicação
Globalcode – Open4education
Desafios - Escalabilidade
• PostgreSQL •PostgreSQL-XC
•PgPOOL•PGCluster
Globalcode – Open4education
Desafios - Escalabilidade
PostgreS-XC
GTM Coordinator
Data Node Data Node
APP
PostgreSQL 9.1
Globalcode – Open4education
Desafios - Escalabilidade
PostgreS-XC
GTM
Coordinator
Data Node
Coordinator lida com cada instruções SQL a partir de aplicações, determina que Datanode ir, e se decompõe em locais instruções SQL para cada Datanode
GTM(Global Transaction Management) é responsável pela propriedade ACID - .
Datanode armazena dados nas tabelas e lidar com instruções SQL localmente
Globalcode – Open4education
Desafios - Escalabilidade
PgPool• Pool• Replicação• Load Balance
Globalcode – Open4education
Desafios - Auditoria
• MySQL• LOG das ações
• Make do it - POG’s POWER • http://dev.mysql.com/doc/refman/5.5/en/writing-audit-
plugins.html
• Mcaffee Audit Plugin >= 5.0
• Road Map da Oracle – Audit Plugin + Oracle Firewall, etc
• long_slow_query = 0 seconds
• Trilha de auditoria• Gravar o histórico de uma alteração no ambiente
• By Trigger• By Aplicação
Globalcode – Open4education
Desafios - Auditoria
• PostgreSQL• Log das ações (Connect Fail, DDL e DML,
Disconnect)• Configuração no postgresql.conf
• Trilha de Auditoria (Alteração nos dados)• PgFoundry - audittrail2
• Code.google - pgtrail
• By Trigger
• By Aplicação
Globalcode – Open4education
Desafios - Gerenciamento
• MySQL• Performance Analyze
• Ferramentas Pagas• Spotlight da Quest Software
• MonYog
• Oracle Enterprise Monitor (Free na versão MySQL Enterprise)
• Open/FreeWare• RacherHacker – MySQL Tuner
• InnoTOP
• Hackmysql.com – MySQLReport
Globalcode – Open4education
Desafios - Gerenciamento
• MySQL• Administração
• Ferramentas Pagas• SQLYog
• MySQL WorkBench Enterprise (Free na versão MySQL Enterprise)
• Quest Software – Toad for MySQL
• Open/FreeWare• MySQL WorkBench Community
• Quest Software – Toad for MySQL Communit
• PHPMyAdmin
Globalcode – Open4education
Desafios - Gerenciamento
• PostgreSQL• Performance Analyze
• Ferramentas Pagas• PostgreSQL Enterprise Manager
• Open/FreeWare• PGSnap (OraSnap)
• NO BRAÇO!• vmstats, etc...• http://wiki.postgresql.org/wiki/
Performance_Analysis_Tools• Pg_log verificando frequencia de checkpoint
Globalcode – Open4education
Desafios - Gerenciamento
• PostgreSQL• Administração
• Ferramentas Pagas• EMS SQL Manager for PostgreSQL
• Open/FreeWare• TeamPostgreSQL WebManager• PHPPgAdmin• PGADMIN III – Tradicional
Globalcode – Open4education
Desafios - Gerenciamento
Team PostgreSQL Web Interface
Globalcode – Open4education
Arquitetura é tudo
Globalcode – Open4education
Arquitetura é tudo
Onde usar o PostgreSQL• Foco em Data warehouse faz frente ao DB2/Oracle
principalmente por ser muito similar
Por que ?• Permite Herança de tabelas
• Consultas Recursivas e Window Function
Onde usar o MySQL ?•Foco em WEB faz frente ao SQL Server
Por que ?•Diferentes Store Engines•Simples
Globalcode – Open4education
Desafios - Suporte
Globalcode – Open4education
Desafios - Suporte
• PostgreSQL• Comunidade Forte
• postgresql.org• Planet PostgreSQL
• http://planet.postgresql.org/
• Forte Documentação• http://www.postgresql.org/docs/
• Bons Livros
• Consultores/Empresas Como Data Power and Me :D
Globalcode – Open4education
Desafios - Suporte
• MySQL• Planet MySQL (Agora em PT-BR)
• http://pt.planet.mysql.com/
• ORACLE dando retaguarda
• Bons Livros
• Consultores/Empresas• Como Data Power and Me :D• ORACLE Brasil
Globalcode – Open4education
Mercado para os DBAs
Globalcode – Open4education
Mercado para os DBAs
• MySQL• ORACLE com planos ambiciosos
• Divulgação do SGDB como sendo rápido e estável
• Nova Versão com Features interessantes para concentrar Desenvolvedores NoSQL e SQL no mesmo produto – Not Only SQL através do MemCache Protocol integrado com o Store Engine InnoDB
• Plano de Certificação através da Oracle Univerity
Globalcode – Open4education
Mercado para os DBAs
• MySQL• Administração inicial bastante simples
mas a falta de conhecimento pode comprometer os futuros ajustes de performance (Default – 1 unico datafile)
• Baixíssima manutenção
• Tuning bem simples de aplicar
Globalcode – Open4education
Mercado para os DBAs
• PostgreSQL• SGDB Open Features Expressívas
• Mais próximo do Oracle Database tanto para developers quanto para DBAs
• Muito robusto para Data Warehouse
• A cada versão novidades cruciáveis para o mercado como Replicação SINCRONA,
• Muito forte na região SUL do país
• Ganhando cada vez mais adeptos em grandes empresas
Globalcode – Open4education
CONCLUSÃO
Globalcode – Open4education
Conclusão
• Saber definir qual é o SGDB Free Usar
• Não ser Xiita em um SGDB, quando é low-cost é interessante a integração de vários SGDBs
• Estar atento as novas features
• Planejar bem durante a fase de projeto
Recommended