Was ist der Unterschied zwischen Transaktionsprotokollen und Binärprotokollen?

9

Ich komme aus einem SQL Server-Shop und arbeite jetzt mit MySQL. Ich war neugierig.

Was sind die Unterschiede zwischen dem Binärprotokoll von MySQL und dem Transaktionsprotokoll von MSSQL?

Aus heutiger Sicht scheint es nur ein Binärprotokoll pro MySQL-Instanz zu geben, im Gegensatz zu einem Transaktionsprotokoll pro Datenbank wie in MSSQL.

Ryan
quelle
Es wäre großartig, einen Vergleich zwischen den beiden zu sehen.
Ryan
Es gibt eine andere Antwort auf diese Frage dba.stackexchange.com/questions/72904/…
LawrenceLi

Antworten:

5

Beantwortung nur des MySQL-Teils der Frage

Ein binäres Protokoll zeichnet abgeschlossene SQL-Anweisungen auf. Sie können viele binäre Protokolle haben. In den Standardeinstellungen werden Binärprotokolle an der 1G-Marke gedreht (siehe expire_logs_days und max_binlog_size ).

Sie können binäre Protokolle anzeigen, indem Sie eine der folgenden Aktionen ausführen:

SHOW BINARY LOGS;
SHOW MASTER LOGS;

Das aktuelle Hauptprotokoll ist immer das letzte in der Liste. Führen Sie Folgendes aus, um nur das letzte Binärprotokoll anzuzeigen, das das aktuelle ist:

SHOW MASTER STATUS;

Wenn es um InnoDB Storage Engine und Transaktionen geht

  • Es gibt eine Metadatendatei (ibdata1, die standardmäßig Datenseiten, Indexseiten, Tabellenmetadaten und MVCC- Informationen enthält), die auch als InnoDB-Tablespace-Datei bezeichnet wird.
  • Sie können mehr als eine ibdata-Datei haben (siehe innodb_data_file_path )
  • Es gibt Redo-Protokolle (ib_logfile0 und ib_logfile1)
  • Sie können mehr als zwei Redo-Protokolle haben (siehe innodb_log_files_in_group ).
  • Sie können Daten und Indizes auf mehrere ibdata-Dateien verteilen, wenn innodb_file_per_table deaktiviert ist
  • Sie können Daten- und Indexseiten von ibdata in separate Tablespace-Dateien trennen ( Informationen zum Einrichten finden Sie in innodb_file_per_table und StackOverflow Post ).
RolandoMySQLDBA
quelle
Ah, ich
Ryan