Site réalisé sur
une plate-forme Word et Web


CMS - OVH - Sauvegarde/Restauration Base de données sur Hébergements Mutualisés

@logo_WordEtWeb_mini

 

CMS - OVH - Sauvegarde/Restauration Base de données sur Hébergements Mutualisés

 

 

Chez OVH une sauvegarde des bases de données est faite chaque nuit.

-       Les sauvegardes des bases SQL :                    http://guides.ovh.com/SaveBasesMySQL

-       Comment sauvegarder une base de données ?  http://guides.ovh.com/BackupBaseMySQL

-       Comment importer une base de données ?        http://guides.ovh.com/ImportBaseMySQL

 

La sauvegarde et surtout la restauration de Bases de données sur un Hébergement Mutualisé peut s'avérer complexe voire même impossible lorsque la base de données est trop grosse et que PhpMyAdmin passe en Time-Out.

A ce moment là commence la grande panique :

-       Le site est en production.

-       La Base de Données est cassée.

-       Sur le site : « Magnifique page blanche, … »   

 

OVH - Procédure :

 

Pour faciliter la compréhension j’ai pris comme nom de base de données « mabase ».

Il suffira de changer dans les scripts « mabase » par le nom réel de votre base.

 

Cas catastrophe :     Ne fonctionne actuellement pas chez OVH

-       Il s’agit de créer un fichier DUMP de la sauvegarde de votre base de données effectuée par OVH toutes les nuits,

   Script « dump_bd_nuit.php »

-       Puis de restaurer ce DUMP dans votre base de données.

   Script « restor_bd_nuit.php »

 

Cas préventif :

-       Il s’agit de créer un fichier DUMP de votre base de données courante régulièrement tous les jours ou toutes les semaines,

   Script « sauve_bd.php »

-       Restauration de cette sauvegarde (DUMP) dans votre base de données.

   Script « restor_bd.php »

 

OVH – Script « dump_bd_nuit.php » :

Ne fonctionne actuellement pas chez OVH

 

L’accès à la sauvegarde de votre base de données sauvegardée par OVH se fait tout simplement en ajoutant « -n » ou ‘-s » au nom de votre base de données.

Ce qui donnera :

-       mabase-n        Pour la nuit précédente

-       mabase-s        Pour la semaine précédente

 

<?php

   error_reporting(E_ALL); // Activer le rapport d'erreurs PHP

   $db_charset    = "latin1"; /* mettre utf8 ou latin1 */

   $db_server     = "xxxxxx"; // Nom du serveur MySQL.  ex. mysql5-26.perso

   $db_name       = "xxxxxx"; // Nom de la base de données.  ex. mabase-n ou mabase-s

   $db_username   = "xxxxxx"; // Nom de la base de données.  ex. mabase-n ou mabase-s

   $db_password   = "xxxxxx"; // Mot de passe de la base de données.

 

   $cmd_mysql     = "mysqldump";

   $archive_GZIP  = "sauve_base_format_gzip.gz";

 

   echo " Sauvegarde de la base <font color=red><b>$db_name</b></font> par <b>mysqldump</b> dans le fichier <b>$archive_GZIP</b> <br> \n";

   $commande = $cmd_mysql." --host=$db_server --user=$db_username --password=$db_password -C -Q -e --default-character-set=$db_charset  $db_name    | gzip -c > $archive_GZIP ";

   $CR_exec = system($commande);

?>

 

OVH – Script « restor_bd_nuit.php » :

Ne fonctionne actuellement pas chez OVH

 

<?php

   error_reporting(E_ALL); // Activer le rapport d'erreurs PHP

   $db_charset    = "latin1"; /* mettre utf8 ou latin1 */

   $db_server     = "xxxxxx"; // Nom du serveur MySQL.  ex. mysql5-26.perso

   $db_name       = "xxxxxx"; // Nom de la base de données.  ex. mabase

   $db_username   = "xxxxxx"; // Nom de la base de données.  ex. mabase

   $db_password   = "xxxxxx"; // Mot de passe de la base de données.

 

   $cmd_mysql     = "mysql";

   $archive_GZIP  = "sauve_base_format_gzip.gz";

 

   if (!is_file($archive_GZIP))   echo "<font color=red>Le fichier <b>".$archive_GZIP."</b> n'existe pas </font> <br> \n";

 

   echo " Restauration de la base <font color=red><b>$db_name</b></font> par <b>mysql</b> depuis le fichier <b>$archive_GZIP</b> <br> \n";

   $commande = "gzip -d < $archive_GZIP | $cmd_mysql --host=$db_server  --user=$db_username --password=$db_password $db_name";

   $CR_exec = system($commande);

?>

 

 

OVH – Script « sauve_bd.php » :

 

Principe, dater le fichier de sauvegarde de façon à pouvoir récupérer à volonté la sauvegarde de n’importe quel jour.

 

<?php

   error_reporting(E_ALL); // Activer le rapport d'erreurs PHP

   $db_charset    = "latin1"; /* mettre utf8 ou latin1 */

   $db_server     = "xxxxxx"; // Nom du serveur MySQL.  ex. mysql5-26.perso

   $db_name       = "xxxxxx"; // Nom de la base de données.  ex. mabase

   $db_username   = "xxxxxx"; // Nom de la base de données.  ex. mabase

   $db_password   = "xxxxxx"; // Mot de passe de la base de données.

 

   $cmd_mysql     = "mysqldump";

   $datation      = date("Y-m-d");

   $archive_GZIP  = "sauve_base_".$datation.".gz";

 

   echo " Sauvegarde de la base <font color=red><b>$db_name</b></font> par <b>mysqldump</b> dans le fichier <b>$archive_GZIP</b> <br> \n";

   $commande = $cmd_mysql." --host=$db_server --user=$db_username --password=$db_password -C -Q -e --default-character-set=$db_charset  $db_name    | gzip -c > $archive_GZIP ";

   $CR_exec = system($commande);

?>

 

OVH – Script « restor_bd.php » :

 

 

<?php

   error_reporting(E_ALL); // Activer le rapport d'erreurs PHP

   $db_charset    = "latin1"; /* mettre utf8 ou latin1 */

   $db_server     = "xxxxxx"; // Nom du serveur MySQL.  ex. mysql5-26.perso

   $db_name       = "xxxxxx"; // Nom de la base de données.  ex. mabase

   $db_username   = "xxxxxx"; // Nom de la base de données.  ex. mabase

   $db_password   = "xxxxxx"; // Mot de passe de la base de données.

 

   $cmd_mysql     = "mysql";

   $archive_GZIP  = "sauve_base_CCAA-MM-JJ.gz";  // Par exemple "sauve_base_2011-04-27.gz"

 

   if (!is_file($archive_GZIP))   echo "<font color=red>Le fichier <b>".$archive_GZIP."</b> n'existe pas </font> <br> \n";

 

   echo " Restauration de la base <font color=red><b>$db_name</b></font> par <b>mysql</b> depuis le fichier <b>$archive_GZIP</b> <br> \n";

   $commande = "gzip -d < $archive_GZIP | $cmd_mysql --host=$db_server  --user=$db_username --password=$db_password $db_name";

   $CR_exec = system($commande);

?>