Just another WordPress site

先月に新規サーバーへの切り替えを終えて、旧サーバーから引越しをしたのですが、DNS浸透期間(プロパゲーション期間)が思った以上に時間がかかり、夏の旅行に出掛ける時期を迎え、「旅行から帰るころにはプロパゲーションも終了しているだろう」と気軽な気持ちで出発しました。8月下旬に帰宅してから早速チェックしてみると、時間を置きながら2日ほどかけてウェブアクセス状況とメールの着信状況を見てみると、ウェブアクセスと電子メールが新規サーバー経由からに完全に移行していました。
サーバー移転に経過した日数が約20日と、思ったより以上にかかったことになります。

DNS浸透期間(プロパゲーション期間)はウェブアクセスが新規サーバー経由であったり旧サーバー経由であったりと不安定ですので、毎日配信していますメルマガもこの間は中止していました。
9月に入り、今日から新たなサーバーでのウェブ運営を本格化させ、中止していたメルマガ配信もほぼ日刊配信を再開しました。
旧サーバーについては8月末までで契約を解約し、関係するページやフォルダなどを全て削除し、新規サーバーに一本化させることができました。

今回のサーバー移転の目的が、これまで広げてきたウェブ運営に関係する作業をシンプル化し、それで生まれた時間をその他のやりたいことに振り向けることでしたので、そのための作業に順次入っていくこととしました。

新規契約サーバへのMySQL初期設定が終わったので、今度は旧サーバのMySQLデータベースを新規契約データベースに移転する作業に入ります。

データベースの移転方法はいろいろとあるようですが、データベース全体のバックアップとリストアを行うことで、データベースの設定、テーブルとカラムの定義やデータなど、データベースの全ての情報を丸ごとファイルにして取り出して移転する方法を選択しました。

<ダンプ(バックアップ)>

まず最初に行うことは、旧サーバのデータベースの内容をファイルに書き出すダンプ(dump)作業です。この方法でダンプしてそのファイルを使えば、別のサーバに同じ内容のデータベースを構築したり、不測の事態に備えてバックアップを取ることもできます。MySQLデータベースをダンプするには、mysqldumpコマンドを実行します。

データベースを丸ごとダンプするときの書式は次のようになります。

# mysqldump -u ユーザー名 -pパスワード データベース名>出力ファイル名;

今回の事例では、旧サーバのデータベース名「database」を新規契約サーバに同様のデータベース名で移転構築することとしました。ユーザー名は「root」、パスワードは「12345」としました。出力ファイルはテキストファイル「database_out.txt」とし、ルートディレクトリに出力することとしました。この場合の書式は次のとおりとしました。

# mysqldump -u root -p12345 database>/var/www/html/database_out.txt;

これでダンプが実行されました。

<リストア>

今度はリストアされたデータベースを新規契約サーバに同じデータベース名でデータベースを構築します。新規契約サーバーに流し込むデータベースが存在している必要がありますので、旧サーバと同じデータベース名「database」でデータベースを作成します。ここにダンプしたファイルをリストアすることとします。

リストアの書式は次のようになります。

# mysql -u root -p12345 database < /var/www/html/database_out.txt;

これで新規契約サーバにデータベース「database」が構築され、MySQLデータベースの移転作業が終了しました。

サーバ移転に伴うネームサーバの行き先変更の反映もほぼ安定してきたので、いよいよ新規サーバに必要なプログラムを移していくこととします。

 まずメインコンテンツとも言える「経済情報レポート」に関するデーター移行です。このコンテンツはMySQLを活用していますので、MySQLの初期設定から始めます。

<MySQLの起動>

MySQLを活用するためには、初期設定を行うことになります。最初に行うのがMySQLを起動させることです。WySQLの起動は次のコマンド操作で行います。

# /sbin/service mysql start

これで「enter」して次のように表示されれば、無事にMySQLが起動したことになります。

Initializing MySQL database:[OK]

Starting MySQL: [OK]

<MySQLのrootパスワードの設定>

初めてMySQLを使用する場合は、MySQL初期時点でのロートパスワードが設定されていませんので、MySQLのrootパスワードを設定します。この場合もコマンド操作で行うことになります。下記に記載の「new-password」となっているところを、自分が設定するrootパスワードに置き換えてからroot権限でコマンドを実行します。

# mysqladmin –u root password ‘new-password’

データベースなどWebアプリの接続用にroot権限を使用していてはセキュリティ上の問題もありますので、Webアプリ用のユーザーとパスワードを設定して使用します。

まず、root権限でMySQLに入ります。

# mysql –u root –p

とコマンドすると、次のようにrootユーザーパスワードの入力を求められるので、先ほど設定したrootユーザーパスワードを入力します。

Enter password:

これでMySQLに接続されるので、rootユーザー以外のWebアプリ用ユーザーを登録します。次のようにコマンドすると、rootユーザー以外で全ての権限を有するスーパーユーザーが登録されます。

mysql> grant all on *.* to ユーザー名@localhost identified by ‘パスワード’;

これでユーザー登録ができました。

*.*とするとMySQLに設定された全てのデータベースに共通するユーザーとして登録されます。データベース毎にユーザー登録する場合は、*.*の部分に当該のDB名を入れることで設定できますので、使用環境に合わせて設定します。

ここ4年ばかりは、暇にまかせて(?)朝から夜中までウェブサイトの構築と運営にかかりっきりでした。そのためそれ以外のことにはまったく手が付かない状態で、そろそろ何とかしなくてはと思っていたところに、現在契約しているホスティング会社から容量増大と機能アップでありながら料金据え置きという新スペックのサービスに関する連絡が入り、この機会にホスティング会社も契約は1社にして可能な限りウェブサイト運営もシンプル化して、やりたくてもできなかった趣味への時間を確保していくこととしました。つまり、サーバ移転に踏み切ることにしました。

とはいっても、サーバ移転は初めてです。加えて、現在契約しているサーバについては、MySQLによるデータベースを使って毎日数十本の記事配信をしていますので、URL総数は約4万程度になっています。サーバ内部の設定も自分で使いやすくするためにいろいろと随所で設定変更をしています。今回契約するサーバは運営会社は同じでも、新規契約扱いとなるサーバですので、当然のこととしてMySQLにより作成したデータベースの移転、使いやすくするために設定した内容については新規のサーバに設定し直す必要がでてきます。もちろん、ドメイン管理会社のネームサーバの行き先変更も行うこととなります。

移転時期は、お盆の時期を含む前後2週間としました。まず行ったことはホスティング会社への新規契約とこれまでのホスティングサービスの契約解除です。これは手続きだけですからすぐに終了し、新規契約のサーバはその日のうちに使えることになりました。
一番時間がかかるのがネームサーバの行き先変更の反映ですので、保有するドメインの管理会社にログインし、ネームサーバの行き先を新規サーバに変更しました。運用中のネームサーバ上でゾーン情報ファイルのTTL値を小さくしておくと速く反映されるそうですが、8月の暇な時期に2週間かけて移転するのだから「まあいいか」と、TTL値はいらわずに実行しました。

あとは、新規契約サーバのオンラインマニュアルに沿って設定していくだけですが、旧サーバで自分が使いやすくするために設定していた事項については、新規契約サーバでも同じ設定にしたいので、旧サーバ変更箇所を一つ一つ確認しながらメモしていくことになりました。本当は、こうした変更点は自分の備忘録にキッチリとメモっておけば、悩むことはないのですが、長年使っているといろいろと設定変更しているのをついつい忘れてしまっています。
この反省から、今回はしっかりと設定変更箇所は備忘録にメモしています。
設定変更しているのはhttpd.confがほとんどでした。
全ての設定変更箇所を修正し、コンテンツを新規契約サーバにアップロード。IPアドレスで新規契約サーバにアクセスすると、アップロードしたコンテンツが表示されますので、ここまでは順調に進行しています。後はネームサーバの行き先変更が反映されれば終了ですので、しばらくは時間が経つのを待つことにしました。1週間から2週間程度はかかるのではないでしょうか。

1週間ほど経ちましたので、アクセスしてみると、2台あるパソコン端末のうち1台は新規サーバから、もう1台は旧サーバからという状況でした。これが入れ替わったり、2台とも新規サーバからだったり、2台とも旧サーバからだったりと不安定な状況が続いています。メールサーバに関しては新規サーバからはまったく反応がありません。
9日目に入り、メールサーバでの反応が出てきました。ウェブコンテンツは新規サーバからが大きく増えてきています。もう少しなのでしょうね。