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  

 

Fonte: http://www.nanoshots.com.br/2016/07/mysql-mysql-em-outra-particao-do-linux.html

.