サイトバックアップ

移動先: 案内, 検索

最良の信頼性および復旧時間を短くするため、すべてのデータを保存するサイトバックアップをお勧めします。

何をバックアップすべきですか?

Moodleシステムは、下記3つの部分から成ります:

  1. データが保存されているデータベース
  2. ディスクに保存された、アップロードおよびその他のデータファイル
  3. Moodleコードを含むファイル

あなたのMoodleに関して、これらすべてのデータがどこにあるのか、config.phpにより確認することができます。どのデータベースおよびデータを使用すべきか、Moodleに伝えるため、いくつかのパラーメータがあります:

  1. $CFG->dataroot では、データファイルをどこに保存するか、コントロールします。そして、
  2. $CFG->dirroot では、Moodleコードが保存される場所を示します。

あなたのMoodleサイトのバックアップを作成する

データベース

あなたがMoodleをバックアップするには、2つの中心的なデータがあります - データベースおよびアップロードファイルです。あなたが必要な場合、いつでも最新のデータをダウンロードできるため、Moodleスクリプト自体は、それほど重要ではありません。

バックアップには、数多くの方法があります。以下、あなたがUnixでデータベースをバックアップするための、小さなスクリプトの概略です (cronタスクを使って、日々動作させるスクリプトとして有用です):

cd /my/backup/directory
mv moodle-database.sql.gz moodle-database-old.sql.gz
mysqldump -h example.com -u myusername --password=mypassword -C -Q -e --create-options mydatabasename > moodle-database.sql
gzip moodle-database.sql

文字コード

Moodleデータベースすべてをダンプする場合、管理者は起こり得る文字コード問題に関して、慎重になるべきです。場合によっては、mysqldumpまたはphpMyAdminによって作成されるバックアップは、すべてのデータを適切にエンコードできず、結果として文字化けが発生してしまいます。1つの解決方法は、MySQL Administrator 1.1または、データのUTF-8ダンプを強制する、別のツールを使用することです。

データベースバックアップ用ツール

  • phpMyAdmin 多くのウェブホスティングプロバイダが選択するツールです。
  • MySQLDumper MySQLデータベース用バックアップスクリプトです。PHPおよびPerlで書かれています。MySQLDumperでは、PHPスクリプト実行時の中断 (通常、最大実行時間は30秒です) を避けるための独自技術を使用しています。MySQLDumperは、上記で指摘された文字コード問題にも対応しています。また、圧縮ファイルでも動作します。

データファイル

ファイルに関して、変更されたファイルのみ別のホストにコピーするため、あなたは定期的にrsyncコマンドを使用することができます:

rsync -auvtz --delete -e ssh mysshusername@example.com:/my/server/directory /my/backup/directory/

あなたが、Moodleを動作させているマシンでcronスクリプトを実行させたい場合、次のrsync構文を使用してください:

rsync -auvtz --delete -e ssh /path/to/local/folder/ remoteuser@remoteserver:/path/to/remote/folder/

あなたが、rsyncのステータスメールでrootメールボックスを一杯にしたくない場合、次のrsync構文を使用してください:

 rsync -autzq --delete -e ssh /path/to/local/folder/ remoteuser@remoteserver:/path/to/remote/folder/

あなたのMoodleホスティングプロバイダがsshを許可しない場合 (または、単に提供していない場合)、そしてあなたがユーザ名およびパスワードを使ってFTPアクセスできる場合、次のコマンドも使用できます:

mkdir /tmp/remote-folder
curlftpfs ftp://username:password@ftp.your-site.com /tmp/remote-folder
rsync -auvtz --delete /tmp/remote-folder /my/local/backup/folder/
umount /tmp/remote-folder
rmdir /tmp/remote-folder

データベースすべてのバックアップは、次のコマンドで実行できます (cPanelウェブインターフェースでテスト済み):

wget --http-user=username --http-password=password http://your-site.com:2082/getsqlbackup/moodle.sql.gz

そして、Moodleコードツリーすべてのバックアップは、次のコマンドで実行できます:

wget --http-user=username --http-password=password http://your-site.com:2082/getbackup/backup-your-site.com-`date +"%-m-%d-%Y"`.tar.gz

(webmin?) のような、他のウェブインターフェースでは、カスタマイズが必要だと思われます。

コードファイル

あなたがMoodleコードをカスタマイズしていない場合、いつでも新しいコードをダウンロードすることができます。しかし、他のバックアップと共に、Moodleコードを独自に保存することは良い考え方です。これは、あなたがカスタマイズしている場合は、大変重要なこととなります。バックアップの手順は、データファイルのバックアップと同じです。

サイトバックアップのリストア

あなたが上記インストラクションに従って、Moodleサイトのバックアップを作成した場合、あなたが作成したサイトバックアップのリストア方法を理解する必要があります。以下、リストア処理を実行するための基本的な手順です。

1. オリジナルのMoodleディレクトリを何か別の名称にリネームしてください (あなたは、まだ、Moodleディレクトリを保持していることになります)。そして、バックアップしたMoodleディレクトリまたは新しくダウンロードしたMoodleディレクトリをその場所に置いてください。

2. あなたが、MySQLを使用している場合、データベースのバックアップファイルの拡張子は、.sql、.gzまたは.tar.gzのようになります。拡張子が.tar.gzまたは.gzの場合、sqlファイルになるまで、解凍してください。

tar -xzvf moodlesqlfile.tar.gz

3. あなたがMySQLを実行している場合、MySQLサーバで新しく作成したデータベースにSQLファイルをインポートします。いくつかのバックアップでは、Moodleが動作している同じデータベースに対して、インポートを試みますので、注意してください。これは、インストール済みMoodleにダメージを与えるデータベース問題を発生させる可能性があります。これをするための最良の方法は、新しいデータベースを作成して、その中にバックアップされたデータベースをリストアすることです。そして、Moodle設定ファイル「config.php」を修正して、新しいデータベースに接続するようにします (これにより、オリジナルのデータベースを保持することができます)。

あなたが新しいデータベースを作成した後、次のコマンドを実行します:

mysql -p new_database < moodlesqlfile.sql

関連情報