SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
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.
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 MySQL
Dezesseis 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 Usuários de MySQL Enterprise nos EUA
alto desempenho. Além disso, o MySQL Performance Schema oferece Empresas              Telecomunicações
insights de alto nível sobre os indicadores de performance do banco   Lafarge         Cox Communications
de dados do MySQL.                                                    Toys-R-Us       Nokia
                                                                      Shinsei Bank       Alcatel
MySQL Enterprise Edition                                              CVS                Vodafone
O MySQL Enterprise Edition inclui o mais completo conjunto de         Governo                          OEM/ISV
recursos avançados e ferramentas de gestão para alcançar os mais      Naval Air Systems Command        Symantec
altos níveis de escalabilidade, segurança, confiabilidade e tempo     U.S. Census Bureau               SAP Sage
de funcionamento. Ele reduz o risco, o custo e a complexidade no      NASA                             Cisco
desenvolvimento, implantação e gerenciamento de aplicativos MySQL     National Security Agency
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.

                                                                                                          MySQL | 3
Compromisso da Oracle com o MySQL
Estraté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                              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 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.


4 | MySQL
Recursos e Benefícios do MySQL
Arquitetura 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.
                                                                                                                     MySQL | 5
Recursos empresariais do MySQL 5.5
O 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
6 | MySQL
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
MySQL 5.6 - (Recursos de Acesso Antecipado) - InnoDB e Replicação
Aprimoramentos 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.
8 | MySQL
Novas Extensões Comerciais para o MySQL Enterprise Edition
As 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                                                                                  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
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


                                   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ários
aumentam.



10 | MySQL
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

 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
Replicação do MySQL
A 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
     Cliente    Cliente   Cliente                                                                  Thread de I/O
                                                            Master
                                                                              Dump de                              Slave
                                                                               Thread


                                                                                                  Log de
                                                                                              Retransmissão
                                                           DB        Binlog                                                DB

             Servidor da Web                                                                                   Thread de SQL

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.
12 | MySQL
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ção
Retransmissã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
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.
14 | MySQL
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
                                                                                         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
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.

Enterprise Dashboard Monitor




16 | MySQL
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                                                               Enterprise Dashboard - Query Analyzer
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




                                                                                                                 MySQL | 17
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 Funciona
O 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
18 | MySQL
MySQL Enterprise Backup - Recursos e Benefícios
           Recursos                                                     Benefícios
Backup
Backup completo                    Um backup completo é realizado em todos os dados InnoDB
Backup 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íficos
Backup online de tabelas           O backup acontece totalmente online, sem impedir consultas ou atualizações
InnoDB
Suporte de backup online e         Os backups podem ser executados com o MySQL online ou offline
offline (hot e cold)

Recuperação
Restauração completa               A restauração completa pode ser realizada a partir de um backup completo de todos
                                   os dados InnoDB
Recuperação pontual (PITR)         Executa a recuperação com rolagem para frente até um determinado ponto no tempo
consistente
Recuperação com rolagem para       Os backups podem ser implantados para uma transação específica visando a uma
frente                             recuperação refinada
Restauração parcial                Restauração de tabelas ou espaços de tabelas específicos
Restauração para um local          Restaura para um local separado, cria clones para a configuração ou administração de
separado                           replicação rápida

Recursos avançados
Backups compactados                O backup de arquivos InnoDB pode ser compactado, economizando até 90% do
                                   armazenamento
Sem bloqueios                      O backup de tabelas InnoDB acontece totalmente online, sem bloquear consultas ou
                                   atualizações
Backup de espaços de tabelas ou    Melhora o desempenho, reduz o tempo de backup e diminui as exigências de I/O
conjuntos de tabelas específicos
Detecção de danos                  Verifica somas de verificação da página ao copiar dados InnoDB e arquivos de log
Sincronização de tarefas           Permite a sincronização de tarefas pontuais de outras tarefas com o backup
Fazer backup apenas de dados       Não copiar blocos não utilizados. Menos leituras e gravações no backup e
reais                              recuperação; o arquivo de backup usa menos espaço
Instalação fácil                   Simples de instalar e implantar em toda a empresa
Alto desempenho                    O tempo de backup é comparável à cópia de arquivos; a aplicação de logs referentes à
                                   recuperação é ainda mais rápida
Tamanho do banco de dados          Escalável, funciona bem para bancos de dados pequenos e muito grandes
ilimitado
Executado 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 MySQL
Interface programável              A Interface de linha de comando permite integração fácil nos vários sistemas de
                                   programação

Engines de armazenamento
Backup para Diversos Engines       InnoDB, MyISAM, Merge, Partition, Archive
de Armazenamento e Formatos
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
                                                                                                                 MySQL | 19
Oracle Corporation
      500 Oracle Parkway
Redwood Shores, CA 94065

Más contenido relacionado

La actualidad más candente

Diagrama de Estados
Diagrama de EstadosDiagrama de Estados
Diagrama de Estados
Maikynata
 
Resumo diagramas de classes
Resumo diagramas de classesResumo diagramas de classes
Resumo diagramas de classes
Marco Coelho
 

La actualidad más candente (20)

Especificação de Requisitos de Software
Especificação de Requisitos de SoftwareEspecificação de Requisitos de Software
Especificação de Requisitos de Software
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Diagrama de Estados
Diagrama de EstadosDiagrama de Estados
Diagrama de Estados
 
Mercado Pet Shop
Mercado Pet ShopMercado Pet Shop
Mercado Pet Shop
 
Resumo diagramas de classes
Resumo diagramas de classesResumo diagramas de classes
Resumo diagramas de classes
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Uml
UmlUml
Uml
 
Apicultura Básica
Apicultura BásicaApicultura Básica
Apicultura Básica
 
PHP e MySQL para iniciantes
PHP e MySQL para iniciantesPHP e MySQL para iniciantes
PHP e MySQL para iniciantes
 
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I  Aula 02 - Introdução aos Bancos de DadosBanco de Dados I  Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
 
Instalações para gado de corte
Instalações para gado de corteInstalações para gado de corte
Instalações para gado de corte
 
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
 
Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarborCloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
 
Audiência: Dicas para construir apresentações com foco no espectador
Audiência: Dicas para construir apresentações com foco no espectadorAudiência: Dicas para construir apresentações com foco no espectador
Audiência: Dicas para construir apresentações com foco no espectador
 
Diagrama de Atividades - UML
Diagrama de Atividades - UMLDiagrama de Atividades - UML
Diagrama de Atividades - UML
 
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...
 
Manejo da ordenha e qualidade do leite
Manejo da ordenha e qualidade do leite Manejo da ordenha e qualidade do leite
Manejo da ordenha e qualidade do leite
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
 

Destacado

Apostila sql
Apostila sqlApostila sql
Apostila sql
snetobr
 
Progweb Aula8
Progweb Aula8Progweb Aula8
Progweb Aula8
softeam
 
O comando SELECT (ordenação)
O comando SELECT (ordenação)O comando SELECT (ordenação)
O comando SELECT (ordenação)
Graciano Torrão
 
The Power of MySQL Explain
The Power of MySQL ExplainThe Power of MySQL Explain
The Power of MySQL Explain
MYXPLAIN
 
Bdm aula 5 - construindo modelos er e mapeamento er-relacional
Bdm   aula 5 - construindo modelos er e mapeamento er-relacionalBdm   aula 5 - construindo modelos er e mapeamento er-relacional
Bdm aula 5 - construindo modelos er e mapeamento er-relacional
Ticianne Darin
 

Destacado (20)

MySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de ProdutoMySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de Produto
 
Tutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchTutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL Workbench
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Apostila sql
Apostila sqlApostila sql
Apostila sql
 
Manual SQL
Manual SQLManual SQL
Manual SQL
 
Segurança no MySQL
Segurança no MySQLSegurança no MySQL
Segurança no MySQL
 
Apresentação formação web - up marketing digital - módulo ii - 2º fds
Apresentação   formação web - up marketing digital - módulo ii - 2º fdsApresentação   formação web - up marketing digital - módulo ii - 2º fds
Apresentação formação web - up marketing digital - módulo ii - 2º fds
 
Progweb Aula8
Progweb Aula8Progweb Aula8
Progweb Aula8
 
O comando SELECT (ordenação)
O comando SELECT (ordenação)O comando SELECT (ordenação)
O comando SELECT (ordenação)
 
O comando SELECT (JOIN)
O comando SELECT (JOIN)O comando SELECT (JOIN)
O comando SELECT (JOIN)
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHP
 
MySQL - the database
MySQL - the databaseMySQL - the database
MySQL - the database
 
My sql apresentação
My sql apresentaçãoMy sql apresentação
My sql apresentação
 
Scrum para desenvolvedores
Scrum para desenvolvedoresScrum para desenvolvedores
Scrum para desenvolvedores
 
The Power of MySQL Explain
The Power of MySQL ExplainThe Power of MySQL Explain
The Power of MySQL Explain
 
PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de Dados
 
Como migrar una base de datos de mysql a power designer
Como migrar una base de datos de mysql a power designerComo migrar una base de datos de mysql a power designer
Como migrar una base de datos de mysql a power designer
 
Bdm aula 5 - construindo modelos er e mapeamento er-relacional
Bdm   aula 5 - construindo modelos er e mapeamento er-relacionalBdm   aula 5 - construindo modelos er e mapeamento er-relacional
Bdm aula 5 - construindo modelos er e mapeamento er-relacional
 

Similar a Recursos e Benefícios do MySQL

MySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundoMySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundo
MySQL Brasil
 
Apresentação servidores de aplicação
Apresentação   servidores de aplicaçãoApresentação   servidores de aplicação
Apresentação servidores de aplicação
Helen Picoli
 

Similar a Recursos e Benefícios do MySQL (20)

MySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundoMySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundo
 
Realmente devo pensar na versão Enterprise do MySQL?
Realmente devo pensar na versão Enterprise do MySQL?Realmente devo pensar na versão Enterprise do MySQL?
Realmente devo pensar na versão Enterprise do MySQL?
 
Uso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e FuturoUso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e Futuro
 
MySQL e Oracle para Desenvolvedores
MySQL e Oracle para DesenvolvedoresMySQL e Oracle para Desenvolvedores
MySQL e Oracle para Desenvolvedores
 
MySQL e Oracle para Desenvolvedores
MySQL e Oracle para DesenvolvedoresMySQL e Oracle para Desenvolvedores
MySQL e Oracle para Desenvolvedores
 
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
 
Guia essencial para embarcar o MySQL em seu produto
Guia essencial para embarcar o MySQL em seu produtoGuia essencial para embarcar o MySQL em seu produto
Guia essencial para embarcar o MySQL em seu produto
 
Trabalho de sgbd
Trabalho de sgbdTrabalho de sgbd
Trabalho de sgbd
 
Provedor de nuvem - Cloud Providers
Provedor de nuvem - Cloud Providers Provedor de nuvem - Cloud Providers
Provedor de nuvem - Cloud Providers
 
Soluçõo Oracle Cloud VMware
Soluçõo Oracle Cloud VMwareSoluçõo Oracle Cloud VMware
Soluçõo Oracle Cloud VMware
 
MySQL: o banco de dados open source mais popular do mundo
MySQL: o banco de dados open source mais popular do mundoMySQL: o banco de dados open source mais popular do mundo
MySQL: o banco de dados open source mais popular do mundo
 
MySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicações
 
Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linux
 
Apresentação servidores de aplicação
Apresentação   servidores de aplicaçãoApresentação   servidores de aplicação
Apresentação servidores de aplicação
 
MySQL Alta Performance & Alta Disponibilidade
MySQL Alta Performance & Alta DisponibilidadeMySQL Alta Performance & Alta Disponibilidade
MySQL Alta Performance & Alta Disponibilidade
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
MySQL June/2009 FDTI - Portuguese Version
MySQL June/2009 FDTI - Portuguese VersionMySQL June/2009 FDTI - Portuguese Version
MySQL June/2009 FDTI - Portuguese Version
 
MySQL e Oracle - GUOB Tech Day 2012
MySQL e Oracle - GUOB Tech Day 2012MySQL e Oracle - GUOB Tech Day 2012
MySQL e Oracle - GUOB Tech Day 2012
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_ics
 
Alta-disponibilidade com MySQL
Alta-disponibilidade com MySQLAlta-disponibilidade com MySQL
Alta-disponibilidade com MySQL
 

Más de MySQL Brasil

Más de MySQL Brasil (20)

MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017
 
MySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e UberMySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e Uber
 
MySQL 8.0.1 DMR
MySQL 8.0.1 DMRMySQL 8.0.1 DMR
MySQL 8.0.1 DMR
 
Alta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL EnterpriseAlta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL Enterprise
 
MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17
 
Segurança no MySQL
Segurança no MySQLSegurança no MySQL
Segurança no MySQL
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL
 
Alta disponibilidade no MySQL 5.7 GUOB 2016
Alta disponibilidade no MySQL 5.7 GUOB 2016Alta disponibilidade no MySQL 5.7 GUOB 2016
Alta disponibilidade no MySQL 5.7 GUOB 2016
 
MySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL 5.7 como Document Store
MySQL 5.7 como Document Store
 
Enabling digital transformation with MySQL
Enabling digital transformation with MySQLEnabling digital transformation with MySQL
Enabling digital transformation with MySQL
 
Alta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHPAlta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHP
 
Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7
 
NoSQL no MySQL 5.7
NoSQL no MySQL 5.7NoSQL no MySQL 5.7
NoSQL no MySQL 5.7
 
OpenStack & MySQL
OpenStack & MySQLOpenStack & MySQL
OpenStack & MySQL
 
10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups
 
Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15
 
Estratégias de Segurança e Gerenciamento para MySQL
Estratégias de Segurança e Gerenciamento para MySQLEstratégias de Segurança e Gerenciamento para MySQL
Estratégias de Segurança e Gerenciamento para MySQL
 
Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15
 
Serviços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e JavaServiços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e Java
 
MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15
 

Recursos e Benefícios do MySQL

  • 1.
  • 2. 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.
  • 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 MySQL Dezesseis 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 Usuários de MySQL Enterprise nos EUA alto desempenho. Além disso, o MySQL Performance Schema oferece Empresas Telecomunicações insights de alto nível sobre os indicadores de performance do banco Lafarge Cox Communications de dados do MySQL. Toys-R-Us Nokia Shinsei Bank Alcatel MySQL Enterprise Edition CVS Vodafone O MySQL Enterprise Edition inclui o mais completo conjunto de Governo OEM/ISV recursos avançados e ferramentas de gestão para alcançar os mais Naval Air Systems Command Symantec altos níveis de escalabilidade, segurança, confiabilidade e tempo U.S. Census Bureau SAP Sage de funcionamento. Ele reduz o risco, o custo e a complexidade no NASA Cisco desenvolvimento, implantação e gerenciamento de aplicativos MySQL National Security Agency 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. MySQL | 3
  • 4. Compromisso da Oracle com o MySQL Estraté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 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 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. 4 | MySQL
  • 5. Recursos e Benefícios do MySQL Arquitetura 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. MySQL | 5
  • 6. Recursos empresariais do MySQL 5.5 O 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 6 | 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. MySQL | 7
  • 8. MySQL 5.6 - (Recursos de Acesso Antecipado) - InnoDB e Replicação Aprimoramentos 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. 8 | MySQL
  • 9. Novas Extensões Comerciais para o MySQL Enterprise Edition As 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 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
  • 10. 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 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ários aumentam. 10 | MySQL
  • 11. 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 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
  • 12. Replicação do MySQL A 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 Cliente Cliente Cliente Thread de I/O Master Dump de Slave Thread Log de Retransmissão DB Binlog DB Servidor da Web Thread de SQL 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. 12 | MySQL
  • 13. 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ção Retransmissã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
  • 14. 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. 14 | MySQL
  • 15. 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 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
  • 16. 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. Enterprise Dashboard Monitor 16 | MySQL
  • 17. 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 Enterprise Dashboard - Query Analyzer 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 MySQL | 17
  • 18. 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 Funciona O 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 18 | MySQL
  • 19. MySQL Enterprise Backup - Recursos e Benefícios Recursos Benefícios Backup Backup completo Um backup completo é realizado em todos os dados InnoDB Backup 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íficos Backup online de tabelas O backup acontece totalmente online, sem impedir consultas ou atualizações InnoDB Suporte de backup online e Os backups podem ser executados com o MySQL online ou offline offline (hot e cold) Recuperação Restauração completa A restauração completa pode ser realizada a partir de um backup completo de todos os dados InnoDB Recuperação pontual (PITR) Executa a recuperação com rolagem para frente até um determinado ponto no tempo consistente Recuperação com rolagem para Os backups podem ser implantados para uma transação específica visando a uma frente recuperação refinada Restauração parcial Restauração de tabelas ou espaços de tabelas específicos Restauração para um local Restaura para um local separado, cria clones para a configuração ou administração de separado replicação rápida Recursos avançados Backups compactados O backup de arquivos InnoDB pode ser compactado, economizando até 90% do armazenamento Sem bloqueios O backup de tabelas InnoDB acontece totalmente online, sem bloquear consultas ou atualizações Backup de espaços de tabelas ou Melhora o desempenho, reduz o tempo de backup e diminui as exigências de I/O conjuntos de tabelas específicos Detecção de danos Verifica somas de verificação da página ao copiar dados InnoDB e arquivos de log Sincronização de tarefas Permite a sincronização de tarefas pontuais de outras tarefas com o backup Fazer backup apenas de dados Não copiar blocos não utilizados. Menos leituras e gravações no backup e reais recuperação; o arquivo de backup usa menos espaço Instalação fácil Simples de instalar e implantar em toda a empresa Alto desempenho O tempo de backup é comparável à cópia de arquivos; a aplicação de logs referentes à recuperação é ainda mais rápida Tamanho do banco de dados Escalável, funciona bem para bancos de dados pequenos e muito grandes ilimitado Executado 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 MySQL Interface programável A Interface de linha de comando permite integração fácil nos vários sistemas de programação Engines de armazenamento Backup para Diversos Engines InnoDB, MyISAM, Merge, Partition, Archive de Armazenamento e Formatos 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 MySQL | 19
  • 20. Oracle Corporation 500 Oracle Parkway Redwood Shores, CA 94065