Diferença entre log de transações e refazer log no MySQL

14

Eu li sobre o MySQL. Na minha opinião, vejo dois tipos de log muito semelhantes. O MySQL salva como e quando os dados são alterados no log. As informações são usadas para recuperação do MySQL. Estou confundindo a função de dois tipos de log.

Luke Nguyen
fonte

Respostas:

18

O log REDO é terminologia Oracle, o log de transações é terminologia InnoDB. Agora que todos são engenheiros da Oracle, as pessoas usam os dois para se referir à mesma coisa no MySQL .

O log de transações é, por padrão - pode ser alterado - os dois arquivos localizados em $ DATADIR chamados ib_logfile0e ib_logfile1. Ele serve as mesmas funções que o log do REDO em outros bancos de dados - armazenando gravações de maneira segura e se recuperando no caso de uma falha, embora haja alguns detalhes na implementação que diferem na funcionalidade de outros RDMS. É o principal componente do InnoDB para ser um mecanismo transacional.

Não confunda o log de transações com os logs binários no MySQL . O binlog, por padrão, está no $ DATADIR e é *hostname*-bin.indexe vários *hostname*-bin.00001etc. É particularmente confuso para pessoas provenientes de outros bancos de dados, porque é usado para outras coisas que outros bancos de dados usam no log REDO para: replicação e ponto no tempo recuperação. A principal diferença é que o log de transações é apenas no InnoDB, o log binário é (na maioria das vezes) independente de transações, como é para todos os mecanismos de armazenamento, transacionais ou não. O MyISAM gravará (se ativado) no log binário. O InnoDB gravará no log de transações e no log binário.

Mais informações no manual: REDO log , log binário .

jynus
fonte
-2

No SQL Server, os arquivos TLog armazenam informações de desfazer e refazer. Mas no MYSQL e Oracle, o TLog / Redo Log armazena apenas informações de refazer.

O registro binário no MySQL é uma maneira de obter recuperação pontual. Habilitar o log binário é equivalente a ter um modelo de recuperação completa no SQL Server.

Mersh
fonte
1
Provavelmente, você deve deixar claro que o Oracle ainda armazena a desfazer, embora separadamente.
Philᵀᴹ