Arquivo da categoria: Gerenciamento & Monitoramento

MySQL na Amazon AWS: RDS ou EC2?

Caras, estamos há dois dias da estréia do Star Wars no cinema. Nível de ansiedade nas alturas 🙂

Mas, voces não vieram aqui para falar de Star Wars. Então, vamos ao que interessa, e, deixemos que lado negro da força para iluminar sua mente.

Sopa de letrinhas: AWS é Amazon Web Services. Aliás, acho que “web”nem caberia mais, visto que os serviços da Amazon alcançou patamares muito mais elevados. RDS é a sigla para Relational Database Services, e, EC2 Elastic Compute Cloud.

Se voce jogar tudo isso é um liquidificador Kaminoano, teremos então um serviço de cloud, ideal para hospedagem de servidores de banco de dados.

A pergunta que sempre me fazem é: Devo hospedar meu banco de dados MySQL em RDS ou EC2?

Minha resposta padrão sempre prevalece: “Depende, pequeno Padawan”.

Vamos entender, em linhas gerais, quem é quem:

RDS: Uma instância RDS é uma abstração de um servidor de banco de dados. Além de não a figura do hardware, não tem sistema operacional, e, nem a instalação do banco de dados. Pode ser entendido, de maneira crua, como um banco de dados virtualizado. É  um banco de dados fornecido como serviço (DBaaS). Atualmente, os seguintes bancos podem ser contratados como RDS: MySQL, MariaDB, Aurora, Oracle, SQL Server, e, PostgreSQL.

EC2: O EC2 é mais do mesmo, é a boa e velha VM (máquina virtual) que vc virtualiza o hardware, instala e configura o sistema operacional de sua preferência, o sistema de arquivos, e, então o banco de dados. Tudo podendo ser configurado sob medida e gosto. Qualquer banco de dados pode ser instalado num ambiente EC2.

Há muitos bons artigos sobre RDS e EC2, e já adianto que há defensores, fervorosos, dos dois lados. A melhor pessoa para te dizer qual o melhor caminho a seguir: RDS ou EC2, é voce mesmo. Portanto, vai um guia básico de perguntas que voce mesmo deve se fazer para tomar a melhor decisão. Continue lendo MySQL na Amazon AWS: RDS ou EC2?

Como instalar o innotop para monitorar o innoDB

O innotop é uma script perl criado para extrair informações importantes acerca do funcionamento interno do storage engine innoDB. A partir da versão 5.4 passamos a contar com informações sobre transações ativas, travamentos (locks), situação do innoDB Buffer Pool, etc, através de tabelas acrescidas ao catálogo do MySQL, também conhecido e representado pelo banco de dados information_schema.

Ler estas tabelas pode ser uma tarefa ingrata e inócua para aqueles que não tem tanta experiência com MySQL. Pior ainda, seria tentar usar o show engine innoDB status. Confesso que nos primeiros anos de MySQL o resultado deste comando, para mim, parecia muito com o sinal alien escondido nas freqüências dos satélites durante a invasão terrestre do filme “Independence Day”. Algumas coisas me intrigaram neste filme: 1o) Por que nunca traduziram o nome do filme; b) Como o “homem mosca” (Jeff GoldBlum) conectou-se ao sistema dos invasores: bluetooh ou wi-fi?; c) Caras, pelo amor do J.Cristo, os invasores não tinham firewall e ainda queriam dominar a Terra? Aqui não jacaré 🙂

Já enrolei bastante voces, voltemos ao que interessa: instalação do innotop!

Vou assumir que iremos utilizar um Linux, por questão de paixão: CentOS. Quais as dependências, os pré-requisitos para instalação do innotop?

* PERL

– Execute o comando abaixo para saber se o Perl está instalado:

[shell]# perl -v
This is perl, v5.8.8 built for x86_64-linux-thread-multi
Copyright 1987-2006, Larry Wall
Perl may be copied only under the terms of either the Artistic License or theGNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found onthis system using “man perl” or “perldoc perl”.  If you have access to theInternet, point your browser at http://www.perl.org/, the Perl Home Page.

No meu caso, tenho o Perl v5.8.8 instalado. Não importa a versão, caso receba mensagem parecida com a que eu recebi, voce está pronto para continuar.

– Execute o comando abaixo para instalar Perl, caso não tenha ele instalado:

yum install perlLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfileSetting up Install ProcessPackage 4:perl-5.8.8-32.el5_5.2.x86_64 already installed and latest versionResolving Dependencies–> Running transaction check—> Package perl.i386 4:5.8.8-32.el5_5.2 set to be updated–> Finished Dependency Resolution
Dependencies Resolved
===========================================================
Package     Arch   Version              Repository   Size
===========================================================
Installing: perl        i38    4:5.8.8-32.el5_5.2   extras       12 M
Transaction Summary
===========================================================
Install       1 Package(s)Upgrade       0 Package(s)
Total download size: 12 MIs this ok [y/N]: y

É só confirmar com sim e descer a lenha na instalação. Nunca é demais lembrar que yum é um comando de instalação inerente às distribuições baseadas em Red Hat, como no meu caso, o CentOS. Outras distribuições podem usar: apt-get, aptitude, urpmi, pkg-get, etc.

Uma vez instalado o Perl, agora tempos que instalar os complementos, necessários para que o innotop funcione. Existem duas formas de se fazer isso, vou fazer da mais simples e menos onerosa:

Execute os comandos a seguir na ordem, e, tenha paciência alguns irão demorar um pouco, pois baixam pacotes e fazem sua instalação:

[shell]# perl -MCPAN -eshell

Se for a primeira vez que este comando é executado, prepare-se para responder uma série de perguntas para configurar seu Perl de forma adequada.

Este comando o levará para dentro do Perl, uma vez lá, execute os comandos a seguir:

cpan> install Term::ReadKey

cpan> install DBI

cpan> install DBD::mysql

Se tudo correu bem, estamos com o Perl instalado e configurado adequadamente para que o innotop consiga desempenhar o seu papel, corretamente.

Próximo passo! Conseguir o innotop, vamos baixá-lo:

[shell]# wget http://sourceforge.net/projects/innotop/files/innotop/1.6.0/innotop-1.6.0.tar.gz/download

* Nota: Estou baixando a versão 1.6.0, mas, quando voce for instalar o seu, não custa nada dar uma olhada na página do projeto e ver se há uma versão mais nova.

Agora, vamos descompactar e instalar o diretório onde mais gosto, no /opt. Cada qual instale no diretório que lhe aprouver 😉

[shell]# cd /opt

[shell]# gunzip innotop-1.6.0.tar.gz

[shell]# tar -xvf i

MySQL 5.7 – Mais segurança para seus usuários e senhas

O MySQL 5.7 chega ao estágio de RC (release candidate). Isto significa que já está na hora de voce começar a pensar em aposentar o bom, e, nada velho MySQL 5.6.

Mas, antes de fazer a migração é interessante dar uma passeada pela nova maneira do MySQL organizar suas senhas. Para quem já está acostumado com o MySQL desde as longíquas versões 3 e 4, deverá notar algumas boas mudanças.

Algumas coisas sempre me incomodaram na parte de usuários e privilégios. Por exemplo, e se eu quiser conceder acesso a um determinado usuário (digamos um desenvolvedor temporário) ao meu banco de dados, por, apenas 90 dias. Não lembro  nem o que eu acabei de almoçar, como, lembraria depois de 90 dias, de “dropar” o usuário? Há, mas poderíamos criar um script… Não! Chega de ficarmos criando lixo em todo canto de nossos servidores. O MySQL tem que resolver isso! E resolveu, agora existe essa possibilidade e algumas outras.

Vamos visitar algumas mudanças que foram implementadas na estrutura de gerenciamento de usuários.

Continue lendo MySQL 5.7 – Mais segurança para seus usuários e senhas