Quelle est la différence entre les journaux de transactions et les journaux binaires?

9

Venant d'une boutique SQL Server, je travaille maintenant avec MySQL et j'étais curieux.

Quelles sont les différences entre le journal binaire de MySQL et le journal des transactions de MSSQL?

D'après les perspectives jusqu'à présent, il semble qu'il n'y ait qu'un seul journal binaire par instance MySQL par opposition à un journal de transactions par base de données comme dans MSSQL.

Ryan
la source
Ce serait génial de voir une comparaison entre les deux.
Ryan
il y a une autre réponse à cette question dba.stackexchange.com/questions/72904/…
LawrenceLi

Réponses:

5

Répondre uniquement à la partie MySQL de la question

Un journal binaire enregistre les instructions SQL terminées. Vous pouvez avoir de nombreux journaux binaires. Sous les paramètres par défaut, les journaux binaires tournent à la marque 1G (voir expire_logs_days et max_binlog_size ).

Vous pouvez voir les journaux binaires en exécutant l'une des opérations suivantes:

SHOW BINARY LOGS;
SHOW MASTER LOGS;

Le journal maître actuel est toujours le dernier de la liste. Pour voir uniquement le dernier journal binaire, qui est le journal actuel, exécutez ceci:

SHOW MASTER STATUS;

En ce qui concerne le moteur de stockage et les transactions InnoDB

  • Il existe un fichier de métadonnées (ibdata1, qui contient, par défaut, des pages de données, des pages d'index, des métadonnées de table et des informations MVCC ), également appelé fichier d'espace de table InnoDB.
  • Vous pouvez avoir plusieurs fichiers ibdata (voir innodb_data_file_path )
  • Il existe des journaux de rétablissement (ib_logfile0 et ib_logfile1)
  • Vous pouvez avoir plus de deux journaux de rétablissement (voir innodb_log_files_in_group )
  • Vous pouvez répartir les données et les index sur plusieurs fichiers ibdata si innodb_file_per_table est désactivé
  • Vous pouvez séparer les données et les pages d'index d'ibdata dans des fichiers d'espace de table distincts (voir innodb_file_per_table et StackOverflow Post pour savoir comment configurer cela )
RolandoMySQLDBA
la source
Ah je vois, merci pour la réponse Rolando
Ryan