2010-08-18 8 views
0

J'utilise MySql comme base de développement ainsi que sur le serveur sur lequel mon site web est hébergé. Maintenant, chaque jour, je perfore de nouvelles données dans la base de données et je l'enregistre en tant que vidage SQL en utilisant SQLyog. Mais quand il s'agit de mettre à jour les données pour ce jour sur la base de données Mysql du serveur, je dois tronquer les tables, puis insérer les nouvelles données. Ce qui conduit aux soucis suivants:Sauvegarde SQL incrémentielle de mysql

  1. Les données étant 5000+ lignes dans chaque table que la requête d'insertion ne peut pas exécuter. Je dois donc insérer des données dans des lots de 2000 lignes.

  2. Pour le moment où je tronque une table particulière et que les nouvelles données ne sont pas encore insérées, toute requête sur le site Web n'entraînera aucune donnée. Ce qui est de 5 à 7 minutes.

  3. Chaque jour seulement environ 300 lignes sont ajoutées dans chaque table mais je dois insérer les données complètes pour une table.

vous plaît sugges comment puis-je prendre une sauvegarde incrémentielle de ma base de données MySql locale ainsi je peux mettre à jour le même sur le serveur et non pas les données complètes jusqu'à ce jour-là.

Répondre

0

Pourquoi ne pas utiliser juste dump ligne de commande et de restauration comme suit -

Pour créer le vidage -

mysql racine localhost -p -h db_name> db_name_dump_version.sql

Cela videra la DB dans le fichier db_name_dump_version.sql

ensuite restaurer à partir de ce -

mysql ligne de racine localhost -p -h nom_base_de_donnees < db_name_dump_version.sql

Command MySQL est blitzingly rapide, donc vous ne serez pas attendre plus de 10 secondes, même pour un million de ligne DB.

1

S'il s'agit d'un environnement de développement simple, je ne recommanderais pas d'utiliser la route de sauvegarde incrémentielle. Autant que je sache, mysql ne fournit pas de façon intégrée de le faire. Si vous vraiment voulez faire cela, vous pouvez utiliser le journal binaire. Utilisation du binary log pour relire les instructions du jour suivant. En interne, MySQL utilise le journal binaire pour la réplication. (Avertissement, je n'ai jamais fait cela auparavant, et je suis sûr que vous rencontrerez des problèmes si vous avez inséré ou supprimé de votre copie de développement.)

Sinon, vous pouvez simplement créer une autre base de données, importez le vidage dans cela, et reconfigurez votre application pour utiliser la nouvelle base de données. Une fois que vous avez reconfiguré, laissez tomber la DB d'hier, et vous êtes bon. Aucun temps d'arrêt ...

Questions connexes