segunda-feira, 4 de julho de 2016

MySQL :: Migrando o MySQL Local para outra partição no Linux



O tutorial de hoje é algo bem rápido e util que eu precisei correr atrás de ultima hora há uns dias e deixei o 'cookbook' mofando no meu keep. Como o blog anda um pouquinho parado por conta que estou trabalhando feito um camelo, vou soltar as notas do meu Keep aqui durante essa semana e próxima só para não parar com o conteúdo e os guides pra galera.

A dica que eu venho dar é para administração de servidores de bancos de dados. Tenho bastante notinhas dessas e vou liberando conforme o decorrer dos dias. Só digo que vai ter MySQL para caramba pros próximos dias :D.

As vezes por motivos de performance, portabilidade e segurança, é necessário migrar nossa base local do banco de dados para alguma outra partição ou disco do sistema. Caso seja um servidor de Logs, toda a arquitetura do banco é voltada para isso, porém o MySQL não. Então, podemos dar um jeito nisso migrando a base de dados para uma partição com um filesystem mais propicio a performance de leitura e escrita, ou até mesmo uma partição SSD.

Para fazer isso, basicamente precisamos migrar a pasta do MySQL para alguma partição ou disco manualmente, e depois disso criar um link simbólico da mesma.

Preparando a partição.

Formate a partição que você deseja armazenar o banco. No meu caso, será a /dev/sdc. Por costume, eu sempre uso ext4 em minhas partições. Mas você pode utilizar qual você quiser.
 # mkfs.ext4 /dev/sdc1  

Monte a partição em algum local da máquina. Por TOC eu sempre monto absolutamente tudo no /mnt para manter o padrão
 # mkdir /mnt/database/   
 #mount /dev/sdc1 /mnt/database  

Migrando o diretório do banco de dados

Pare todos os serviços que consumam dados do banco. Esse passo é muito importante para evitar dados corrompidos na base. Qualquer procedimento que for cortado na metade, seja ele um insert, delete ou update pode danificar e muito a integridade dos dados.
 # service mysqld stop  
 # service apache2 stop  
 # service nginx stop  

Copie todos os arquivos para a nova partição
 # cp /var/lib/mysql /mnt/database/ -Rp  

Por segurança, faça uma cópia de backup do diretório do MySQL. Quanto maior a quantidade de backups, melhor :D.
 # mv /var/lib/mysql /var/lib/mysql-backup  

Crie um link simbólico da partição na pasta do MySQL
 # ln -s /mnt/database/mysql /var/lib/mysql  

Inicialize os serviços novamente
 # service mysqld start  
 # service httpd start  
 # service nginx start  


Opcional: Montagem automática da partição no boot do sistema

Para fazer a montagem automática da partição em questão, temos que adicionar uma linha no nosso arquivo /etc/fstab
 /dev/sdc1 /mnt/database/ ext4 defaults 0 0  


Espero ter ajudado! :)

SOBRE O AUTOR

Matheus Fidelis

http://msfidelis.github.io/

Power Ranger, Piloto de Helicópteros e Astronauta da NASA. Desenvolvedor Web PHP com foco em Backend e POO, Linux SysAdmin DevOps e Entusiasta Python. Criou esse site pra contribuir com a comunidade com coisas que aprende dentro de um setor maluco de TI :)

Postar um comentário

 
Nanoshots | Open Source Security, Linux e Tutoriais © 2015 - Designed by Templateism.com