Różnica między dziennikiem transakcji a dziennikiem ponawiania w MySQL

14

Przeczytałem o MySQL. Moim zdaniem dwa typy dziennika są bardzo podobne. MySQL zapisuje, jak i kiedy dane są zmieniane w dzienniku. Informacje są wykorzystywane do odzyskiwania MySQL. Mylę funkcję dwóch typów dzienników.

Luke Nguyen
źródło

Odpowiedzi:

18

Dziennik REDO to terminologia Oracle, dziennik transakcji to terminologia InnoDB. Teraz, gdy wszyscy są inżynierami Oracle, ludzie używają obu, aby odnosić się do tego samego w MySQL .

Dziennik transakcji to domyślnie - można go zmienić - dwa pliki znajdujące się w $ DATADIR o nazwie ib_logfile0i ib_logfile1. Obsługuje te same funkcje, co dziennik REDO w innych bazach danych - przechowywanie zapisów w bezpieczny sposób i odzyskiwanie w przypadku awarii, chociaż istnieją pewne szczegóły implementacji, które różnią się funkcjonalnością od innych RDMS. Jest głównym składnikiem InnoDB jako silnika transakcyjnego.

Nie należy mylić dziennika transakcji z dziennikami binarnymi w MySQL . Binlog, domyślnie, znajduje się na $ DATADIR i jest nim *hostname*-bin.indexkilka *hostname*-bin.00001itd. Jest to szczególnie mylące dla osób pochodzących z innych baz danych, ponieważ jest używany do innych celów, w których inne bazy danych używają dziennika REDO do: replikacji i punktu w czasie poprawa. Główną różnicą jest to, że dziennik transakcji jest tylko InnoDB, dziennik binarny jest (głównie) niezależny od transakcji, podobnie jak w przypadku wszystkich silników pamięci, transakcyjnych czy nie. MyISAM zapisze (jeśli jest włączony) do dziennika binarnego. InnoDB zapisze w dzienniku transakcji i dzienniku binarnym.

Więcej informacji na temat ręcznego: dziennik REDO , dziennika binarnego .

jynus
źródło
-2

W SQL Server pliki TLog przechowują informacje o cofaniu i ponawianiu. Ale w MYSQL i Oracle dziennik TLog / Redo przechowuje tylko informacje o ponownych operacjach.

Logowanie binarne w MySQL to sposób na odzyskanie punktu w czasie. Włączenie rejestrowania binarnego jest równoznaczne z posiadaniem pełnego modelu odzyskiwania w programie SQL Server.

Mersh
źródło
1
Prawdopodobnie powinieneś wyjaśnić, że Oracle nadal przechowuje cofanie, choć osobno.
Philᵀᴹ