2010-06-19 2 views
0

J'ai quelques grandes tables de production MySQL que j'ai besoin de sauvegarder pour pouvoir exécuter des analyses dans Hadoop. Quelles sont les meilleures pratiques que je devrais connaître pour faire des vidages et des requêtes de bases de données de production? Dois-je m'inquiéter d'affecter les performances de production si je ne fais que des vidages/lectures (et pas d'écriture)?Interrogation et création de vidages de bases de données de production

Répondre

1

Oui, vous devez vous en préoccuper. Les tables MyISAM se verrouilleront pendant les lectures, aucune modification ne sera autorisée, juste d'autres lectures. InnoDB n'a pas ce problème, mais il se verrouillera si vous interrogez de grands ensembles de données. Les vidages verrouillent n'importe quel type de table dans presque tous les cas. En règle générale, vous configurez une base de données esclave et répondez à toutes vos questions à ce sujet. Même configurer un esclave uniquement à des fins de reporting. Vous devrez arrêter le serveur MySQL pour configurer une configuration maître/esclave. Mais une fois que vous faites cela une fois, vous pouvez utiliser un esclave pour créer d'autres esclaves.

1

Cela dépend de la taille de la base de données et de la configuration de la réplication.

La configuration optimale (opinion) serait d'avoir un maître qui écrit constamment à un esclave (qui est autrement en lecture seule). De cette façon, vous pouvez exécuter un mysqldump sur l'esclave lui-même et les applications de production peuvent continuer à écrire au maître sans avoir à se soucier de mysqldump. Clause de non responsabilité: Je suis un amateur de MySQL, pas un administrateur de bases de données. Grain de sel, etc.

+0

Nous l'utilisons dans la production depuis environ un an, et cela nous a épargné pas mal de temps d'arrêt quotidiens (10 minutes d'importance!). – Wrikken

Questions connexes