3 votes

Restaurer automatiquement un fichier dump.sql sur un autre serveur chaque semaine

Je suis actuellement en train de chercher un moyen de restaurer automatiquement un fichier dump.sql sur un autre serveur chaque semaine. Je n'ai pas encore trouvé le code pour le faire, que ce soit dans mysql ou dans l'invite de commandes, mais je cherche. Le principal problème que je vois est que le serveur crée deux sauvegardes de base de données chaque jour, une pour chaque base de données, et le nom change chaque jour car nous stockons la date dans le nom.

Est-il possible de mettre en place un code qui restaure le fichier le plus récent pour chaque base de données une fois par mois ?

J'ai fait beaucoup de recherches mais je ne cesse de trouver des guides sur la création des fichiers de sauvegarde ou sur la manière de télécharger un seul fichier de sauvegarde vers une nouvelle base de données, mais je ne trouve rien sur ce sujet.

2voto

Failaser Points 1

Essentiellement, ce que je ferais est d'écrire un script bash qui s'exécute une fois par jour/semaine/mois.

Voici quelques logiques (que je ferais)

À l'intérieur du répertoire où se trouvent les sauvegardes, vous pouvez récupérer la dernière version de chaque sauvegarde en éditant le UNIQUEPARTHERE

ls -lthr | grep UNIQUEPARTHERE | tail -1 | cut -f9 -d ' '

Par exemple:

$FILE = ls -lthr | grep DATABASE_BACKUP1 | tail -1 | cut -f9 -d ' '

La commande ci-dessus affichera la dernière sauvegarde de tout fichier contenant DATABASE_BACKUP1 dans le nom de fichier.

Ensuite, il suffit d'exécuter une commande mysql sur un serveur distant:

mysql --user=mysql_username --password=your_password remote_database_name < $FILE --host=IP_OF_REMOTE_SERVER_GOES_HERE

Bien sûr, c'est une idée générale de la façon dont je le gérerais en supposant que vous utilisiez bash et que la sauvegarde soit créée en utilisant mysqldump ;)

Bonne chance :)

1voto

Ashwin A Points 151

Vous pouvez essayer SQLyog's SQL Scheduler et Reporting Tool qui vous permet de programmer l'exécution de requêtes. Il dispose d'un Agent de tâches qui vous permet de générer, formater et envoyer des e-mails personnalisés avec les résultats d'une requête. Vous pouvez spécifier un fichier externe (dump.sql dans votre cas) ou saisir les requêtes que vous souhaitez exécuter à l'aide de cet outil. Il y a une option Enregistrer et programmer une tâche à l'aide du Planificateur de tâches Windows si vous avez besoin que la tâche soit lancée automatiquement selon un certain horaire.

1voto

LEOPiC Points 115

Si vous utilisez unix/linux :

Vous pouvez utiliser CRON pour exécuter une tâche planifiée (chaque semaine dans votre cas)

Ensuite, utilisez la ligne de commande mysql dans votre script utilisé par CRON pour importer la base de données vers un autre serveur.

Pour déterminer le fichier le plus récent

1voto

J Nicolle Points 21

Bash file is nice idea

Une autre façon est de sauvegarder dans un répertoire spécifique Exporter la base de données :

mysql>mysqldump -h hostname -u username -p database_name > backup_db.sql

Je le mets dans mon répertoire de serveur web et peut être consulté à http://xxxxx/backup_db.sql

Dans un autre serveur

Il suffit d'utiliser wget http://xxxxx/backup_db.sql et d'importer dans la base de données via

mysql> source /home/om/Download/dbname.sql

Vous pouvez automatiser tout le processus dans crontab

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X