Migration de bases de données mysql entre deux serveurs debian

Migration de bases de données mysql entre deux serveurs debian

J’ai récemment du migrer des bases de données mysql entre deux serveurs debian auto-hébergés. Ayant fait cet type de migration il y a quelques mois et n’ayant pas noté les commandes, j’ai du reconstituer les commandes de mémoire, du coup, voici une documentation (pour moi principalement, mais ça peut servir à d’autres).

Utilisez backupninja pour backupper régulièrement ses bases de données. Cela permet d’avoir des dumps pour faire la migration.

 apt-get install backupninja
 cp /usr/share/doc/backupninja/examples/example.mysql /etc/backup.d/
 chmod go-rwx /etc/backup.d/example.mysql
 backupninja -n

Profitez-en pour utiliser mariadb qui est moins pire que mysql (à défaut de migrer vers postgresql ce qui est parfois plus coûteux).

Migrer les grants (utilisateurs et droits de ces utilisateurs)

 apt-get install percona-tools
 pt-show-grants | grep -v root | grep -v debian > grants.sql
 ssh new_server
 rsync original_server:~/grants.sql .
 cat grants.sql | mysql

Il est parfois utile d’ajouter ses credentials dans ~/.my.cnf :

 [client]
 user = root
 password = secret-password

Migrer les données

 rsync --exclude "mysql.sql.gz" --exclude="information_schema.sql.gz" --exclude="performance_schema.sql.gz" -avz original_server:/var/backups/mysql/sqldump/*.sql.gz .
 for i in *.sql.gz; do echo mysqladmin create ${i%.sql.gz}; done
 for i in *.sql.gz; do zcat $i | mysql ${i%.sql.gz} ; done

Voilà.

Afficher les commentaires Masquer les commentaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *