データベースの破損をチェックする方法

提供:MoodleDocs
2020年10月29日 (木) 07:10時点におけるToshihiro KITA (トーク | 投稿記録)による版 (ページの作成:「{{パフォーマンス}}データベースの破損は通常、ハードウェア(特にディスクベース)の障害の結果として、またはディスクが...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索

データベースの破損は通常、ハードウェア(特にディスクベース)の障害の結果として、またはディスクがいっぱいになったときに発生します。典型的な症状はログインの失敗で、次のメッセージが表示されます。

Session Replace: Table './moodle/mdl_sessions2' is marked as crashed and should be repaired

この問題は主にMySQLに影響を与えるようです。

MySQL

この問題は、mysqlcheckコマンドを使用して修復できます(入力するコマンドは太字で、データベース名は 'moodle' であり、そのタイプはMySQLであると想定しています)。

#mysqlcheck -u moodleuser -p --auto-repair moodle
Enter password:
moodle.adodb_logsql                      OK
moodle.mdl_assignment                    OK
moodle.mdl_assignment_submissions        OK
...
moodle.mdl_log
error    : Table './moodle/mdl_log' is marked as crashed and should be repaired
...
moodle.mdl_sessions2
error    : Table './moodle/mdl_sessions2' is marked as crashed and should be repaired

Repairing tables
moodle_18_latest.mdl_log                           OK
moodle_18_latest.mdl_sessions2                     OK

mysqlcheckコマンドを実行するときは、mysqlデータベースサーバが実行されている必要があります。テーブルに問題がある場合、自動修復オプションは上記のようにテーブルを修正します。修復プロセスが完了するまでに長い時間がかかる場合があることに注意してください。コマンドを再実行して、すべて問題がないことを再確認してください。

個々のMoodleテーブルはMySQLAdmin/phpMyAdminを使用してチェックできます

個々のMoodleテーブルは、MySQL Admin/PHPMyAdminを使用して次のように修復できます。

  1. データベースセクションで、Moodleデータベースを選択します。
  2. SQLタブをクリックし、データベースmoodleでSQLクエリ/クエリを実行する フィールドタイプにREPAIR TABLE mdl_tablenameと入力します。
  3. 移動ボタンをクリックします。

たとえば、Moodleログテーブルを修復するには、 REPAIR TABLE mdl_log

Moodleログテーブルをチェックするのと同様の方法で、 CHECK TABLE MDL_LOGます。これは、OKと言うか、何が悪いのかを教えてくれます。たとえば、テーブルがクラッシュしたとマークされています と表示される場合があります。

その他のデータベース

上で述べたように、この問題は通常、MySQLでのみ発生します。

関連項目