Tutorial RPI: Servidor MySQL com base de dados XBMC (II)
Por Diogo Santos para o Pplware
É neste Natal que vai comprar ou oferecer um Raspberry PI? Conheça a nossa promoção aqui
No seguimento do tutorial do servidor MySQL com a biblioteca XBMC vamos agora ensinar como configurar um backup automático da base de dados, no nosso caso um diário e outro mensal. Ensinaremos também a fazer uma pequena optimização da base de dados MySQL.
Convém salientar que optimizar uma base de dados MySQL é um processo complexo. É provavelmente a base de dados mais usado no mundo e é extremamente escalável. Este tutorial é dedicado ao XBMC e ao Raspberry Pi pelo que não aconselhamos a seguir o mesmo para outras bases de dados e outros servidores.
Activar o cron:
Abrir um terminal e executar:
sudo update-rc cron defaults |
Inserir as regras no crontab:
Vamos então inserir duas regras de backup automático da base de dados MySql. A 1ª faz um backup diário ás 5 da manhã e a 2ª, um backup mensal, no primeiro dia do mês ás 6 da manhã:
crontab -e |
Inserir no final do ficheiro:
00 05 * * * /usr/bin/mysqldump -u root -pavossapassword --all-databases > /media/nomedodisco/Backup/XBMC/all-database_daily.sql 00 06 1 * * /usr/bin/mysqldump -u root -pavossapassword --all-databases > /media/nomedodisco/Backup/XBMC/all-database_monthly.sql |
Guardar e sair: CTRL+X, a seguir Y e depois Enter.
sudo service cron restart |
Nas regras em cima, -pavossapassword é a vossa password de root do MySQL, de acordo com o escolheram no 1º passo do 1º tutorial. –p + password é tudo junto.
- /media/nomedodisco/Backup/XBMC/all-database_daily.sql é o local onde vai ficar o nosso backup. Neste caso é num disco usb externo ligado ao RPi. Alterem de acordo com o desejado.
- Podem claro alterar a hora, data, frequência do backup conforme desejarem, para isso consultem o manual do cron.
Optimizar o MySQL
Abrir um terminal e executar:
sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak sudo cp /usr/share/doc/mysql-server-5.5/examples/my-small.cnf /etc/mysql/my.cnf sudo nano /etc/mysql/my.cnf |
E adicionar as seguinte linha na parte [mysqld] :
query_cache_size = 16M bind-address = 0.0.0.0 |
Reiniciar o serviço:
sudo service mysql restart |
O que fizemos aqui foi usar um ficheiro de configuração diferente do original, que também vem incluído com o MySQL, optimizado para máquinas com pouca memória RAM. A seguir definimos 8 MB na memória RAM reservada às “query’s” para um acesso mais rápido.
Caso a vossa biblioteca não seja muito grande e queiram reduzir um pouco mais o consumo de memória RAM (útil por exemplo, se tiverem mais serviços activos no RPi) podem descomentar e/ou alterar as seguintes linhas no mesmo ficheiro:
query_cache_size = 8M innodb_buffer_pool_size = 64M innodb_log_buffer_size = 512K |
E assim terminamos a nossa sugestão. É possível optimizar um pouco mais mas para isso têm de ter em conta o tamanho da vossa biblioteca / base de dados. Esperámos que tenham gostado.
Este artigo tem mais de um ano
Corri o comando para fazer o backup da base de dados mas o ficheiro resultante apenas tem informação do charset.
O que é que está mal?
sudo /usr/bin/mysqldump -u root -pA-MINHA-PASS –all-databases > /mnt/MyBackups/XBMC_all-database_daily.sql
O ficheiro SQL tem a seguinte info:
— MySQL dump 10.13 Distrib 5.5.40, for debian-linux-gnu (armv7l)
—
— Host: localhost Database:
— ——————————————————
— Server version 5.5.40-0+wheezy1
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE=’+00:00′ */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=’NO_AUTO_VALUE_ON_ZERO’ */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
— Dump completed on 2014-12-10 22:31:30
Resolvido, o servidor deve-se ter passado da cabeça,depois de o reiniciar ficou ok.
A PPLWARE vende pack Raspberry PI por €58+iva.
Considerando o custo e funções oferecidas com kernel Linux compensa!
Uma ótima solução para mim foi criar o meu próprio router!
https://pplware.sapo.pt/linux/raspberry-pi/pack-economico-pipplware-com-novo-raspberry-pi-b/
Como recuperar a base de dados do servidor MySQL através destes backups?