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

14

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.

Luke Nguyen
la source

Réponses:

18

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és ib_logfile0et 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 que certains détails d'implémentation diffèrent en fonctionnalités 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.indexet plusieurs *hostname*-bin.00001, etc. Il est particulièrement déroutant pour les personnes provenant d'autres bases de données, car il est utilisé pour d'autres choses que d'autres bases de données utilisent le journal REDO pour: la réplication et le point dans le temps récupération. 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 , log binaire .

jynus
la source
-2

Dans SQL Server, les fichiers TLog stockent à la fois les informations d'annulation et de rétablissement. Mais dans MYSQL et Oracle, le journal TLog / Redo stocke uniquement les informations de rétablissement.

La journalisation binaire dans MySQL est un moyen d'avoir une récupération ponctuelle. L'activation de la journalisation binaire équivaut à disposer d'un modèle de récupération complète dans SQL Server.

Mersh
la source
1
Vous devez probablement préciser qu'Oracle enregistre toujours les annulations, bien que séparément.
Philᵀᴹ