データベースサービスは、アベイラビリティの高いデータをMySQLデータベースアプリケーションに提供できます。その後、アプリケーションは、ネットワークアクセスをWebサーバなどのデータベースクライアントシステムに提供できます。サービスがフェイルオーバーすると、アプリケーションは新しいクラスタシステムを通じて共有データベースのデータにアクセスします。ネットワークアクセス可能なデータベースサービスには、通常、1つのIPアドレスが割り当てられていて、クライアントの透過的なアクセスを維持できるようにサービスとともにフェイルオーバーされます。
MySQLデータベースサービスの設定例は次の通りです。
MySQLサーバーパッケージはサービスを実行する各クラスタシステムにインストール されています。 MySQLデータベースディレクトリは共有ストレージのディスクパーティションにある ファイルシステムに存在します。 そのため、クラスタメンバー全てがデータベースのデータにアクセスすることができます。 ここで紹介している例では、 共有ディスクパーティション/dev/sda1を使用してファイルシステムが/var/lib/mysqlとしてマウントされています。
データベースサービスのクライアントによるネットワークアクセスに対応するため、 IPアドレスがMySQLサービスに関連付けられています。 サービスがフェイルオーバーした場合、このIPアドレスは自動的にクラスタメンバー間で移動されます。下記の例では、IPアドレスは10.1.16.12になっています。
MySQLデータベースを起動/停止するのに使われるスクリプトは 標準のinitスクリプトmysqldです。 接続とクエリの一般ロギングが必要な場合、 mysqldスクリプトを編集し、 オプション--log=/var/log/mysqld.logを safe_mysqldコマンドの最後のオプションとして 追加してください。次のような行が表示されるはずです。(注記: スラッシュ(\) は行の続きを意味します)
/usr/bin/safe_mysqld --defaults-file=/etc/my.cnf --log=/var/log/mysqld.log \ >/dev/null 2>&1 & |
--logオプションがmysqldスクリプトに追加された場合、 MySQLサービスを実行する他のクラスタメンバーに 新しいmysqldスクリプトをコピーしてください。 これによって、 これらのクラスタメンバーに対してMySQLサービスがフェイルオーバーした時、 接続やクエリをログすることができます。
デフォルトでは、MySQLサーバへのクライアント接続は、不稼働時間が8時間に達するとタイムアウトとなります。この接続制限は /etc/my.cnfファイルの wait_timeout変数を 設定することにより変更ができます。 たとえば、 タイムアウト時間を4時間に設定するには、 /etc/my.cnfの[mysqld]セクション に次の行を追加します。
set-variable = wait_timeout=14400 |
MySQL サービスを再起動してください。 正しく変更された場合は MySQLサービスを実行する他のクラスタメンバー全てに 新しい/etc/my.cnfファイルがコピーされたはずです。
MySQLサーバがタイmysqladminmysqladmin versionコマンドを 起動して稼働時間を確認します。 タイムアウトした場合は、クエリを再度実行し、自動的にサーバーへ再接続してください。
以下のいずれかのメッセージによりMySQLサーバがタイムアウトしたことが示されます。どのメッセージが表示されるかは、Linuxのディストリビューションによって異なります。
CR_SERVER_GONE_ERROR CR_SERVER_LOST |
クラスタ設定ツールをしようしてMySQLサービスを追加するには次を実行してください。
メイン メニュー => システム設定 => サーバー設定 => クラスタ と進んで選択するか、redhat-config-clusterをシェルプロンプトで入力してクラスタ設定ツール を起動してください。デフォルトではクラスタステータスツール が表示されます。
クラスタステータスツールメニューからクラスタ => 設定を選択し、クラスタ設定ツールを起動してください。
サービスタブをクリックしてください。
MySQLサービスの追加
新規をクリックすると サービスダイアログが表示されます。
MySQLサービスのサービス名を入力してください。
フェイル オーバー ドメインを 選択するか、Noneのままにしてください。
mysqld init スクリプトの statusディレクティブにて MySQLサービスの健康状態を調べるには、間隔を確認ボックスに数字(秒単位)を入力してください。
/etc/init.d/mysqldなどをユーザー スクリプトに入力してください。
OKをクリックします。
MySQLサービスのIPアドレスを追加
MySQLサービスを選択し、 Add Childを選択します。
サービス IPアドレスを選択して、 OKをクリックするとサービス IPアドレスダイアログが表示されます。
IP アドレスを入力してください。
ネットマスクを入力するか Noneのままにしてください。
ブロードキャスト アドレスを入力するか、Noneのままにしてください。
OKをクリックします。
MySQLサービスのデバイスを追加
MySQLサービスを選択し、 Add Childを選択します。
デバイスを追加を選択し OKをクリックするとデバイス ダイアログが表示されます。
デバイス 特別 ファイル (例: /dev/sdc3) を入力します。
マウント ポイント フィールドに /var/lib/mysqlを入力してください。
FS タイプでファイル システム タイプを選択するか 空欄のままにしておいてください。
rw (読み書き)などのマウント ポイントオプションを入力してください。
強制アンマウントに チェックを付けるか外してください。
OKをクリックします。
ファイル => 保存 と選択し、MySQL サービスを保存してください。