InnoDB テーブルを含むデータベースがあり、InnoDB テーブルの 1 つが破損しているとマークされています (データが欠落していることなどもわかっています)。ただし、MySQL を再起動してもクラッシュしません。
クラッシュすることを期待していましたが、そうではありません。(その前に読んだのは、innodbテーブルが壊れるとmysqlサーバーが停止するということです)
今クラッシュするべきではありませんか?
innodb は私のデフォルトの db エンジンです。
InnoDB テーブルを含むデータベースがあり、InnoDB テーブルの 1 つが破損しているとマークされています (データが欠落していることなどもわかっています)。ただし、MySQL を再起動してもクラッシュしません。
クラッシュすることを期待していましたが、そうではありません。(その前に読んだのは、innodbテーブルが壊れるとmysqlサーバーが停止するということです)
今クラッシュするべきではありませんか?
innodb は私のデフォルトの db エンジンです。
破損したテーブルが必ずしもクラッシュを引き起こすとは限りません。ただし、テーブルを修復し、可能であれば、バックアップからテーブルをリロードする必要があります。破損したテーブルでの操作はせいぜい不安定であり、とにかく、すでに発見したように、正しい結果が得られないことはありません。
システムが「爆発」していないという事実を信用しないでください。データベースにはいくつかの中間状態があります。あなたが今いるのは、「私はまだ爆発していない。破損が広がり、他のテーブルのデータを汚染するのを待っている」ということかもしれません。テーブルが破損していることがわかっている場合は、今すぐ行動してください。
InnoDBテーブルの修復については、「InnoDBテーブルを修復するにはどうすればよいですか?」を参照してください。。
InnoDBテーブルが破損しているかどうかを確認するには、https: //dba.stackexchange.com/questions/6191/how-do-you-identify-innodb-table-corruptionを参照してください。
これを行うには、大量のデータを調べて、クリーンな健康状態を示す受け入れテストが必要です。テーブルをSQLにエクスポートし、それが可能かどうかを確認したり、タプルのカーディナリティやリレーションのチェックを実行したりすると、私のドリフトが発生します。誰も書き込むことが期待されていないテーブルでは、変更が破損に等しいため、ディスクファイルのMD5の方が高速になる可能性があります。
物事をより効率的にするために(例えば、実動システムで)、ファイルのスナップショット、データベースの複製、さらには高可用性を考えることができます。これらのメソッドは、プログラムによる破損(たとえば、不正なUPDATE)を検出しますが、マスターでのある種のハードウェア破損を検出しない場合があります(フォールスネガティブ:スレーブのチェックがパンアウトし、データはマスターでまだ破損しています)またはスレーブで事故が発生する可能性があります(マスター上のデータは実際には汚染されていないため、失敗して誤検知が発生します)。
システムの人口動態統計を監視することは重要です(そして効率的です)。差し迫った障害の最初の症状をキャッチし(たとえばSMARTを使用)、フォレンジック調査のためのデータを提供します(「DBが障害を起こすたびに、それは常に直後でした。システム負荷の突然のピーク-その原因を突き止めたらどうなるでしょうか?」)。
そしてもちろん、完全で適切なバックアップに依存します(そして、時々テスト復元を実行します。そこに行って、それを実行して、私のお尻を私に手渡してもらいました)。
破損の原因は、ソフトウェアの設定によって異なります。もちろん、一般的に、何か がチェーンに侵入し、大混乱を引き起こす必要があります。server memory representation-writer process-OS handle-journaling-IOSS-OS cache-disk-disk cache-internal file layout
不適切なシステムシャットダウンは、いくつかのレベルで混乱し、パイプラインのどの段階でもデータが書き込まれないようにする可能性があります。
ディスク上のファイルの処理は、最後の段階で混乱します(サーバーが何も知らない独自のパイプラインを使用します)。
他のより難解な可能性が存在します:
hdparm
。すべてのコンポーネントがそのレベルのパフォーマンスに適しており、それを知っているか、少なくともそうでない場合は信号を送ることができる場合、ディスクを最高のパフォーマンスに設定することはすべてうまくいきます。時々、あなたが得るすべての「警告」はシステムの誤動作です。hddhealth
これは、SMARTレポート(または)を使用して簡単に確認できますsmartctl
。もちろん、セットアップによっては、他にも多くの可能性があります。ファイルの破損をグーグルで検索すると、無数のページが見つかります。クエリに追加するのに役立つ用語は、ファイルシステム(ext4、NTFS、brtfsなど)、ハードディスクの製造元とモデル、OS、問題のあるソフトウェア、インストールされているその他のソフトウェアです。