前のトピック: 複数ノード マスタ/マスタ レプリケーションを使用する N 層アプリケーション(負荷分散に適している)

次のトピック: PGSQL64 - PostgreSQL データベース アプライアンス


異なる機能上で作動する N 層アプリケーション(負荷分散とフェールオーバに最適)

以下の図は、複数の施設で動作する Web アプリケーションでの MYSQLR64 アプライアンスの標準的な使い方を示しています。 このセットアップで、2 つ以上の同一のアプリケーションをマスタ/マスタ設定のすべてのアプリケーションにデータベースをレプリケートして、さまざまな組織で実行することができます。 これは次の 2 つの場合に役立ちます。

マスタ アプリケーション

異なる施設で実行される N 層アプリケーション(負荷分散とフェールオーバを実行するのに適している)

スレーブ アプリケーション

スレーブ アプリケーション

使用するアプライアンス:

クライアント リクエストは user ゲートウェイに到達します。 このゲートウェイは web_lb ロード バランサにリクエストを転送し、ロード バランサは web1 と web2 のいずれかの Web サーバにリクエストを伝えます。 Web サーバは master データベースにアクセスします。 マスタ アプライアンスは、データベースをレプリケートするためにリモート(スレーブ)アプリケーションに接続します(唯一の違いはスレーブの server_id とネットワーク設定です)。 リモート アプリケーションは、リモート アプリケーションの vpn ゲートウェイからのみ接続をできるように設定されている vpn ゲートウェイを介してマスタ アプライアンスに接続します。 2 つのアプリケーション内のマスタ アプライアンスとスレーブ アプライアンスはマスタ/マスタ設定で実行されているため、常に同一のデータを使用します。

プロパティ設定の例(リストに表示されていないプロパティはデフォルト値のままにしてください):

マスタとスレーブへの Web アクセスはポート 8080 上の admin ゲートウェイ経由で利用可能です。

master

プロパティ名

auto_create

1

ボリュームが空の場合は、データベースを作成します。

error_log_filename

master-db.error

logs データ ボリューム上に格納されるエラー ログ ファイルの名前。

error_log_level

error

エラー ログ レベル

server_id

1

マスタ サーバ(1 である必要はないが、スレーブ上の server_id とは異なること)

rpl_mode

master

レプリケーションを作成するめにバイナリ ログを書き込みます。

master vpn

プロパティ名

mode

server

サーバとして動作します。

tunnel

certificates

SSL 証明書の使用。

tcp_ports

3306,22

MYSQLR64 によって必要とされるポートを許可します。

ip_addr

master_vpn_ip

マスタ アプリケーション内の VPN の IP アドレス。

remote_host

slave_vpn_ip

スレーブ アプリケーション内の VPN の IP アドレス。

slave

プロパティ名

auto_create

1

ボリュームが空の場合は、データベースを作成します。

error_log_filename

slave-db.error

logs データ ボリューム上に格納されるエラー ログ ファイルの名前。

error_log_level

error

エラー ログ レベル

server_id

2

スレーブ サーバ(2 である必要はないが、マスタ上の server_id とは異なること)

rpl_mode

slave

マスタに接続します

slave vpn

プロパティ名

mode

client

クライアントとして動作します。

tunnel

certificates

SSL 証明書の使用。

auth_path

"client1"

SSL 証明書ファイルへのパス。

ip_addr

slave_vpn_ip

スレーブ アプリケーション内の VPN の IP アドレス。

remote_host

master_vpn_ip

マスタ アプリケーション内の VPN の IP アドレス。

リモート アプリケーションは正確なコピーです。唯一の違いは、user、admin および vpn アプライアンスのネットワーク設定、vpn アプライアンスと master=/=slave の間の接続および master=/=slave アプライアンスの server_id(一意であること)です。

MYSQLR から MYSQLR64 へのマイグレート(またはその逆)

MYSQLR から MYSQLR64 (またはその逆)にマイグレートする必要がある場合は、データ破損の原因になる可能性があるので、64 ビット アプライアンス上で 32 ビット アプライアンス(またはその逆)からのボリュームを単に使用しないでください。 この場合に推奨される方法は、古いアプライアンス上のデータベースをダンプし、ダンプされたファイルを新しいアプライアンスに転送した後で、新しいアプライアンスにデータベースをインポートすることです。

さらに古いデータベース アプライアンス(MYSQL、MYSQL5、MYSQL64)または CA AppLogic アプライアンス上で実行されない mysql データベースをマイグレートする場合、同じ手順が使用できます。

データベースをマイグレートする方法

ノート

以下の点に留意してください。

重要: データベースのユーザを作成するときは、接続元のホスト上の制限なしですべてのユーザが作成されていることを確認してください。 例:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
アプライアンス内で使用されるサードパーティ オープンソース ソフトウェア

MYSQLR64 は、ベース クラス LUX64 で使用されるサードパーティのオープン ソース パッケージに加えて、以下のサードパーティのオープン ソース パッケージを使用します。

ソフトウェア

バージョン

変更

ライセンス

ノート

aspell

0.60.3-7.1

いいえ

LGPLv2.1

該当なし

aspell-en

6.0-2.1

いいえ

LGPLv2.1

該当なし

curl

7.15.5-2

いいえ

MIT

該当なし

device-mapper-event

1.02.32-1

いいえ

GPLv2

該当なし

freetype

1.02.32-1

いいえ

FTL

該当なし

gmp

4.1.4-10.el5

いいえ

LGPLV2.1

該当なし

libidn

0.6.5-1.1

いいえ

LGPLv2.1

該当なし

libjpeg

6b-37

いいえ

配布可能

該当なし

libpng

1.2.10-7.0.2

いいえ

zlib/libpng

該当なし

lvm2

2.6.26-2.1.2.8

いいえ

GPLv2.0

該当なし

mysql

5.0.77-3.el5

いいえ

GPL

該当なし

mysql-server

5.0.77-3.el5

いいえ

GPLv2

該当なし

perl-DBD-MySQL

3.0007-2.el5

いいえ

Artistic

該当なし

perl-DBI

1.52-2.el5

いいえ

Artistic

該当なし

php-cli

5.1.6-23.el5

いいえ

PHPv3.01

該当なし

php-common

5.1.6-23.el5

いいえ

PHPv3.01

該当なし

php-gd

5.1.6-23.el5

いいえ

PHPv3.01

該当なし

php-mbstring

5.1.6-23.el5

いいえ

PHPv3.01

該当なし

php-mysql

5.1.6-23.el5

いいえ

PHPv3.01

該当なし

php-pdo

5.1.6-23.el5

いいえ

PHPv3.01

該当なし

rsync

2.6.8-3.1

いいえ

GPLv2

該当なし

samba-client

3.0.28-1.el5_2.1

いいえ

GPLv2

該当なし

samba-common

3.0.28-1.el5_2.1

いいえ

GPLv2

該当なし

sudo

1.6.8p12-10

いいえ

ISC

該当なし

lighttpd

1.4.18-1.el5.rf

いいえ

BSD

該当なし

Perl-IPC-Run

0.84-1.el5.rf

いいえ

Artistic

該当なし

Perl-Time-Duration

1.06-1.el5.rf

いいえ

Artistic

該当なし

phpMyAdmin

2.11.10-1

いいえ

GPLv2

該当なし

MYSQLR トラブルシューティング

MYSQLR アプライアンスが再起時にフリーズする

MYSQLR 1.6.2 から、ルート データベース アカウントのパスワードを設定および変更できます。 ただし、MSYQLR アプライアンスには異なるホスト名を備えたいくつかのルート アカウントがあります。 パスワードを設定または変更する場合は、常に root@% アカウントを使用する必要があります。 root@% アカウントは MYSQLR の in 端子に接続されるアプライアンスが認証するアカウントです。 他のルート アカウントはローカル ユーザからのみ使用されるため、ルート アカウントにはパスワードを決して設定しないでください。そうすると MYSQLR アプライアンスの起動が失敗します。

注: root@localhost アカウントにパスワードを与えなくても、セキュリティの問題とはなりません。このアカウントはアプライアンス上のローカル ユーザによってのみ使用可能であり、アプライアンスにアクセスできるユーザは誰でもパスワード変更ができるからです。

ルート データベース パスワードを変更した後に開始しない MYSQLR アプライアンスの回復

データベースのルート パスワード変更のために開始しないアプライアンスを回復するには、以下の手順を実行します。

  1. アプライアンスまたはアプリケーションをデバッグ モードで開始します。
    アプライアンス開始コマンド
    comp start main.MYSQLR --debug 
    
    アプリケーション開始コマンド
    app start --debug 
    

    アプライアンスを開始した数秒後、アプライアンスにログインすることができます。 アプライアンスのタイムアウトを待つ必要はありません。

  2. SSH を介してアプライアンスへログインし、以下のコマンドを実行します。
    mysql -p -e "update mysql.user set Password='' where User='root'" 
    mysqladmin -p flush-privileges 
    mysql -e 'update mysql.user set password=PASSWORD("NEWPASSWORD") where User="root" and Host="%"' 
    mysqladmin flush-privileges
    
  3. アプライアンスを再起動して、正常なブート、およびユーザ ルートの「in」端子への mysql 接続がパスワードを必要とすることを確認します。