Tutorial RPI: Servidor MySQL com base de dados XBMC (II)

5 Comentários

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.

xbmc_05


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

rpi_03

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

rpi_01

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

rpi_00

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.

Comentários

5

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Modem
    Modem

    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

    1. Avatar de Modem
      Modem

      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

    2. Avatar de Modem
      Modem

      Resolvido, o servidor deve-se ter passado da cabeça,depois de o reiniciar ficou ok.

  2. Avatar de Academia Kali

    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.sitedev.pt/linux/raspberry-pi/pack-economico-pipplware-com-novo-raspberry-pi-b/

  3. Avatar de JV
    JV

    Como recuperar a base de dados do servidor MySQL através destes backups?