Your SlideShare is downloading. ×
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Recursos e Benefícios do MySQL

6,169

Published on

WhiteppRecursos e Benefícios do MySQL

WhiteppRecursos e Benefícios do MySQL

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,169
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
189
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Este documento visa descrever nossa direção geral em termos de produtos. Tal conteúdo destina-se a fins exclusivamenteinformativos e não poderá ser incorporado a nenhum contrato. Este documento não consiste em compromisso de entregarnenhum 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 exclusivocritério da Oracle.
  • 2. 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-Safetotalmente 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 obanco 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, comoFacebook, Google, craigslist, LinkedIn, e eBay, confiam no MySQLpara seus aplicativos de missão crítica.O MySQL Database 5.5 melhora o desempenho e a escalabilidade emarquiteturas de hardware com multiprocessador. Os novos recursosde gerenciabilidade e monitoramento de replicação oferecem adesenvolvedores e administradores de bancos de dados (DBAs)ferramentas aprimoradas para a criação de aplicativos escaláveis e de Usuários de MySQL Enterprise nos EUAalto desempenho. Além disso, o MySQL Performance Schema oferece Empresas Telecomunicaçõesinsights de alto nível sobre os indicadores de performance do banco Lafarge Cox Communicationsde dados do MySQL. Toys-R-Us Nokia Shinsei Bank AlcatelMySQL Enterprise Edition CVS VodafoneO MySQL Enterprise Edition inclui o mais completo conjunto de Governo OEM/ISVrecursos avançados e ferramentas de gestão para alcançar os mais Naval Air Systems Command Symantecaltos níveis de escalabilidade, segurança, confiabilidade e tempo U.S. Census Bureau SAP Sagede funcionamento. Ele reduz o risco, o custo e a complexidade no NASA Ciscodesenvolvimento, implantação e gerenciamento de aplicativos MySQL National Security Agencyde missão crítica e inclui:MySQL Enterprise Backup: reduz o risco de perda de dados, permitindo a realização de backups dos bancos dedados 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 forMySQL e o Windows Failover Clustering for MySQL.MySQL Enterprise Scalability: permite alcançar desempenho sustentável e atende às exigências de escalabilidadeimpostas pelas crescentes cargas de dados, consultas e usuários. O MySQL Thread Pool oferece um eficientemodelo de processamento de threads desenvolvido para reduzir a sobrecarga na gestão das conexões de clientes ethreads de execução de instruções.MySQL Enterprise Security: oferece módulos de autenticação externa prontos para usar, para fácil integração doMySQL com as atuais infraestruturas de segurança, entre as quais, PAM e Windows Active Directory. Os usuáriosdo MySQL podem ser autenticados com os Pluggable Authentication Modules (“PAM”) ou serviços nativos doWindows.MySQL Enterprise Monitor e MySQL Query Analyzer: monitoram continuamente seus bancos de dados e oalertam sobre possíveis problemas antes que estes possam afetar o sistema. É como ter um “assistente virtualde 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 aumentona 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 deadministração para configuração de servidor, administração de usuários e muito mais. MySQL | 3
  • 3. 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 confiabilidadeCompromisso 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 abertosO LAMP stack Mais Completo do Setor Oracle Enterprise Linux Oracle Magazine • janeiro/fevereiro de 2011• A Oracle tem negócios expressivos na linha de software de código aberto: Apache, Glassfish• Oracle Enterprise Linux• Oracle VM (baseado em Xen) MySQL• Apache, Glassfish• MySQL PHP, Perl, Python• 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 EngineArchitecture do MySQL para que os usuários possam escolher entre vários engines de armazenamento nativos e de terceiros. A Pluggable Storage EngineArchitecture do MySQL deve corresponder à atual prática do MySQL de usar interfaces de programação de aplicativos documentadas e disponíveis para opúblico, de modo que os fornecedores de engines possam “conectá-los” no servidor de bancos de dados do MySQL. A documentação deve ser consistentecom 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çõesou 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 eminglês) por terem implementado interfaces de programação disponíveis como parte da Pluggable Storage Engine Architecture do MySQL. A Oracle nãoexigirá licença comercial de outros fornecedores de engines de armazenamento para implementar interfaces de programação de aplicativos como parteda Pluggable Storage Engine Architecture do MySQL. A Oracle deverá reproduzir esse compromisso em obrigações contratuais para fornecedores dearmazenamento 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 queatualmente 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 a10 de dezembro de 2014. A Oracle deverá reproduzir esse compromisso em obrigações contratuais para fornecedores de armazenamento que atualmentetenham 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çarconcomitantemente uma versão inédita e aprimorada do MySQL Community Edition licenciada sob a GPL. A Oracle deverá continuar a disponibilizargratuitamente 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 odesenvolvimento 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 daunidade 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 selecionadospara 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 deFornecedores de Engines de Armazenamento para oferecer orientação e feedback sobre as prioridades de desenvolvimento do MySQL e outros assuntosimportantes 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 doMySQL 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 MySQLpoderão renová-las em regime anual ou plurianual, de acordo com sua preferência.4 | MySQL
  • 4. 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, salvamalterações, etc. Os clientes podem rodar no mesmo computador, como o servidor, ou em outro computador (comunicaçãopor 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 principaldesvantagem 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 comopara administração do banco de dados. Existem vários dialetos SQL (quase tantos quanto o número de sistemas de bancosde dados). O MySQL segue o atual padrão de SQL (no momento, a SQL:2003), embora com restrições significativas e umgrande número de extensõesExibiçõ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, comoinserir ou excluir um registro de dados. Com eles, os programadores de clientes têm a vantagem de não precisar processar astabelas diretamente, e sim por meio dos SPs. Assim como as exibições, os SPs ajudam na administração de grandes projetosde 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 dedados (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 eUnicode (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 oMySQL para armazenar texto (como em um grupo de discussão na Internet), poderá usar a pesquisa de texto completo paraimplementar, 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. Naprática, isso é feito por dois motivos: para aumentar a proteção em caso de falha do sistema (assim, se um computador ficarinoperante, 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 debancos de dados em bloco. O sistema garante que ou todas as operações serão executadas corretamente ou nenhumadelas será efetivada. Isso vale mesmo se no meio de uma transação houver uma falha de energia, se ocorrer uma pane nocomputador ou acontecer algum outro tipo de desastre. Desse modo, por exemplo, não é possível que uma quantia dedinheiro 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, quelevariam 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áficosbidimensionais. 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 odesenvolvimento 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 quaisos desenvolvedores podem criar aplicativos de bancos de dados na linguagem de sua preferência. Além disso, a biblioteca Cnativa 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óprioMySQL (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 eSun Solaris. MySQL | 5
  • 5. 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 uso6 | MySQL
  • 6. 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. MySQL | 7
  • 7. 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 umdeterminado conteúdo baseado em texto nas tabelas do InnoDB. Essa nova funcionalidade permite pesquisas rápidas e precisas noconteúdo de documentos usando linguagem natural, booleana, expansão de consultas (caractere curinga) e opções/algoritmos depesquisa 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 deexecução extremamente demoradas, nos quais o limite do arquivo de REDO log poderia ser alcançado. Os UNDO logs do InnoDBresidirã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ãoseparar 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) earmazená-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 logsem 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 poolsdo InnoDB de/para o disco automaticamente no desligamento ou na reinicialização, ou manualmente a qualquer momento. O processode dump é rápido e compacto, com mínima sobrecarga de armazenamento no servidor, pois armazena apenas uma lista de páginasno buffer pool, e não o conteúdo delas. Na reinicialização, o processo de restauração recarrega os dados da página, mas é executadoem background (segundo plano) para que as operações normais do banco de dados sejam iniciadas de modo mais rápido e não sejamafetadas 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. Essaconfiguração é usada por muitos recursos úteis do InnoDB - compactação, armazenamento fora da página (off-page) para BLOBs egrandes prefixos de índices. Esse aprimoramento ajuda a reduzir a contenção no mutex do sistema de arquivos do InnoDB quando essesrecursos são usados em configurações com muitas tabelas. Desse modo, vários arquivos podem ser estendidos em um processo embackground 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 Flashe 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 4Ka 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 altadisponibilidade.Binlog API expõe uma interface programática C++ ao log binário, implementado como uma biblioteca independente. Osdesenvolvedores podem usar a API para ler e analisar eventos de logs binários de arquivos binlog existentes e de servidores emexecução, e replicar as alterações em outros armazenamentos de dados. Em resumo, com a nova Binlog API, os desenvolvedorespoderão reduzir a complexidade de integração, padronizando suas operações de gerenciamento de dados SQL no MySQL, ao mesmotempo em que replicam dados de outros aplicativos MySQL em sua infraestrutura de gerenciamento de dados. Para demonstrar aspossibilidades da Binlog API, foi desenvolvido um exemplo de aplicativo para replicar as alterações de um banco de dados MySQL noApache 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 odesempenho da replicação do MySQL, o Group Commit aplica atualizações ao log binário em paralelo e depois as confirma em grupono 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çãono momento e esperamos que os resultados desse exercício influenciem as decisões de implementação final. Esta é uma excelenteoportunidade 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 dedados. 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 otimizadacom base em linha, replicação com retardo e backup remoto do binlog. Juntas, essas capacidades melhoram o desempenho, aflexibilidade e a facilidade de uso.8 | MySQL
  • 8. 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áriose 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 BackupDando 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 AvailabilityO MySQL Enterprise Edition oferece inúmeras soluções de alta disponibilidade do banco de dados, para detecção e recuperaçãoautomá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 Detecção e Oracle VM Oracle VM recuperação Garante rápida implantação e ajuda a eliminar esforços de automáticas configuração e riscos, oferecendo uma imagem do software de falhas virtualizado e pré-configurado, aproveitando os recursos do Oracle Secure Live VM para oferecer alta disponibilidade. Migration (SSL) • Oracle Linux com Unbreakable Enterprise Kernel • Oracle VM • Oracle VM Manager • Oracle Cluster File System 2 (OCFS2) • MySQL Database (Enterprise Edition) Oracle VM • Pré-instalado e pré-configurado Manager • Integração total e testes de QA (garantia de qualidade) Servidores / Pool do Oracle VM • Único ponto de suporte** Oracle Cluster File System 2 (OCFS2) SAN / iSCSI ** 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 Slave Aplicativo Aplicativo Aplicativo 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. IP virtual • 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 Voto Dados Bin • Sem a necessidade de um novo software/script ** O suporte técnico para o Windows Server Failover Clustering pode ser obtido com a Microsoft. MySQL | 9
  • 9. MySQL Enterprise Scalability: pool de threadsPara alcançar escalabilidade e desempenho sustentáveis para as crescentes cargas de dados, consultas e usuários, o MySQLEnterprise Edition oferece pool de threads. Esse recurso oferece um modelo de processamento de threads altamenteescalá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 atendemum 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 eficientede 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 naescalabilidade 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 Pool de conexões padrão Thread de execução da conexão 1 Conexão 1 Conexões (instruções) atribuídas Thread de execução da conexão 2 Conexão 2 aos threads permanentemente • 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 Pool de threads e grupos de threads Thread de execução da conexão 1 Conexão 1 Conexão 1 Threads 1-4096 Thread de execução da conexão 2 Conexão 2 Conexão 2 Threads 4097-8193 Conexão N Threads 8193-N• 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áriosaumentam.10 | MySQL
  • 10. MySQL Enterprise SecurityO MySQL 5.5 introduziu uma API de autenticação conectável, com a qual os usuários podem ser autenticados pormeio de diretórios, bibliotecas externas etc. Os desenvolvedores podem usar essa API para criar seus próprios módulospersonalizados que integram o MySQL na infraestrutura de segurança existente. O MySQL Enterprise Edition aproveitaessa mesma API para fornecer módulos de autenticação externa prontos para usar, via PAM (Pluggable AuthenticationModules) 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áriosno 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 fimde autenticar as conexões dos clientes. Os usuários que iniciaram uma sessão do Windows poderão conectar-se dosprogramas de clientes MySQL ao servidor com base nas informações de token inseridas em seu ambiente, sem precisarespecificar uma senha adicional. MySQL Enterprise Security – Autenticação do PAM 1. Um usuário chamado “Joe” 2. O conector envia o nome de 3. O nome de usuário e senha são estabelece conexão usando seu nome usuário e senha ao servidor do enviados à biblioteca do PAM, que de usuário e senha MySQL responde sim ou não ao cliente Conector Autenticação do PAM Biblioteca do PAM (Outros backends) CREATE USER joe 4. A biblioteca do PAM verifica IDENTIFIED WITH Aplicativo as credenciais (usando LDAP ou ‘authentication_pam’ Kerberos) e responde sim ou não à AS ‘mysql’; solicitação do cliente. MySQL Enterprise Security – Autenticação do Windows 1. Um usuário chamado “Joe” acessa 3. MyDomain/joe acessa o aplicativo, 4. Os tokens são verificados, o o ambiente com o login e senha do que se conecta ao MySQL com o usuário win_joe é autenticado por Windows. usuário win_joe meio de login e senha do Windows, com privilégios específicos do MySQL. Autenticação Aplicativo do Windows 2. MyDomanjoe é autenticado no Windows. CREATE USER joe IDENTIFIED WITH ‘authentication_windows’ AS ‘mysql’; Usuários, grupos etc. do Windows MySQL | 11
  • 11. Replicação do MySQLA replicação é a abordagem mais comum para proporcionar alta disponibilidade ao MySQL e consiste em um recurso nativo do bancode dados, disponível “out-of-the-box” (de modo integrado) sem opcionais ou add-ons complicados. A replicação permite que o bancode dados copie ou duplique alterações de um local físico ou sistema para outro (normalmente do sistema “master” para o “slave”) emum cluster fracamente acoplado. Esse recurso é usado para aumentar a disponibilidade e a escalabilidade do banco de dados e agregarflexibilidade que permite aos usuários executar operações de backup ou consultas analíticas em relação aos sistemas slave, aliviando acarga 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, como 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 locaisnecessários. A replicação do MySQL não oferece uma ferramenta de failover automatizada, mas é possível implementá-la no nível dosaplicativos 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. Issosignifica 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 oumesmo 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 servidoresfuncionam 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 pelomenos um slave reconheça o recebimento e registre os eventos referentes à transação.Configuração de Replicação Básica Cliente Cliente Cliente Thread de I/O Master Dump de Slave Thread Log de Retransmissão DB Binlog DB Servidor da Web Thread de SQLA replicação do MySQL funciona por meio da configuração de um servidor como master, com um ou mais servidores definidos comoslaves. 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 delogs. Os arquivos de log binários servem como um registro das atualizações a serem enviadas aos slaves. Quando um slave é conectadoao master, ele determina a leitura da última posição nos logs sobre a conexão com o master mais recente estabelecida com êxito. O slaveentão recebe eventuais atualizações ocorridas desde a última conexão e as aplica antes de continuar consultando o master quanto anovas atualizações. O slave continua fazendo a leitura de solicitações de serviço durante esses processos.12 | MySQL
  • 12. 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émsão aplicadas. Como não espera até o slave receber a atualização, o master pode continuar processando novas atualizações sem ficarbloqueado enquanto aguarda o reconhecimento do slave. Qualquer retardo (lag) entre atualizações confirmadas que estão sendoreplicadas é mais perceptível com aplicativos altamente transacionais, nos quais existe um grande volume de atualizações (gravações) ouquando a replicação é executada em uma rede de longa distância (WAN, na sigla em inglês). No entanto, com os componentes e ajustecorretos, 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 nomaster. Depois do failover, os aplicativos poderão constatar que as atualizações mais recentes não foram replicadas ao slave. Os outrosmodos 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. Usandoa replicação assíncrona, os slaves não precisam permanecer conectados para receber atualizações do master. Isso significa que asatualizaçõ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 combinaros diferentes modos de replicação, para que alguns slaves sejam configurados com replicação assíncrona enquanto outros usem areplicação semissíncrona. Com a replicação semissíncrona, uma confirmação é retornada ao master (depois ao aplicativo) quando umslave recebe a atualização, informando da existência de dados em pelo menos dois locais (no master e ao menos em um slave). Umthread que executa uma confirmação de transação no master é bloqueado e aguarda até pelo menos um slave semissíncrono reconhecero 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 foiconfirmada no lado do master e o recebimento de seus eventos foi reconhecido por pelo menos um slave. Em termos de consistência, areplicação semissíncrona fica entre a assíncrona e a totalmente síncrona, embora o slave apenas reconheça o recebimento e não confirmea 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 phasecommit). A replicação síncrona garante a consistência entre vários sistemas, facilita e acelera os tempos de resposta de failover em casode interrupção no sistema, mas pode agregar pequena sobrecarga ao desempenho como resultado da troca de mensagens adicional entreos 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 degravação, que precisam funcionar 99,999% do tempo.Várias Topologias de ReplicaçãoRetransmissão/Standby Simples Árvore Circular Retransmissão/ Master Master Master Master Master Standby Slave Slave Slave Slave Slave Master Master Slave Slave Slave Slave Slave Slave Dois masters Master Master MySQL | 13
  • 13. MySQL Cluster Carrier GradeO MySQL Cluster é uma tecnologia que permite formar clusters de bancos de dados na memória em um sistemashared-nothing (nada compartilhado). A arquitetura shared-nothing permite que o sistema funcione comhardware 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 armazenamentocompartilhado, 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óriachamado NDB (Network DataBase). Em nossa documentação, o termo NDB refere-se à parte da configuraçãoespecífica para o engine de armazenamento, enquanto “MySQL Cluster” refere-se à combinação de um ou maisservidores MySQL com o engine de armazenamento NDB.Um MySQL Cluster consiste em um conjunto de computadores, conhecidos como hosts, cada qual executandoum ou mais processos. Esses processos, conhecidos como nós, podem incluir servidores MySQL (para acessoa dados do NDB), nós de dados (para armazenamento dos dados), um ou mais servidores de gerenciamentoe, possivelmente, outros programas especializados em acesso de dados. A relação desses componentes em umMySQL Cluster é mostrada aqui:Componentes do MySQL ClusterTodos estes programas trabalham em conjunto para formar um MySQL Cluster. Quando os dados sãoarmazenados pelo engine de armazenamento NDB, as tabelas (e respectivos dados) são armazenados nos nós dedados. 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 atualizaro salário de um funcionário, todos os outros servidores MySQL que consultam esses dados poderão ver essaalteração imediatamente.No entanto, um servidor MySQL que não esteja conectado a um MySQL Cluster não pode usar o engine dearmazenamento 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 processarfalhas de nós individuais de dados sem outro impacto além de um número pequeno de transações canceladasdevido à perda do estado de transação. Como se espera que os aplicativos transacionais processem a falha detransaçã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 afuncionalidade 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 MySQLfornecida 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çõesinter-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ãoseja 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 CarrierGrade Edition, automatizando tarefas comuns de gerenciamento.14 | MySQL
  • 14. 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 defalha foram eliminados. Qualquer nó pode ser perdido sem que isso afete o sistema como um todo.Topologia do MySQL Cluster Clientes/Clientes APIs Cliente de gerenciamento do NDB ndb_mgm C/C++ Nós SQL do MySQL (mysqld) (Protocolo 2PC) Glassfish Servidor de gerenciamento do MySQL Cluster ndb_mgmd LDAP (Lightweight Directory Access Protocol) Nós de dados do MySQL Cluster Alternativa de cliente personalizado (NDBAPI) MySQL | 15
  • 15. MySQL Enterprise MonitorO 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 MySQLmonitorado.Enterprise Dashboard Monitor16 | MySQL
  • 16. MySQL Query AnalyzerO MySQL Query Analyzer ajuda desenvolvedorese DBAs a melhorar o desempenho dos aplicativosatravés do monitoramento de consultas e localizaçãoprecisa do código SQL que está causando umalentidão. Com os novos MySQL Connector Plug-ins,o desempenho de aplicativos em Java e Microsoft.NETpode ser otimizado de forma mais eficiente, através dacomunicação direta com o MySQL Query Analyzer.As consultas são apresentadas em uma visãointegrada de todos os servidores MySQL, assimDBAs e desenvolvedores podem filtrar problemasde consulta específicos e identificar o código queconsome mais recursos. Com o MySQL QueryAnalyzer, os DBAs podem aprimorar o código SQLdurante o desenvolvimento ativo e monitorar e ajustarcontinuamente as consultas em produção.MySQL Advisors Enterprise Dashboard - Query AnalyzerO MySQL Enterprise Monitor difere dos tradicionais monitores de banco de dados de terceiros porque fornece um conjuntocompleto de MySQL Advisors que são projetados para examinar automaticamente a configuração, a segurança e os níveis dedesempenho 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çõese adições a topologias de replicação existentes também são detectadas e mantidas automaticamente proporcionandovisibilidade instantânea das atualizações recém-implementadas. Isso ajuda a reduzir a curva de aprendizado para quem nãotem muita experiência em replicação do MySQL ou em ambientes de expansão específicos. Enterprise Dashboard - Replicação MySQL | 17
  • 17. MySQL Enterprise BackupO MySQL Enterprise Backup é a solução ideal para fazer backup de bancos de dados MySQL.BackupO MySQL Enterprise Backup executa backups dosbancos de dados online sem bloquear os backups deseus bancos de dados MySQL. Os backups completospodem ser executados em todos os dados InnoDB,enquanto o MySQL estiver online, sem interromperconsultas ou atualizações. Além disso, há suportepara backups incrementais, nos quais somenteos dados alterados desde um backup anterior sãocopiados. Há suporte também para backups parciais,quando apenas algumas tabelas ou espaços de tabelaprecisam ser incluídos no backup.RestauraçãoO MySQL Enterprise Backup restaura seus dados apartir de um backup completo. A recuperação pontual(PITR, na sigla em inglês) consistente permite que osDBAs executem uma restauração de um ponto específicono tempo. Usando binlog e backups MySQL, os DBAstambém podem executar recuperação com rolagempara frente (roll-forward recovery) para uma transaçãoespecífica. A restauração parcial permite a recuperaçãode 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 dereplicação rápida.CompactaçãoO MySQL Enterprise Backup comporta a criaçãode arquivos de backup compactados, geralmente,reduzindo o tamanho do backup de 70% até maisde 90% em comparação ao tamanho dos arquivosde banco de dados reais, reduzindo os custos dearmazenamento, entre outros.Como o MySQL Enterprise Backup FuncionaO MySQL Enterprise Backup fornece uma interfacede linha de comando. Os backups são gravados nodisco e como a maioria das recuperações ocorreem uma semana ou um dia, isso funciona comouma área de armazenamento em disco que pode ser acessada rapidamente. No longo prazo, talvez seja necessáriorecorrer 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 arquivos18 | MySQL
  • 18. MySQL Enterprise Backup - Recursos e Benefícios Recursos BenefíciosBackupBackup 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 O backup acontece totalmente online, sem impedir consultas ou atualizaçõesInnoDBSuporte de backup online e Os backups podem ser executados com o MySQL online ou offlineoffline (hot e cold)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) Executa a recuperação com rolagem para frente até um determinado ponto no tempoconsistenteRecuperação com rolagem para Os backups podem ser implantados para uma transação específica visando a umafrente recuperação refinadaRestauração parcial Restauração de tabelas ou espaços de tabelas específicosRestauração para um local Restaura para um local separado, cria clones para a configuração ou administração deseparado replicação rápidaRecursos 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 Melhora o desempenho, reduz o tempo de backup e diminui as exigências de I/Oconjuntos de tabelas específicosDetecçã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 Não copiar blocos não utilizados. Menos leituras e gravações no backup ereais recuperação; o arquivo de backup usa menos espaçoInstalaçã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 Escalável, funciona bem para bancos de dados pequenos e muito grandesilimitadoExecutado fora do espaço de Elimina o risco e aumenta o desempenho de execução como um processo separado,processo do MySQL 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 MySQLInterface programável A Interface de linha de comando permite integração fácil nos vários sistemas de programaçãoEngines de armazenamentoBackup para Diversos Engines InnoDB, MyISAM, Merge, Partition, Archivede Armazenamento e FormatosBackup 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 MySQL | 19
  • 19. Oracle Corporation 500 Oracle ParkwayRedwood Shores, CA 94065

×