Jaka jest różnica między dziennikami transakcji a dziennikami binarnymi?

9

Pochodzę ze sklepu SQL Server, teraz pracuję z MySQL i byłem ciekawy.

Jakie są różnice między dziennikiem binarnym MySQL a dziennikiem transakcji MSSQL?

Z dotychczasowych prognoz wydaje się, że istnieje tylko jeden dziennik binarny na instancję MySQL, w przeciwieństwie do dziennika transakcji na bazę danych jak w MSSQL.

Ryan
źródło
Byłoby wspaniale zobaczyć porównanie między nimi.
Ryan
jest inna odpowiedź na to pytanie dba.stackexchange.com/questions/72904/…
LawrenceLi

Odpowiedzi:

5

Odpowiadając tylko na część pytania MySQL

Dziennik binarny zapisuje wypełnione instrukcje SQL. Możesz mieć wiele dzienników binarnych. W ustawieniach domyślnych dzienniki binarne obracają się o znak 1G (patrz expire_logs_days i max_binlog_size ).

Można wyświetlić dzienniki binarne, uruchamiając jedną z następujących czynności:

SHOW BINARY LOGS;
SHOW MASTER LOGS;

Obecny główny dziennik jest zawsze ostatnim na liście. Aby zobaczyć tylko ostatni dziennik binarny, który jest bieżący, uruchom to:

SHOW MASTER STATUS;

Jeśli chodzi o silnik pamięci i transakcje InnoDB

  • Istnieje plik metadanych (ibdata1, który domyślnie przechowuje strony danych, strony indeksowe, metadane tabeli i informacje MVCC ), znany również jako plik obszaru tabel InnoDB.
  • Możesz mieć więcej niż jeden plik ibdata (patrz ścieżka do pliku innodb_data_file_path )
  • Istnieją dzienniki ponawiania (ib_logfile0 i ib_logfile1)
  • Możesz mieć więcej niż dwa dzienniki ponawiania (patrz innodb_log_files_in_group )
  • Możesz rozłożyć dane i indeksy na wiele plików ibdata, jeśli opcja innodb_file_per_table jest wyłączona
  • Możesz oddzielić dane i strony indeksu od ibdata do osobnych plików obszaru tabel (zobacz, jak to skonfigurować w pliku innodb_file_per_table i StackOverflow Post )
RolandoMySQLDBA
źródło
Ach, rozumiem, dziękuję za odpowiedź Rolando
Ryan