
旧専用サーバ(Red Hat Linux)にてWebサーバを稼働させており、
新専用サーバ(CentOS6.6)への移転を検討しています。
移転は
(1) 旧サーバのホームディレクトリをtar圧縮
(2) 旧サーバのデータベースをmysqldumpでバックアップ
(3) 設定ファイル等のバックアップ(iptablesやcron、Apache等の設定)
(4) 新サーバのセットアップ(ドメイン等)
(5) 新サーバにて旧サーバのバックアップデータ(1)〜(3)をダウンロード
(6) 新サーバにて解凍、MySQLデータのリストア
概ねこの手順で進める予定ですが、
上記以外にしなければいけない点、こうした方が楽な点、
その他何か注意すべき点等ありましたら教えて頂ければ幸いです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
ベストアンサー
web サーバとのことなので...
旧サーバは dump の前に httpd (かな?)をとめ dump したら mysqld を落とします。そうでないと、DNS のキャッシュの問題で、旧サーバにアクセスしたクライアントがアクセスしてしまいます。もし EC サイト等を運用していた場合、注文がはいったらまずいです。
旧サーバでリバースプロキシを動かして新サーバにアクセスさせる手はありますが、そこまでしなくても良いかとは思います。
rsync の利用はほぼ必須ですね。ただ、MySQL のバージョンが異なる場合、rsync はやめた方が無難かなと思います。
web サービスの停止時間を短くしないといけない場合、かなり気をつけないと思います。
以下でも不十分ですが…これくらい、コマンドレベルできちんと計画してからやらないと、思わぬトラブルに巻き込まれることがありますから、気をつけて下さい。
0. 設定ファイル等のバックアップ(iptablesやcron、Apache等の設定)、利用パッケージ一覧を確認
0. 上記設定を基に、新サーバのセットアップ(ドメイン等)
0. 旧サーバのホームディレクトリ等を rsync にてファイル転送 1回目 (シェルスクリプトを書いておく)
0. 旧サーバのホームディレクトリ等を rsync にてファイル転送 2回目 (シェルスクリプトの動作チェック[rsync の書き方によっては、2回目以降で転送先フォルダがディレクトリ1つ分変わります。詳細割愛])
0. MySQL のデータを dump して、新サーバで restore (バージョンが違う場合は mysql_upgrade を実行。service の stop, start を繰り返し、壊れないことを確認)
0. 新サーバ動作確認 [テスト用に別のドメインを一時的に用意したり、確認元のマシンで hosts を編集して新サーバにアクセスさせる]
0. DNS の TTL を短くしておく
ここまでが移転準備で、以下が実際の移転。状況によって、深夜か日中かを選びます。
0. 新サーバ httpd は止めておく
0. 旧サーバ httpd 止める
0. 旧サーバ mysqld 止める
0. DNS の切り替え(TTL は短いまま)
0. mysqldump して、転送して、リストア。mysql_upgrade 実行
0. 旧サーバのホームディレクトリ等を rsync にてファイル転送 3回目
0. 新サーバ httpd 稼働し、動作確認
でしょうかね…落ち着いたら
0. DNS の TTL を伸ばす
きちんとやると、サーバ移転はかなり大変ですよ。
投稿2015/05/20 02:05
総合スコア1111
0
ホームディレクトリ下と、MySQLにしかデータがないのであれば概ね良いと思いますが、
サーバーや各種ソフトの設定は、バージョンが全く同じでない限り、見ずにコピーで移行はしません。
前のサーバーでの設定を参考にしながら、新サーバーで設計・設定を行います。
結果的にファイルコピーで設定する物も出てくるとは思いますが。
ホームディレクトリ下と、MySQLにしか移行が必要なデータがないかの見極めもいると思います。
投稿2015/05/13 03:10
総合スコア86309
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。


0
ホームディレクトリ上にある各ファイル、画像ファイルやフォルダの数が大量ですとダウンロードやアップロードに時間が掛かり、またファイルやフォルダパーミッションを同じにするのが非常に手間掛かります。アップロードするとファイル生成日がほぼ同じ日付になったり、ファイルオーナーが一般FTPユーザになったりすることで、後々苦労することもありました。
私の場合、Linuxコマンドの「rsync」を使用してます。rsyncコマンドは、両サーバ間をSSHで繋げ、全てのファイルの作成日やオーナー、パーミッションを保持したまま、大量データでもかなり短時間に一気に転送が可能です。
例) $ rsync -avn --exclude '.htaccess' --exclude 'hogehoge.php' /var/www/html/ -e ssh user@xxx.xxx.xxx.xxx:/home/user/public_html >通信可否:yes >移転先のSSHパスワード
※-avn は試し実行で、ファイル内容だけを表示するだけで実際の転送は行わない。一旦内容チェック後、-avと書き換えて実行すれば実際に転送される。
※--exclude 'ファイル名'は、移動したくないファイル。1つずつ羅列。フォルダでも可。
※移転元のパスの最後は/を付ける(/var/www/html/)。移転先のパスの最後には/は付けない(/home/user/public_html)。
rsyncは多数のオプションがあるのでググってみること、試しに少数のファイルで試すことをお勧めします。回線速度やサーバスペックにもよりますが、ギガ単位のファイル量でも数秒~数分でファイル移転が終了します。
その他、rsyncは、サーバ内でのファイルコピーも可能。テスト環境を同一サーバ内や異サーバで構築する時は、環境に依存するファイルを上述の通り除外して転送可。
外部にホットスタンバイ、コールドスタンバイ環境を作りたい時でも利用可能。cronでrsyncを定時実行とか。一旦すべてを転送後は、2度目からは差分のあるファイルだけを抽出して転送してくれるので、重宝します。
ちなみに、mysqldumpではなく、/var/lib/mysql フォルダ内のデータフォルダ自体をrsync転送することで、データ同期も可能と思います。
投稿2015/05/19 02:21
編集2015/05/19 02:42総合スコア368
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

退会済みユーザー
2015/05/21 01:39

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/05/21 01:40