2009-08-24 17 views
0

J'ai une base de données de test sur un serveur distant distinct de ma base de données de production. De temps en temps, je veux essayer et tester des choses en téléchargeant une copie de ma base de données de production à mon DB de test. Malheureusement, le fichier de sauvegarde est maintenant un demi-concert et j'ai du mal à le transférer via FTP ou SSH. Y at-il un moyen facile que je peux utiliser la commande de restauration mysql entre les serveurs? De même, existe-t-il un autre moyen de déplacer de gros fichiers que je ne considère pas? Un demi-concert ne semble pas si grand, j'imagine que les gens rencontrent fréquemment ce problème.Restauration mysql pour les fichiers sur un autre serveur

Merci!

Répondre

1

Les serveurs sont-ils accessibles les uns aux autres?

Si tel est le cas, vous pouvez simplement transférer les données d'une base de données vers une autre sans utiliser de fichier.

ex: mysqldump [options] | mysql -h test -u nom d'utilisateur -ppasswd

0

Mysql vous permet de vous connecter à un serveur de base de données distant pour exécuter des commandes sql. En utilisant cette fonctionnalité, nous pouvons diriger la sortie de mysqldump et demander à mysql de se connecter au serveur de base de données distant pour remplir la nouvelle base de données.

mysqldump -u root -p rootpass SalesDb | mysql --host=185.32.31.96 -C SalesDb 
1

0.Please demander si vous avez vraiment besoin de données de production (surtout si elle contient des informations sensibles)

1. solution la plus simple consiste à compresser la sauvegarde sur le serveur source (généralement gzip), transfert à travers le fil, puis décompressez sur le serveur cible.

http://www.techiecorner.com/44/how-to-backup-mysql-database-in-command-line-with-compression/

2. Si vous n'avez pas besoin de la réplique exacte des données de production (par exemple, vous n'avez pas besoin des journaux d'application, des erreurs, d'autres choses techniques), vous pouvez envisager de créer une sauvegarde et de restauration sur un serveur source à un nom de base de données différent, supprimez toutes les données inutiles et ensuite prenez une sauvegarde que vous utiliserez.

3. Restaurez la sauvegarde complète une seule fois sur votre serveur de référence dans votre environnement de développement, puis copiez uniquement les journaux de transactions (pour les relire sur le serveur de référence). En fonction du modèle d'utilisation, les journaux de transactions peuvent prendre beaucoup moins d'espace que l'ensemble de la base de données.

0

Utilisez une méthode de transfert efficace plutôt que ftp.

Si vous avez un fichier de vidage créé par mysqldump, sur le serveur de test db, et que vous le mettez à jour de temps en temps. Je pense que vous pourriez gagner du temps (si ce n'est pas l'espace disque) en utilisant rsync pour le transférer. Rsync va utiliser ssh et compresser les données pour le transfert, mais je pense que les fichiers locaux et distants devraient/pourraient être décompressés. Rsync ne transférera que la partie modifiée d'un fichier.

La définition d'un fichier de vidage peut prendre un certain temps, mais le transfert doit être rapide.

Je dois avouer cependant que je ne l'ai jamais fait avec un fichier de vidage de moitié gigaoctet.

Questions connexes