2016-12-29 7 views
-1

SQLサーバーでは、トランザクションログファイルにはREDOログとUNDOログの両方が含まれていますが、MYSQLトランザクションログにはUNDOログしか含まれていないため、正常にトランザクションのためのデータは、次にサーバーダウン?サーバーを再起動するときには、やり直し操作を行う必要があります。MYSQLはどのようにやり直し操作を行うのですか?

私は誤って入力してしまいます。なぜMYSQLにUNDOログではなくREDOログがないのですか?

+0

トランザクションは正常に完了するか、トランザクションで1つのクエリが失敗すると失敗します。つまり、トランザクション**は部分的にはできません**。部分的な場合は、トランザクションではありません。これを確立したことは、トランザクションに問題がないことを意味します。あなたは他の何かに問題があるので、それが何であるかを詳細に書くことをお勧めします。 – Mjh

+0

@ Mjhとは、トランザクションの代わりにトランザクションデータを部分的に書き込むことです。トランザクションが非常に大きいとします。 –

答えて

0

これはMySQLレベルでは行われていませんが、これはトランザクションをサポートするさまざまなテーブルタイプ(たとえばinnodb)を扱っています。

InnodbはMySQLで最も広く使用されているトランザクションテーブルタイプで、私の答えはこのテーブルタイプのみに焦点を当てています。他のトランザクションテーブルタイプについては、REDOログの詳細については、それぞれのドキュメントを参照してください。 innodb redo logs

MySQLのドキュメントREDOログをどのようにInnoDBは店舗について説明します。デフォルトでは

、REDOログは、物理的にib_logfile0とib_logfile1という名前 ファイルのセットとしてディスク上に表現されています。 MySQLは、リドゥログ のファイルを循環的に書き込みます。 REDOログのデータは、影響を受けたレコードのうち という用語でエンコードされています。このデータを総称してREDOと呼びます。 REDOログを介したデータの受け渡しは、常に増加するLSN値 によって表されます。

関連する問題