Sauvegardes

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search

Who.png Pourquoi sauvegarder

Il existe plusieurs raisons pour lesquels il est très important de pouvoir "sauvegarder" une instance complète de Dolibarr. Par exemple:

  • En prévision d'une mise à jour afin de pouvoir faire un retour arrière.
  • Pour faire un déplacement de son Dolibarr d'un serveur à un autre.
  • Enfin et surtout, afin de pouvoir réaliser une restauration pour se prémunir d'un sinistre, d'une fausse manipulation.

Pour toutes ces raisons, il est recommandé de réaliser des sauvegardes des données propres à Dolibarr.

Who.png Quoi sauvegarder

Dolibarr stocke des données à 3 endroits. Ces 3 endroits devraient être sauvegardés avant chaque mise-à-jour afin de s'assurer que, si un problème survient, les données peuvent être récupérées, ou tout simplement régulièrement pour être capable de restaurer son travail en cas de problème. Voici les 3 typologies de données qu'il est nécessaire de sauvegarder pour une restauration sans perte.

A) La base de données

La base de données contient toutes les données que vous avez saisies (hors documents pièces jointes évoqués dans le paragraphe suivant). Sa sauvegarde doit être faite de manière globale. Voir la suite pour le comment.

B) Les documents

Tous les documents (fichiers PDF, images,...) relatifs à votre instance Dolibarr sont conservés dans le répertoire indiqué par la variable $dolibarr_main_document_root dans votre fichier de configuration dolibarr/htdocs/conf/conf.php. Si vous avez laissé le choix par défaut, il s'agit de dolibarr/documents. Ce répertoire doit impérativement être sauvegardé car contient toutes les pièces jointes que vous avez éventuellement téléversées dans l'application (comme les photos des employés ou des produis) ainsi que tous les documents générés par l'applications, comme les PDF.

C) Le fichier de configuration

Bien que les fichiers de configuration ne soient normalement jamais modifiés par le processus de mise-à-jour, il vaut mieux parer à toute éventualité. Le fichier de configuration s'appelle conf.php et se trouvent dans dolibarr/htdocs/conf/. Faire une copie de ce fichier dans un espace dédiée à la sauvegarde. Cette sauvegarde peut toutefois ne pas être réalisée si vous connaissez vos identifiant de connexion (et tout autre paramètre non standard) par ailleurs. En cas de restauration, le fichier peut être recréé par une installation vierge.

D) Les modifications de code

Enfin, toute évolution de modules, c'est à dire tous fichiers php (ou autre) qui aurait été ajouté ou modifié pour prendre en compte des évolutions spécifiques, doivent également être sauvegardés. Dans la plupart des cas, vous n'êtes pas concernés par ce point.

Who.png Quand

La fréquence conseillée dépend de l'intensité de l'utilisation que vous faites de Dolibarr et de la tolérance en terme de donnée perdu que vous acceptez. Plus la fréquence est élevé, moins, en cas de restauration, vous n'aurez de données perdues.


Who.png Comment

A) La base de données

Il y a 4 méthodes pour sauvegarder votre base de données:

Par les outils de sauvegarde de Dolibarr (recommandé si disponible)

Il s'agit de la façon la plus simple pour faire de votre sauvegarde, et en plus toutes vos sauvegardes seront stockées sur le serveur et seront listées, de sorte que vous pouvez récupérer n'importe quelle ancienne version n'importe quand.

Si vous utilisez une version assez récente de Dolibarr, connectez-vous dans Dolibarr avec un compte administrateur (seuls les administrateurs peuvent utiliser les outils système).

Ensuite, allez à Accueil -> Outils d'administration -> Sauvegarde.

Choisissez ensuite vos options pour votre sauvegarde (vous pouvez conserver toutes les valeurs par défaut).

Alternative: la méthode par défaut MySQL Dump (mysqldump) nécessite d'avoir un accès au fichier binaire mysqldump en exécution sur votre serveur et utilise des paramètres par défaut qui consomme beaucoup de mémoire. Si vous êtes sur un hébergement mutualisé et que vous manquez de mémoire (cela se traduit par une page blanche souvent), vous pouvez essayer à partir de Dolibarr 16.0 de sélectionner l'option d'export "Dump en mode mémoire faible". Si votre hébergeur interdit l'usage du programme mysqldump, vous pouvez aussi essayer l'autre méthode Dump MySQL (php).

Warning.png Attention: Certains utilisateurs ont reporté que les sauvegardes chez certains hébergements sont parfois incomplètes (certaines tables manquantes) quand la compression est activée. Bien que ce problème n'ait pu être reproduit, pensez à vérifier le contenu de votre sauvegarde en regardant le contenu du fichier .sql qui doit se finit par une ligne du style

-- Dump completed on YYYY-MM-DD HH:MM:DD

ou à ne pas activer la compression si vous voulez être prudent.

Par l'outil mysqldump (pour les experts)

Si vous préferez le mode manuel, vous pouvez utiliser directement l'outil de sauvegarde de votre base. Avec MySQL, la commande pour sauvegarder votre base de données dans un fichier est:

mysqldump nombase -h nomserveur -u utilisateur -pmotdepasse -l --single-transaction -K --add-drop-table=TRUE --tables -c -e --hex-blob --default-character-set=utf8 --result-file=mysqldump_nombase_version_date.sql

où :

  • utilisateur est l'utilisateur privilégié MySQL que Dolibarr utilise pour se connecter à la base de données,
  • motdepasse est le mot de passe du compte utilisateur MySQL (attention pas d'espaces entre le p et le mot de passe),
  • nomserveur est le nom ou l'ip du serveur de base de donnée.
  • nombase est le nom de la base de données que Dolibarr utilise.

Ces informations (utilisateur, mot de passe et base de données) sont disponibles dans votre fichier de configuration dolibarr/htdocs/conf/conf.php

Le fichier résultant (appelé "fichier dump"), est nommé mysqldump_nombase_version_date.sql, où

  • version est la version en cours de votre dolibarr (ex: 3.7)
  • date peut-être remplacé par une date, par exemple au format AAAAMMJJ, avec AAAA l'année (ex. 2011), MM le numéro du mois (ex. 05) et JJ le jour dans le mois (ex. 18).

Pour reprendre les valeurs données en exemple, le fichier dump sera baptisé mysqldump_nombase_3.7_20110518.sql.


Une astuce pour récupérer un fichier de petite taille (compressé) :

mysqldump nombase -h nomserveur -u utilisateur -pvotremotdepasse -l --single-transaction -K --add-drop-table=TRUE --tables -c -e --hex-blob --default-character-set=utf8 | bzip2 > mysqldump_nombase_version_date.bz2

Le fichier ainsi récupéré est directement compressé au format bzip.

Exemple:

Sous Linux, pour réaliser une sauvegarde régulière à 1h30 dans le fichier mysqldump_nombase_DD.sql.bz2, vous pouvez ajouter ceci dans votre fichier cron:

30 1 * * * mysqldump nombase -h nomserveur -u utilisateur -pvotremotdepasse -l --single-transaction -K --add-drop-table=TRUE --tables -c -e --hex-blob --default-character-set=utf8 | bzip2 > mysqldump_nombase_`date +%d`.sql.bz2

Par phpMyAdmin

Vous pouvez également utiliser phpMyAdmin pour sauvegarder votre base de données, mais il est nécessaire d'activer une option afin que vous puissiez restaurer le backup plus tard (si vous avez oublié de le faire, lisez la note à propos des FOREIGN_KEY_CHECKS plus bas).

Dans phpMyAdmin, cliquez sur l'onglet Exporter, puis sélection votre base de données Dolibarr ou les tables de Dolibarr (suivant la fenêtre dans laquelle vous étiez - vue base de données ou vue tables), et cochez Désactiver la vérification des clés étrangères, et enfin vérifiez quand même que le résultat sera au format SQL, et vous pouvez valider l'exportation.

Par un autre Logiciels tiers

Vous pouvez également utiliser des logiciels tiers de sauvegarde de bases de données, comme les scripts PHP que vous pouvez uploader (téléverser) sur votre serveur (comme DB2SQL par Howard Yeend ou BigDump), ou encore utiliser un concepteur de base de données / workbench qui offrent généralement la possibilité de se connecter à distance à votre base de données et vous permettra de faire une sauvegarde complète.

Remarque:

Warning.png Quelquesoit l'outil utilisé, votre dump sql doit désactiver les vérifications de Foreign Keys pendant la restauration, sinon votre backup sql ne pourra pas être restauré à cause de conflits entre les Foreign Keys. Si vous utilisez la sauvegarde de Dolibarr ou mysql direct, il n'y aura pas de soucis, les instructions seront présentes. Mais avec certains outils de sauvegardes bas de gammes, il vous faudra peut-etre ajouter manuellement ces instructions à votre fichier dump:

Ajouter FOREIGN_KEY_CHECKS au tout début et à la fin du fichier sql:

-- SQL Dump
-- Server version: 5.5.8

SET FOREIGN_KEY_CHECKS=0;
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!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 */;

CREATE TABLE IF NOT EXISTS `llx_accountingaccount` (

INSERT INTO ...

CREATE TABLE ...

INSERT INTO ...

...

SET FOREIGN_KEY_CHECKS=1;




Warning.png Mysqldump (que ce soit par l'outil en ligne de commande ou par la fonction Sauvegarde de Dolibarr) est le moyen le plus sûr de sauvegarder vos données, car il est développé par les même développeurs que MySQL et est donc toujours à jour. PhpMyAdmin et les logiciels tiers peuvent générer un dump SQL valide, mais le code SQL résultant peut être obsolète ou manquer de certaines fonctionnalités (en fonction des options que vous choisissez).

Ce fichier dump est l'élément le plus important de votre sauvegarde. Conservez le dans un endroit sur ou confiez le au prestataire chargé de restaurer votre environnement. Attention, il n'est pas suffisant, la sauvegarde du répertoire documents (Etape B, voir chapitre suivant) est aussi cruciale.

B) Les documents

Une copie de l'intégralité du répertoire des documents dans un répertoire/disque de sauvegarde dédié suffit. Voici comment savoir où se trouve ce répertoire: Ce répertoire s'appelle par défaut dolibarr/documents mais vous trouverez le chemin complet en allant dans le fichier conf.php au niveau de la variable $dolibarr_main_data_root. Vous pouvez aussi trouvez l'information du chemin complet de ce répertoire depuis le menu Accueil - Outils d'administration - Sauvegarde - étape 2.


Il vous faut réaliser une archive zip de ce répertoire. Pour cela, il y a 2 solutions:

Par les outils de sauvegarde de Dolibarr (recommandé si disponible)

Si vous utilisez une version assez récente de Dolibarr, connectez-vous dans Dolibarr avec un compte administrateur (seuls les administrateurs peuvent utiliser les outils système).

Ensuite, allez à Accueil -> Outils Système -> Sauvegarde et cliquez sur le bouton "Générer sauvegarde" de l'étape 2.

Par votre outil de zip habituel

Aller dans votre gestionnaire de fichier, aller sur le répertoire identifié précédemment. Faire un clic droit sur ce répertoire et choisissez dans le menu contextuel "Compresser" ou "Zipper" ou "Créer un package zip" ou "Créer archive" ou quelque chose de similaire pour fabriquer le fichier zip.


Ce fichier archive est le 2eme élément cruciale de votre sauvegarde (avec le fichier dump de l'étape A). Conservez le dans un endroit sur ou confiez le au prestataire chargé de restaurer votre environnement.

Bon à savoir: Si vous avez réalisez la sauvegarde de la base de donnée via l'outil système de Dolibarr et son étape 1 (voir paragraphe précédent), le fichier dump base de donnée se trouvera également inclus dans cette archive (dans le sous répertoire dolibarr/documents/admin/backup).

C) Le fichier de configuration

C'est mieux si vous l'avez (cela peut aider à du dépannage), mais sa conservation n'est pas obligatoire si il faut restaurer un jour votre sauvegarde. Une simple copie du fichier conf/conf.php dans un répertoire dédié à la sauvegarde suffit.

Astuces.png Restauration

Ce sujet est traité dans la page Restaurations

Vidéos sur le sujet