4 votes

comment terminer le dump de la sauvegarde quotidienne de mysql sans dépassement de délai ?

Quelle est la meilleure façon d'effectuer une sauvegarde quotidienne de la base de données Mysql ? Nous avons des problèmes critiques de connexion à la base de données Mysql pendant le vidage de la sauvegarde.

nous utilisons dump et gzip

cron a une ligne :

 1 1 * * * root nice -n 19 /etc/automysqlbackup.sh

un problème survient pendant le vidage.

0 votes

Les gens peuvent probablement s'en sortir - mais vous devriez inclure un lien vers le script que vous utilisez.

2voto

akaihola Points 225

La sauvegarde logique (mysqldump, comme celle utilisée par votre script) verrouille la base de données. cela perturbe le fonctionnement du client.

Mon approche pour sauvegarder une base de données critique est d'utiliser InnoDB sur OpenSolaris et de prendre des instantanés ZFS quotidiens du répertoire de données et du répertoire des journaux.

Ces instantanés sont ensuite copiés sur un serveur hors site.

Étant donné qu'InnoDB est transactionnel et que l'instantané est atomique, il n'est pas nécessaire d'arrêter le serveur avant de prendre l'instantané (le rétablissement de l'instantané est exactement comme celui d'une panne de courant soudaine) : InnoDB le prend en charge).

0 votes

Pour la plupart des systèmes de base de données (et la plupart des back-ends MySQL), il faut vraiment que la base de données soit arrêtée lorsque vous récupérez les sauvegardes du système de fichiers, sinon les résultats d'une restauration peuvent être imprévisibles.

1 votes

Comme je l'ai dit, InnoDB est robuste à cela. (en supposant que vous prenez un instantané atomique du système de fichiers - ce que l'instantané ZFS est garanti être). Je ne dis pas n'importe quoi ici, je l'ai vérifié à maintes reprises : InnoDB récupère bien à partir d'un instantané que je prends pendant que le serveur fonctionne.

2voto

Vous déposez vos bases de données mysql sur un partage réseau (NFS) ? Nous avons eu un problème similaire de time out, et nous avons dû redémarrer le démon mysql avec les deux options suivantes :

/etc/my.cnf

[mysqld]
net_read_timeout=300
net_write_timeout=300

Faites-nous part de vos nouveaux résultats !

Stivi

1voto

lepole Points 1723
  • Si la fermeture éclair est le problème. Exécutez votre tâche de sauvegarde depuis une autre machine connectée à votre serveur mysql et zippez là.
  • au lieu du dump avec mysql5 vous pouvez aussi utiliser mysqlhotcopy
  • mais encore une fois, il se peut que votre disque soit tout simplement trop lent. quel est le type de disques, quelle est la quantité d'io que vous avez... ?

0 votes

Tu as dit en gros tout ce que j'allais suggérer, +1.

0 votes

Hotcopy LOCKS table ? Ce n'est pas possible car nous sommes en service 24h/24. A propos de diskIO : existe-t-il une méthode plus lente qu'un zip pour compresser le fichier de log car il s'agit d'un texte. Le fichier de log incompressé est de 600mb.

0 votes

Taille comprimée : 78mb. serait-il utile d'ajuster les paramètres GZIP ?

1voto

Crippeoblade Points 1301

Si vous exécutez vos fichiers de données MySQL sur un volume LVM, vous pouvez simplement créer un instantané. Jetez un coup d'œil à mylvmbackup pour une solution éprouvée.

1voto

theotherreceive Points 8185

Pour créer un dump que vous pouvez réellement utiliser, mysql doit verrouiller la base de données afin de créer un fichier dump cohérent. C'est, je crois, ce qui cause les timeouts.

0 votes

Donc pour créer une sauvegarde, il faut faire quelque chose qui fasse échouer la sauvegarde ? C'est brillant.

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