約3年前、私は医療機関用のUbuntuサーバーをインストールしました。 RAID 1(ソフトウェアRAID)用にHDD 2個を設定しました。
今日、彼らは突然mySQLデータベースの1つのテーブルへのアクセスを失いました。
ミラーリングされた(バックアップ)HDDからmySQLデータベースを復元する方法は?
答え1
ミラーリングは単一ドライブ障害に対する保護です。 これはバックアップを置き換えません。 RAID-1がデータベースにアクセスできない場合、単一のディスクでもアクセスできません。
唯一の方法は、データベース全体を別々の2つのディスク(コピー2枚を含む)にコピーし、ddrescue
個々のディスクのSMARTデータを使用して分析し、必要に応じて新しいディスクをインストールし、(新しい?)ディスクをフォーマットし、最新のバックアップを作成します。を復元することです。コピーの1つから元のデータを抽出し、抽出からインポートできるだけのデータをインポートします。smartctl
badblocks
あなた〜するデータ損失はddrescue
最小限に抑える必要がありますが希望インデックスのみ!
答え2
RAID は変更を直ちにコピーします。両方ディスク。たとえば、rm
ファイルが存在する場合、rm
両方のディスクに保存されます。それとも何かが故障したり、何でもしません。
RAID-1はディスク障害からのみ保護します。 1つのディスクに障害が発生した場合、アレイは1つのディスクのみを使用し、ほとんど中断することなく動作し続けます。概念的には、実際の「プライマリ」ディスクと「バックアップ」ディスクはなく、2つ以上のディスクが非常に安定した1つのディスクとして機能します。
cat /proc/mdstat
たとえば、アレイの状態を確認できます。アレイが良好でMySQLが破損している場合、MySQLには回復ツールがあります。何よりもバックアップから復元できます。
答え3
バックアップドライブがありません。 RAID-1がある場合、ミラーは1つだけです。 1つのドライブに障害が発生しても(デュアルドライブアレイで)、2台目のドライブに引き続きアクセスできる必要があり、そのドライブに障害が発生した場合(あなたの場合のように)、バックアップから復元する必要があります。
システムの電源が入っている場合は、次の手順でRAIDの状態を確認できます。
cat /prod/mdstat
動作中のドライブがある場合、出力にUが表示されます(たとえば、角かっこ間[U_]
)。この場合、RAIDは「単なる」パフォーマンスを低下させますが、この場合はまだ機能する可能性があります。 RAIDの電子メール通知がすでに設定されているとします。
ドライブの状態確認を使用する必要がありますsmartctl
。
答え4
私は指示に従った。http://www.thegeekstuff.com/2011/12/mysqlcheck/ そしてテーブルを修正しました。これでアプリケーションが正しく実行されています。
みんなありがとうございます。