web-dev-qa-db-fra.com

Différence entre le journal des transactions et le journal de rétablissement dans MySQL

J'ai lu sur MySQL. À mon avis, je vois deux types de journaux comme très similaires. MySQL enregistre comment et quand les données sont modifiées dans le journal. Les informations sont utilisées pour la récupération de MySQL. Je confond la fonction de deux types de journaux.

14
Luke Nguyen

Le journal REDO est la terminologie Oracle, le journal des transactions est la terminologie InnoDB. Maintenant que tous sont des ingénieurs Oracle, les gens utilisent les deux pour se référer à la même chose dans MySQL .

Le journal des transactions est, par défaut - il peut être modifié - les deux fichiers situés dans $ DATADIR appelé ib_logfile0 et ib_logfile1. Il remplit les mêmes fonctions que le journal REDO dans d'autres bases de données - stockant les écritures de manière sûre et récupérant en cas de plantage, bien qu'il existe certains détails dans l'implémentation qui diffèrent dans la fonctionnalité des autres RDMS. C'est le composant principal pour InnoDB d'être un moteur transactionnel.

Ne confondez pas le journal des transactions avec les journaux binaires dans MySQL . Le binlog, par défaut, est sur le $ DATADIR et est *hostname*-bin.index et plusieurs *hostname*-bin.00001, etc. C'est particulièrement déroutant pour les personnes provenant d'autres bases de données, car il est utilisé à d'autres fins pour lesquelles d'autres bases de données utilisent le journal REDO pour: la réplication et la récupération ponctuelle. La principale différence est que le journal des transactions est uniquement InnoDB, le journal binaire est (principalement) indépendant des transactions, comme c'est le cas pour tous les moteurs de stockage, transactionnels ou non. MyISAM écrira (si activé) dans le journal binaire. InnoDB écrira dans le journal des transactions et le journal binaire.

Plus d'informations sur le manuel: journal REDO , journal binaire .

19
jynus