Todos os posts de Alexandre Almeida

Replicação SBR, Replicate_Do_DB e qualificadores de banco: MISTURA PERIGOSA!

SurpresoNão, este não sou eu! O Titio é bem mais bonitinho (boa definição para um feio arrumadinho). Mas, esta cara de bocó abismado bem me veste, ao trazer à luz este assunto. Sinceramente, não sei dizer se seria um byta-bug, ou, um problema de configuração.

Apesar da introdução, como não poderia deixar de ser, o assunto é sério e merece uma revisão da configuração de seu ambiente de replicação.

Ao longo do tempo tenho ouvido algumas reclamações, muito esporádicas e pontuais, sobre problemas na replicação, que por vezes “deixa de replicar”. Contudo, como na maioria das vezes, tratava-se de uma “meia dúzia” de comandos, muitos de manutenção, os quais podiam ser replicados manualmente, jamais, justificou-se um forensic (investigação) mais apurado.

Continue lendo Replicação SBR, Replicate_Do_DB e qualificadores de banco: MISTURA PERIGOSA!

MySQL 5.6 – Parallel Coworker

desconfiadoPor volta de um mês atrás, escrevi um post acerca das virtudes do MySQL 5.6 RC (release candidate), dizendo que não havia problema algum e que tudo ficaria bem. Mas, agora percebo que disse isto cedo demais. Não se aflijam! Eu explicarei o motivo, e, a maioria dos usuários não foram afetados!

Antes de mais nada, agora que o MySQL 5.6 já está em produção (GA – General Available), é uma ótima idéia que todos migrassem seus RDBMS para no mínimo a versão 5.6.10 GA. No entanto, cabe dizer que ainda não obtive evidências que o problema que será descrito à seguir tenha sido resolvido, dada à sua intermitência.

Pois bem, o MySQL 5.6 trouxe uma série de novidades, destacando-se aquelas relacionadas à replicação. A replicação do MySQL sempre foi uma característica nativa robusta e interessante. No MySQL 5.6 criou-se o conceito de “parallel coworkers” (colegas de trabalho paralelos).

Para entender o conceito de paralell coworkers, e, precisamos revisitar o funcionamento interno da replicação no MySQL.

Continue lendo MySQL 5.6 – Parallel Coworker

Colunas Auto Increment sob controle no MySQL

Semana passada um colega passou por uma situação interessante: perdeu o controle de uma coluna auto incrementável de suma importância, que culminou com a interrupção de um serviço on-line importante. Ora, faz parte do papel do DBA manter os dados sob rédea curta, sob controle, mesmo que às vezes eles se comportem como um cavalo doido, e, tente se comportar à margem das Leis de Murphy, Moore, dentre tantas outras.

Fazer colunas maiores do que, realmente, elas precisam ser é um grande desperdício de recurso. Principalmente, no MySQL, onde temos uma grande variedade de tipos de dados (data types).

Colunas menores ocupam menos espaço em disco, em memória, e, acima de tudo geram menos I/O. Na verdade, a diminuição de I/O é a nossa maior e legitima preocupação, quando entra em pauta o assunto “data types”.

Todo mundo tem uma coluna “id” para chamar de  “sua“. Pelo menos, se, minimamente, utiliza-se alguma das formas normais. Sem teorizar muito: toda tabela deveria ter uma coluna que identifica-se (id) uma linha de forma indelével (é, não faz parte do meu tradicional repertório, é efeito do filme Amour). Em outras palavras, é uma coluna que garante singularidade máxima a uma linha, candidatíssima a chave primária, de valor único e inconfundível! Uma maneira de o MySQL prover uma chave destas, é através do uso de AUTO INCREMENT e PRIMARY KEY.

Continue lendo Colunas Auto Increment sob controle no MySQL