データベースの破損を確認する方法
データベースの破損は通常、ハードウェア(特にディスクベース)の障害、またはディスクがいっぱいになったときに発生します。典型的な症状は、このメッセージが表示されている、ログインの失敗です。
セッション置換:テーブル './moodle/mdl_sessions2'はクラッシュしているとマークされているため、修復する必要があります
この問題はほとんどMySQLに影響するようです。
MySQL
mysqlcheckコマンドを使用して問題を修復することができます(あなたが入力するコマンドは太字であり、データベース名は 'moodle'で、そのタイプはMySQLであると仮定します)。
#mysqlcheck -u moodleuser -p - オートリペアムードル パスワードを入力する: moodle.adodb_logsql moodle.mdl_assignment OK moodle.mdl_assignment_submissions OK ... moodle.mdl_log エラー:テーブル './moodle/mdl_log'はクラッシュしているとマークされているため、修復する必要があります ... moodle.mdl_sessions2 エラー:テーブル './moodle/mdl_sessions2'はクラッシュしているとマークされているため、修復する必要があります テーブルを修復する moodle_18_latest.mdl_log OK moodle_18_latest.mdl_sessions2 OK
mysqlcheckコマンドを実行するときは、mysqlデータベースサーバーが稼働している必要があります。テーブルに問題がある場合は、上記のように自動修復オプションでそれらを修正します。修復処理が完了するまでに時間がかかることがあります。コマンドを再実行して、すべて問題ないことを再確認してください。
個々のMoodleテーブルはMySQL Admin / phpMyAdminを使用して確認できます。
個々のMoodleテーブルは以下のようにMySQL Admin / PHPMyAdminを使用して修復することができます。
- データベースセクションで、Moodleデータベースを選択します。
- [SQL]タブをクリックし、[データベースmoodleでSQLクエリを実行]フィールドタイプをクリックします。
修復テーブルmdl_tablename
- Goボタンをクリックしてください。
修理用テーブルmdl_log同様の方法でMoodleログテーブルをチェックして、
表MDL_LOGをチェック。これはOKと言うか、何が悪いのかあなたに言うでしょう。たとえば、「Tableとクラッシュしている」と表示されることがあります。
その他のデータベース
前述したように、この問題は通常MySQLでのみ発生します。
関連情報
- Moodleデータベース最適化スクリプトに関するフォーラムディスカッション
- データベースの修復と最適化に関するパフォーマンスドキュメント
- MySQLのデータベース破損の修復に関するDatabase Journalの記事