Engines MySQL – Archive

Ola pessoal,

Hoje iremos falar do Engine Archive, suas caracteristicas e vantagens.

O Archive é usado para armazenar grandes volumes de dados em um formato compactado no MySQL, ocupando um espaço muito menor do que os demais engines.

Sabe aquela tabela de log, histórico, contato que você quase não a utiliza? Então, uma boa opção de trabalho é utilizar o Archive, por conta do armazenamento em disco e também na visualização destes dados.

Algumas vantagens e observações:

– Sua estrutura é representada pelo arquivo .frm
– Diferente do MyISAM, seus arquivos de dados são representados pelo: .ARZ , .ARN (apenas no momento de alguma otimização da tabela) e .ARM (Meta dados criado em versões anteriores ao MySQL 5.1.15)
Continue lendo

All privileges x Super privilege MySQL

Ola pessoal,

Essa comparação veio em um café da tarde diário, dai veio a dúvida, qual a diferença entre o All privileges x Super privilege no MySQL?

O All Privileges contempla todas as permissões, seja a nível de objetos como a nível de servidor, sendo padronizado como o ‘root’. O All Privileges pode ser definido a nível de base como a nível global.

Caso queira atribuir o grant a nível de base a um usuário, ou seja, para o usuário ter todos os privilégios nos objetos de uma base, basta seguir o exemplo:

Continue lendo

Engines MySQL – Memory

Ola pessoal,

Voltando a atualizar o blog, vamos falar do Engine Memory. Como o proprio nome já adianta, este Engine armazena as tabelas na memória do servidor. Isso realmente é necessário? Sim, principalmente para aplicações que dependem de algum cache temporário.

Com isso, tanto os dados como os indices nesta tabela são tratados na memória RAM do servidor, trazendo um ganho muito grande em desempenho.

Toda tabela é representada no datadir do mysql com um .frm, e não resistem ao restart do serviço. De forma detalhada, você pode popular uma tabela Memory, porém após efetuar um restart no MySQL, a estrutura da tabela ainda vai existir, porém sem nenhum dado.
Continue lendo

Engines MySQL – MyISAM

Olá pessoal,

Neste e nos próximos posts, iremos tratar dos engines disponíveis no MySQL! Em alguns tópicos já falamos sobre a diferença entre InnoDB e MyISAM e como consultar o Status das Engines no servidor.

Vamos explorar um pouco mais as características de cada engine, tanto como a estrutura e vantagens, começando hoje com o MyISAM.

O MyISAM foi o engine default do MySQL em versões anteriores a 5.5, ou seja, se uma tabela fosse criada sem a especificação do engine, ela era atribuída ao MyISAM.

Uma tabela MyISAM tem referência de três arquivos físicos no servidor, são eles:

.frm: armazena o formato da tabela
.MYD: armazena os dados da tabela
.MYI: armazena os índices da tabela

A referência é feita com o nome da tabela.extensão, e todos os arquivos são armazenados no datadir (diretório de dados) do servidor. Com isso, já podemos apontar a primeira vantagem ao utilizar o MyISAM:

Os índices de cada tabela são separados em arquivos diferentes dos dados, trazendo um aumento de performance no momento da consulta.

Devido a esta estrutura, as tabelas MyISAM ocupam pouco espaço no disco e também são portáteis, ou seja, você consegue copiar os arquivos de cada tabela em um servidor, e ‘exporta-los’ para outro servidor de forma direta, sem comprometer a integridade dos dados.

Porém antes de fazer isso, certifique-se que o servidor MySQL de destino tenha a mesma versão da origem, que não exista nenhum processo de escrita na tabela a ser copiada/migrada, ou de um stop no mysqld para copiar os arquivos.
Continue lendo

Gerenciar mais de um My.CNF MySQL

Ola pessoal,

Neste post veremos algo interessante para o gerenciamento do MySQL, que pode ser aplicado em um ambiente simples com poucos servidores, e até mesmo em um complexo com diversos hosts.

Trabalhar com mais de um arquivo de configuração do MySQL na mesma instância, lembrando que o padrão é o my.cnf .

A primeira dúvida que pode surgir é, qual a real necessidade de fazer isso? Bem, você pode ter um arquivo com as configurações padrões para todo um parque de máquinas, e outro apenas para alterações específicas a cada cliente, seja ele interno ou externo, como também um ambiente de testes.
Continue lendo

Como restaurar uma tabela MySQL

Ola pessoal,

Em época de férias, muito esforço nos estudos para tirar a 1z0-883, irei focar alguns posts futuramente sobre o exame.

“Eu amo backups e snapshot’s” diria um companheiro de trabalho, porém é comum e rotineiro o DBA trabalhar com estratégias de backup e restore.

Neste tópico, uma rápida pincelada de como efetuar o restore de uma única tabela no MySQL.

Tudo depende da origem do seu dump e de como ele foi gerado. Supondo que você tem o dump completo da base, acredito que a melhor forma é você restaura-lo em uma base temporária e efetuar o backup apenas da tabela que necessita.

Para restaura-lo em uma base através da linha de comando:

Após o termino do restore, vamos efetuar o dump desta unica tabela:

Continue lendo

Backup via mysqldump & Restore

Ola pessoal,

Ter um backup integro da base de produção é o dia a dia do DBA, afinal nunca sabemos quando a bruxa esta solta.

O MySQL já oferece o utilitário mysqldump, o qual você pode gerar backups lógicos de suas bases. Um script que falando muito por cima, traz toda a estrutura da sua base com todos os objetos, e pode ser manuseado com os parâmetros desejados.

Através do terminal linux, podemos gerar um backup lógico com o comando:

*Cuidado ao fazer isso em produção, pois o mysqldump ira efetuar um lock em cada tabela enquanto faz o backup, entrando em concorrência com as demais transações.
Continue lendo