Fork me on GitHub




(1) 2 »


changement d'hébergeur
Aspirant
Inscrit: 15/02/2008 22:10
Messages: 32
Je suis en train de changer d'hébergeur.
Je suis coincé depuis 2 semaines à cause du transfert de la base de donnée. C'est que la base de mon site Xoops est grosse, le sql généré dépasse les 80M.

Même table après table j'arrive a un time out pour les plus grosses (26M).

J'ai essayé avec le module backup (des chinois). L'exportation ne pose pas de problème, mais à l'importation sur l'autre hébergeur, ça coince. En effet, pour accéder au module, il faut déjà qu'une bonne partie de la DB soit remplie, puis il faut charger les tables les unes après l'autre, mais il faut aussi faire les "DROP TABLE". Du coup, en traitant une table, je me suis retrouvé avec une page blanche :-o. plus accès au site sur le nouvel hébergeur ... j'étais bon pour recommencer à charger des tables une à une depuis phpmyadmin ... Pfffff !

J'ai donc essayé de faire un petit programme pour charger ces tables automatiquement (ci-dessous), les unes après les autres. Mais il en traite un bout et après "time out". et table seulement partiellement chargée et dur dur de s'y retrouver ...

Je pourrais bien continuer mon programme, et spliter les trops gros fichiers, puis trouver comment lancer ça automatiquement en plusieurs fois pour éviter les time out ... mais c'est quand même de la très grosse bricole.


N'y a-t'il pas un moyen professionnel de transférer une grosse DB d'un hébergeur à un autre ????



<?

$DEBUG    = @$_GET["DEBUG"] ;      // 
if (!$DEBUG$DEBUG 'NO' ;            // 


// initialisations data base
// =========================

mysql_connect('***************','***********','*********3');
mysql_select_db('************');


$fp fopen('log.txt''w');  // fichier log

$dir    './uploads/backup/';
$files scandir($dir ,1);

/* result like :
Array
(
    [0] => truc.sql
    [1] => machin.sql
    [2] => chose.sql
    [3] => ..
    [4] => .
)
 // donc éliminer les 2 derniers
*/

$nb_files count($files) - ;

if (
$DEBUG=='YES'$nb_files ;

for ( 
$counter 0$counter $nb_files$counter += 1)
{



        
$FileName $dir."/".$files[$counter] ;
        
fwrite($fp"FILE : ".$FileName." n ============================ nn");

        
$all_sql file_get_contents($FileName);
        
//$all_sql = trim($all_sql);

        
$len strlen ($all_sql) ;
        
        echo 
$FileName." nbcar : ".$len."<br>" ;


        
$pos ;
        
$oldpos ;
        
$count 0;
        
$FailCount 0;

// BOUCLE dans le fichier
// ======================

    
while ( $pos strpos$all_sql ';
$oldpos)   )
    {
        
//echo $pos."<br>" ;

        
$sql substr($all_sql,$oldpos ,($pos-$oldpos) + 1);
        if (
$DEBUG=='YES'
        {
          
fwrite($fp"nde ".$oldpos." à ".$pos."n");
          
fwrite($fp"requête :n".$sql."n");
        }


        
        
$oldpos $pos ;

        
$result mysql_query($sql);
        if (!
$result) {
            
//die('Requête invalide : ' . mysql_error());
             //echo  mysql_error()."<br>n" ;
             //echo $sql."<br>" ;
             
if ($DEBUG=='YES')
             {
                 
fwrite($fp"FAIL N° ".$FailCount." n");
                 
fwrite($fpmysql_error()."n");
                 if (
$FailCount>20$oldpos 100000000 //force l'arrêt de la boucle
            
}
            
$FailCount += ;
        }
        else
        {
          
$count =$count ;
          if (
$DEBUG=='YES')
          {
            
fwrite($fp"SUCCESS ! ".$count." n");
            if (
$count>20$oldpos 100000000 //force l'arrêt de la boucle
          
}
        }

    }

            echo 
$count." elements added n"."<br>" ;
            echo 
$FailCount." elements with errors n"."<br>" ;
            
fwrite($fp$count." elements added n");
            
fwrite($fp$FailCount." elements with errors nn");

}
    
fclose($fp);



?>

Posté le : 30/01/2009 10:24
Partager Twitter Partagez cette article sur GG+
Re: changement d'hébergeur
Régulier
Inscrit: 27/10/2006 15:06
De l'Ouest
Messages: 357
bonjour as-tu essayé de nettoyer la base, comme indiqué dans les tutos xoops, afin de diminuer la taille

Posté le : 30/01/2009 13:00
Partager Twitter Partagez cette article sur GG+
Re: changement d'hébergeur
Aspirant
Inscrit: 07/02/2003 21:34
Messages: 42
Bonjour

Est-ce que tu as un accès en SSH sur ton serveur ?

Avec PHPMyAdmin tu es limité en taille. De plus ton hébergeur généralement kill la tache si SQL si elle dure trop longtemps (sur un hébergement mutualisé).

J'ai eu à transférer une grosse base qui ne passait pas par PhpMyAdmin et j'ai utilisé les commandes en lignes via SSH de mysql. Et la plus aucun pb.

Kart

Posté le : 30/01/2009 13:06
Partager Twitter Partagez cette article sur GG+
Re: changement d'hébergeur
Aspirant
Inscrit: 15/02/2008 22:10
Messages: 32
Alors ... oui, la base est toute propre, que du contenu plein de valeur.

Et je sais pas trop si j'ai un accès SSH, je sais même pas à quoi ça correspond ... Peux-tu me dire un peu à quoi ça ressemble ???

Indication, le nouvel emplacement est sur dreamhost.

Posté le : 30/01/2009 14:09
Partager Twitter Partagez cette article sur GG+
Re: changement d'hébergeur
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
Salut, mets en place ce script sur ton site d'origine : http://www.phpmybackuppro.net/
Fais ta sauvegarde en suivant les instructions.

Puis mets le en place également sur ton nouveau site pour restaurer des données.

Sinon, tu as aussi l'excellent bigdump
http://www.ozerov.de/bigdump.php
Qui permet de restaurer de très grosses bases en gérant lui-même les time-out et les découpages nécessaires.

Sinon, selon les commandes système/php autorisées chez tes hébergeurs, tu as d'autres méthodes encore plus rapides et fiables (mais sur de l'hébergement mutualisé tu n'auras normalement pas accès à ces commandes).

Par exemple pour sauvegarder une base, si tu as accès à la commande php 'system', il y a ça qui est très efficace pour sauvegarder.
<?php
system
("mysqldump -hlocalhost -uUSER -pPASSWORD NOM_DE_LA_BASE | gzip > /chemin/physique/mabase.sql.gz");
?>


Et l'opération inverse pour restaurer.

Posté le : 30/01/2009 16:23
Partager Twitter Partagez cette article sur GG+
Re: changement d'hébergeur
Supporter Xoops
Inscrit: 09/01/2005 13:37
De Breizh
Messages: 16972
Bonjour,

tu as également mysqldumper pour les très grosses bases de données

@++

Posté le : 30/01/2009 19:31

La connaissance s'accroît quand on la partage ...
Partager Twitter Partagez cette article sur GG+
Re: changement d'hébergeur
Aspirant
Inscrit: 15/02/2008 22:10
Messages: 32
Merci pour ces réponses.

J'ai chargé bigdump.

Dans un premier temps, j'ai essayé avec un fichier sql créé par le module backup. Résultat : erreur de syntaxe dans certaines requêtes CREATE TABLE.

Ensuite, j'ai fais comme suggéré dans la doc de bigdump, j'ai exporté depuis phpmyadmin. Résultat, encore un bug dans une syntaxe :

Error at the line 109: INSERT INTO `flashchat_messages` (`id`, `created`, `toconnid`, `touserid`, `toroomid`, `command`, `userid`, `roomid`, `txt`) VALUES (296154, 2009-02-02 11:15:13, NULL, NULL, NULL, 'spht', 287, NULL, ''); Query: INSERT INTO `flashchat_messages` (`id`, `created`, `toconnid`, `touserid`, `toroomid`, `command`, `userid`, `roomid`, `txt`) VALUES (296154, 2009-02-02 11:15:13, NULL, NULL, NULL, 'spht', 287, NULL, ''); MySQL: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '11:15:13, NULL, NULL, NULL, 'spht', 287, NULL, '')' at line 1

En fait, c'est la date <2009-02-02 11:15:13> qui ne passe pas, il faut la mettre entre guillemets.

Comme je n'ai pas trop envie de passer en revue 80 Mbytes de texte pour corriger manuellement, j'ai essayé l'export en mettant le mode de compatibilité sur "MYSQL" (rien n'était spécifié dans l'essai précédant) ... on verra ce que ça donne.

Est-ce que quelqu'un peut me dire quels sont les paramètres à utiliser en relation avec une importation par bigdump ?
Parce que si je dois essayer toutes les combinaisons, avec le temps du chargement du fichier sur le serveur, j'aurai pas fini avant 2010 :-o

En particulier :

[MYSQL] mode de compatibilité ?
[_] Utiliser le mode transactionnel ?
[X] Désactiver la vérification des clés étrangères ?
[X] Ajouter DROP TABLE / VIEW / PROCEDURE / FUNCTION ?
[X] Ajouter IF NOT EXISTS ?
[X] Inclure la valeur courante de l'AUTO_INCREMENT ?
[X] Protéger les noms des tables et des champs par des "`" ?
[_] Ajouter CREATE PROCEDURE / FUNCTION ?
[X] Insertions complètes ?
[_] Insertions étendues ?
[_] Taille maximum de la requête générée ?
[_] Insertions avec délais (DELAYED) ?
[_] Ignorer les erreurs de doublons (INSERT IGNORE) ?
[X] Utiliser l'hexadecimal pour les BLOB ?
[INSERT] Type d'exportation ?

Entre crochet les valeurs qui me paraissent logiques ...


Oups ... j'avais pas vu que blueteen me suggérait de commencer par mettre en place un script d'exportation ... je vais encore essayer ça, car j'ai toujours une erreur ... grrr !
Mouais ... je viens de lire la doc de l'install de ce bidule ... peuvent pas faire des trucs simples ? je vais faire une pause, sinon je vais bouffer mon PC Peuvent pas intégrer un truc fonctionnel dans Xoops ?

Finalement, j'ai encore regardé mysqldumper, et installé sur un des serveurs ... ça a l'air professionnel ... reste à l'installer sue le second ... verdict demain.

Posté le : 02/02/2009 16:28
Partager Twitter Partagez cette article sur GG+
Re: changement d'hébergeur
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
La première étape est effectivement d'exporter ta base dans un format correct (à savoir, il est bon que les valeurs soient "encadrées", et non pas simplement séparées par des parenthèses).

Quel est ton hébergeur actuel ? (celui où se trouve ta base de données à sauvegarder).

Sinon ça me semble ok pour tes valeurs entre [].

Au pire si t'es toujours coincé demain, tu n'auras qu'à m'envoyer tes éléments d'accès à tes bases et serveurs ftp, et je tâcherai de te faire ça (et j'indiquerai la procédure ensuite).

Posté le : 02/02/2009 16:52
Partager Twitter Partagez cette article sur GG+
Re: changement d'hébergeur
Aspirant
Inscrit: 15/02/2008 22:10
Messages: 32
Merci blueteen !

la source est chez infomaniak
la destination chez dreamhost

J'essaye encore un peu ce soir ...

Posté le : 02/02/2009 17:00
Partager Twitter Partagez cette article sur GG+
Re: changement d'hébergeur
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
ah !
ben chez infomaniak, tu as un dossier contenant les backup des 7 jours précédents (format gz).
il te suffit de récupérer ce fichier pour l'injecter chez ton nouvel hébergeur.

Posté le : 02/02/2009 17:02
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
(1) 2 »



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

76 Personne(s) en ligne (60 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 76 | Plus ...