Wiki

Outils pour utilisateurs

Outils du site


database_backup_and_restore

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
database_backup_and_restore [04/10/2008]
82.125.165.128
database_backup_and_restore [25/05/2013] (Version actuelle)
gilles74 [Restauration partiel d'une sauvegarde]
Ligne 1: Ligne 1:
 ======Sauvegarde et restauration de la base de données====== ======Sauvegarde et restauration de la base de données======
  
-{{tag>​tutoriel backend ​mythtv-setup}}+{{tag>​tutoriel backend ​mythconverg}}
  
 <​note>​ ceci est une traduction de la documentation officielle [[http://​www.mythtv.org/​wiki/​index.php/​Database_Backup_and_Restore|Database Backup and Restore]] disponible sur lesite de mythtv.org <​note>​ ceci est une traduction de la documentation officielle [[http://​www.mythtv.org/​wiki/​index.php/​Database_Backup_and_Restore|Database Backup and Restore]] disponible sur lesite de mythtv.org
Ligne 9: Ligne 9:
  
 MythTV 0.22 ajoute une nouvelle approche pour effectuer les sauvegardes et les restaurations sous forme de script. Ces scripts sont totalement intégrés dans les sources des distributions,​ mais ils pourront être remplacés ou modifiés par les « packageurs » pour les rendre plus conforme aux usages de leur distribution. Le présent document concerne l'​utilisation des scripts originaux distribués avec les sources de MythTV. MythTV 0.22 ajoute une nouvelle approche pour effectuer les sauvegardes et les restaurations sous forme de script. Ces scripts sont totalement intégrés dans les sources des distributions,​ mais ils pourront être remplacés ou modifiés par les « packageurs » pour les rendre plus conforme aux usages de leur distribution. Le présent document concerne l'​utilisation des scripts originaux distribués avec les sources de MythTV.
-Bien que ces scripts ne sont inclus que dans les versions supérieures à 0.21, ils ont été écrit pour être compatible avec toutes les versions de MythTV. Pour les versions qui ne contiennent pas les scripts, ils sont téléchargeable à partir des sources ​ ([[http://svn.mythtv.org/trac/browser/trunk/​mythtv/​programs/​scripts/​database/​mythconverg_backup.pl?format=txt|backup]] et[[http://svn.mythtv.org/trac/browser/trunk/​mythtv/​programs/​scripts/​database/​mythconverg_restore.pl?format=txt|restore]] restore). Après les avoir télécharger, sauvegardez les dans un endroit facile à trouver et rendez-les exécutable:​+Bien que ces scripts ne sont inclus que dans les versions supérieures à 0.21, ils ont été écrit pour être compatible avec toutes les versions de MythTV. Pour les versions qui ne contiennent pas les scripts, ils sont téléchargeable à partir des sources ​ ([[https://raw.github.com/MythTV/mythtv/master/​mythtv/​programs/​scripts/​database/​mythconverg_backup.pl|backup]] et[[https://raw.github.com/MythTV/mythtv/master/​mythtv/​programs/​scripts/​database/​mythconverg_restore.pl|restore]] restore). Après les avoir téléchargés, sauvegardez-les dans un endroit facile à trouver et rendez-les exécutable:​
     chmod a+x mythconverg_backup.pl mythconverg_restore.pl     chmod a+x mythconverg_backup.pl mythconverg_restore.pl
-En sauvegardant les script ​dans le répertoire de l'​utilisateur courant, vous pourrez les exécuter sans préciser tout le chemin d'​accès. Voir l'aide détaillée en utilisant l'​argument --help.+En sauvegardant les scripts ​dans le répertoire ​du PATH de l'​utilisateur courant, vous pourrez les exécuter sans préciser tout le chemin d'​accès. Voir l'aide détaillée en utilisant l'​argument --help.
  
 =====Démarrage rapide===== =====Démarrage rapide=====
  
-Chaque script ​requière plusieurs ​informations ​qui sont contenues dans les fichiers ​de configuration de MythTV (~/​.mythtv/​config.xml ​or the MythTV mysql.txt file(s)). Cependant vous devrez ​spécifié le répertoire de stockage des sauvegardes avec l'​argument –directory. ​ Puisqu'​il est raisonnable de penser que ce répertoire est toujours le même, vous pouvez le mettre dans le fichier de configuration suivant (~/​.mythtv/​backuprc). Par exemple vous pouvez ​décider ​de mettre vos fichiers de sauvegarde dans ''/​home/​mythtv''​ avec la commande suivante:+Chaque script ​utilisent les informations contenues dans le fichier ​de configuration de MythTV (~/​.mythtv/​config.xml). Cependant vous devez spécifié le répertoire de stockage des sauvegardes avec l'​argument –directory. ​ Puisqu'​il est raisonnable de penser que ce répertoire est toujours le même, vous pouvez le mettre dans le fichier de configuration suivant (~/​.mythtv/​backuprc). Par exemple vous pouvez ​décidé ​de mettre vos fichiers de sauvegarde dans ''/​home/​mythtv''​ avec la commande suivante:
     echo "​DBBackupDirectory=/​home/​mythtv"​ > ~/​.mythtv/​backuprc     echo "​DBBackupDirectory=/​home/​mythtv"​ > ~/​.mythtv/​backuprc
-A partir de là, vous pouvez facilement ​créé ​une sauvegarde en tapant dans une console:  +A partir de là, vous pouvez facilement ​créer ​une sauvegarde en tapant dans une console:  
-    mythconverg_backup.pl+    ​./mythconverg_backup.pl
 (dans la mesure,ou votre script se trouve dans le répertoire de l'​utilisateur courant ). Si vous souhaitez voir ce qui se passe,vos pouvez utiliser l'​argument --verbose comme ceci:  (dans la mesure,ou votre script se trouve dans le répertoire de l'​utilisateur courant ). Si vous souhaitez voir ce qui se passe,vos pouvez utiliser l'​argument --verbose comme ceci: 
-    mythconverg_backup.pl --verbose +    ​./mythconverg_backup.pl --verbose 
-Note toutes les options de commandes sont disponibles sont accessibles en utilisant l'​argument --help. +Note toutes les options de commande ​disponibles sont accessibles en utilisant l'​argument --help. 
-Sauvegarde automatique de votre base +=====Sauvegarde automatique de votre base===== 
-Une fois que vous aurez vérifié que votre script fonctionne correctement,​ vous allez pouvoir automatiser vos sauvegardes en configurant la planification de ce script (tache cron). Pour minimiser les chances de perte de base de données, vous devez choisir une période d'​exécution pendant laquelle aucun enregistrement n'est programmé. +Une fois que vous aurez vérifié que votre script fonctionne correctement,​ vous allez pouvoir automatiser vos sauvegardes en configurant la planification de ce script (tache cron). ​
-Vous pouvez également choisir de lancer le script à chaque démarrage ou arrêt du serveur (mythbackend) (à insérer dans le « init script »). Dans ce cas, il est à noter que l'​exécution du script dépend du script démarrage et non de Mythconverg.pl. +
-Si vous avez un système avec plusieurs mythtvfrontend et/ou plusieurs mythtvbackup,​ le script devra être lancé uniquement sur le ''​master backend''​.+
  
 +
 +Pour minimiser les chances de perte de données, vous devez choisir une période d'​exécution pendant laquelle aucun enregistrement n'est programmé.
 +
 +Vous pouvez également choisir de lancer le script à chaque démarrage ou arrêt du serveur (mythbackend) (à insérer dans le « init script »). Dans ce cas, il est à noter que l'​exécution du script dépend du script démarrage et non de mythconverg_backup.pl.
 +
 +Si vous avez un système avec plusieurs mythfrontend et/ou plusieurs mythbackend,​ le script devra être lancé uniquement sur le ''​master backend''​.
 +
 +Si vous utilisez mythwelcome,​ vous pouvez créer un script [[http://​www.mythtv.org/​wiki/​Autobackup.sh|autobackup.sh]] qui fera une sauvegarde journalière lors de la dernière cloture du backend et lorsque celui-ci est non-utilisé.
 =====Sauvegarde de la base de données===== ​ =====Sauvegarde de la base de données===== ​
 Le script mythconverg.pl crée une sauvegarde, la compresse en utilisant les algorithmes de compression gzip  et incrémente la sauvegarde (garde les 5 dernières sauvegardes) ​ Le script mythconverg.pl crée une sauvegarde, la compresse en utilisant les algorithmes de compression gzip  et incrémente la sauvegarde (garde les 5 dernières sauvegardes) ​
  
 ====Sauvegarde incrémentale sur 10 jours de la base==== ​ ====Sauvegarde incrémentale sur 10 jours de la base==== ​
-  mythconverg_backup.pl --rotate 10+  ​./mythconverg_backup.pl --rotate 10
  
 ====Sauvegarde avec compression bzip2 de la base==== ====Sauvegarde avec compression bzip2 de la base====
Ligne 38: Ligne 44:
 Toutefois il faut être extrèment prudent avec l'​emploi de bzip pour qu'il n'​interfère pas avec les périodes d'​enregistrement,​ d'​autant que le gain de place est équivalent à environ 1 minute d'​enregistrement en MPEG2 qualité standard. Toutefois il faut être extrèment prudent avec l'​emploi de bzip pour qu'il n'​interfère pas avec les périodes d'​enregistrement,​ d'​autant que le gain de place est équivalent à environ 1 minute d'​enregistrement en MPEG2 qualité standard.
  
-  mythconverg_backup.pl --compress bzip2+  ​./mythconverg_backup.pl --compress bzip2
  
  
-====Sauvegarde avec mysqldump hors du répertoire ​utilisateur standard====+====Sauvegarde avec mysqldump hors du path utilisateur standard====
    
 Il est possible de préciser la localisation de l'​exécutable mysqldump, mais il est peut-être plus facile de créer un répertoire qui contient mysqldump dans le répertoire de l'​utilisateur standard ou de placer un lien vers mysqldump dans celui-ci. Il est possible de préciser la localisation de l'​exécutable mysqldump, mais il est peut-être plus facile de créer un répertoire qui contient mysqldump dans le répertoire de l'​utilisateur standard ou de placer un lien vers mysqldump dans celui-ci.
-  mythconverg_backup.pl --mysqldump /​path/​to/​mysqldump+  ​./mythconverg_backup.pl --mysqldump /​path/​to/​mysqldump
  
 ====Sauvegarde des données xmltvid (avant de faire un scan complet des fréquences)==== ====Sauvegarde des données xmltvid (avant de faire un scan complet des fréquences)====
    
 Plutôt que de faire une sauvegarde complète de la base de données, le script de sauvegarde peut créer une sauvegarde uniquement des données xmltvid. La sauvegarde contient un certain nombre de d'​information sur l'​état des mises à jour qui permet de restaurer ​ au même état les données xmltvid avant et après un scan des fréquences. Il est à noter que le fichier de sauvegarde contient des informations complémentaires sur les chaînes qui permettront de les identifier si les « callsign » changent Plutôt que de faire une sauvegarde complète de la base de données, le script de sauvegarde peut créer une sauvegarde uniquement des données xmltvid. La sauvegarde contient un certain nombre de d'​information sur l'​état des mises à jour qui permet de restaurer ​ au même état les données xmltvid avant et après un scan des fréquences. Il est à noter que le fichier de sauvegarde contient des informations complémentaires sur les chaînes qui permettront de les identifier si les « callsign » changent
-  mythconverg_backup.pl --backup_xmltvids+  ​./mythconverg_backup.pl --backup_xmltvids 
 +   
 +====l'​utilité de la sauvegarde automatique lors du changement de version de mythtv===== 
 + 
 +Quand mythtv change de version ( par exemple de 0.26 à 0.27), il change aussi le schéma de la base de données. Avant de faire cela, mythtv fait une sauvegarde de mythconverg avec mythconverg_backup.pl (ou mysql_dump si mythconverg_backup.pl n'est pas disponible) pour permettre à ceux qui souhaite revenir à la version (et schémé) précédente de pouvoir le faire sans difficulté.  
 + 
 +Cette sauvegarde est enregistrée dans le répertoire qui dispose du maximun de place, spécifié dans le groupe de stockage des sauvegardes ou le répertoire défini dans le fichier de configuration,​ si le groupe de stockage des sauvegardes n'est pas défini ou /tmp si ces répertoires ne sont pas utilisable ( accès refusé). 
 + 
 +Les utilisateurs prudents vérifieront que ce processus de sauvegarde fonctionne avant de changer de versions de MythTV. Car des discussions sur la liste de diffusion des utilisateurs MythTV confirment que, parfois, la sauvegarde de base de données automatique ne peut pas être trouvé. Les causes probables sont des problèmes d'​autorisation d'​écriture ​ ou, si / tmp est utilisé et que la machine est redémarrée avant que l'​utilisateur réalise que la sauvegarde est nécessaire,​ celle-ci n'est plus disponible. 
 +  
 + 
 + Note: Enregistrer votre sauvegarde en bonne place sur un support externe exemple une clé USB ou un NAS 
  
 =====Restauration de la base de données===== =====Restauration de la base de données=====
  
-Le script mythconverg_restore.pl ​peut restaurer ​la base de données MythTV (avec le fichier créé avec le script mythconverg_backup.pl). Si le fichier de sauvegarde n'est pas précisé, le plus récent est automatiquement sélectionné pour effectuer la  restauration (la date et heure de sauvegarde sont retenues et non la version du la structure de la base).Le script détermine automatiquement si il est besoin de décompresser le fichier de sauvegarde+Le script mythconverg_restore.pl ​restaure ​la base de données MythTV (avec le fichier créé avec le script mythconverg_backup.pl) . Si le fichier de sauvegarde n'est pas précisé, le plus récent est automatiquement sélectionné pour effectuer la  restauration (la date et heure de sauvegarde sont retenues et non la version du la structure de la base).Le script détermine automatiquement si il est besoin de décompresser le fichier de sauvegarde.Si necessaire créer la base de données avant la restauration.
  
 ====Restauration compléte de la plus récente sauvegarde ==== ====Restauration compléte de la plus récente sauvegarde ====
  
 Le script détermine la plus récente sauvegarde en se basant sur la date et l'​heure des fichiers et ignore les informations sur la structure de la base de données. Le script détermine la plus récente sauvegarde en se basant sur la date et l'​heure des fichiers et ignore les informations sur la structure de la base de données.
-  mythconverg_restore.pl+  ​ 
 +  ​mythconverg_restore.pl ​        # restaurer la base de données 
 + 
 +NOTA: Le script n'​écrase pas une base existante. Il est nécessaire d'​effacer préalablement la base de données avant de la restaurer. ​
  
 ====Restauration complète d'une sauvegarde spécifique==== ====Restauration complète d'une sauvegarde spécifique====
Ligne 70: Ligne 91:
   mythconverg_restore.pl --directory /​home/​mythtv --filename mythconverg-1214-20080626150513.sql.gz   mythconverg_restore.pl --directory /​home/​mythtv --filename mythconverg-1214-20080626150513.sql.gz
  
 +====Remplacement d'une base existante====
  
-====Restauration partiel d'une sauvegarde==== +Si vous remplacez ​une base de données existante avec une sauvegarde correcte en utilisant une restauration complète - par exempleparce que votre base de données a été corrompue ou une mise à niveau du schéma ​de base de données ​défaillante ou vous remplacez une base de données fourni avec votre package après réinstallation de votre distribution - vous aurez besoin de supprimer la base existanteVous pouvez le faire en ajoutant les arguments ​--drop_database --create_database à la ligne de commande.
-  +
-Une restauration partielle restaure uniquement les données concernant les enregistrements existants et les enregistrements à venir. Ce type de restauration est généralement utilisé lorsque l'on installe MythTV sur une nouvelle machine. Dans ce casil est préférable de démarrer avec la nouvelle configuration hardware plutôt ​que de restaurer l'​ancienne configuration et de l'​adapter ​à la nouvelle configuration. Après restauration ​de la base de donnéesvous serez obligé ​de configurer MythTV et tous les plugins que vous souhaitez utilisés. +
-  +
-   ​mythconverg_restore.pl ​--partial_restore+
  
-Si vous souhaitez faire une restauration partielle sur un nouveau matériel avec une nouvelle version de MythTV, vous devez d'​abord faire une restauration totale de la base de données, puis lancez et arrêtez mythtv-setup (pour mettre à jour la base de données et sa structure) ensuite vous créez une sauvegarde, vous supprimez la base de données et vous faites une restauration partielle avec la sauvegarde de la base mise à jour.+  mythconverg_restore.pl ​--drop_database --create_database --filename mythconverg-1214-20080626150513.sql.gz
  
-====Restauration ​partiel avec les données des plugins====+ 
 + 
 +====Restauration ​partielle d'une sauvegarde====
    
-Une restauration partielle ​comme expliqué si dessus ne restaure ​que les enregistrements ​effectués ​et à venir. ​Avec l'argument –with_plugin_datavous pouvez restaurer les données des plugins en même temps que les enregistrements. Vous serez quand même obligé ​de reconfigurer Mythtv ​et les plugins que vous souhaitez utilisés+Une restauration partielle restaure ​uniquement les données concernant ​les enregistrements ​existants ​et les enregistrements ​à venir. ​Ce type de restauration est généralement utilisé lorsque ​l'on installe MythTV sur une nouvelle machine. Dans ce casil peut être préférable de démarrer avec la nouvelle configuration hardware plutôt ​que de restaurer l'​ancienne configuration ​et de l'​adapter à la nouvelle configuration. ​
  
-   mythconverg_restore.pl --partial_restore --with_plugin_data+Lorsque vous effectuez une restauration partielle, vous devrez complètement re-configurer MythTV (y compris tous les hôtes MythTV - tous frontend et backend ) et tous les plugins que vous souhaitez utiliser après la restauration de la base de données. Même si vous désinstallez certains plugins que vous aviez utilisés dans la version précédente de MythTV, l'​espace de stockage utilisé par les anciennes données du plugin est négligeable par rapport à la taille globale de la base de données, il n'y aura pas d'​impact sur les performances en supprimant les anciennes données du plugin. Et comme MythTV nettoye automatiquement la base de données, une restauration complète d'une base de données vielle de plusieurs annnées sera tout aussi propre qu'une nouvelle base de données dans laquelle vous avez fait une restauration partielle. 
 + 
 +Une restauration partielle est déconseillée car elle est beaucoup plus difficile et chronophage qu'une restauration complète, laisse beaucoup plus de possibilités pour les erreurs, et ne procure aucun avantage pour l'​utilisateur ou le système. Notez également que si les données dans les tables qui stockent des informations sur les enregistrements et les règles d'​enregistrement sont corrompues, elles seront également corrompues après la restauration - une restauration partielle n'est pas une solution magique pour les données cassés. 
 + 
 + 
 +Notez, qu'une restauration partielle ne fonctionnera que si la version du schéma de sauvegarde est identique à la version du schéma utilisé par le mythbackend actuellement installé. Si vous devez effectuer une restauration partielle lors de la mise à jour de MythTV, il y a plusieurs étapes supplémentaires à effectuer - encore une autre bonne raison de faire une restauration complète. 
 + 
 +Avant d'​effectuer une restauration partielle, la base de données doit exister et doit avoir des tables (surtout vide). Tout d'​abord,​ effacer la base de données existante. Vous pouvez le faire à partir de la ligne de commande avec la commande: 
 +  mysql-u root-p-e 'DROP DATABASE IF EXISTS mythconverg;'​ 
 +   
 +puis créer une nouvelle base de données (et notez que cela peut changer les mots de passe / permissions de MySQL, cela pourrait causer des problèmes d'​authentification). Ensuite, démarrez mythtv-setup pour créer le schéma de base de données. Enfin, quitter mythtv-setup,​ puis restaurer la base de données: 
 + 
 +  ​mythconverg_restore.pl --partial_restore 
 + 
 + 
 +====Restauration partielle lors de la mise MythTV==== 
 +Encore une fois, une restauration partielle est surtout utile comme un dernier recours lorsque certaines données dans la base de données sont corrompues. En règle générale, ne pas faire restaurer une partielle ​à la place faire une restauration complète. Voir ci-dessus les raisons pour lesquelles la restauration partielle n'est pas nécessaire et n'est pas recommandée. 
 + 
 +Si vous essayez de faire une restauration partielle en même temps que la mise à niveau, vous devez vous assurer que la sauvegarde de la base de données contenant vos données est de la même version du schéma de base de données comme la version du schéma de base de données en cours d'​exécution. Vous ne pouvez pas utiliser une restauration partielle pour contourner le processus de mise à niveau de base de données. Cela rend la restauration beaucoup plus compliqué que d'une restauration complète, et là encore, vous devriez probablement juste faire une restauration complète. 
 + 
 +Pour effectuer une restauration partielle lors de la mise à jour votre version de MythTV, d'​abord (avant la mise à niveau MythTV) faire une sauvegarde complète de votre base de données à l'​ancienne version de schéma, puis effacez la base de données et créer une nouvelle base de données vide, puis lancez (l'​ancienne version de ) mythtv-setup pour créer un nouveau schéma vide (ancienne version), puis quitter mythtv-setup. Puis faire une restauration partielle de la base de données avec l'​ancien schéma dans la nouvelle base de données (que vous venez de créer). Ensuite, faites une sauvegarde complète de la nouvelle base de données à l'​ancien schéma "​partielle"​.  
 + 
 +Une fois que vous aurez mis à niveau Mythtv, plutôt que de faire une restauration partielle de l'​ancien schéma de base de données, vous aurez une restauration complète de la base de données "​partielle"​ avec l'​ancien schéma (celle la plus récemment créée ). En outre, si la mise à niveau implique de changer le nom d'​hôte (hostname), vérifiez que vous modifiez le nom d'​hôte avant de lancer toutes les applications MythTV. Enfin, effectuez la mise à niveau MythTV, puis lancez mythtv-setup pour mettre à jour la base de données «partielle»,​ puis configurez les backends, frontends, et les plugins. 
 + 
 +Si vous avez déjà mis à niveau MythTV et vous n'avez pas de créer une sauvegarde de base de données avec l'​ancienne schéma "​vide",​ vous aurez besoin de faire une restauration complète de votre sauvegarde à l'​ancienne version. Ensuite, démarrez mythtv-setup pour mettre à niveau le schéma. Si cela a fonctionné,​ il n'y a aucune raison de faire une restauration partielle. Si vous souhaitez toujours le faire, vous pouvez alors faire une sauvegarde complète de votre base de données au nouveau schéma et ensuite faire une restauration partielle (voir plus haut - vous êtes 
 +maintenant prêt à commencer le processus de restauration partielle).
  
  
 ====Change le « hostname » du frontend ou backend==== ​ ====Change le « hostname » du frontend ou backend==== ​
 +
 Note: le changement de « hostname » modifie la base existante mais ne la restaure pas. Bien sûr, pour changer le « hostname », il faut que la base existe (restaurer une ancienne base si nécessaire) et exécutez la commande suivante en remplaçant ''​XXXX''​ et ''​YYYY''​ avec les valeurs de l'​ancien et du nouveau « hostname »:  Note: le changement de « hostname » modifie la base existante mais ne la restaure pas. Bien sûr, pour changer le « hostname », il faut que la base existe (restaurer une ancienne base si nécessaire) et exécutez la commande suivante en remplaçant ''​XXXX''​ et ''​YYYY''​ avec les valeurs de l'​ancien et du nouveau « hostname »: 
   mythconverg_restore.pl --change_hostname --old_hostname="​XXXX"​ --new_hostname="​YYYY"​   mythconverg_restore.pl --change_hostname --old_hostname="​XXXX"​ --new_hostname="​YYYY"​
Ligne 101: Ligne 147:
  
 ---- ----
-Traduit par gilles74 ​ le 18 sept 2008+Traduit par gilles74 ​ le 18 sept 2008/mise à jour le 25/5/2013
database_backup_and_restore.1223121330.txt.gz · Dernière modification: 04/10/2008 par 82.125.165.128