Journal [Tuto/HowTo] Sauvegarder la Base de données de phpBB sur ubuntu/debian/raspbian avec automysqlbackup

Posté par . Licence CC by-sa
6
18
jan.
2017

Ce tuto est la suite de [Tuto/HowTo] Sauvegarder les fichiers joints de phpBB3 sur le cloud via rsync et webdav/dafvs2
Le tuto d'origine se situe à l'adresse suivante : https://www.0rion.netlib.re/forum4/viewtopic.php?f=63&t=496#p1097

Introduction

  • automysqlbackup est un script libre, disponible dans les paquets Ubuntu et Debian/Raspbian, qui permet d'automatiser la sauvegarde de base de données. Une fois le paquet installé, par défaut il copiera les bases de données en suivant les cron suivants : @daily ("0 0 * * *"), @monthly ("0 0 1 * *"), @weekly ("0 0 * * 0"). Et grâce à l'option LATEST=yes vous disposerez aussi d'un dossier intitulé latest dans lequel sera situé le dernier backup en date.

Mise en place

Créez le dossier pour accueillir les sauvegardes de la (ou les) Base(s) De Données sur votre montage webdav/davfs2 créez dans le tuto précédent

sudo mkdir /media/montageDistant/phpBB_BDD/

Installez le logiciel

sudo apt-get update
sudo apt-get install automysqlbackup nano

Éditez le fichier de configuration
sudo nano /etc/default/automysqlbackup

Modifiez les valeurs suivantes (pour rechercher un élément tapez CTRL+W) :

  • BACKUPDIR="/var/lib/automysqlbackup" => remplacez /var/lib/automysqlbackup par le dossier où vous souhaitez ranger les backup de votre base de données (dans ce tuto /media/montageDistant/phpBB_BDD/)
  • LATEST=no => passez la valeur no à yes
  • SEPDIR=yes => Si vous souhaitez un dossier par base de données laissez yes, si vous préférez grouper les BDD dans un seul fichier pour chaque backup, entrez _no
  • PREBACKUP="/etc/mysql-backup-pre" => vous pouvez décommentez la commande (supprimer le #) et remplacez "/etc/mysql-backup-pre" par "/usr/sbin/service apache2 stop"
  • POSTBACKUP="/etc/mysql-backup-post" => vous pouvez décommentez la commande (supprimer le #) et remplacez "/etc/mysql-backup-pre" par "/usr/sbin/service apache2 start"
  • DBEXCLUDE="" => si vous souhaitez ne pas inclure des base de données, indiquez leur petit nom.

PS: lors du précédent tuto nous avons défini la sauvegarde des fichiers joints à minuit et trois minutes, les Base de données seront quant à elle sauvegardée chaque jours à minuit et une minute. Si deux minutes de décalage semble une éternité pour l'ubber geek que vous êtes alors en suivant le précédent tuto remplacez le cron "3 0 * * *" par @daily ;)

  • # Un logiciel pour les sauvegarder tous

    Posté par . Évalué à 2.

    Sinon, y a backupninja, qui a l'avantage de sauvegarder aussi les bases PostgreSQL à moindre frais. Entre autre choses. Ce n'est pas de la sauvegarde incrémentale, et ça se couple très bien avec un borg ou obnam (ou autre chose, c'est vous qui voyez).

    • [^] # Re: Un logiciel pour les sauvegarder tous

      Posté par (page perso) . Évalué à 3.

      Moi, j'utilise avec bonheur backupmanager depuis des années et ça marche au poil. Il gère aussi les backups fichiers en plus des bases (mysql et pgsql), les rotations d'une manière un peu basique mais suffisante dans la grande majorité des cas et il prend aussi en charge l'externalisation sur un FTP, rsync, S3 et qq autres trucs.

      Bref, un petit soft parfaitement adapté pour sauvegarder des sites web.

  • # Pourquoi j'aime pas les tuto

    Posté par (page perso) . Évalué à 8.

    Les tuto ressemblent en général plus à une procédure spécifique pour un cas d'usage et oublient bien souvent d'expliquer les choses. On a ici un superbe exemple :

    Sauvegarder la Base de données de phpBB sur ubuntu/debian/raspbian avec automysqlbackup

    Dès le titre, on pense ne pouvoir sauvegarder que phpBB et ce seulement sur debian like.

    automysqlbackup est un script libre, disponible dans les paquets Ubuntu et Debian/Raspbian, qui permet d'automatiser la sauvegarde de base de données.

    Quel type de base de données ? Parce que je connais qui tournent sous linux les bases suivantes qui sont compatible avec phpBB : MySQL/MariaDB/PerconaDB, PostgreSQL, sqlite, MS SQL et Oracle.

    sudo apt-get install automysqlbackup nano

    Donc pour faire marcher ce script, je suis obligé d'avoir nano ?

    Éditez le fichier de configuration
    sudo nano /etc/default/automysqlbackup

    Le sudo nano : même remarque que précédemment, je préfère simplement qu'on m'indique que sur tel distro, le fichier de configuration à modifier se trouve dans tel emplacement.

    LATEST=no => passez la valeur no à yes

    Pourquoi je dois faire ça ? J'ai aucune explication de ce à quoi sert cette valeur.

    PREBACKUP="/etc/mysql-backup-pre" => vous pouvez décommentez la commande (supprimer le #) et remplacez "/etc/mysql-backup-pre" par "/usr/sbin/service apache2 stop"
    POSTBACKUP="/etc/mysql-backup-post" => vous pouvez décommentez la commande (supprimer le #) et remplacez "/etc/mysql-backup-pre" par "/usr/sbin/service apache2 start"

    On précise que là tu arrêtes complètement un service qui peut potentiellement dépendre d'autre chose (tu n'as pas forcement qu'un phpBB sur ton apache). Un lock sur ta base serait plus propre.

    DBEXCLUDE="" => si vous souhaitez ne pas inclure des base de données, indiquez leur petit nom.

    Pas besoin d'exclure vu qu'on ne sauvegarde que phpBB ?

    A la fin de la lecture de ton article, il manque finalement pleins d'informations : j'imagine par exemple que automysqlbackup est un peu plus puissant qu'un simple mysqldump mis en crontab mais on ne sait pas vraiment ce qu'il fait de plus. Par exemple, quel est la période de rétention des sauvegardes et peut on la modifier ?

    • [^] # Re: Pourquoi j'aime pas les tuto

      Posté par . Évalué à 0. Dernière modification le 19/01/17 à 21:53.

      Tout d'abord, merci pour cette critique constructive et détaillée :)

      Dès le titre, on pense ne pouvoir sauvegarder que phpBB et ce seulement sur debian like.

      C'est normal, je vise a compléter mon précédent tuto. Pour ne pas perturber le lecteur je reste donc dans le thème.
      Mais je me suis fais la même remarque qui m'a poussé a poster le tuto en double sur mon forum :
      une version plus générique (qui au fil des édits prendra sa propre direction):
      [Tuto/HowTo] [GNU/Linux] Sauvegarder vos bases de données avec automysqlbackup
      et le tuto ci-présent qui lui est posté directement à la suite du précédent et le complétera avec le nouveau script posté tout a l'heure :)
      Sauvegarder la Base de données de phpBB sur ubuntu/debian/raspbian avec automysqlbackup

      Pour la remarque sur Debian-like, enfaite j'ai lu au gré de mes recherches que automysqlbackup est incorporé au package ubuntu et debian, j'ai testé sdur Raspbian donc aussi présent dans leur packages, mais je n'ai pas la moindre idée de s'il est installable via package sur les autres distro.

      Donc pour faire marcher ce script, je suis obligé d'avoir nano ?

      Je pars du principe que le lecteur peut être autant newbie total que callé niveau technique :) (je reprend les principes qu'on m'a appris lors de mes dissert à l'école) Si non en effet on peut utiliser n'importe quel autre éditeur de texte.

      Quel type de base de données ? Parce que je connais qui tournent sous linux les bases suivantes qui sont compatible avec phpBB : MySQL/MariaDB/PerconaDB, PostgreSQL, sqlite, MS SQL et Oracle.

      Je pertinente ta remarque, j'aurai du mentionner MySQL (et je suppose mariadb).

      On précise que là tu arrêtes complètement un service qui peut potentiellement dépendre d'autre chose (tu n'as pas forcement qu'un phpBB sur ton apache). Un lock sur ta base serait plus propre.

      Au début je voulais activer la maintenance de phpBB via Bash mais je n'ai pas trouvé (ca n'a pas l'air implémenté) donc j'ai choisis la méthode que je savais automatiser. Si tu as des infos sur comment effectuer le lock/unlock via bash ça me fera gagner du temps :)

      Pas besoin d'exclure vu qu'on ne sauvegarde que phpBB ?

      Ici par défaut le automysqlbackup va sauvegarder toutes les bases de données.
      La pertinence aurait pu te pousser aussi demander "et si on veut en exclure plusieurs" car le fichier de conf est radin niveau informations : List of DBNAMES to EXLUCDE if DBNAMES are set to all (must be in " quotes)

      A la fin de la lecture de ton article, il manque finalement pleins d'informations : j'imagine par exemple que automysqlbackup est un peu plus puissant qu'un simple mysqldump mis en crontab mais on ne sait pas vraiment ce qu'il fait de plus. Par exemple, quel est la période de rétention des sauvegardes et peut on la modifier ?

      D'après se que je vois il effectue des sauvegardes periodique et je ne penses pas qu'il en supprime après un moment (en tout cas rien n'est indiqué dans le fichier de configuration qui est un peu léger niveau option). Je dois avouer que je comptais sur ce genre de commentaire afin d'éviter de devoir attendre deux semaines pour voir comment réagis le logiciel dans le temps.

      PS: J'ai aussi oublié l'option MAILCONTENT qu'il faut placer a "stdout" pour éviter l'envoi de mail

      Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.