DBバックアップ・リストア

DBバックアップ

backup_db.jpg
バックアップのフォーム

  

SQLデータベースからSQLite3.3ファイルへ

バックアッププログラムは管理者専用メニューから起動できます。また管理者権限がなければ起動できないことになっています。プログラムはMySQL(PosgreSQL)データベースに格納されている記事データとショッピングデータ、会員データを、バックアップ専用のディレクトリの中に、SQLite3.3のファイル形式でバックアップします。処理はサーバサイドで行われるので、ダウンロード方式より高速です。バックアップ専用のディレクトリは外部からのアクセス制限によって保護されています。バックアップを繰り返すと、前のファイルは上書きされますから、必要があればFTPによってローカルサイトにダウンロードできます。

ek-BackupDB3.php」(SQLite3.3対応)

*処理中には経過が画面に表示されます(Firefoxの場合)が、もし異様に長く時間がかかる、画面のメッセージがおかしいという場合は、ブラウザの読み込みを停止のうえファイル名を変更して、再度バックアップを試みてください。またサーバの負荷が高くなるので、トラフィックが高いと思われる時間帯のバックアップは避けてください。なおSQLite2.8へのバックアッププログラムは、バージョン1.2RC1から提供が中止されています。

セキュリティ上の注意

個人情報保護のため、「会員登録情報」「売上情報」のバックアップはオプションとしています。バックアップファイル名は任意の名称を指定できますが、個人情報を含まないバックアップファイル名を「_bak」つきと決めておくことをお勧めします。なおドメイン内で共有している会員登録情報は除外されます。

バックアップファイルはそのURLがわかっていれば、外部から簡単にダウンロードできます。そのため必ず.htaccessでアクセス制限をかけた、専用のディレクトリに保存しなければなりません。またバックアップをノートPCやUSBメモリなどで持ち歩くときは、個人情報を含まない形式で保存したものとしてください。

DBリストア

SQLite3.3ファイルからSQLデータベースへ

リストアとは、バックアップの正反対の操作を意味します。具体的な活用方法としては、サーバの移転への対応や、ローカルサイトで先に制作したデータを、インストール直後のリモートサイトへアップロードするといった使い方が考えられます。

ek-RestoreDB3.php」(SQLite3.3対応)

*リストアではek-MyWEBインストール直後の状態を想定し、バックアップファイルにある全コンテンツデータと全売上データ、売上明細データ、デフォルトの3名以外のユーザーデータを、作成されたばかりの新しいデータベースに書き込みます。このときテーブル接頭句が一致している必要があります。バックアップと同様、トラフィックが高い時間帯の実行は避けてください。なおSQLite2.8からのリストアプログラムは、バージョン1.2RC1より提供が中止されています。
*異なるOS・実行環境へリストアした場合、パスワードがうまく引き継がれない場合があります。これは実行環境によってPHPのパスワードを暗号化する、ハッシュ関数の仕様が異なるためです。そのときは「ログイン」メニューから、ユーザーごとに新しいパスワードの発行を受けるようにします。しかしこのような混乱を避けるために、バックアップとリストア、さらにバックアップサイトの構築は、必ず同じOSにおいて行い、パスワードが正しく引き継がれることを確認してください。

DBリストアは危険な作業です

バックアップしたデータをリストアするデータベースはインストール直後のまっさらな状態(記事データが何もなく、ユーザーはデフォルトの3人のみ)でなければなりませんが、これは既存のテーブルからデータを全て削除した状態とは異なります。MySQL、PostgreSQL、SQLiteともプライマリキーはAUTO INCREMENTで作成されるので、データを全て削除してもプライマリキーの値は1からは始まらず、削除前の次の値からスタートします。ek-MyWEBではそのようなケースにも対処していますが、不用意なリストアを繰り返すと、記事IDが重複する可能性が生じます。そのためデータベースはそのままでも、不要なテーブルは一度完全に削除した上で、インストールプログラムを起動させて、同名の新しいテーブルを作成させるようにしてください。

SQLiteパーソナル版のバックアップ

パーソナル版はSQLite(3.3)で動作します。基本的にデータはインストール後からバックアップ専用のディレクトリにあるファイルに保存され、読み書きできるようになっています。そのためパーソナル版にもバックアップ機能はありますが、ファイル名の重複には十分注意してください。通常バックアップの必要があればFTPによって、ローカルサイトへダウンロードすることになります。なおリストアはファイルの移動あるいはコピーの方が手早いので、そのためのプログラムは用意されていません。

高速バックアップとリストア

@2009/10/25 21:50

SQLite3.3形式でのバックアップはパーソナル版とのデータ交換を想定したものですが、レンタルサーバなど実行環境によっては時間がかかることがあります。そのため次のバックアップ専用プログラムを用意しました。管理者モードでURLラインから起動してください。

ek-BackupDBx12.php」(バージョン1.2および2.0兼用)

起動してオプションを選択すると、メインテーブルの1ファイルとユーザーおよび商品売上テーブルの3ファイルが、バックアップディレクトリ(./ek-Backup/)内に作成されますから、ローカルサイトにダウンロードして保存しておきます。拡張ファイル名が「.sqlt2」となっていますが、便宜上のものでSQLite2.8形式ではありません。特殊な文字コードを埋め込んでいるので、テキストエディタで編集を試みるとデータが破損する危険性があります。新しいデータベースへのリストアは、そのサイトのバックアップディレクトリへファイルを移してから「ek-RestoreDBx12.php」(バージョン1.2および2.0兼用)を使ってください。

DBリストアがうまくいかない場合

高速バックアップファイルは「ek-Backup」ディレクトリの中に、「www_」のような名前が付いたファイル名で保存されていますが、これは元のデータベースのテーブル接頭句を意味しています。このテーブル接頭句が新しいデータベースと一致しないと「ファイルが見当たりません!」と表示されて、高速リストアがうまくいきません。再インストールなどでテーブル接頭句が異なった場合は、高速バックアップファイルの名前を変更してください。

設定ファイルのバックアップ

サブディレクリの保存

ユーザーが設定したカテゴリー名、メニュー順などの情報は「ek-Head」サブディレクリの中に保存されています。またサイトのデザインに関する情報は「ek-Style」サブディレクリの中に保存されています。詳しくは「テンプレートの編集」をご覧ください。サイトの完全な復旧あるいはスムーズな移転を実現するには、定期的にDBのバックアップのほか、すべてのサブディレクトリを別のPCなどに丸ごとコピーしておいてください。


WordPress2.6からのデータ移行

データ移行の手順

現にWordPress2.6がインストールされている、同じディレクトリにek-MyWEBをインストールし、直後に空の状態のバックアップファイル(SQLite3.3形式)を作ってから、必要な設定を書き込んだコンバートプログラムを実行します。適切な設定を行うにはWordPress側のコンフィギュレーションファイルの知識が必要です。

保存されるのは固定ページ、ブログ投稿記事、コメントと会員データ(ただしパスワードは継続不可)となります。コメントは元記事と同じカテゴリーに保存されます。なおWordPressの記事データは全てHTML形式なので、「HTML・あり」となります。ek-MyWEBではHTMLのまま編集できます。画像へのリンクはWordPress内のUploadsディレクトリのままとなりますから、画像ファイルを移動する必要はありません。

保存されたバックアップ形式のファイルは、ローカルサイトへダウンロードしてから、パーソナル版で中身を確認できます。固定ページのカテゴリー分割やメニュー構成など必要があれば修正を加え、そのファイルのデータをリモートサイトのMySQLデータベースへリストアすれば、データの移行は完了となります。

*ek-MyWEB標準版をリモートサイトにインストールせずに、先にローカルサイトにパーソナル版をインストールしておき、バックアップディレクトリとコンバートプログラムをアップロードして実行するという方法もあります。
*WordPressのXMLバックアップファイルは、日本語の処理など問題が多いので、そのファイルからのデータ変換には対応していません。
*このデータ変換処理は小規模のブログを想定しています。既にWordPressで相当量のデータが存在する場合は、そのまま継続してブログ以外のコンテンツのみek-MyWEBで新たに制作されることをお勧めします。

スタイルシートの事前準備

WordPress側のPageコンテンツのdiv幅がek-MyWEB側のdiv幅より広いとき、移行したコンテンツがdiv枠外にはみ出たり、くずれて表示されることがあります。そのため事前に受け皿となるスタイルシートを編集しておくことをお勧めします。なおWordPressのテーマからをek-MyWEBのテーマを作成することも可能です。「テーマ・スタイルマニュアル」をご覧ください。

MovableTypeからのデータ移行

WordPressはMovableTypeのブログ記事とコメントを取り込むことができます。取り込みが成功すれば、その後は同じようにデータコンバートが可能となります。固定ページについてはコンテンツ部分のHTMLコードをブラウザから取得して、記事に流し込むことで対応できます。

Powered by ek-MyWEB.com 2.0 RC3