システム障害時の復旧のために、サーバ全体のスナップショット(public_html、sqlファイルなど)を毎日作成しているとします。サーバのスナップショットによってMySQLトランザクションが損傷する可能性がありますか?
コミットされていないトランザクションが行われている間にスナップショットを取得した場合、MySQL InnoDBが壊れても復元できますか? InnoDBは復旧時に「不完全な」トランザクションを破棄して破棄しますか?
システム障害時の復旧のために、サーバ全体のスナップショット(public_html、sqlファイルなど)を毎日作成しているとします。サーバのスナップショットによってMySQLトランザクションが損傷する可能性がありますか?
コミットされていないトランザクションが行われている間にスナップショットを取得した場合、MySQL InnoDBが壊れても復元できますか? InnoDBは復旧時に「不完全な」トランザクションを破棄して破棄しますか?
データベースの観点からは、不正なシャットダウン(電源がオフ)と接続が失われているため、コミットされていないすべてのトランザクションは破棄されます。
データベースを復元し、その後後、ちょうど極低温睡眠のすべてを凍結するようなものだサーバーのスナップショットを取っている場合は、単に非既存のアプリケーションに話を期待して目を覚まします。
私が見ることができる唯一の問題は、トランザクション自体からではなく、データベース自体がファイル内にあるという事実からです。ディスクに書き込まれたファイルをフリーズするとどうなりますか?私はそれがどのように問題になるかを見ることができます。一方、これを防ぐためのアーキテクチャ設計はおそらくいくつかあります。これは停電の場合も同様であり、データベースもそのようにしなければならないからです。
私の知る限り、トランザクション中、コミットが発生するまで何もデータベースに保存されません。これが、ACID遵守です。したがって、データベースファイルはトランザクションの間に書き込まれることはありません。
私の意見では、データベースのスナップショットはダンプ経由で行うべきです。私はサーバー管理者ではないので、事実はわかりませんが、データをこのように復元するほうがずっと安全です。
MySQLは私にとって灰色の領域ですが、私はSQL Serverに自信がありますので、SQL Serverには独自の方法でバックアップを取るため、これを実際には行わないでください。
これは、進行中のトランザクションがある種の「メモリ」または「セッション」にのみ存在することを意味しますか?私はいくつかの一時的なデータがDB2のどこかに書かれているという印象を受けていました。コミットするまで少なくとも実際のテーブルには書き込まれませんでした。私はダンプが良い方法だと理解していますが、私は、サーバ全体のスナップショットから復元するMySQL InnoDBの動作を知りたいのです。 – IMB