質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • MySQL

    5985questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Linux

    3882questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • CentOS

    2758questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • サーバ

    787questions

    サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

サーバの引っ越し(Linux)手順について

解決済

回答 3

投稿

  • 評価
  • クリップ 3
  • VIEW 1,920

yui

score 27

旧専用サーバ(Red Hat Linux)にてWebサーバを稼働させており、
新専用サーバ(CentOS6.6)への移転を検討しています。

移転は

(1) 旧サーバのホームディレクトリをtar圧縮
(2) 旧サーバのデータベースをmysqldumpでバックアップ
(3) 設定ファイル等のバックアップ(iptablesやcron、Apache等の設定)
(4) 新サーバのセットアップ(ドメイン等)
(5) 新サーバにて旧サーバのバックアップデータ(1)〜(3)をダウンロード
(6) 新サーバにて解凍、MySQLデータのリストア

概ねこの手順で進める予定ですが、
上記以外にしなければいけない点、こうした方が楽な点、
その他何か注意すべき点等ありましたら教えて頂ければ幸いです。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+1

web サーバとのことなので...
旧サーバは dump の前に httpd (かな?)をとめ dump したら mysqld を落とします。そうでないと、DNS のキャッシュの問題で、旧サーバにアクセスしたクライアントがアクセスしてしまいます。もし EC サイト等を運用していた場合、注文がはいったらまずいです。
旧サーバでリバースプロキシを動かして新サーバにアクセスさせる手はありますが、そこまでしなくても良いかとは思います。

rsync の利用はほぼ必須ですね。ただ、MySQL のバージョンが異なる場合、rsync はやめた方が無難かなと思います。
web サービスの停止時間を短くしないといけない場合、かなり気をつけないと思います。

以下でも不十分ですが…これくらい、コマンドレベルできちんと計画してからやらないと、思わぬトラブルに巻き込まれることがありますから、気をつけて下さい。
  1.  設定ファイル等のバックアップ(iptablesやcron、Apache等の設定)、利用パッケージ一覧を確認
  2.  上記設定を基に、新サーバのセットアップ(ドメイン等)
  3.  旧サーバのホームディレクトリ等を rsync にてファイル転送 1回目 (シェルスクリプトを書いておく)
  4.  旧サーバのホームディレクトリ等を rsync にてファイル転送 2回目 (シェルスクリプトの動作チェック[rsync の書き方によっては、2回目以降で転送先フォルダがディレクトリ1つ分変わります。詳細割愛])
  5.  MySQL のデータを dump して、新サーバで restore (バージョンが違う場合は mysql_upgrade を実行。service の stop, start を繰り返し、壊れないことを確認)
  6.  新サーバ動作確認 [テスト用に別のドメインを一時的に用意したり、確認元のマシンで hosts を編集して新サーバにアクセスさせる]
  7.  DNS の TTL を短くしておく
ここまでが移転準備で、以下が実際の移転。状況によって、深夜か日中かを選びます。
  1.  新サーバ httpd は止めておく
  2.  旧サーバ httpd 止める
  3.  旧サーバ mysqld 止める
  4.  DNS の切り替え(TTL は短いまま)
  5.  mysqldump して、転送して、リストア。mysql_upgrade 実行
  6.  旧サーバのホームディレクトリ等を rsync にてファイル転送 3回目
  7.  新サーバ httpd 稼働し、動作確認
でしょうかね…落ち着いたら
  1.  DNS の TTL を伸ばす
きちんとやると、サーバ移転はかなり大変ですよ。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/05/21 10:40

    ありがとうございます。
    丁寧までご教授頂き大変参考になりました!

    キャンセル

+1

ホームディレクトリ下と、MySQLにしかデータがないのであれば概ね良いと思いますが、
サーバーや各種ソフトの設定は、バージョンが全く同じでない限り、見ずにコピーで移行はしません。
前のサーバーでの設定を参考にしながら、新サーバーで設計・設定を行います。
結果的にファイルコピーで設定する物も出てくるとは思いますが。

ホームディレクトリ下と、MySQLにしか移行が必要なデータがないかの見極めもいると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/05/13 13:49

    ありがとうございます。
    各ソフトウェアのバージョンはほぼ同じに合わせる予定ですが、
    設定は手動で調整していこうと思います。

    キャンセル

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/21 10:39

    ありがとうございます。
    rsyncはかなり役立ちそうですね。
    大変参考になりました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • MySQL

    5985questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Linux

    3882questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • CentOS

    2758questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • サーバ

    787questions

    サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。