recursos e benefícios do mysql

20

Upload: mysql-brasil

Post on 18-Dec-2014

5.502 views

Category:

Documents


0 download

DESCRIPTION

WhiteppRecursos e Benefícios do MySQL

TRANSCRIPT

Page 1: Recursos e Benefícios do MySQL
Page 2: Recursos e Benefícios do MySQL

Este documento visa descrever nossa direção geral em termos de produtos. Tal conteúdo destina-se a fins exclusivamente informativos e não poderá ser incorporado a nenhum contrato. Este documento não consiste em compromisso de entregar nenhum material, código ou funcionalidade, tampouco deve servir de base para decisões de compras. O desenvolvimento, a liberação e a coordenação de recursos ou funcionalidades dos produtos Oracle aqui descritas permanecem sob exclusivo critério da Oracle.

Page 3: Recursos e Benefícios do MySQL

Usuários de MySQL Enterprise nos EUAEmpresasLafargeToys-R-UsShinsei BankCVSGoverno

TelecomunicaçõesCox Communications Nokia Alcatel Vodafone

OEM/ISV Naval Air Systems CommandU.S. Census BureauNASANational Security Agency

SymantecSAP SageCisco

MySQL | 3

Por que MySQL?O MySQL Database move os mais exigentes aplicativos da Web, E-commerce e OLTP (processamento de transações on-line), sendo um banco de dados Transaction-Safe totalmente integrado, compatível com o padrão ACID (atomicidade, consistência, isolamento e durabilidade) e que oferece recursos completos de confirmação (commit), reversão (rollback), recuperação de panes e bloqueio em nível de linha. A facilidade de usar, a escalabilidade e o desempenho do MySQL tornaram-no o banco de dados de código aberto mais popular do mundo.

Os Maiores Websites Usam o MySQLDezesseis dos vinte sites com maior tráfego na web, como Facebook, Google, craigslist, LinkedIn, e eBay, confiam no MySQL para seus aplicativos de missão crítica.O MySQL Database 5.5 melhora o desempenho e a escalabilidade em arquiteturas de hardware com multiprocessador. Os novos recursos de gerenciabilidade e monitoramento de replicação oferecem a desenvolvedores e administradores de bancos de dados (DBAs) ferramentas aprimoradas para a criação de aplicativos escaláveis e de alto desempenho. Além disso, o MySQL Performance Schema oferece insights de alto nível sobre os indicadores de performance do banco de dados do MySQL.

MySQL Enterprise EditionO MySQL Enterprise Edition inclui o mais completo conjunto de recursos avançados e ferramentas de gestão para alcançar os mais altos níveis de escalabilidade, segurança, confiabilidade e tempo de funcionamento. Ele reduz o risco, o custo e a complexidade no desenvolvimento, implantação e gerenciamento de aplicativos MySQL de missão crítica e inclui:MySQL Enterprise Backup: reduz o risco de perda de dados, permitindo a realização de backups dos bancos de dados online, com suporte a backups totais, gradativos e parciais, recuperação pontual e compactação de backups.MySQL Enterprise High Availability: permite tornar a infraestrutura de seu banco de dados altamente disponível. O MySQL oferece soluções compatíveis e certificadas, como o MySQL Replication, o Oracle VM Templates for MySQL e o Windows Failover Clustering for MySQL.MySQL Enterprise Scalability: permite alcançar desempenho sustentável e atende às exigências de escalabilidade impostas pelas crescentes cargas de dados, consultas e usuários. O MySQL Thread Pool oferece um eficiente modelo de processamento de threads desenvolvido para reduzir a sobrecarga na gestão das conexões de clientes e threads de execução de instruções.MySQL Enterprise Security: oferece módulos de autenticação externa prontos para usar, para fácil integração do MySQL com as atuais infraestruturas de segurança, entre as quais, PAM e Windows Active Directory. Os usuários do MySQL podem ser autenticados com os Pluggable Authentication Modules (“PAM”) ou serviços nativos do Windows.MySQL Enterprise Monitor e MySQL Query Analyzer: monitoram continuamente seus bancos de dados e o alertam sobre possíveis problemas antes que estes possam afetar o sistema. É como ter um “assistente virtual de DBA” ao seu lado para recomendar as melhores práticas a fim de eliminar vulnerabilidades da segurança, aprimorar a replicação, otimizar o desempenho e muito mais. Como resultado, haverá um considerável aumento na produtividade dos desenvolvedores, DBAs e administradores de sistemas de sua empresa.MySQL Workbench: ferramenta visual unificada para arquitetos de bancos de dados, desenvolvedores e DBAs. Fornece recursos de modelagem de dados, desenvolvimento em SQL e um conjunto completo de ferramentas de administração para configuração de servidor, administração de usuários e muito mais.

Page 4: Recursos e Benefícios do MySQL

4 | MySQL

Oracle Magazine • janeiro/fevereiro de 2011Oracle Enterprise Linux

Apache, Glassfish

MySQL

PHP, Perl, Python

Compromisso da Oracle com o MySQLEstratégia da Oracle: Hardware e Software Projetados Juntos• Criados e testados em conjunto• Gerenciados e mantidos em conjunto• Baseados em padrões abertos• Custo mais baixo• Menor risco• Maior confiabilidade

Compromisso da Oracle• A Oracle é orientada pela demanda dos clientes• A empresa tem o compromisso de oferecer suporte,

desenvolvimento, promoção e adoção viável de tecnologias de código aberto

• Capacitação das comunidades de desenvolvedores• Importância aos padrões abertos

O LAMP stack Mais Completo do Setor• A Oracle tem negócios expressivos na linha de

software de código aberto:• Oracle Enterprise Linux• Oracle VM (baseado em Xen)• Apache, Glassfish• MySQL• PHP, Perl, Python, Ruby, Java, C, C++

Lista com os dez compromissos da Oracle com o MySQL e sua comunidade:

1. Disponibilidade contínua de APIs do engine de armazenamento. A Oracle deve manter e aprimorar periodicamente a Pluggable Storage Engine Architecture do MySQL para que os usuários possam escolher entre vários engines de armazenamento nativos e de terceiros. A Pluggable Storage Engine Architecture do MySQL deve corresponder à atual prática do MySQL de usar interfaces de programação de aplicativos documentadas e disponíveis para o público, de modo que os fornecedores de engines possam “conectá-los” no servidor de bancos de dados do MySQL. A documentação deve ser consistente com a documentação fornecida anteriormente pela Sun.

2. Cláusula de Non-assertion (não-asserção). Como detentora de direitos autorais, a Oracle mudará a atual política da Sun e não deverá fazer asserções ou ameaças de que as implementações de engines de armazenamento de terceiros deverão ser liberadas sob Licença Pública Geral (GPL, na sigla em inglês) por terem implementado interfaces de programação disponíveis como parte da Pluggable Storage Engine Architecture do MySQL. A Oracle não exigirá licença comercial de outros fornecedores de engines de armazenamento para implementar interfaces de programação de aplicativos como parte da Pluggable Storage Engine Architecture do MySQL. A Oracle deverá reproduzir esse compromisso em obrigações contratuais para fornecedores de armazenamento que atualmente tenham uma licença junto à Sun.

3. Compromisso de licença. No término do atual contrato de OEM do MySQL, a Oracle deverá oferecer aos fornecedores de armazenamento que atualmente tenham uma licença comercial junto à Sun uma extensão de seus contratos nos mesmos termos e condições por um prazo não posterior a 10 de dezembro de 2014. A Oracle deverá reproduzir esse compromisso em obrigações contratuais para fornecedores de armazenamento que atualmente tenham uma licença junto à Sun.

4. Compromisso de aprimorar o MySQL no futuro sob GPL. A Oracle continuará a aprimorar o MySQL e fornecer versões subsequentes do MySQL, inclusive a versão 6, disponível sob a GPL. A Oracle não lançará nenhuma versão inédita e aprimorada do MySQL Enterprise Edition sem lançar concomitantemente uma versão inédita e aprimorada do MySQL Community Edition licenciada sob a GPL. A Oracle deverá continuar a disponibilizar gratuitamente o código fonte de todas as versões do MySQL Community Edition ao público.5. Suporte não obrigatório. Os clientes não serão obrigados a adquirir serviços de suporte da Oracle como condição para obter uma licença comercial.

6. Maior investimento em pesquisa e desenvolvimento (P&D) do MySQL. A Oracle compromete-se a disponibilizar recursos financeiros para o desenvolvimento contínuo do MySQL (versão GPL e versão comercial). Durante cada um dos próximos três anos, a Oracle investirá mais em P&D da unidade de negócios global MySQL que a Sun em seu último ano fiscal (cerca de $24 milhões) antes do fechamento da transação.

7. Conselho Consultivo de Clientes do MySQL. A Oracle criará e financiará um Conselho Consultivo de Clientes com usuários finais e clientes selecionados para oferecer orientação e feedback sobre as prioridades de desenvolvimento do MySQL e outros assuntos importantes para os clientes desse produto.

8. Conselho Consultivo de Fornecedores de Engines de Armazenamento do MySQL. A Oracle criará e financiará um Conselho Consultivo de Fornecedores de Engines de Armazenamento para oferecer orientação e feedback sobre as prioridades de desenvolvimento do MySQL e outros assuntos importantes para os clientes desse produto.

9. Manual de Referência do MySQL. A Oracle continuará a manter, atualizar e disponibilizar para download, gratuitamente, um Manual de Referência do MySQL de qualidade semelhante ao atualmente distribuído pela Sun.

10. Preservação da Escolha de Suporte ao Cliente. A Oracle garantirá que os usuários finais e clientes que pagam assinaturas de suporte para o MySQL poderão renová-las em regime anual ou plurianual, de acordo com sua preferência.

Page 5: Recursos e Benefícios do MySQL

MySQL | 5

Recursos e Benefícios do MySQLArquitetura Cliente/Servidor: O MySQL é um sistema de cliente/servidor. Existe um servidor de banco de dados (MySQL) e, arbitrariamente, muitos clientes (aplicativos), que se comunicam com o servidor, ou seja, consultam dados, salvam alterações, etc. Os clientes podem rodar no mesmo computador, como o servidor, ou em outro computador (comunicação por rede local ou pela Internet).

Quase todos os grandes sistemas conhecidos de bancos de dados (Oracle, Microsoft SQL Server etc.) são do tipo cliente/servidor, em contraste aos sistemas do tipo arquivos/servidor, como o Microsoft Access, o dBase e o FoxPro. A principal desvantagem dos sistemas de arquivos/servidor é que, quando executados em rede, tornam-se extremamente ineficientes à medida que o número de usuários aumenta.

Compatibilidade com SQL: Como o nome sugere, o MySQL oferece suporte à sua própria linguagem de banco de dados, SQL (Structured Query Language). SQL é uma linguagem padronizada para consulta e atualização de dados, bem como para administração do banco de dados. Existem vários dialetos SQL (quase tantos quanto o número de sistemas de bancos de dados). O MySQL segue o atual padrão de SQL (no momento, a SQL:2003), embora com restrições significativas e um grande número de extensões

Exibições: As exibições se relacionam a uma consulta de SQL visualizada como um objeto distinto de banco de dados, oferecendo uma determinada exibição do banco de dados. O MySQL comporta exibições desde a versão 5.0.

Procedimentos armazenados (SPs, na sigla em inglês), geralmente são usados para simplificar determinadas etapas, como inserir ou excluir um registro de dados. Com eles, os programadores de clientes têm a vantagem de não precisar processar as tabelas diretamente, e sim por meio dos SPs. Assim como as exibições, os SPs ajudam na administração de grandes projetos de bancos de dados e também podem aumentar a eficiência. O MySQL comporta SPs desde a versão 5.0.

Triggers (gatilhos) são comandos SQL executados automaticamente pelo servidor em determinadas operações do banco de dados (INSERIR, ATUALIZAR e EXCLUIR). O MySQL comporta triggers de forma limitada desde a versão 5.0.

Unicode: O MySQL aceita todos os conjuntos de caracteres imagináveis desde a versão 4.1, inclusive Latin-1, Latin-2 e Unicode (na variante UTF8 ou UCS2).

A pesquisa de texto completo simplifica e acelera a busca de palavras localizadas em um campo de texto. Se você usar o MySQL para armazenar texto (como em um grupo de discussão na Internet), poderá usar a pesquisa de texto completo para implementar, sem dificuldades, uma eficiente função de pesquisa.

A replicação permite que o conteúdo de um banco de dados seja copiado (replicado) para vários outros computadores. Na prática, isso é feito por dois motivos: para aumentar a proteção em caso de falha do sistema (assim, se um computador ficar inoperante, outro poderá ser colocado em produção) e para acelerar as consultas ao banco de dados.

Transações: No contexto de um sistema de banco de dados, uma transação significa a execução de várias operações de bancos de dados em bloco. O sistema garante que ou todas as operações serão executadas corretamente ou nenhuma delas será efetivada. Isso vale mesmo se no meio de uma transação houver uma falha de energia, se ocorrer uma pane no computador ou acontecer algum outro tipo de desastre. Desse modo, por exemplo, não é possível que uma quantia de dinheiro seja retirada da conta A, mas não seja depositada na conta B por causa de algum tipo de erro de sistema. O engine (formato) de tabela padrão é o InnoDB, que oferece suporte a transações.

Principais restrições externas: São regras que garantem a inexistência de referências cruzadas nas tabelas vinculadas, que levariam a lugar nenhum. O MySQL aceita as principais restrições externas para tabelas InnoDB.

Funções GIS: Desde a versão 4.1, o MySQL oferece suporte ao armazenamento e processamento de dados geográficos bidimensionais. Desse modo, o MySQL é adequado para aplicativos SIG (sistemas de informações geográficas).

Linguagens de programação: Existem várias APIs (interfaces de programação de aplicativo) e bibliotecas para o desenvolvimento de aplicativos MySQL. Para a programação de clientes, é possível usar as linguagens C, C++, Java, Perl, PHP, Python e Tcl, entre muitas outras.

Conectores MySQL: O MySQL oferece drivers baseados em padrões do mercado para JDBC, ODBC e .Net, com os quais os desenvolvedores podem criar aplicativos de bancos de dados na linguagem de sua preferência. Além disso, a biblioteca C nativa permite embutir o MySQL diretamente em seus aplicativos.

Independência de plataforma: Como os aplicativos de clientes rodam em vários sistemas operacionais (OS), o próprio MySQL (o servidor) pode ser executado em inúmeros OS. Os sistemas mais importantes são Apple Macintosh OS X, Linux, Microsoft Windows e as infinitas variantes do Unix, como AIX, BSDI, FreeBSD, HP-UX, OpenBSD, Net BSD, SGI Iris e Sun Solaris.

Page 6: Recursos e Benefícios do MySQL

6 | MySQL

Recursos empresariais do MySQL 5.5O MySQL Database 5.5 oferece recursos empresariais que incluem:

• Aprimorado! Desempenho até 1.500% mais rápido no Windows.• Aprimorado! Desempenho até 370% mais rápido no Linux.• Aprimorado! Melhor escalabilidade em moderno hardware com vários núcleos (cores) e CPUs.• Novidade! Performance Schema para monitorar o desempenho do servidor MySQL em tempo de execução.• Novidade! Replicação semi-síncrona para garantir redundância e consistência dos dados.• Novidade! Suporte ao Heart Beat para identificar imediatamente eventuais interrupções na replicação.• Novidade! Opções de particionamento para pesquisas mais rápidas.• Novidade! Maior facilidade no desenvolvimento e depuração de funções, triggers e procedimentos

armazenados.• Confiabilidade com pouca ou nenhuma intervenção para alcançar tempo de funcionamento contínuo.• Facilidade de uso, com instalação e configuração “bem-sucedidas em 15 minutos”.• Baixa administração com pouquíssima manutenção do banco de dados.• Replicação que oferece topologias flexíveis para expansão e alta disponibilidade.• Particionamento para aprimorar o desempenho e a gestão de ambientes de bancos de dados de grande porte.• Transações ACID para criar aplicativos empresariais de missão crítica que sejam seguros e confiáveis.• SPs para melhorar a produtividade dos desenvolvedores.• Triggers para aplicar regras de negócios complexas no nível do banco de dados.• Exibições para garantir que informações confidenciais não sejam expostas a riscos.• Information Schema (banco de informações) para acessar facilmente metadados.• Pluggable Storage Engine Architecture para máxima flexibilidade.

Os seguintes recursos foram adicionados ao MySQL 5.5:

• O modelo de processamento de threads do MySQL Server executa instruções usando uma conexão de thread por cliente. Conforme mais clientes se conectam ao servidor e executam instruções, há uma degradação no desempenho geral. Desde a versão 5.5.16, as distribuições comerciais do MySQL incluem um plugin para pool de threads que oferece um modelo alternativo de processamento de threads, projetado para reduzir a sobrecarga e melhorar o desempenho. O plugin implementa um pool de threads que melhora o desempenho do servidor, gerenciando com eficácia os threads de execução de instruções para um grande número de conexões de clientes.

• Desde a versão 5.5.16, as distribuições comerciais do MySQL incluem dois plugins que habilitam o MySQL Server a usar métodos externos para autenticar os usuários do MySQL:

• O PAM (Pluggable Authentication Modules) permite que o sistema acesse vários tipos de métodos de autenticação através de uma interface padrão. O plugin de autenticação PAM permite que o MySQL use o PAM para autenticar seus usuários.

• As distribuições do MySQL para Windows incluem um plugin de autenticação que habilita o MySQL Server a usar serviços nativos do Windows para autenticar as conexões dos clientes. Os usuários que iniciaram uma sessão do Windows poderão conectar-se dos programas de clientes MySQL ao servidor com base nas informações inseridas em seu ambiente, sem precisar especificar uma senha adicional.

Esses plugins de autenticação permitem que o MySQL Server aceite conexões de usuários definidos fora das tabelas de concessão do MySQL. Eles também são compatíveis com o recurso de proxy users do MySQL. Cada plugin pode retornar ao MySQL um nome de usuário diferente do que iniciou a sessão, ou seja, o plugin pode retornar o usuário do MySQL que define os privilégios que o usuário autenticado externamente deverá ter.

• Escalabilidade aprimorada nas CPUs com vários núcleos. A tendência atual no desenvolvimento de hardware é colocar diversos núcleos em vez de aumentar a velocidade de clock das CPUs, o que torna a ideia de “esperar até a velocidade das CPUs aumentar” um meio inviável de melhorar o desempenho do banco de dados. Em vez disso, é necessário fazer melhor uso dos vários núcleos para maximizar a exploração dos ciclos de processamento que eles disponibilizam. O MySQL 5.5 aproveita os recursos dos sistemas SMP e tente eliminar os gargalos na arquitetura do MySQL que atrapalham o uso

Page 7: Recursos e Benefícios do MySQL

MySQL | 7

pleno dos diversos núcleos. O foco é mantido no InnoDB, especialmente na gestão de memória e locks. As mudanças no subsistema de I/O (entrada/saída) do InnoDB possibilitam um uso mais eficaz da capacidade de I/O disponível.

• Várias modificações melhoram a operação do MySQL Server no Solaris.

• Melhor acesso às informações de execução e desempenho. Os aprimoramentos de diagnóstico incluem Performance Schema (um recurso para monitorar a execução do MySQL Server no nível mais baixo), investigações do DTrace, saída expandida do comando SHOW ENGINE INNODB STATUS, Debug Sync e uma nova variável de status.

• O engine de armazenamento padrão para novas tabelas é o InnoDB em vez do MyISAM.

• O MySQL Cluster foi lançado como um produto separado, com novo desenvolvimento para a versão 7.2 do engine de armazenamento NDB, baseado no MySQL 5.5. O suporte a clusters não está disponível no MySQL Server 5.5.

• As versões do MySQL Cluster são identificadas por um número de versão do NDB (banco de dados da rede) em três partes. Atualmente, o MySQL Cluster NDB 7.1 é a série de versão GA (de disponibilidade geral) mais recente. O MySQL Cluster NDB 6.3 e o MySQL Cluster NDB 7.0 ainda estão disponíveis. Essas versões do MySQL Cluster são baseadas no MySQL Server 5.1 e estão documentadas no manual do MySQL 5.1.

• Suporte para interface de replicação semissíncrona: uma confirmação (commit) é executada nos blocos do lado master antes de retornar à sessão que executou a transação até que pelo menos um slave (escravo) reconheça o recebimento e registre os eventos referentes à transação. A replicação semissíncrona é implementada através de um componente de plugin opcional.

• Suporte complementar para caracteres Unicode, ou seja, caracteres fora do Basic Multilingual Plane (BMP). Esses novos conjuntos de caracteres Unicode incluem os caracteres complementares utf16, utf32 e utf8mb4.

• Os aprimoramentos ao particionamento de tabelas incluem suporte a dois novos tipos de particionamento definidos pelo usuário: RANGE COLUMNS (colunas de intervalo), uma extensão do particionamento RANGE, e o LIST COLUMNS (colunas da lista), uma extensão do particionamento LIST. Cada uma dessas extensões oferece duas melhorias aos recursos de particionamento do MySQL:

• Permitem definir intervalos ou listas no particionamento, com base nas sintaxes DATE, DATETIME, ou valores de string (como CHAR ou VARCHAR).

Também é possível definir intervalos ou listas com base em vários valores de colunas ao particionar tabelas por RANGE COLUMNS ou LIST COLUMNS, respectivamente. Esse tipo de intervalo ou lista pode conter até 16 colunas.

• Quando esses tipos de particionamento definirem as tabelas, o particionamento por faixas poderá otimizar as consultas com condições WHERE que utilizem várias comparações entre (diferentes) valores de colunas e constantes, por exemplo, = 10 AND b > 5 ou < “2005-11-25” AND b = 10 AND c = 50.

Agora é possível excluir todas as linhas de uma ou mais partições de uma tabela particionada usando a instrução ALTER TABLE... TRUNCATE PARTITION. A execução da instrução exclui linhas sem afetar a estrutura da tabela. A partições nomeadas na cláusula TRUNCATE PARTITION não precisam ser contíguas.

• Os principais caches agora são compatíveis com índices em tabelas MyISAM particionadas por meio das instruções CACHE INDEX e LOAD INDEX INTO CACHE. Além disso, é possível definir um cache principal e carregá-lo com índices de toda uma tabela particionada ou de uma ou mais partições. Se a carga for proveniente das partições, estas não precisam ser contíguas.

• A nova função TO_SECONDS() converte uma expressão DATE ou DATETIME em inúmeros segundos a partir do ano zero. Essa função de uso geral é útil para o particionamento, podendo ser usada em expressões com tal finalidade. Além disso, as tabelas definidas por meio de tais expressões aceitam particionamento por faixas.

• Suporte para instruções SIGNAL e RESIGNAL padrão SQL.

• Os aprimoramentos à funcionalidade XML incluem uma nova instrução LOAD XML INFILE.

• A autenticação do MySQL aceita dois novos recursos: autenticação conectável e usuários de proxy. Com a autenticação conectável, o servidor pode usar plugins para autenticar conexões recebidas de clientes e esses computadores podem carregar um plugin de autenticação que interage adequadamente com o plugin de servidor correspondente.

• Agora, as versões do MySQL são desenvolvidas com CMake e não com as autoferramentas GNU. Como consequência, as instruções para instalação do MySQL foram atualizadas e explicam como desenvolver no MySQL usando o CMake.

• O processo de compilação tornou-se semelhante em todas as plataformas, inclusive no Windows, eliminando a necessidade de seções mais extensas dedicadas a notas para plataformas específicas.

Page 8: Recursos e Benefícios do MySQL

8 | MySQL

MySQL 5.6 - (Recursos de Acesso Antecipado) - InnoDB e ReplicaçãoAprimoramentos ao InnoDB. O InnoDB é o engine de armazenamento padrão para o MySQL.O Full Text Search do InnoDB oferece aos usuários a capacidade de compilar índices e pesquisas de texto completo referentes a um determinado conteúdo baseado em texto nas tabelas do InnoDB. Essa nova funcionalidade permite pesquisas rápidas e precisas no conteúdo de documentos usando linguagem natural, booleana, expansão de consultas (caractere curinga) e opções/algoritmos de pesquisa por proximidade.Arquivos de REDO log InnoDB com tamanho máximo aumentado para até 2 TB. Isso significa um aumento de 4 GB para 2 TB, representando um excelente ganho de desempenho para aplicativos com pesadas cargas de trabalho de gravação ou transações de execução extremamente demoradas, nos quais o limite do arquivo de REDO log poderia ser alcançado. Os UNDO logs do InnoDB residirão em seu próprio espaço de tabela.Atualmente, o InnoDB armazena os UNDO logs no espaço de tabela do sistema InnoDB. Com essa melhoria, os usuários poderão separar os UNDO logs (e a atividade de I/O aleatória associada) do espaço de tabela do sistema (mais atividade de I/O sequencial) e armazená-los em seu próprio espaço de tabela. Os usuários também poderão armazenar espaços de tabela específicos dos UNDO logs em Flash ou SSDs se desejarem.Opções do Buffer Pool do InnoDB para pré-carga/aquecimento na reinicialização. As novas opções permitem a pré-carga ou “aquecimento” do buffer pool do InnoDB, com a capacidade de despejar (dumping) e restaurar o conteúdo de um ou mais buffer pools do InnoDB de/para o disco automaticamente no desligamento ou na reinicialização, ou manualmente a qualquer momento. O processo de dump é rápido e compacto, com mínima sobrecarga de armazenamento no servidor, pois armazena apenas uma lista de páginas no buffer pool, e não o conteúdo delas. Na reinicialização, o processo de restauração recarrega os dados da página, mas é executado em background (segundo plano) para que as operações normais do banco de dados sejam iniciadas de modo mais rápido e não sejam afetadas enquanto o buffer pool é recarregado.Auto-extensão aprimorada dos arquivos .ibd do InnoDB para tabelas criadas usando o parâmetro innodb_file_per_table. Essa configuração é usada por muitos recursos úteis do InnoDB - compactação, armazenamento fora da página (off-page) para BLOBs e grandes prefixos de índices. Esse aprimoramento ajuda a reduzir a contenção no mutex do sistema de arquivos do InnoDB quando esses recursos são usados em configurações com muitas tabelas. Desse modo, vários arquivos podem ser estendidos em um processo em background sem contenção/bloqueio de outros threads que estejam executando operações normais de leitura/gravação. Tamanho de página do InnoDB de 4K a 64K. Esse recurso é um pré-requisito para as otimizações específicas do InnoDB para Flash e SSD (que virão em uma futura compilação experimental do MySQL 5.6). Agora o InnoDB comporta páginas menores, de 4k e 8k, resultando em melhor desempenho e maior vida útil desse tipo de mídia. Esse recurso amplia o InnoDB para comportar páginas de 4K a 64K, além do padrão atual de 16K.Replicação aprimorada. A replicação do MySQL é a maneira mais popular e amplamente usada de alcançar escalabilidade e alta disponibilidade.Binlog API expõe uma interface programática C++ ao log binário, implementado como uma biblioteca independente. Os desenvolvedores podem usar a API para ler e analisar eventos de logs binários de arquivos binlog existentes e de servidores em execução, e replicar as alterações em outros armazenamentos de dados. Em resumo, com a nova Binlog API, os desenvolvedores poderão reduzir a complexidade de integração, padronizando suas operações de gerenciamento de dados SQL no MySQL, ao mesmo tempo em que replicam dados de outros aplicativos MySQL em sua infraestrutura de gerenciamento de dados. Para demonstrar as possibilidades da Binlog API, foi desenvolvido um exemplo de aplicativo para replicar as alterações de um banco de dados MySQL no Apache Solr (http://lucene.apache.org/solr/) (um servidor de pesquisas de texto completo).Group Commit do Binlog (completa o Group Commit do InnoDB implementado no MySQL 5.5) Desenvolvido para melhorar o desempenho da replicação do MySQL, o Group Commit aplica atualizações ao log binário em paralelo e depois as confirma em grupo no binlog em disco. Os usuários têm controle completo sobre a frequência das confirmações em disco, pois podem:

• configurar o número de transações que devem ser agrupadas;• definir o intervalo, com granularidade de milésimos de segundo, antes que o log binário seja salvo.

O atual Group Commit do Binlog é uma parte de um trabalho em andamento. Não temos um benchmark para a implementação no momento e esperamos que os resultados desse exercício influenciem as decisões de implementação final. Esta é uma excelente oportunidade para a comunidade avaliar a implementação e dar feedback para a equipe de desenvolvimento do MySQL. Saiba mais:Durable Slave Reads é um aprimoramento que permite ao usuário controlar quando o slave faz a leitura do arquivo binário master: assim que as atualizações são aplicadas ou apenas quando são salvas em disco, ou seja:

• a leitura do binlog é feita assim que as atualizações são aplicadas (com o risco de perda de dados em caso de pane em um master);• a leitura do binlog é feita quando as atualizações são confirmadas em disco, tornando-as duráveis e, portanto, sem o risco de perda

de transações, mas deixando o slave defasado em relação ao master.Slaves multi-thread aprimorados foram pré-lançados como parte da primeira compilação experimental do MySQL 5.6 em abril de 2011, proporcionando expressivas melhorias no desempenho, permitindo a aplicação paralela (e não sequencial) de atualizações nos bancos de dados. Essa versão experimental “atualizada” reflete os resultados dos testes e o feedback dos primeiros a adotar a nova versão.Outros recursos importantes incluem slaves à prova de pane, que podem se recuperar automaticamente de falhas; replicação otimizada com base em linha, replicação com retardo e backup remoto do binlog. Juntas, essas capacidades melhoram o desempenho, a flexibilidade e a facilidade de uso.

Page 9: Recursos e Benefícios do MySQL

MySQL | 9

Slave Aplicativo Aplicativo Aplicativo

IP virtual

Oracle VM Manager

Oracle VM Detecção e recuperação automáticas

de falhas

Oracle VM

Secure Live Migration

(SSL)

Servidores / Pool do Oracle VM

Oracle Cluster File System 2 (OCFS2)

SAN / iSCSI

Novas Extensões Comerciais para o MySQL Enterprise EditionAs versões MySQL 5.5 GA e o MySQL 5.6 Development Milestone oferecem inúmeros recursos inéditos e interessantes para os usuários e a comunidade do MySQL testar, dar feedback e usar.

Além disso, os clientes empresariais têm acesso a várias extensões comerciais já incluídas no MySQL Enterprise Edition:

• MySQL Enterprise Monitor• MySQL Enterprise Backup

Dando continuidade ao modelo de negócios do MySQL, adicionamos três novas extensões comerciais ao MySQL Enterprise Edition:

• MySQL Enterprise Scalability – pool de threads• MySQL Enterprise High Availability - Oracle VM Template e Windows Clustering para o MySQL Enterprise Edition• MySQL Enterprise Security (autenticação externa para PAM e para Windows)

MySQL Enterprise High Availability

O MySQL Enterprise Edition oferece inúmeras soluções de alta disponibilidade do banco de dados, para detecção e recuperação automáticas de falhas, bem como para minimizar downtimes (paralisações) resultantes de atividades de manutenção programadas.

Oracle VM Template para o MySQL Enterprise Edition

Garante rápida implantação e ajuda a eliminar esforços de configuração e riscos, oferecendo uma imagem do software virtualizado e pré-configurado, aproveitando os recursos do Oracle VM para oferecer alta disponibilidade.

• Oracle Linux com Unbreakable Enterprise Kernel• Oracle VM• Oracle VM Manager• Oracle Cluster File System 2 (OCFS2)• MySQL Database (Enterprise Edition)• Pré-instalado e pré-configurado• Integração total e testes de QA (garantia de qualidade)• Único ponto de suporte**

** Suporte técnico para o Oracle Linux e o Oracle Virtual Machine requer assinatura da Unbreakable Linux etwork.

Windows Server Failover Clustering para o MySQL Enterprise Edition

Com certificação e suporte do MySQL, o Windows Server Failover Clustering (WSFC), as organizações obtêm segurança na implantação de aplicativos críticos para os negócios que exigem altos níveis de disponibilidade, por intermédio da adoção do MySQL Enterprise Edition.

• Windows Server 2008 R2, MySQL 5.5**• Quorum (3º voto), dados (InnoDB + schema) e binários (opcional) alojados em

armazenamento compartilhado (testando iSCSI & FCAL)• Failover• Manutenção planejada• Falha de serviço do MySQL • Conectividade, falhas do host• Perda de serviço = alguns segundos + tempo de recuperação do InnoDB • O aplicativo percebe perda temporária de conexão e reconecta-se no mesmo

endereço IP • O slave de replicação recupera-se automaticamente• Cluster gerenciado através da GUI do snap-in do MS Failover Cluster Management • Sem a necessidade de um novo software/script

** O suporte técnico para o Windows Server Failover Clustering pode ser obtido com a Microsoft.

Voto Dados Bin

Page 10: Recursos e Benefícios do MySQL

10 | MySQL

Pool de conexões padrão

Conexões (instruções) atribuídas

aos threads permanentemente

Thread de execução da conexão 1

Thread de execução da conexão 2

Pool de threads e grupos de threads

Conexão 1Threads 1-4096

Conexão 2 Threads 4097-8193

Thread de execução da conexão 1

Thread de execução da conexão 2

MySQL Enterprise Scalability: pool de threads

Para alcançar escalabilidade e desempenho sustentáveis para as crescentes cargas de dados, consultas e usuários, o MySQL Enterprise Edition oferece pool de threads. Esse recurso oferece um modelo de processamento de threads altamente escalável, desenvolvido para reduzir a sobrecarga na gestão das conexões de clientes e threads de execução de instruções. O resultado é melhoria da escalabilidade e desempenho sustentável para aplicativos online de tráfego intenso que atendem um número crescente de conexões de clientes.

O pool de threads é uma opção que o próprio usuário pode configurar, oferecendo um modelo alternativo e eficiente de processamento de threads, desenvolvido para explorar totalmente a robustez dos atuais sistemas com vários núcleos. Benchmarks internos SysBench OLTP do MySQL mostram que o pool de threads oferece melhoria significativa na escalabilidade e desempenho sustentável para aplicativos que atendem um grande número de conexões simultâneas, especificamente em sistemas de 16 núcleos ou mais.

Pool de threads padrão

Conexão 1

Conexão 2

• As conexões são atribuídas a um thread durante toda a conexão.• O mesmo thread é usado para todas as instruções de conexão (único thread).

Com pool de threads habilitado

Conexão 1

Conexão 2

• O pool de threads contém um número configurável de grupos de threads (o padrão é 16) e cada um gerencia até 4096 threads reutilizáveis.

• Cada conexão é atribuída a um grupo de threads por meio de round robin (repetição alternada).

A habilitação do pool de threads garante desempenho superior e sustentável conforme as cargas de usuários aumentam.

Conexão N Threads 8193-N

Page 11: Recursos e Benefícios do MySQL

MySQL | 11

2. MyDoman\joe é autenticado no Windows.

Usuários, grupos etc. do Windows

Aplicativo Autenticação do Windows

CREATE USER joeIDENTIFIED WITH‘authentication_windows’

AS ‘mysql’;

1. Um usuário chamado “Joe” estabelece conexão usando seu nome de usuário e senha

Aplicativo

Conector

2. O conector envia o nome de usuário e senha ao servidor do MySQL

Autenticação do PAM

CREATE USER joeIDENTIFIED WITH‘authentication_pam’

AS ‘mysql’;

3. O nome de usuário e senha são enviados à biblioteca do PAM, que responde sim ou não ao cliente

Biblioteca do PAM(Outros backends)

MySQL Enterprise Security

O MySQL 5.5 introduziu uma API de autenticação conectável, com a qual os usuários podem ser autenticados por meio de diretórios, bibliotecas externas etc. Os desenvolvedores podem usar essa API para criar seus próprios módulos personalizados que integram o MySQL na infraestrutura de segurança existente. O MySQL Enterprise Edition aproveita essa mesma API para fornecer módulos de autenticação externa prontos para usar, via PAM (Pluggable Authentication Modules) ou por serviços nativos do Windows. Cada módulo pode ser descrito conforme segue:

Autenticação externa para PAM - permite configurar o MySQL para usar o PAM com o objetivo de autenticar usuários no LDAP, Unix/ Linux, Kerberos e em outros sistemas.

Autenticação externa para Windows – permite configurar o MySQL para usar os serviços nativos do Windows a fim de autenticar as conexões dos clientes. Os usuários que iniciaram uma sessão do Windows poderão conectar-se dos programas de clientes MySQL ao servidor com base nas informações de token inseridas em seu ambiente, sem precisar especificar uma senha adicional.

MySQL Enterprise Security – Autenticação do PAM

MySQL Enterprise Security – Autenticação do Windows

4. A biblioteca do PAM verifica as credenciais (usando LDAP ou Kerberos) e responde sim ou não à solicitação do cliente.

1. Um usuário chamado “Joe” acessa o ambiente com o login e senha do Windows.

3. MyDomain/joe acessa o aplicativo, que se conecta ao MySQL com o usuário win_joe

4. Os tokens são verificados, o usuário win_joe é autenticado por meio de login e senha do Windows, com privilégios específicos do MySQL.

Page 12: Recursos e Benefícios do MySQL

12 | MySQL

Cliente Cliente Cliente

Servidor da Web

Master

DB

Dump de Thread

Binlog

Thread de I/O

Log de Retransmissão

Slave

DB

Thread de SQL

Replicação do MySQLA replicação é a abordagem mais comum para proporcionar alta disponibilidade ao MySQL e consiste em um recurso nativo do banco de dados, disponível “out-of-the-box” (de modo integrado) sem opcionais ou add-ons complicados. A replicação permite que o banco de dados copie ou duplique alterações de um local físico ou sistema para outro (normalmente do sistema “master” para o “slave”) em um cluster fracamente acoplado. Esse recurso é usado para aumentar a disponibilidade e a escalabilidade do banco de dados e agregar flexibilidade que permite aos usuários executar operações de backup ou consultas analíticas em relação aos sistemas slave, aliviando a carga de tais funções no master.

Quando implantadas para bancos de dados de alta disponibilidade, as atualizações são replicadas do servidor master para o slave, com o objetivo de colocar o slave offline (failover), caso o master fique offline em virtude de um erro, pane ou para fins de manutenção. O MySQL pode replicar dentro de um datacenter ou entre vários datacenters, permitindo a recuperação de desastres nos locais necessários. A replicação do MySQL não oferece uma ferramenta de failover automatizada, mas é possível implementá-la no nível dos aplicativos ou do banco de dados por meio de uma série de mecanismos.

Também é possível replicar dados de um servidor de banco de dados do MySQL (o master) para um ou mais servidores MySQL (slaves). Por padrão, a replicação é assíncrona – os slaves não precisam permanecer conectados para receber atualizações do master. Isso significa que as atualizações podem ocorrer em conexões de longa distância, temporárias ou intermitentes, como em um serviço dial-up (conexão discada). Dependendo da configuração, é possível replicar todos os bancos de dados, selecionar os BDs a serem replicados ou mesmo tabelas em um banco de dados.

A replicação do MySQL pode ser usada com as seguintes finalidades:

• Soluções de scale-out (expansão) - distribuir a carga entre vários slaves para melhorar o desempenho. Nesse ambiente, todas as gravações e atualizações devem ocorrer no servidor master. No entanto, as leituras podem ocorrer em um ou mais slaves. Esse modelo pode melhorar o desempenho das gravações (pois o master fica dedicado às atualizações), ao mesmo tempo em que aumenta sensivelmente a velocidade de leitura em um número cada vez maior de slaves.

• Segurança dos dados - como os dados são replicados para o slave, o qual pode interromper o processo de replicação, é possível executar serviços de backup no slave sem danificar os dados masters correspondentes.

• Funções analíticas - dados dinâmicos podem ser criados no master, enquanto as análises das informações podem ser feitas no slave sem afetar o desempenho do master.

• Distribuição de dados de longa distância - se uma filial da empresa quiser trabalhar com uma cópia dos dados principais, poderá usar a replicação a fim de criar uma cópia local dos dados com essa finalidade, sem precisar de acesso permanente ao master.

No MySQL, a replicação é unidirecional e assíncrona, ou seja, um servidor age como master enquanto um ou mais servidores funcionam como slaves. Já no MySQL Cluster, a replicação é síncrona.

O MySQL 5.5 oferece suporte a uma interface semissíncrona, além de replicação assíncrona integrada. Com a replicação semissíncrona, uma confirmação (commit) é executada nos blocos do lado master antes de retornar à sessão que executou a transação até que pelo menos um slave reconheça o recebimento e registre os eventos referentes à transação.

Configuração de Replicação Básica

A replicação do MySQL funciona por meio da configuração de um servidor como master, com um ou mais servidores definidos como slaves. O master registra as alterações feitas no banco de dados. Depois de registradas, essas alterações são enviadas e aplicadas ao(s) slave(s) imediatamente ou após o intervalo determinado (versão 5.6).

O servidor master grava as atualizações desses arquivos de log binários e mantém um índice desses arquivos para controlar a rotação de logs. Os arquivos de log binários servem como um registro das atualizações a serem enviadas aos slaves. Quando um slave é conectado ao master, ele determina a leitura da última posição nos logs sobre a conexão com o master mais recente estabelecida com êxito. O slave então recebe eventuais atualizações ocorridas desde a última conexão e as aplica antes de continuar consultando o master quanto a novas atualizações. O slave continua fazendo a leitura de solicitações de serviço durante esses processos.

Page 13: Recursos e Benefícios do MySQL

MySQL | 13

Slave Slave Slave

Modos de replicação do banco de dados - há vários modos de replicação, definidos como assíncronos, semissíncronos ou síncronos.

Replicação assíncrona - as atualizações são confirmadas para o banco de dados no master e retransmitidas para o slave onde também são aplicadas. Como não espera até o slave receber a atualização, o master pode continuar processando novas atualizações sem ficar bloqueado enquanto aguarda o reconhecimento do slave. Qualquer retardo (lag) entre atualizações confirmadas que estão sendo replicadas é mais perceptível com aplicativos altamente transacionais, nos quais existe um grande volume de atualizações (gravações) ou quando a replicação é executada em uma rede de longa distância (WAN, na sigla em inglês). No entanto, com os componentes e ajuste corretos, a replicação propriamente dita pode parecer quase instantânea para o aplicativo.

É importante observar que a replicação assíncrona não garante que todas as instruções serão replicadas em caso de interrupção no master. Depois do failover, os aplicativos poderão constatar que as atualizações mais recentes não foram replicadas ao slave. Os outros modos de replicação explicados a seguir resolvem a questão de consistência entre o master e seus slaves.

Em essência, o MySQL oferece suporte à replicação unidirecional, assíncrona, como um recurso padrão do banco de dados. Usando a replicação assíncrona, os slaves não precisam permanecer conectados para receber atualizações do master. Isso significa que as atualizações podem ocorrer em conexões de longa distância, temporárias ou até mesmo intermitentes. Dependendo da configuração, é possível replicar todos os bancos de dados, selecionar os BDs a serem replicados ou mesmo tabelas em um banco de dados.

Replicação semissíncrona - o MySQL 5.5 inclui suporte para replicação semissíncrona, que melhora a integridade dos dados, especialmente em caso de failover do master, e pode ser usada como uma alternativa à replicação assíncrona padrão. É possível combinar os diferentes modos de replicação, para que alguns slaves sejam configurados com replicação assíncrona enquanto outros usem a replicação semissíncrona. Com a replicação semissíncrona, uma confirmação é retornada ao master (depois ao aplicativo) quando um slave recebe a atualização, informando da existência de dados em pelo menos dois locais (no master e ao menos em um slave). Um thread que executa uma confirmação de transação no master é bloqueado e aguarda até pelo menos um slave semissíncrono reconhecer o recebimento de todos os eventos da transação ou até o tempo limite (timeout).

Quando o bloco termina, o master retorna à sessão e pode continuar executando outras instruções. A essa altura, a transação foi confirmada no lado do master e o recebimento de seus eventos foi reconhecido por pelo menos um slave. Em termos de consistência, a replicação semissíncrona fica entre a assíncrona e a totalmente síncrona, embora o slave apenas reconheça o recebimento e não confirme a atualização.

Replicação síncrona - os dados são confirmados em dois ou mais hosts ao mesmo tempo por meio de um protocolo 2PC (two phase commit). A replicação síncrona garante a consistência entre vários sistemas, facilita e acelera os tempos de resposta de failover em caso de interrupção no sistema, mas pode agregar pequena sobrecarga ao desempenho como resultado da troca de mensagens adicional entre os nós. Em essência, o MySQL Cluster oferece suporte à replicação síncrona e também emprega uma arquitetura autocompartilhada (particionada) e com vários master em paralelo para melhorar consideravelmente o desempenho de aplicativos com uso intensivo de gravação, que precisam funcionar 99,999% do tempo.

Várias Topologias de ReplicaçãoRetransmissão/Standby

SimplesMaster

Slave Slave Slave

ÁrvoreMaster

Slave Slave

Circular Master

Master

Master

Master

Dois mastersMaster

Master

Slave

Retransmissão/Standby

Slave

Master

Slave

Page 14: Recursos e Benefícios do MySQL

14 | MySQL

MySQL Cluster Carrier Grade

O MySQL Cluster é uma tecnologia que permite formar clusters de bancos de dados na memória em um sistema shared-nothing (nada compartilhado). A arquitetura shared-nothing permite que o sistema funcione com hardware muito barato e um mínimo de requisitos específicos de hardware ou software.

O MySQL Cluster é projetado para não ter nenhum ponto único de falha. Em um sistema shared-nothing, cada componente deve ter a sua própria memória e disco, e a utilização de mecanismos de armazenamento compartilhado, como redes, sistemas de arquivos em rede e SANs não são recomendados ou suportados.

O MySQL Cluster integra o servidor MySQL padrão com um engine de armazenamento em cluster na memória chamado NDB (Network DataBase). Em nossa documentação, o termo NDB refere-se à parte da configuração específica para o engine de armazenamento, enquanto “MySQL Cluster” refere-se à combinação de um ou mais servidores MySQL com o engine de armazenamento NDB.

Um MySQL Cluster consiste em um conjunto de computadores, conhecidos como hosts, cada qual executando um ou mais processos. Esses processos, conhecidos como nós, podem incluir servidores MySQL (para acesso a dados do NDB), nós de dados (para armazenamento dos dados), um ou mais servidores de gerenciamento e, possivelmente, outros programas especializados em acesso de dados. A relação desses componentes em um MySQL Cluster é mostrada aqui: Componentes do MySQL Cluster

Todos estes programas trabalham em conjunto para formar um MySQL Cluster. Quando os dados são armazenados pelo engine de armazenamento NDB, as tabelas (e respectivos dados) são armazenados nos nós de dados. Essas tabelas podem ser acessadas diretamente de todos os outros servidores MySQL (nós SQL) no cluster. Assim, em um aplicativo de folha de pagamento que armazena dados em um cluster, se um aplicativo atualizar o salário de um funcionário, todos os outros servidores MySQL que consultam esses dados poderão ver essa alteração imediatamente.

No entanto, um servidor MySQL que não esteja conectado a um MySQL Cluster não pode usar o engine de armazenamento do NDB nem acessar quaisquer dados do MySQL Cluster.

Os dados armazenados nos nós de dados para o MySQL Cluster podem ser espelhados, o cluster pode processar falhas de nós individuais de dados sem outro impacto além de um número pequeno de transações canceladas devido à perda do estado de transação. Como se espera que os aplicativos transacionais processem a falha de transação, essa não deve ser uma fonte de problemas.

Nós individuais podem ser interrompidos e reiniciados, e, em seguida, podem reingressar no sistema (cluster). Reinicializações sem interrupção (nas quais todos os nós são reiniciados um de cada vez) são usadas quando há alterações na configuração e atualizações de software.

A realização e restauração de backup dos bancos de dados MySQL Cluster podem ser feitas usando a funcionalidade NDB nativa encontrada no cliente de gerenciamento do MySQL Cluster e o programa ndb_restore incluído na distribuição MySQL Cluster. Você também pode usar a funcionalidade padrão do MySQL fornecida para essa finalidade no mysqldump e no servidor MySQL.

Os nós do MySQL Cluster podem usar uma série de mecanismos de transporte diferentes para comunicações inter-nós, incluindo TCP/IP usando o padrão 100 Mbps ou hardware de Ethernet mais rápido. Também é possível usar o protocolo de alta velocidade Scalable Coherent Interface (SCI) com o MySQL Cluster, embora não seja obrigatório usar o MySQL Cluster, pois o SCI exige hardware e software especiais.

O MySQL Cluster Manager simplifica a criação e a administração do banco de dados MySQL Cluster Carrier Grade Edition, automatizando tarefas comuns de gerenciamento.

Page 15: Recursos e Benefícios do MySQL

MySQL | 15

C/C++

Glassfish

LDAP (Lightweight Directory Access Protocol)

Nós SQL do MySQL (mysqld)

(Protocolo 2PC)

Nós de dados do MySQL Cluster Alternativa de cliente personalizado

(NDBAPI)

Servidor de gerenciamento do MySQL Cluster

ndb_mgmd

Cliente de gerenciamento do NDB ndb_mgm

O MySQL Cluster é composto por três tipos de nó que, coletivamente, fornecem alta disponibilidade para o aplicativo:• Nós de dados gerenciam o armazenamento e acesso aos dados. As tabelas são automaticamente particionadas em todos

os nós de dados que também processam transparentemente o balanceamento de carga, a replicação, o failover e a auto-recuperação. Não há necessidade de mecanismo de heart beat ou middleware de gerenciamento de recursos – todas essas funções estão integradas diretamente no MySQL Cluster. Nós de aplicativo fornecem conectividade a partir da lógica do aplicativo para os nós de dados. Várias APIs são apresentadas para o aplicativo. O MySQL fornece uma interface SQL padrão, incluindo conectividade com todas as principais linguagens de desenvolvimento para Web e frameworks. Há também uma ampla variedade de interfaces NoSQL incluindo memcached, REST/JSON, C++ (NDB-API), Java e JPA.

• Nós de gerenciamento são usados para configurar o cluster e fornecer arbitragem no caso de uma partição de rede para evitar um “split brain” (redes separadas), o que levaria à inconsistência de dados.

• A resiliência a falhas com o recurso de auto-recuperação• A arquitetura distribuída, shared-nothing do MySQL Cluster foi cuidadosamente concebida para garantir a resiliência

a falhas, com auto-recuperação automatizada.• Os dados dentro de um nó são replicados simultaneamente para todos os nós dentro do grupo. Se um nó de dados

falhar, há sempre pelo menos um outro nó armazenando a mesma informação.• No caso de uma falha de nó de dados, o servidor MySQL ou o nó do aplicativo pode usar qualquer outro nó de dados

no grupo para executar transações. O aplicativo simplesmente tentará novamente a transação e os nós de dados restantes atenderão a solicitação com sucesso.

• O MySQL Cluster detecta eventuais falhas instantaneamente e o controle é automaticamente submetido a failover para outros nós ativos no cluster, sem interromper o serviço para os clientes.

• No caso de falha, os nós do MySQL Cluster conseguem realizar a auto-recuperação, sendo reiniciados, recuperados e reconfigurados de modo dinâmico e automático – tudo com total transparência para o aplicativo.

• Nós duplicados do servidor de gerenciamento podem ser implantados de modo que nenhuma função de gerenciamento ou arbitragem seja perdida se um servidor de gerenciamento falhar.

Quando o cluster é projetado dessa forma, o sistema torna-se confiável e altamente disponível, pois os pontos únicos de falha foram eliminados. Qualquer nó pode ser perdido sem que isso afete o sistema como um todo.

Topologia do MySQL Cluster

Clientes Clientes/

APIs

Page 16: Recursos e Benefícios do MySQL

16 | MySQL

Enterprise Dashboard Monitor

MySQL Enterprise Monitor O MySQL Enterprise Monitor oferece os seguintes benefícios:• Tenha uma visão consolidada sobre a integridade de todos os seus bancos de dados MySQL.• Monitore mais de 600 variáveis do MySQLs e do sistema operacional com o Enterprise Dashboard.• Monitore sessões, conexões, latência de replicação MySQL e muito mais, com mais de 30 gráficos.• Melhore o desempenho do aplicativo com o MySQL Query Analyzer.• Ganhe visibilidade imediata de suas topologias de replicação através da detecção automática e agrupamento.• Visualize em tempo real o desempenho master/slaves usando o MySQL Replication Monitor.• Personalize o MySQL Enterprise Monitor para suas necessidades específicas com opções de customização.• Seja notificado sobre problemas antes que eles se tornem falhas custosas, usando alertas orientados por limites.• Use recursos de login único através da integração LDAP.• Resolva problemas mais rapidamente usando a opção de coletar e agregar servidores de MySQL, sistemas operacionais e

consultas de diagnósticos referente ao MySQL Support.• MySQL Cluster Graphs e Advisor fornecem monitoramento em tempo real e automatizado de nós de dados do MySQL

Cluster e sugestões de melhores práticas.• O MySQL e o Operating System Graphs proporcionam melhor monitoramento visual de recursos importantes do

sistema, como transações de banco de dados e eficiência do cache binlog para a obtenção de tendências de histórico e em tempo real.

O MySQL Enterprise Monitor é um aplicativo para a Web distribuído e é implantado dentro da segurança de seu firewall. É composto de um Gerenciador de Serviços centralizado e Agente de Serviço leve instalado em cada servidor MySQL monitorado.

Page 17: Recursos e Benefícios do MySQL

MySQL | 17

Enterprise Dashboard - Query Analyzer

MySQL Query Analyzer

O MySQL Query Analyzer ajuda desenvolvedores e DBAs a melhorar o desempenho dos aplicativos através do monitoramento de consultas e localização precisa do código SQL que está causando uma lentidão. Com os novos MySQL Connector Plug-ins, o desempenho de aplicativos em Java e Microsoft.NET pode ser otimizado de forma mais eficiente, através da comunicação direta com o MySQL Query Analyzer.As consultas são apresentadas em uma visão integrada de todos os servidores MySQL, assim DBAs e desenvolvedores podem filtrar problemas de consulta específicos e identificar o código que consome mais recursos. Com o MySQL Query Analyzer, os DBAs podem aprimorar o código SQL durante o desenvolvimento ativo e monitorar e ajustar continuamente as consultas em produção.

MySQL Advisors

O MySQL Enterprise Monitor difere dos tradicionais monitores de banco de dados de terceiros porque fornece um conjunto completo de MySQL Advisors que são projetados para examinar automaticamente a configuração, a segurança e os níveis de desempenho de um servidor MySQL; identificar problemas e oportunidades de ajuste, e oferecer ações corretivas específicas.O MySQL Enterprise Monitor oferece o seguinte conjunto de Advisors de melhores práticas:• Atualização - monitora e orienta sobre como utilizar a versão mais segura e atualizada do MySQL que você deve

implantar.• Administração – monitora e orienta sobre problemas relacionados com a administração geral do banco de dados,

capacidade de recuperação e as definições de configuração de desempenho.• Segurança – monitora vulnerabilidades de segurança no banco de dados MySQL e orienta sobre como proteger o sistema

contra possíveis violações de segurança.• Replicação – monitora e orienta sobre os problemas relativos à segurança, configuração de replicação, e latência master/

slaves.• Uso de memória - monitora os indicadores da memória dinâmica relacionados ao servidor (uso de cache, taxas de

ocorrências etc.) e informa sobre mudanças de configuração para melhorar o desempenho.• Desempenho – monitora indicadores dinâmicos de desempenho relacionados ao servidor e orienta sobre as definições de

configuração e variáveis para melhorar o desempenho.• Esquema – monitora e informa sobre alterações não planejadas de um esquema de banco de dados• Cluster – monitora a memória de nós de dados do MySQL Cluster, status do espaço de buffer undo/redo, status do

espaço de log undo/redo de nó ativo/inativo e orienta sobre como otimizá-los.• Personalização – crie suas próprias regras e orientações de melhores práticas adequadas ao seu uso específico do MySQL.Monitoramento de Topologias de Replicação/Scale Out (Expansão)O Enterprise Dashboard facilita a expansão usando o MySQL Replication, fornecendo a detecção automática, agrupamento, documentação e monitoramento de todas as relações hierárquicas entre master e slaves da replicação do MySQL. Alterações e adições a topologias de replicação existentes também são detectadas e mantidas automaticamente proporcionando visibilidade instantânea das atualizações recém-implementadas. Isso ajuda a reduzir a curva de aprendizado para quem não tem muita experiência em replicação do MySQL ou em ambientes de expansão específicos.

Enterprise Dashboard - Replicação

Page 18: Recursos e Benefícios do MySQL

18 | MySQL

MySQL Enterprise Backup O MySQL Enterprise Backup é a solução ideal para fazer backup de bancos de dados MySQL.

Backup

O MySQL Enterprise Backup executa backups dos bancos de dados online sem bloquear os backups de seus bancos de dados MySQL. Os backups completos podem ser executados em todos os dados InnoDB, enquanto o MySQL estiver online, sem interromper consultas ou atualizações. Além disso, há suporte para backups incrementais, nos quais somente os dados alterados desde um backup anterior são copiados. Há suporte também para backups parciais, quando apenas algumas tabelas ou espaços de tabela precisam ser incluídos no backup.

Restauração

O MySQL Enterprise Backup restaura seus dados a partir de um backup completo. A recuperação pontual (PITR, na sigla em inglês) consistente permite que os DBAs executem uma restauração de um ponto específico no tempo. Usando binlog e backups MySQL, os DBAs também podem executar recuperação com rolagem para frente (roll-forward recovery) para uma transação específica. A restauração parcial permite a recuperação de tabelas ou espaços de tabelas específicos. Além disso, os DBAs podem restaurar backups em um local separado, criar clones para configuração ou administração de replicação rápida.

Compactação

O MySQL Enterprise Backup comporta a criação de arquivos de backup compactados, geralmente, reduzindo o tamanho do backup de 70% até mais de 90% em comparação ao tamanho dos arquivos de banco de dados reais, reduzindo os custos de armazenamento, entre outros.

Como o MySQL Enterprise Backup FuncionaO MySQL Enterprise Backup fornece uma interface de linha de comando. Os backups são gravados no disco e como a maioria das recuperações ocorre em uma semana ou um dia, isso funciona como uma área de armazenamento em disco que pode ser acessada rapidamente. No longo prazo, talvez seja necessário recorrer a um arquivamento em fita, especialmente para backups completos.

O MySQL Enterprise Backup também fornece conhecimento intrínseco de formatos de arquivos de banco de dados:• Executa validação em bloco• Entende a recuperação de arquivos de dados e espaços de tabela• Realiza backups apenas de dados reais e proporciona compactação de bloco não utilizado• Oferece recuperação consistente• Reduz o tamanho do arquivo de backup em mais de 90% usando a compactação de arquivos

Page 19: Recursos e Benefícios do MySQL

MySQL | 19

MySQL Enterprise Backup - Recursos e BenefíciosRecursos Benefícios

BackupBackup completo Um backup completo é realizado em todos os dados InnoDBBackup incremental Somente os dados que foram alterados desde o backup anterior (completo ou

incremental)Backup parcial Um backup de tabelas ou espaços de tabela específicosBackup online de tabelas InnoDB

O backup acontece totalmente online, sem impedir consultas ou atualizações

Suporte de backup online e offline (hot e cold)

Os backups podem ser executados com o MySQL online ou offline

RecuperaçãoRestauração completa A restauração completa pode ser realizada a partir de um backup completo de todos

os dados InnoDBRecuperação pontual (PITR) consistente

Executa a recuperação com rolagem para frente até um determinado ponto no tempo

Recuperação com rolagem para frente

Os backups podem ser implantados para uma transação específica visando a uma recuperação refinada

Restauração parcial Restauração de tabelas ou espaços de tabelas específicosRestauração para um local separado

Restaura para um local separado, cria clones para a configuração ou administração de replicação rápida

Recursos avançadosBackups compactados O backup de arquivos InnoDB pode ser compactado, economizando até 90% do

armazenamentoSem bloqueios O backup de tabelas InnoDB acontece totalmente online, sem bloquear consultas ou

atualizaçõesBackup de espaços de tabelas ou conjuntos de tabelas específicos

Melhora o desempenho, reduz o tempo de backup e diminui as exigências de I/O

Detecção de danos Verifica somas de verificação da página ao copiar dados InnoDB e arquivos de logSincronização de tarefas Permite a sincronização de tarefas pontuais de outras tarefas com o backupFazer backup apenas de dados reais

Não copiar blocos não utilizados. Menos leituras e gravações no backup e recuperação; o arquivo de backup usa menos espaço

Instalação fácil Simples de instalar e implantar em toda a empresaAlto desempenho O tempo de backup é comparável à cópia de arquivos; a aplicação de logs referentes à

recuperação é ainda mais rápidaTamanho do banco de dados ilimitado

Escalável, funciona bem para bancos de dados pequenos e muito grandes

Executado fora do espaço de processo do MySQL

Elimina o risco e aumenta o desempenho de execução como um processo separado, fora do espaço de processo do MySQL. O MySQL Enterprise Backup não instala nenhum banco de dados adicional, DLLs, scripts, procedimentos armazenados ou tabelas nas instâncias do MySQL

Interface programável A Interface de linha de comando permite integração fácil nos vários sistemas de programação

Engines de armazenamentoBackup para Diversos Engines de Armazenamento e Formatos

InnoDB, MyISAM, Merge, Partition, Archive

Backup de tabelas MyISAM Enquanto as tabelas MyISAM estão sendo copiadas, os usuários podem ler as tabelas MyISAM, mas não podem modificá-las

Page 20: Recursos e Benefícios do MySQL

Oracle Corporation500 Oracle Parkway

Redwood Shores, CA 94065