web-dev-qa-db-fra.com

Skip-Lock-Tables et MySqldump

Daily Nous exécutons des décharges MySQL sur environ 50 bases de données individuelles, les emballer, puis les stocker hors site. Certaines de ces bases de données sont plutôt grandes et contiennent des tables myisam (qui ne peuvent pas être modifiées, ce qui suggère que c'est inutile). Je lisais l'option à l'aide de l'option Skip-Lock-Tables lors de la décharge mais n'a pas lu ce que l'inconvénient être. Tout ce que je vois, sont essentiellement différentes itérations de "Cela pourrait avoir des effets indésirables si des données sont insérées sur une table pendant que c'est dumping."

Quels sont ces effets indésirables? Cela signifie-t-il que nous manquerons ces questions sur une restauration ou que cela signifie-t-il que le fichier de vidage sera brisé et inutile? Honnêtement, je m'engagerai moins si nous perdons de nouvelles données affichées après le début de la Dump, car je suis juste à la recherche d'un instantané à temps.

Puis-je compter sur ces décharges de base de données pour contenir toutes les données sauvegardées avant de délivrer la députée.

16
Jafo

- Skip-Lock-Tables Le paramètre indique l'utilitaire MySqldump de ne pas émettre de la commande A tables de verrouillage avant d'obtenir le vidage qui acquiert une serrure de lecture sur chaque table. Toutes les tables de la base de données doivent être verrouillées, pour une cohérence améliorée en cas de procédure de sauvegarde. Même avec les tables de saut-verrouillage, tandis qu'une table est larguée, ne recevra aucun inserts ni mises à jour, car il sera verrouillé en raison de la sélection requise pour obtenir tous les enregistrements de la table. Ça ressemble à ça

SELECT SQL_NO_CACHE * FROM my_large_table

et vous pouvez le voir dans la liste de processus avec la commande show processlist. Si vous utilisez le moteur MyISAM qui est non transactionnel, le verrouillage des tableaux ne garantira aucun cas de cohérence référentielle et de cohérence des données, j'utilise personnellement le paramètre - Skip-Lock-Tables Presque toujours. En InnoDB, utilisez le paramètre - transaction unique pour l'effet attendu. J'espère que cela t'aides.

29
georgepsarakis