バックアップおよびリストアFAQ

提供:MoodleDocs
移動先:案内検索

コースをバックアップするにはどうすればよいですか?

コースのバックアップおよび自動バックアップの設定を参照してください。

コースを復元するにはどうすればよいですか?

コースのリストアを参照してください。

サイトをバックアップするにはどうすればよいですか?

サイトのバックアップを参照してください。

サイトバックアップと比較して、コースバックアップの長所と短所は何ですか?

サイトバックアップは、最高の信頼性と最短のリカバリ時間で、すべてのデータを保存しておく場合には、推奨されます。

サイト管理者にとって、自動コースバックアップは、時間、CPU使用率、およびストレージの点で、よりコストのかかる方法です。それでリストアして、サイトを復旧させるには、サイトのバックアップよりも長い時間がかかります。ただし、教師やサイト管理者にとって、コースのバックアップは、再利用可能なコースの 新鮮な コピーを作成しておく方法として便利かもしれません(古いバージョンのMoodleでの話です。新しいバージョンではコースデータをインポートするを参照してください)。また、コースを他のMoodleサイトに配布する方法としても使えます。

自動コースバックアップのサイズが手動コースバックアップよりもはるかに小さいのはなぜですか?

これは意図的な設計上の決定です。ファイルがMoodle2.xに保存される方法のため、同じMoodleサイトにファイルを復元することを計画している場合、バックアップにファイルを含める必要はありません。それらを除外すると、大量のディスクスペースが節約され、バックアップ手順がはるかに高速になります。

コースバックアップに含まれていないデータは何ですか?

バックアップを設定するときにすべてのオプションを選択することにより、コースにほぼすべてのデータを含めることができます。ただし、一部のものがバックアップされていないことに注意する必要があります。

  • 小テストの問題は、そのカテゴリの問題が少なくとも1つ小テストに追加されている場合にのみバックアップされます。
  • スケールは、少なくとも1つの活動で使用されている場合にのみバックアップされます。
  • 登録ユーザを含める オプションを選択した場合、ユーザのパスワードはバックアップされません。
  • 用語集データ
  • バッジ - 少なくとも1人のユーザにバッジが付与されておらず、ユーザがコースのバックアップに含まれていない場合。

プロセスは エラー:古いバックアップデータの削除中にエラーが発生しました で終了します。どうすればいいですか?

バックアップ(またはリストア)手順のこの部分は、以前の実行で使用された古い情報を削除しようとし、次のタスクを実行します。

  1. backup_ids テーブルから古いレコードを削除します。テーブルが存在することを確認し、修復して再試行します。
  2. backup_files テーブルから古いレコードを削除します。テーブルが存在することを確認し、修復して再試行します。
  3. moodledata/temp/backup から古いファイルを削除する:ディレクトリを完全に削除して、再試行してください。
バックアップエラーメッセージ

ポイント1と2については、MySQL Adminの使用など、テーブルを修復するさまざまな方法があります。

ポイント3については、以下を参照してください。

エラーメッセージには、ディレクトリが空ではありません と表示され、そのディレクトリへのパスが示されます。 FTPプログラムを使用してそこに行くと、そこに何があるかを確認してクリーンアップできます。残ったのは、空のサブフォルダだけかもしれません。これらを削除することで解決できました。moodledata/temp/backup ディレクトリを完全に削除することもできます。これには少し時間がかかる場合がありますが、一度にいくつかの問題を解決できる場合があります。

プロセスは次のように終了します:XMLエラー:行YYYYで整形式ではありません(無効なトークン)。どうすればいいですか?

この問題は、リストアプロセスのどの時点でも発生する可能性があります。これは、XMLパーサーがバックアップファイルで正しい操作を妨げる不正なものを検出した場合に発生します。通常、これは、元のコースに追加された 不正な 文字が含まれているテキストのコピー/貼り付け(制御文字、または無効なシーケンスなど)が原因で発生します。

この問題を処理するための最良の方法は次のとおりです。

  • 問題のあるバックアップファイルを1つの空のフォルダに解凍します。
  • Firefoxでmoodle.xmlを開きます。問題が発生している場所(正確な文字)が表示されます。
  • いくつかのUTF8互換エディタでmoodle.xmlファイルを編集し、そのような文字を削除します。変更内容を保存。
  • エラーが表示されなくなるまで、Firefoxでmoodle.xmlファイルを再度テストします。
  • すべてをもう一度圧縮します(フォルダ自体ではなく、すべてのフォルダの内容です!)。
  • コースをリストアします。これで動作するはずです。
  • リストアがまだ機能していませんか?次の質問を参照してください。

また、可能であれば、Moodle自体からも元のコースでこれらの問題を解決することを強くお勧めします。そこで 修復 されると、将来新しいバックアップファイルを作成する場合に問題が発生します。

プロセスは zipファイルのルートレベルでmoodlexmlが見つかりません で終了します。どうすればいいですか?

zipファイルのバックアップから復元する場合は、moodle.xmlファイルがルートレベルにあることを確認してください。これを確実にするには:

  1. コースのバックアップファイルを解凍します(例:mycourse.zip)
  2. ファイルが解凍されたら、フォルダを開きます(例:mycourse)。
  3. mycourseフォルダとmoodle.xmlファイル内のフォルダを選択し、それらのアイテムのzipを作成します(例:mycourse_new.zip)
  4. 新しいzipファイル(例:mycourse_new.zip)をアップロードし、そこからリストアします。

バックアップファイルが正しいことが保証されている場合は、外部ファイルへのパス(zip、unzip)を確認してください。設定が正しくないと、このエラーメッセージも表示されます(Moodleフォーラムのディスカッションmoodle.xmlがルートに見つかりません...およびMDL-14812を参照してください。 )。

プロセスは次のように終了します: "zipファイルのコピー中にエラーが発生しました..."

この問題は、宛先ディレクトリのアクセス許可の問題が原因である可能性があります。バックアップファイルは、datarootディレクトリ(XXXはバックアップされるコースのID)の下の XXX/backupdata にコピーされます。

この問題は、ディスクがいっぱいであることが原因である可能性もありますが、その可能性ははるかに低くなります。

何が起こっているかについての正確な情報を取得するには、 管理 > サーバ > デバッグ (最大レベルを選択 - 開発者)でデバッグメッセージを有効にするか、Webサーバのエラーログを確認します。

それでもXMLエラーが発生します。中断されたXMLファイルをクリーンアップするにはどうすればよいですか?

場合によっては、XMLバックアップファイルに文字が含まれていると、前の質問で説明した手順を実行した後でも、復元プロセスが中止されます。このような場合は、次のことを試してみてください。

  • 問題のあるMoodleバックアップファイルを1つの空のフォルダに解凍します。 Moodleは、汚れたmoodle.xmlファイルである限り、コースファイルフォルダを作成します。 Moodle解凍機能を使用して解凍してください。
  • 汚れたmoodle.xmlファイルの名前をmoodle-unclean.xmlに変更します。
  • Moodleサーバのコマンドプロンプトにアクセスできない場合は、Moodlezip機能を使用して、moodle-unclean.xmlファイルのみをzipし、zipファイルをローカルにダウンロードして解凍します。オペレーティングシステムから別のオペレーティングシステムに転送するときに不要な文字エンコードを回避するために、xmlファイルをzip形式でダウンロードすることが非常に重要です。
  • ダウンロードしたAtlassian XML Cleaner Utilityをmoodle-unclean.xmlファイルと同じフォルダに移動します。
  • コマンドプロンプトから次のコマンドを発行します。
java -jar atlassian-xml-cleaner-0.1.jar moodle-unclean.xml > moodle.xml
  • ローカルコンピュータでユーティリティを起動した場合は、作成したばかりの(できればクリーンアップした)moodle.xmlファイルをzipして、moodle-unclean.xmlファイルをダウンロードしたのと同じ場所にアップロードします。アップロードしたら、Moodle解凍機能を使用して解凍します。
  • すべてをもう一度圧縮します(フォルダ自体を除くすべてのフォルダの内容!)。
  • コースをリストアします。これで動作するはずです。

あなたのいくつかのコースが保存されませんでした!! は、どういう意味ですか

この問題には、次の3つの原因が考えられます。

  1. エラー - これは、バックアップ手順でエラーが検出されたため、特定のコースのバックアップが完了していない場合に発生します。これらは 制御された エラーであり、スケジュールされたバックアップは次のコースに進みます。
  2. 未完了 - これは、バックアップ手順が原因不明で終了した場合に発生します。 cronが次に実行されると、最後の実行が失敗したことを検出し、問題のあるコースをスキップし続けます。考えられる解決策は、インストールのPHP/Apacheの制限(メモリ、実行時間など)を上げることです。ログテーブルを調べることで、クラッシュ が正確な時間間隔で発生しているかどうか(通常、max_execution_time phpの変数に問題があるかどうか)、またはすべてのコースが壊れている正確なポイントがあるかどうかを確認できます。
  3. スキップ - これは、コースが学生に利用可能になっておらず、先月(31日間)に変更されていない場合に発生します。これはエラーの状況ではありません。これはMoodleの機能であり、利用できない古いコースが多数あるサイトで特に役立ち、処理時間を節約できます。

一部のコースがスキップされるのはなぜですか?

AutoBackup skip 設定

Moodleの コースバックアップ ルーチンは、 管理 > サイト管理 > コース > バックアップ > 自動バックアップ設定 の3つの設定に基づいてコースを自動的にスキップするように指示されます。Moodle管理者はこれらの設定を使用して、 非表示のコースをスキップする (デフォルトで 'はい' に設定)、 以降変更されていないコースをスキップする (デフォルトで '30日' に設定)を指定します)、および 前回のバックアップ以降に変更されていないコースをスキップする (デフォルトでは 'いいえ' に設定されています)。有効な基準のいずれかを満たすコースは、次の コースバックアップ 実行時にスキップされます。

リストアが完了するのではなく停止するのはなぜですか?

コースをバックアップしたバージョンよりも古いバージョンのMoodleにコースを復元しようとすると、リストアプロセスが完了しなくなる可能性があります。正常に復元するには、コースをリストアするMoodleのバージョンが、コースがバックアップされたバージョンと同じか、それよりも新しいことを確認してください。

エラーが表示されずに予期せず停止する場合は、デバッグをオンにして再試行してください。現在表示されているエラーは、サポートフォーラムの専門家が問題を診断するのに役立ちます。さらにアドバイスが必要な場合は、以下の関連項目セクションのディスカッションリンクを確認することもできます。

リストアは バックアップからユーザ「 xxxx 」をリストアすることで衝突が発生します。 というメッセージで停止します

このメッセージは、次の場合に表示されます:

  1. ターゲットサイトにはユーザxxxx(xxxxはユーザ名)があります。(多くの場合、admin ユーザです。)
  2. リストアされるバックアップアーカイブにも、ユーザxxxx(同じユーザ名)が含まれています
  3. さまざまな比較の結果、Moodleはターゲットサイトのユーザxxxxとバックアップユーザxxxxが同じ人物ではないと判断しました。

上の 1, 2, 3 がすべて成立する場合、バックアップユーザxxxxの活動(フォーラムの投稿、小テストの受験、課題のアップロードなど)がターゲットサイトのユーザxxxxに関連付けられないようにするために、リストアプロセスが停止します。

それらの xxxxユーザを一致させる(衝突・競合を解決する)ために取り得る方法として、以下のものがあります:

a)バックアップアーカイブの users.xml ファイルを変更し、 email または firstaccess フィールドを、ターゲットサイトでのフィールドと一致させます。 moodle-filename-backup.mbz はzipファイルであり、名前を moodle-filename-backup.zip に変更して解凍できることに注意してください。編集が完了したら、再圧縮して、拡張子が *.mbz の元のファイル名を使用して名前を付け直します。

b)ターゲットサイト 内のそのユーザの email または firstaccess フィールドを変更し、バックアップアーカイブの users.xml ファイルでのフィールドと一致するようにします。

c)Moodle 3.0.3以降、管理者ユーザの競合の場合のみ、 サイト管理者 > コース > バックアップ > 一般インポートデフォルト の 'admin競合解決を許可する' 設定を有効にします。これにより、バックアップファイルのユーザ名が 'admin_xyz' に名前が変更されます。

リストアされたコースで特定のコースリンクが壊れているのはなぜですか?

インタラクティブリンクは絶対(完全)URLである必要があります。 http://site.com/mod/resource/view.php?id=xxxバックアップおよびリストア中に適切に処理されるため。

任意の相対URLなど/mod/resource/view.php?id=xxx../resource/view.php?id=xxx または view.php?id=xxxコースが回復したときに、リンク切れになります。

コースをリストアすると、HTMLタグが壊れます。何ができますか?

これは、libxml2とPHPの古いバージョンが原因であることが知られています。最新バージョンに更新してみてください。

Moodleバックアップファイルから元のファイルを抽出するにはどうすればよいですか?

ダウンロードしたバックアップファイル(.mbz ファイル)から(バックアップとリストア機能を使用して)元のファイルを本当に取得したい場合は、上記の方法とほぼ同じ方法で取得できます。

バックアップファイルは、ダウンロード可能な任意のzip/unzipプログラムで実際に開くことができます。ファイルを開いたら、以下を抽出する必要があります。

   The files.xml file.
   The files directory (folder).

次のステップは、テキストエディタで files.xml ファイルを開くことです。

   取得する各ファイルの名前を検索します。
   対応するcontenthashタグの値に注意してください。
   抽出した files フォルダで、contenthashの値と同じ名前のファイルを見つけます。このファイルは、ファイル名の最初の2文字に対応する名前のフォルダに常に配置されます。

たとえば、files.xml ファイルと files フォルダが抽出された backup_courses-120730.mbz ファイルがあるとします。別の目的で必要な Leadership.pdf という名前のPDFファイルがあります。

files.xmlファイルを開き、次のことを行います。

1.文字列 Leadership.pdf を検索します。この場合、次の<file id...>グループタグの下にあります。

 <file id="12345">
 <contenthash>fb6cf43a9b2d432403c70a2cb4c340dbb6225631</contenthash>
               :
 <filename>Leadership.pdf</filename>
               :
 <license>allrightsreserved</license>
 <sortorder>1</sortorder>
 </file>

2.対応するcontenthash値に注意してください:fb6cf43a9b2d432403c70a2cb4c340dbb6225631。

3.コンテンツハッシュの最初の2文字は fb なので、files ディレクトリ(以前に抽出された)内の fb フォルダを開くと、fb6cf43a9b... という名前のファイルがあります。そのファイルの名前を Leadership.pdf に変更してから、別の場所に移動します。もちろん正しいcontenthash値を使用して、必要なすべてのファイルに対してこれを繰り返します。

コースをリストアするときのMySQL dmlwriteexceptionエラー

コースのリストア時にdmlwriteexceptionエラーが発生した場合は、InnoDBテーブルをBarracudaファイルフォーマットに変換することをお勧めします。これが推奨される理由の詳細と、テーブルを変換するためのツールに関する情報については、コマンドラインによる管理の 'InnoDBテーブルのBarracudaへの変換' のセクションを参照してください。

他に質問はありますか?

moodle.orgのバックアップとリストアフォーラムに投稿してください。

関連項目

Moodleフォーラムのディスカッション: