coreserver でデータベースが壊れる現象が多発するようになったので、さくらインターネットに移転することにした。なぜデータベースが壊れるのかや、coreserver ・ さくらインターネットの良し悪しは理解している。それぞれ一長一短だ。
※データベースが壊れた際の復旧方法はこちらをご参照ください
全体的な流れ
coreserver 間の移転はとても便利なのだが、今回はさくらインターネットへの移転を試みる。つまり、coreserver から外部サーバーへの移転メモになる。
- (旧)すべてのアクセスの遮断
- (旧)バックアップ(ファイル、データベース)
- (新)ファイル転送
- (新)復元とテスト、設定変更
- DNS 書き換え
- 完了
スポンサードリンク
※サイトの構成やファイル数、データベースの大小によってはここに記載する方法ではないほうが、よりスマートに移転できるかもしれない
※さくらインターネットへは事前に申し込み、あるいは試用期間が終了して本登録が完了しているものとする
準備
WordPress の不要データ削除をやっておく
(旧)すべてのアクセスの遮断
coreserver間での移転なら、非常に便利な機能が用意されているからアクセスを遮断するにしても最小の時間で済む。一例だが、
- サーバー間転送機能を利用し新しいサーバーに旧サーバーからすべてのデータを受け入れ、
- .htaccess を使うか意図的にデータベース接続を遮断し503 エラーを出力させ、
- その間にデータベースのバックアップを取り新サーバーで復元し、
- そしてDNS を書き換えれば波及と共に移転完了
となる。アクセスログを取得するなど頻繁にデータベースに書き込みを行わないか、移転する間のデータが不要なら更に作業を減らすこともできる。
今回は筆者を含めてすべてのアクセスを遮断し、さくらインターネットに移転する方法を選択した。なお、外部からも正しくメンテナンス中である旨の表示がされているかは「HTTPチェック【外部からの疎通確認】」などのサービスを利用すると便利。
関連記事
- pc.casey.jp » [.htaccess] 特定のユーザのみ閲覧を許可する
- pc.casey.jp » 「ただいまメンテナンス中です」のための.htaccessファイル設定
- pc.casey.jp » [WordPress] 「データベースに接続できません」のカスタマイズ
- pc.casey.jp » カスタムエラーページを作成
参考文献
- mod_rewrite
- HTTPステータス・コード
- 【apache】HTTPレスポンスで301/302/303を返す
- 一時的にすべてのURLへのリクエストを”メンテナンス中”表示にする – いろいろ[email protected]
- Apache への全てのリクエストを 1 つの URL へリダイレクトする
- 小粋空間: 404 エラーページを作る
- さくらインターネットで403及び404エラー表示をカスタマイズ – ちほちゅう
(旧)バックアップ(ファイル、データベース)
アクセスを遮断したらファイルとデータベースのバックアップを作成する。これにも幾つか方法がある。
ちなみに、rsync コマンドはcoreserver にも用意されており、さくらインターネットはSSH 接続が可能だから、ファイル容量等によっては容易に転送できる手段になる。
今回は以下のようにした。
- ファイル容量が多くファイルを圧縮できない(Kill される)ため、FTP でバックアップしてさくらインターネットに転送した
- データベースはcoreserver のコントロールパネル上のdump作成とphpMyAdmin のバックアップを念のため両方取得しておく
- phpMyAdmin でバックアップができない(おそらくKill される)場合はコマンドラインからバックアップを取得する
- その他WordPress プラグインを利用する方法もあるが、今回はすべてのアクセスを遮断しているので利用できない
coreserver のコントロールパネルからデータベースのdump作成。
coreserver のphpMyAdmin からバックアップ。
データベース・バックアップの関連記事
- pc.casey.jp » WordPress mysqldumpなしでバックアップ
- pc.casey.jp » [MySQL] 大容量データベースの移動(1)
- pc.casey.jp » WordPress データベース以外のバックアップ
(参考)解凍圧縮コマンド
コマンド例
tar cvfz pc.casey.jp ./public_html/pc.casey.jp
※本サイトのデータは大きく、コマンドラインから作業してもKill されたため、この方法は利用できなかった
- pc.casey.jp » WinRARをコマンドラインから使う
- Linuxコマンド gunzip ~.gzファイルを解凍する~
- 【 gunzip 】 ファイルを展開する(拡張子.gz) – Linuxコマンド集:ITpro
(参考)バックアップ(と転送)をサーバー間でやらせる
コマンド例
rsync -avz -e ssh ./public_html/pc.casey.jp/ wwwXXXX.sakura.ne.jp:/home/XXXX/backup/pc.casey.jp/ The authenticity of host 'wwwXXXX.sakura.ne.jp (XXX.XXX.XXX.XXX)' can't be established. DSA key fingerprint is XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'wwwXXXX.sakura.ne.jp,XXX.XXX.XXX.XXX' (DSA) to the list of known hosts. [email protected]'s password: building file list ... done ./ .htaccess : : sent 242226 bytes received 20 bytes 44044.73 bytes/sec total size is 328825391 speedup is 1357.40
関連記事
- pc.casey.jp » WinSCP で遠隔地へデータを自動退避
- pc.casey.jp » [Linux] Linkstation に rsync で VMware バックアップ
- pc.casey.jp » [Linux] SCP と rsync+SCP
参考文献
- rsync + ssh でファイルの同期をとる | レンタルサーバー・自宅サーバー設定・構築のヒント
- Rsyncによるデータバックアップ
- rsync (+ ssh) で簡単バックアップ
- rsh リモートホストでコマンドを実行する – UNIXコマンド辞典:CodeZine(コードジン)
- rsyncとsshで別のマシンにバックアップ
(新)ファイル転送
データベースも容量が多く、さくらインターネットの phpMyAdmin で受け入れられない。またデータベースの同期はcoreserver で対応しておらず、さくらインターネットでは対応しているがおそらく外部からの接続は受け付けないだろう。
(新)ファイルとデータベースの復元
→ 続く
コメント