Arquivo da categoria: Storage Engines

MySQL – Criação de Tablespace

No começo, antes da versão 5.1, quando ainda não tínhamos o “innodb-file-per-table” todas as tabelas eram criadas, e, armazenadas dentro de uma única tablespace, chamada de  “shared tablespace”, em português “área compartilhada de tabelas”, ou ainda, em “brasileiro”: casa da mãe Joana. Os famosos arquivos IBDATAx. Uma baderna. Dados, índices, metadados, transações, catálogos… Enfim, tudo referente às tabelas innodb ficam em um mesmo arquivão no S/O.

Pró: Contiguidade. Alocava-se um grande espaço justaposto no disco evitando-se fragmentação física. Contras: Performance, manutenção, etc. No frigir dos ovos, era muito ruim.

Com o nascimento do 5.1 e seu novo parâmetro maroto “innodb-file-per-table”, que como diz a tradução ao pé da letra: dançou mané – agora é uma área (tablespace/arquivo) para cada tabela. Resolveu sim os problemas de manutenção. Em alguns casos, até de performance, em virtude da melhor alocação dos dados no Buffer Pool (buffer cache). Mas, também, chegou com muitos outros problemas: aumentou muito o número de arquivos no S/O, e, com isso a necessidade de “ponteiros”, com isso, tivemos que rever as configurações de memória.

Continue lendo MySQL – Criação de Tablespace

MySQL 5.7 – TableSpace Genéricas v2.0 – A nova Onda

O conceito de tablespace não tem nada de novo. Só não é mais velho que eu. Vários outros RDBMS (bancos de dados) o implementam faz algum tempo. No MySQL foi implementado pelos primórdios do innoDB.

Em linhas gerais o que é uma tablespace?
Tem algumas palavras em inglês que não fazem o menor sentido traduzidas, ou, em traduzi-las. Concorda comigo? Para mim, tablespace é uma dessas palavras. Vamos lá: “espaço de tabelas”. Tablespace é uma área, física e/ou lógica, na qual se aglomeram uma ou mais tabelas. É como se fosse uma área reservada para uma, ou, um grupo de tabelas. Seja com o objetivo de organização (tabelas com mesmo fim, aplicação, etc), volumetria, performance, segurança, etc.

O MySQL e sua épica jornada com tablespaces
No princípio de tudo, e até a chegada da versão 5.1, todas as tabelas com storage engine innoDB eram, compulsoriamente, criadas dentro de uma tablespace única, também chamada de compartilhada (shared tablespace). Fisicamente, consistia de um arquivo com síndrome de Buzz (pois, crescia ao infinito e além), de nome ibdata, que, ficava logo abaixo da raiz do DATADIR (diretório de dados, definido pela variável datadir, e, onde reside o schema do MySQL). Esta implementação me rendeu muitas horas de sono, pois, era uma verdadeira armadilha. Por ser um único arquivo contendo várias tabelas, apresentava contenções de S/O, era de difícil sustentação e manutenção.

Continue lendo MySQL 5.7 – TableSpace Genéricas v2.0 – A nova Onda

Backup lógico e tabelas federadas em: o mistério do backup malcriado

Medo de FederatedÉ muito frustrante quando precisamos retornar um backup, e, fatalmente, descobrimos que o arquivo está corrompido ou até incompleto. Às vezes, mais do que frustração, esta prosaica situação pode vir acompanhada de prejuízos, aborrecimentos, demissões, e, outras chatices.

Portanto, cuidar dos backups é como cuidar de um investimento de longo prazo. É preciso acompanhar de perto… e com os dois olhos muito abertos!

Nunca é demais repetir o meu mantra do backup perfeito:

– Raid não é backup! Não adianta ter uma mega-hiper-super avançada controladora de discos e seus espelhamentos. Em caso de ‘DELETE’ ou ‘UPDATE’ acidental, sua controladora irá atualizar todos os discos em Dobra Máxima, e nem o Senhor Sulu irá lhe ajudar a reverter o processo.

– Múltiplos Slaves é mais do mesmo em caso de escritas acidentais. Pergunte ao Senhor Spock.

– Back Up dever ser encarado como uma política de segurança e continuidade de negócio composta de: processos rígidos, técnicas, equipamentos e pessoas. Processos descrevem como (tipo de backup: lógico/textual, binário, incremental, diferencial, total), quando e qual granularidade deve ser feito o backup e seu controle de qualidade. Técnicas quais recursos e elementos técnicos devem ser adotados. Equipamentos nos direciona para qual tipo de dispositivo local ou remoto será utilizado, e, Pessoas significa quem faz, quem confere, quem atua em caso de desastre.

Continue lendo Backup lógico e tabelas federadas em: o mistério do backup malcriado